Function GOLDEN(AX, BX, CX, TOL, XMIN)
R = 0.61803399
C = 0.38196601
X0 = AX
X3 = CX
If Abs(CX - BX) > Abs(BX - AX) Then
X1 = BX
X2 = BX + C * (CX - BX)
Else
X2 = BX
X1 = BX - C * (BX - AX)
End If
F1 = FUNC(X1)
F2 = FUNC(X2)
While Abs(X3 - X0) > TOL * (Abs(X1) + Abs(X2))
If F2 < F1 Then
X0 = X1
X1 = X2
X2 = R * X1 + C * X3
F0 = F1
F1 = F2
F2 = FUNC(X2)
Else
X3 = X2
X2 = X1
X1 = R * X2 + C * X0
F3 = F2
F2 = F1
F1 = FUNC(X1)
End If
Wend
If F1 < F2 Then
GOLDEN = F1
XMIN = X1
Else
GOLDEN = F2
XMIN = X2
End If
End Function