diff --git a/ql/math/optimization/levenbergmarquardt.cpp b/ql/math/optimization/levenbergmarquardt.cpp index c3893d89030..e7b66406c64 100644 --- a/ql/math/optimization/levenbergmarquardt.cpp +++ b/ql/math/optimization/levenbergmarquardt.cpp @@ -101,6 +101,8 @@ namespace QuantLib { wa1.get(), wa2.get(), wa3.get(), wa4.get(), lmdifCostFunction, lmdifJacFunction); + // for the time being + info_ = info; // check requirements & endCriteria evaluation QL_REQUIRE(info != 0, "MINPACK: improper input parameters"); QL_REQUIRE(info != 7, "MINPACK: xtol is too small. no further " diff --git a/ql/math/optimization/levenbergmarquardt.hpp b/ql/math/optimization/levenbergmarquardt.hpp index 7842ec4ec28..6e60f1f44bc 100644 --- a/ql/math/optimization/levenbergmarquardt.hpp +++ b/ql/math/optimization/levenbergmarquardt.hpp @@ -54,6 +54,7 @@ namespace QuantLib { bool useCostFunctionsJacobian = false); EndCriteria::Type minimize(Problem& P, const EndCriteria& endCriteria) override; + void fcn(int m, int n, Real* x, @@ -65,10 +66,16 @@ namespace QuantLib { Real* fjac, int* iflag); + /*! \deprecated Don't use this method; inspect the result of minimize instead. + Deprecated in version 1.36. + */ + [[deprecated("Don't use this method; inspect the result of minimize instead")]] + virtual Integer getInfo() const { return info_; } private: Problem* currentProblem_; Array initCostValues_; Matrix initJacobian_; + mutable Integer info_ = 0; // remove together with getInfo const Real epsfcn_, xtol_, gtol_; const bool useCostFunctionsJacobian_; };