LSSTApplications  11.0-13-gbb96280,12.1.rc1,12.1.rc1+1,12.1.rc1+2,12.1.rc1+5,12.1.rc1+8,12.1.rc1-1-g06d7636+1,12.1.rc1-1-g253890b+5,12.1.rc1-1-g3d31b68+7,12.1.rc1-1-g3db6b75+1,12.1.rc1-1-g5c1385a+3,12.1.rc1-1-g83b2247,12.1.rc1-1-g90cb4cf+6,12.1.rc1-1-g91da24b+3,12.1.rc1-2-g3521f8a,12.1.rc1-2-g39433dd+4,12.1.rc1-2-g486411b+2,12.1.rc1-2-g4c2be76,12.1.rc1-2-gc9c0491,12.1.rc1-2-gda2cd4f+6,12.1.rc1-3-g3391c73+2,12.1.rc1-3-g8c1bd6c+1,12.1.rc1-3-gcf4b6cb+2,12.1.rc1-4-g057223e+1,12.1.rc1-4-g19ed13b+2,12.1.rc1-4-g30492a7
LSSTDataManagementBasePackage
EllipseSolver.h
Go to the documentation of this file.
1 #ifndef MeasAlgoShapeletEllipseSolver_H
2 #define MeasAlgoShapeletEllipseSolver_H
3 
6 #include <vector>
8 
9 namespace lsst {
10 namespace meas {
11 namespace algorithms {
12 namespace shapelet {
13 
14  class EllipseSolver3 : public NLSolver
15  {
16  public :
17 
19  const BVec& b0, int order,
20  bool fixcen=false, bool fixgam=false, bool fixmu=false);
22 
23  void calculateF(const DVector& x, DVector& f) const;
24  void calculateJ(const DVector& x, const DVector& f, DMatrix& df) const;
25 
26  void useNumericJ();
27  void dontZeroB11();
28  void getCovariance(DMatrix& cov) const;
29  void getInverseCovariance(DMatrix& invcov) const;
30 
31  // CallF takes x and f of length 5, rather than whatever shorter
32  // length that F takex (depending on if things are fixed).
33  void callF(const DVector& x, DVector& f) const;
34  bool solve(DVector& x, DVector& f) const;
35  bool testJ(const DVector& x, DVector& f,
36  std::ostream* os=0, double relerr=0.) const;
37 
38  private :
39 
40  struct ESImpl3;
41 
42  ESImpl3* _pimpl;
43  };
44 
45 }}}}
46 
47 #endif
void getInverseCovariance(DMatrix &invcov) const
bool solve(DVector &x, DVector &f) const
void calculateJ(const DVector &x, const DVector &f, DMatrix &df) const
double x
EllipseSolver3(const BVec &b0, int order, bool fixcen=false, bool fixgam=false, bool fixmu=false)
bool testJ(const DVector &x, DVector &f, std::ostream *os=0, double relerr=0.) const
void calculateF(const DVector &x, DVector &f) const
void callF(const DVector &x, DVector &f) const