MTF
ESMParams.h
1 #ifndef MTF_ESM_PARAMS_H
2 #define MTF_ESM_PARAMS_H
3 
4 #include "mtf/Macros/common.h"
5 #include "mtf/Utilities/spiUtils.h"
6 
7 #include <vector>
8 
9 _MTF_BEGIN_NAMESPACE
10 
11 struct ESMParams{
12 
13  enum class JacType{ Original, DiffOfJacs };
14  enum class HessType {
15  InitialSelf, CurrentSelf, SumOfSelf,
16  Original, SumOfStd, Std
17  };
18  typedef utils::spi::Types SPIType;
19  typedef utils::spi::ParamsType SPIParamsType;
20 
21  int max_iters;
22  double epsilon;
23 
24  JacType jac_type;
25  HessType hess_type;
26  bool sec_ord_hess;
27  bool chained_warp;
28 
29  bool leven_marq;
30  double lm_delta_init;
31  double lm_delta_update;
32 
33  bool enable_learning;
34 
35  SPIType spi_type;
36  SPIParamsType spi_params;
37 
38  bool debug_mode;
39 
41  // value constructor
42  ESMParams(int _max_iters, double _epsilon,
43  JacType _jac_type, HessType _hess_type, bool _sec_ord_hess,
44  bool _chained_warp, bool _leven_marq, double _lm_delta_init,
45  double _lm_delta_update, bool _enable_learning,
46  SPIType spi_type, const SPIParamsType &_spi_params, bool _debug_mode);
47  // default and copy constructor
48  ESMParams(const ESMParams *params = nullptr);
49  static const char* toString(JacType _jac_type);
50  static const char* toString(HessType _hess_type);
51  static const char* toString(SPIType spi_type);
52 
53 };
54 
55 _MTF_END_NAMESPACE
56 
57 #endif
58 
Definition: ESMParams.h:11
ESMParams(int _max_iters, double _epsilon, JacType _jac_type, HessType _hess_type, bool _sec_ord_hess, bool _chained_warp, bool _leven_marq, double _lm_delta_init, double _lm_delta_update, bool _enable_learning, SPIType spi_type, const SPIParamsType &_spi_params, bool _debug_mode)
decides whether logging data will be printed for debugging purposes;
JacType jac_type
maximum L1 norm of the state update vector at which to stop the iterations
Definition: ESMParams.h:24
double epsilon
maximum iterations of the ESM algorithm to run for each frame
Definition: ESMParams.h:22