e3x.nn.functions.bernstein.reciprocal_bernstein

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

Reciprocal Bernstein polynomial basis functions.

Computes the basis functions (see basic_bernstein and reciprocal_mapping)

\[\mathrm{reciprocal\_bernstein}_k(x) = \mathrm{bernstein}_k(1-\mathrm{reciprocal\_mapping}(x))\]

or (if use_reciprocal_weighting = True)

\[\mathrm{reciprocal\_bernstein}_k(x) = \mathrm{reciprocal\_mapping}(x) \cot \mathrm{bernstein}_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.bernstein.reciprocal_bernstein_0_0.svg

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

../_images/e3x.nn.functions.bernstein.reciprocal_bernstein_1_0.svg

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

../_images/e3x.nn.functions.bernstein.reciprocal_bernstein_2_0.svg

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

../_images/e3x.nn.functions.bernstein.reciprocal_bernstein_3_0.svg

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

../_images/e3x.nn.functions.bernstein.reciprocal_bernstein_4_0.svg

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

../_images/e3x.nn.functions.bernstein.reciprocal_bernstein_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.