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:
olderrdict

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)