Tomato
OxFactoryOfModels.h
1 
7 #ifndef Tomato_OXFACTORYOFFUNCTIONS_H
8 #define Tomato_OXFACTORYOFFUNCTIONS_H
9 
10 #include "CmakeConfigForTomato.h"
11 #include "tomatolib_export.h"
12 
13 #include "OxModel.h"
14 
15 namespace Ox {
16 
17  template<typename TYPE>
18  class TomatoOptions;
19 
20 
21  static const char *modelTypeNames[] = {
22  "ModelT1ThreeParam",
23  "ModelT1TwoParam",
24  "ModelT1Shmolli",
25  "ModelT2ThreeParam",
26  "ModelT2TwoParam",
27  "ModelT2TwoParamScale",
28  "ModelT2OneParam"
29  };
30 
31  enum modelType_t {
32  _ModelT1ThreeParam = 0,
33  _ModelT1TwoParam = 1,
34  _ModelT1Shmolli = 2,
35  _ModelT2ThreeParam = 3,
36  _ModelT2TwoParam = 4,
37  _ModelT2TwoParamScale = 5,
38  _ModelT2OneParam = 6,
39  lastFunctorType = _ModelT2OneParam
40  };
41 
42  static int modelAvailability[] = {
43  1, // ModelT1ThreeParam
44  1, // ModelT1TwoParam
45  1, // ModelT1Shmolli
46 #ifdef USE_PRIVATE_NR2
47  1, // ModelT2ThreeParam
48  1, // ModelT2TwoParam
49  1, // ModelT2TwoParamScale
50  1 // ModelT2OneParam
51 #else
52  0, // ModelT2ThreeParam
53  0, // ModelT2TwoParam
54  0, // ModelT2TwoParamScale
55  0 // ModelT2OneParam
56 #endif
57  };
58 
59  template<typename TYPE>
61  public:
62 
63  static Model<TYPE>* newByFactory(TomatoOptions<TYPE> *opts);
64 
65  static void disp(int model_type = -1);
66  };
67 
68 } // namespace Ox
69 
70 #ifndef TOMATOLIB_COMPILED
71 #include "OxFactoryOfModels.hxx"
72 #endif // TOMATOLIB_COMPILED
73 
74 #endif //Tomato_OXFACTORYOFFUNCTIONS_H
Definition: OxFactoryOfModels.h:60
Container for a model function, cost function and Least-Squares function. And derivatives.
Definition: OxModel.h:26
Definition: OxFactoryOfCalculators.h:17
Definition: OxCalculator.h:19