@@ -9,15 +9,19 @@ class scipy_optimizer(OptimizerMixin):
99 Optimizer that uses :func:`scipy.optimize.minimize`.
1010 """
1111
12- __slots__ = ['name' ]
12+ __slots__ = ['name' , 'tolerance' ]
1313
1414 def __init__ (self , * args , ** kwargs ):
1515 """
1616 Initialize the scipy_optimizer.
1717
18- See :class:`pyhf.optimize.mixins.OptimizerMixin` for configuration options.
18+ See :class:`pyhf.optimize.mixins.OptimizerMixin` for other configuration options.
19+
20+ Args:
21+ tolerance (:obj:`float`): tolerance for termination. See specific optimizer for detailed meaning. Default is None.
1922 """
2023 self .name = 'scipy'
24+ self .tolerance = kwargs .pop ('tolerance' , None )
2125 super ().__init__ (* args , ** kwargs )
2226
2327 def _get_minimizer (
@@ -40,16 +44,18 @@ def _minimize(
4044 Same signature as :func:`scipy.optimize.minimize`.
4145
4246 Minimizer Options:
43- maxiter (`int`): maximum number of iterations. Default is 100000.
44- verbose (`bool`): print verbose output during minimization. Default is off.
45- method (`str`): minimization routine. Default is 'SLSQP'.
47+ maxiter (:obj:`int`): maximum number of iterations. Default is 100000.
48+ verbose (:obj:`bool`): print verbose output during minimization. Default is off.
49+ method (:obj:`str`): minimization routine. Default is 'SLSQP'.
50+ tolerance (:obj:`float`): tolerance for termination. See specific optimizer for detailed meaning. Default is None.
4651
4752 Returns:
4853 fitresult (scipy.optimize.OptimizeResult): the fit result
4954 """
5055 maxiter = options .pop ('maxiter' , self .maxiter )
5156 verbose = options .pop ('verbose' , self .verbose )
5257 method = options .pop ('method' , 'SLSQP' )
58+ tolerance = options .pop ('tolerance' , self .tolerance )
5359 if options :
5460 raise exceptions .Unsupported (
5561 f"Unsupported options were passed in: { list (options .keys ())} ."
@@ -73,5 +79,6 @@ def _minimize(
7379 jac = do_grad ,
7480 bounds = bounds ,
7581 constraints = constraints ,
82+ tol = tolerance ,
7683 options = dict (maxiter = maxiter , disp = bool (verbose )),
7784 )
0 commit comments