Based on my basic understanding of the BFGS method, the algorithm will iterate until the gradient norm is less than or equal to a set value called "gtol" in the case of Python.
However, when using this method, and checking the output the following is showing:
Iterations: 2 Function evaluations: 76 Gradient evaluations: 13
"Desired error not necessarily achieved due to precision loss."
This got me confused. Shouldn't the algorithm iterate multiple times to reach convergence? How did it reach convergence by only iterating twice? In this case, why can we specify a maximum number of iterations if the algorithm converges this quickly?