I noticed that in iterativebootstrap.hpp there are 2 solvers defined. Brent , which is used when an existing curve has not been bootstrapped and FiniteDifferenceNewtonSafe, for when an existing curve is updated.
I was just wondering why the use of 2 solvers. Is it purely for performance reasons? Does the FiniteDifferenceNewtonSafe solver perform better than Brent when a curve already exists? Or are there other reasons?
Newton Raphson is more efficient than Brent, but it requires the calculation of the first derivative. This derivative is almost for free if you have to update a curve from a know previous state, which is not the case in the first iteration.
Makes perfect sense. Thanks very much.