1 #ifndef MeasAlgoShapeletNLSolver_H
2 #define MeasAlgoShapeletNLSolver_H
197 namespace algorithms {
209 const tmv::Vector<double>&
x, tmv::Vector<double>& f)
const =0;
215 const tmv::Vector<double>&
x,
const tmv::Vector<double>& f,
216 tmv::Matrix<double>& j)
const;
223 virtual bool solve(tmv::Vector<double>&
x, tmv::Vector<double>& f)
const;
242 virtual void calculateH(
243 const tmv::Vector<double>&
x,
const tmv::Vector<double>& f,
244 const tmv::Matrix<double>& j, tmv::SymMatrix<double>& h)
const;
265 const tmv::Vector<double>& , tmv::Vector<double>& ,
266 std::ostream* os=0,
double relerr=0.)
const;
271 virtual void calculateNumericH(
272 const tmv::Vector<double>&
x,
const tmv::Vector<double>& f,
273 tmv::SymMatrix<double>& h)
const;
275 virtual void useNewton() {
_method = NEWTON; }
277 virtual void useLM() {
_method = LM; }
279 virtual void useSecantLM() {
_method = SECANT_LM; }
280 virtual void useSecantDogleg() {
_method = SECANT_DOGLEG; }
284 virtual void setTol(
double fTol,
double gTol)
289 virtual void setTau(
double tau) {
_tau = tau; }
329 tmv::Vector<double>&
x, tmv::Vector<double>& f)
const;
331 tmv::Vector<double>&
x, tmv::Vector<double>& f)
const;
333 tmv::Vector<double>&
x, tmv::Vector<double>& f)
const;
335 tmv::Vector<double>&
x, tmv::Vector<double>& f)
const;
337 tmv::Vector<double>&
x, tmv::Vector<double>& f)
const;
338 bool solveSecantDogleg(
339 tmv::Vector<double>&
x, tmv::Vector<double>& f)
const;
341 mutable std::auto_ptr<tmv::Matrix<double> >
_pJ;
353 namespace algorithms {
388 std::ostream* os=0,
double relerr=0.)
const;
395 virtual void setTol(
double fTol,
double gTol)
442 mutable std::auto_ptr<DMatrix>
_pJ;
virtual void getCovariance(DMatrix &cov) const
virtual void noUseCholesky()
virtual void calculateF(const DVector &x, DVector &f) const =0
virtual void useCholesky()
virtual void useDirectH()
bool solveDogleg(DVector &x, DVector &f) const
virtual void setTau(double tau)
virtual bool solve(DVector &x, DVector &f) const
bool solveHybrid(DVector &x, DVector &f) const
virtual void setOutput(std::ostream &os)
virtual void noUseDirectH()
virtual double getDelta0()
virtual void useExtraVerboseOutput()
virtual double getMinStep()
virtual void calculateJ(const DVector &x, const DVector &f, DMatrix &j) const
std::auto_ptr< DMatrix > _pJ
virtual void setTol(double fTol, double gTol)
virtual void noUseVerboseOutput()
virtual void setDelta0(double delta0)
virtual void setFTol(double fTol)
virtual void setMinStep(double minStep)
virtual bool testJ(const DVector &, DVector &, std::ostream *os=0, double relerr=0.) const
virtual void useVerboseOutput()
virtual void getInverseCovariance(DMatrix &invcov) const
virtual void setMaxIter(int maxIter)
virtual void setGTol(double gTol)