import numpy as np

def goldenSection(f, a_in, b_in, tol, maxiter, *args):
	a = a_in
	b = b_in
	tau = (np.sqrt(5.0) - 1.0)/2.0
	x1 = a + (1-tau)*(b-a)
	x2 = a + tau*(b-a)

	f1 = f(x1, *args)
	f2 = f(x2, *args)
	i = 0
	while((b-a)>tol and i<maxiter):
		if(f1 < f2):
			b = x2
			x2 = x1 
			f2 = f1 
			x1 =  a + (1-tau)*(b-a)
			f1 = f(x1, *args)
		else:
			a = x1
			x1 = x2
			f1 = f2 
			x2 =  a + tau*(b-a)
			f2 = f(x2, *args)
		i+=1
	print(i)
	return 0.5*(a + b)