scipy.special.seterr

scipy.special.seterr()

Set how special-function errors are handled.

Parameters:

all : {‘ignore’, ‘warn’ ‘raise’}, optional

Set treatment for all type of special-function errors at once. The options are:

The default is to not change the current behavior. If behaviors for additional categories of special-function errors are specified, then all is applied first, followed by the additional categories.

singular : {‘ignore’, ‘warn’, ‘raise’}, optional

Treatment for singularities.

underflow : {‘ignore’, ‘warn’, ‘raise’}, optional

Treatment for underflow.

overflow : {‘ignore’, ‘warn’, ‘raise’}, optional

Treatment for overflow.

slow : {‘ignore’, ‘warn’, ‘raise’}, optional

Treatment for slow convergence.

loss : {‘ignore’, ‘warn’, ‘raise’}, optional

Treatment for loss of accuracy.

no_result : {‘ignore’, ‘warn’, ‘raise’}, optional

Treatment for failing to find a result.

domain : {‘ignore’, ‘warn’, ‘raise’}, optional

Treatment for an invalid argument to a function.

arg : {‘ignore’, ‘warn’, ‘raise’}, optional

Treatment for an invalid parameter to a function.

other : {‘ignore’, ‘warn’, ‘raise’}, optional

Treatment for an unknown error.

Returns:

olderr : dict

Dictionary containing the old settings.

See also

geterr
get the current way of handling special-function errors
errstate
context manager for special-function error handling
numpy.seterr
similar numpy function for floating-point errors

Examples

>>> import scipy.special as sc
>>> from pytest import raises
>>> sc.gammaln(0)
inf
>>> olderr = sc.seterr(singular='raise')
>>> with raises(sc.SpecialFunctionError):
...     sc.gammaln(0)
...
>>> _ = sc.seterr(**olderr)

We can also raise for every category except one.

>>> olderr = sc.seterr(all='raise', singular='ignore')
>>> sc.gammaln(0)
inf
>>> with raises(sc.SpecialFunctionError):
...     sc.spence(-1)
...
>>> _ = sc.seterr(**olderr)