npsolve.soft_functions module

Created on Fri May 15 16:17:04 2020

@author: Reuben

These functions can be used to prevent discontinuities, which can cause trouble for numerical methods.

npsolve.soft_functions.above(x, limit=0.0, scale=0.0001)

A smooth step from 0 below a limit to 1 above it

Parameters:
  • x (int, float, ndarray) – The value(s)
  • limit (float) – [OPTIONAL] The value to step at. Defaults to 0.
  • scale (float) – [OPTIONAL] A scale factor for the softening
Returns:

Value(s) between 0 and 1

Return type:

float, ndarray

See also

soft_step

npsolve.soft_functions.below(x, limit=0.0, scale=0.0001)

A smooth step from 1 below a limit to 0 above it

Parameters:
  • x (int, float, ndarray) – The value(s)
  • limit (float) – [OPTIONAL] The value to step at. Defaults to 0.
  • scale (float) – [OPTIONAL] A scale factor for the softening
Returns:

Value(s) between 0 and 1

Return type:

float, ndarray

See also

soft_step

npsolve.soft_functions.ceil(x, limit=0.0, scale=0.0001)

Limit value to a maximum softly to to prevent discontinuous gradient

Parameters:
  • x (int, float, ndarray) – The value(s) to soft limit
  • limit (float) – [OPTIONAL] The value to limit at. Defaults to 0.
  • scale (float) – [OPTIONAL] A scale factor for the softening
Returns:

The limited value(s)

Return type:

float, ndarray

See also

soft_limit

npsolve.soft_functions.clip(x, lower, upper, scale=0.0001)

Limit value to a range softly to to prevent discontinuous gradient

Parameters:
  • x (int, float, ndarray) – The value(s) to soft limit
  • lower (float) – The lower threshold
  • upper (float) – The upper threshold
  • scale – A scale factor for the softening
Returns:

The limited value(s)

Return type:

float, ndarray

See also

soft_limit

npsolve.soft_functions.floor(x, limit=0.0, scale=0.0001)

Limit value to a minimum softly to to prevent discontinuous gradient

Parameters:
  • x (int, float, ndarray) – The value(s) to soft limit
  • limit (float) – [OPTIONAL] The value to limit at. Defaults to 0.
  • scale (float) – [OPTIONAL] A scale factor for the softening
Returns:

The limited value(s)

Return type:

float, ndarray

See also

soft_limit

npsolve.soft_functions.gaussian(x, center=0.0, scale=0.0001)

A gaussian function, with a peak of 1.0

Parameters:
  • x (int, float, ndarray) – The value(s)
  • center (float) – [OPTIONAL] The x-position of the peak center
  • scale (float) – [OPTIONAL] A scale factor for the curve.
npsolve.soft_functions.lim(x, limit=0.0, side=1, scale=0.0001)

Limit the value softly to prevent discontinuous gradient

Parameters:
  • x (int, float, ndarray) – The value(s) to soft limit
  • limit (float) – [OPTIONAL] The value to limit at. Defaults to 0.
  • side (int) – [OPTIONAL] 1 for min, -1 for max. Defaults to 1.
  • scale (float) – [OPTIONAL] A scale factor for the softening
Returns:

The limited value(s)

Return type:

float, ndarray

Note

This function uses a softplus function to perform smoothing. See https://en.wikipedia.org/wiki/Activation_function. Values for the calculation are clipped to 700 avoid overflow errors, as the max value for a float is exp(709.782).

npsolve.soft_functions.negdiff(x, limit=0.0, scale=0.0001)

Negative-only difference (difference below limit to 0 above limit)

Parameters:
  • x (int, float, ndarray) – The value(s) to soft limit
  • limit (float) – [OPTIONAL] The value to limit at. Defaults to 0.
  • scale (float) – [OPTIONAL] A scale factor for the softening
Returns:

The limited value(s)

Return type:

float, ndarray

See also

soft_limit

npsolve.soft_functions.outside(x, lower, upper, scale=0.0001)

Steps smoothly from 1 outside a range to 0 inside it

Parameters:
  • x (int, float, ndarray) – The value(s)
  • lower (float) – The lower threshold
  • upper (float) – The upper threshold
  • scale (float) – [OPTIONAL] A scale factor for the softening
Returns:

Value(s) between 0 and 1

Return type:

float, ndarray

See also

soft_step

npsolve.soft_functions.posdiff(x, limit=0.0, scale=0.0001)

Positive-only difference (0 below limit to difference above limit)

Parameters:
  • x (int, float, ndarray) – The value(s) to soft limit
  • limit (float) – [OPTIONAL] The value to limit at. Defaults to 0.
  • scale (float) – [OPTIONAL] A scale factor for the softening
Returns:

The limited value(s)

Return type:

float, ndarray

See also

soft_limit

npsolve.soft_functions.sign(x, scale=0.0001)

A smooth step from -1 below 0 to +1 above it

Parameters:
  • x (int, float, ndarray) – The value(s)
  • scale (float) – [OPTIONAL] A scale factor for the softening
Returns:

Value(s) between 0 and 1

Return type:

float, ndarray

Note

This function uses a sigmoid function to perform smoothing. See https://en.wikipedia.org/wiki/Sigmoid_function. Values for the calculation are clipped to avoid overflow errors.

npsolve.soft_functions.step(x, limit=0.0, side=1, scale=0.0001)

A smooth step to prevent discontinuous gradient

Parameters:
  • x (int, float, ndarray) – The value(s)
  • limit (float) – [OPTIONAL] The value to step at. Defaults to 0.
  • side (int) – [OPTIONAL] 1 for min, -1 for max. Defaults to 1.
  • scale (float) – [OPTIONAL] A scale factor for the softening
Returns:

Value(s) between 0 and 1

Return type:

float, ndarray

Note

This function uses a sigmoid function to perform smoothing. See https://en.wikipedia.org/wiki/Sigmoid_function. Values for the calculation are clipped to avoid overflow errors.

npsolve.soft_functions.within(x, lower, upper, scale=0.0001)

Steps smoothly from 0 outside a range to 1 inside it

Parameters:
  • x (int, float, ndarray) – The value(s)
  • lower (float) – The lower threshold
  • upper (float) – The upper threshold
  • scale (float) – [OPTIONAL] A scale factor for the softening
Returns:

Value(s) between 0 and 1

Return type:

float, ndarray

See also

soft_step