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:
- ‘ignore’ Take no action when the error occurs
- ‘warn’ Print a SpecialFunctionWarning when the error occurs (via the Python warnings module)
- ‘raise’ Raise a SpecialFunctionError when the error occurs.
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 numpy.testing import assert_raises >>> sc.gammaln(0) inf >>> olderr = sc.seterr(singular='raise') >>> with assert_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 assert_raises(sc.SpecialFunctionError): ... sc.spence(-1) ... >>> _ = sc.seterr(**olderr)