Given a function of one variable and a possible bracketing interval,
return the minimum of the function isolated to a fractional precision of
tol.

Parameters :

func : callable func(x,*args)

Objective function to minimize.

args : tuple

Additional arguments (if present), passed to func.

brack : tuple

Triple (a,b,c), where (a<b<c) and func(b) <
func(a),func(c). If bracket consists of two numbers (a,
c), then they are assumed to be a starting interval for a
downhill bracket search (see bracket); it doesn’t always
mean that obtained solution will satisfy a<=x<=c.