e3x.nn.functions.gaussian.reciprocal_gaussian

e3x.nn.functions.gaussian.reciprocal_gaussian(x, num, kind='shifted', use_reciprocal_weighting=False)[source]

Reciprocal Gaussian basis functions.

Computes the basis functions (see basic_gaussian and reciprocal_mapping)

\[\mathrm{reciprocal\_gaussian}_k(x) = \mathrm{gaussian}_k(1-\mathrm{reciprocal\_mapping}(x))\]

where \(k=0 \dots K-1\) with \(K\) = num.

Plot for \(K = 5\) (kind = 'shifted', use_reciprocal_weighting = False):

../_images/e3x.nn.functions.gaussian.reciprocal_gaussian_0_0.svg

Plot for \(K = 5\) (kind = 'shifted', use_reciprocal_weighting = False):

../_images/e3x.nn.functions.gaussian.reciprocal_gaussian_1_0.svg

Plot for \(K = 5\) (kind = 'damped', use_reciprocal_weighting = False):

../_images/e3x.nn.functions.gaussian.reciprocal_gaussian_2_0.svg

Plot for \(K = 5\) (kind = 'damped', use_reciprocal_weighting = True):

../_images/e3x.nn.functions.gaussian.reciprocal_gaussian_3_0.svg

Plot for \(K = 5\) (kind = 'cuspless', use_reciprocal_weighting = False):

../_images/e3x.nn.functions.gaussian.reciprocal_gaussian_4_0.svg

Plot for \(K = 5\) (kind = 'cuspless', use_reciprocal_weighting = True):

../_images/e3x.nn.functions.gaussian.reciprocal_gaussian_5_0.svg
Parameters:
  • x (<class 'Float[Array, '...']'>) – Input array.

  • num (int) – Number of basis functions \(K\).

  • kind ({'shifted', 'damped', 'cuspless'}, default: 'shifted') – Which kind of reciprocal mapping is used.

  • use_reciprocal_weighting (bool, default: False) – If True, the functions are weighted by the value of the reciprocal mapping.

Return type:

<class 'Float[Array, '... num']'>

Returns:

Value of all basis functions for all values in x. The output shape follows the input, with an additional dimension of size num appended.