6 #define HessT FESMParams::HessType 7 #define JacT FESMParams::JacType 10 #define get_base_members() \ 12 using FESMBase<AM, SSM> ::am; \ 13 using FESMBase<AM, SSM> ::ssm; \ 14 using FESMBase<AM, SSM> ::name; \ 15 using FESMBase<AM, SSM> ::hess_order; \ 16 using typename FESMBase<AM, SSM> ::ParamType; \ 17 using typename FESMBase<AM, SSM> ::AMParams; \ 18 using typename FESMBase<AM, SSM> ::SSMParams; \ 19 using FESMBase<AM, SSM> ::params; \ 20 using FESMBase<AM, SSM> ::jacobian; \ 21 using FESMBase<AM, SSM> ::hessian; \ 22 using FESMBase<AM, SSM> ::init_pix_jacobian; \ 23 using FESMBase<AM, SSM> ::curr_pix_jacobian; \ 24 using FESMBase<AM, SSM> ::mean_pix_jacobian; \ 25 using FESMBase<AM, SSM> ::mean_pix_hessian; \ 26 using FESMBase<AM, SSM> ::init_pix_hessian; \ 27 using FESMBase<AM, SSM> ::curr_pix_hessian; \ 28 using FESMBase<AM, SSM> ::updatePixHessian; \ 29 FESM(const ParamType *esm_params = nullptr,const AMParams *am_params = nullptr,const SSMParams *ssm_params = nullptr) 34 template<
class AM,
class SSM,
42 template<
class AM,
class SSM >
43 class FESM<AM, SSM, HessT::Original, JacT::Original> :
48 template<
class AM,
class SSM>
49 class FESM<AM, SSM, HessT::SumOfStd, JacT::Original> :
53 void updateHessian()
override;
55 template<
class AM,
class SSM>
56 class FESM<AM, SSM, HessT::SumOfSelf, JacT::Original> :
60 void initializeHessian()
override;
61 void updateHessian()
override;
63 template<
class AM,
class SSM>
64 class FESM<AM, SSM, HessT::InitialSelf, JacT::Original> :
67 void initializeHessian()
override;
68 void updateHessian()
override {}
71 template<
class AM,
class SSM>
72 class FESM<AM, SSM, HessT::CurrentSelf, JacT::Original> :
75 void updateHessian()
override;
78 template<
class AM,
class SSM>
79 class FESM<AM, SSM, HessT::Std, JacT::Original> :
82 void updateHessian()
override;
89 template<
class AM,
class SSM >
90 class FESM<AM, SSM, HessT::Original, JacT::DiffOfJacs> :
93 void updateJacobian()
override;
96 template<
class AM,
class SSM>
97 class FESM<AM, SSM, HessT::SumOfStd, JacT::DiffOfJacs> :
100 void updateJacobian()
override;
101 void updateHessian()
override;
103 template<
class AM,
class SSM>
104 class FESM<AM, SSM, HessT::SumOfSelf, JacT::DiffOfJacs> :
108 void updateJacobian()
override;
109 void initializeHessian()
override;
110 void updateHessian()
override;
112 template<
class AM,
class SSM>
113 class FESM<AM, SSM, HessT::InitialSelf, JacT::DiffOfJacs> :
116 void updateJacobian()
override;
117 void initializeHessian()
override;
118 void updateHessian()
override {}
121 template<
class AM,
class SSM>
122 class FESM<AM, SSM, HessT::CurrentSelf, JacT::DiffOfJacs> :
125 void updateJacobian()
override;
126 void updateHessian()
override;
129 template<
class AM,
class SSM>
130 class FESM<AM, SSM, HessT::Std, JacT::DiffOfJacs> :
133 void updateJacobian()
override;
134 void updateHessian()
override;
Definition: FESMBase.h:64