Tomato
OxFactoryOfCalculators.h
Go to the documentation of this file.
1 
7 #ifndef Tomato_OXFACTORYOFCalculators_H
8 #define Tomato_OXFACTORYOFCalculators_H
9 
10 #include "CmakeConfigForTomato.h"
11 #include "tomatolib_export.h"
12 #include "OxCalculator.h"
13 
14 namespace Ox {
15 
16  template<typename TYPE>
18 
19  enum paramType_t {
20  T1 = 0,
21  T2 = 1,
22  T2star = 2,
23  Perf = 3
24  };
25 
26  static const char *calculatorsTypeNames[] = {
27  "T1_MOLLI",
28  "T1_SHMOLLI",
29  "T1_SHMOLLI_original",
30  "T2",
31  "T2_truncation",
32  "T2_truncation_noise",
33  "T2_linear"
34  };
35 
36  enum calculatorsType_t {
37  T1_MOLLI = 0,
38  T1_SHMOLLI = 1,
39  T1_SHMOLLI_original = 2,
40  T2_basic = 3,
41  T2_truncation = 4,
42  T2_truncation_noise = 5,
43  T2_linear = 6,
44  lastCalculatorType = T2_linear
45  };
46 
47  static int calculatorsAvailability[] = {
48  1, // T1_MOLLI
49  1, // T1_SHMOLLI
50 #ifdef USE_PRIVATE_NR2
51  1, // T1_SHMOLLI_original
52  1, // T2_basic
53  1, // T2_truncation
54  1, // T2_truncation_noise
55  1, // T2_linear
56 #else
57  0, // T1_SHMOLLI_original
58  0, // T2_basic
59  0, // T2_truncation
60  0, // T2_truncation_noise
61  0, // T2_linear
62 #endif
63  };
64 
65  static int calculatorsParamsToCalculate[] = {
66  T1, // T1_MOLLI
67  T1, // T1_SHMOLLI
68  T1, // T1_SHMOLLI_original
69  T2, // T2_basic
70  T2, // T2_truncation
71  T2, // T2_truncation_noise
72  T2, // T2_linear
73  };
74 
75  template<typename TYPE>
77  public:
78 
79  static Calculator<TYPE>* newByFactory(TomatoOptions<TYPE> *opts);
80 
81  static void disp(int parameter_to_map = -1);
82  };
83 
84 } // namespace Ox
85 
86 #ifndef TOMATOLIB_COMPILED
88 #endif // TOMATOLIB_COMPILED
89 
90 #endif //Tomato_OXFACTORYOFCalculators_H
Definition: OxFactoryOfCalculators.h:76
Definition: OxCalculator.h:28
Definition: OxFactoryOfCalculators.h:17
Definition: OxCalculator.h:19