WaveBlocksND
bases.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #define IMPORT_TYPES_FROM(B) \
4  using argument_type = typename B::argument_type; \
5  using potential_type = typename B::potential_type; \
6  using jacobian_type = typename B::jacobian_type; \
7  using hessian_type = typename B::hessian_type; \
8  using potential_evaluation_type = typename B::potential_evaluation_type; \
9  using jacobian_evaluation_type = typename B::jacobian_evaluation_type; \
10  using hessian_evaluation_type = typename B::hessian_evaluation_type; \
11  using potential_return_type = typename B::potential_return_type; \
12  using jacobian_return_type = typename B::jacobian_return_type; \
13  using hessian_return_type = typename B::hessian_return_type; \
14  using local_quadratic_evaluation_type = typename B::local_quadratic_evaluation_type; \
15  using local_quadratic_return_type = typename B::local_quadratic_return_type;
16 
17 
18 namespace waveblocks
19 {
20  namespace potentials
21  {
22  namespace bases
23  {
24  template <int N, int D, int C>
25  struct Basis;
26 
35  template <int N, int D>
37 
46  template <int N, int D>
48 
59  template <int N, int D, int C>
60  struct Basis {
61  static const int argument_dimension = D;
62  static const int number_of_levels = N;
63  static const int number_of_columns = C;
64 
69 
74 
79  };
80 
81  template <int N, int C>
82  struct Basis<N, 1, C> {
83  static const int argument_dimension = 1;
84  static const int number_of_levels = N;
85  static const int number_of_columns = C;
86 
91 
96 
101  };
102 
103  template <int D, int C>
104  struct Basis<1, D, C> {
105  const int argument_dimension = D;
106  static const int number_of_levels = 1;
107  static const int number_of_columns = C;
108 
113 
118 
119 
124  };
125 
126  template <int C>
127  struct Basis<1, 1, C> {
128  static const int argument_dimension = 1;
129  static const int number_of_levels = 1;
130  static const int number_of_columns = C;
131 
136 
141 
142 
147 
148  };
149  }
150  }
151 
152  template<int N, int D>
154 
155  template<int N, int D>
157 }
GMatrix< c_to_c, N, C > hessian_type
Definition: bases.hpp:90
GVector< complex_t, R > CVector
Definition: types.hpp:50
CVector< D > jacobian_return_type
Definition: bases.hpp:76
complex_t jacobian_return_type
Definition: bases.hpp:144
Definition: coefficients_file_parser.cpp:10
complex_t local_quadratic_return_type
Definition: bases.hpp:123
complex_t potential_return_type
Definition: bases.hpp:143
complex_t local_quadratic_evaluation_type
Definition: bases.hpp:140
complex_t local_quadratic_evaluation_type
Definition: bases.hpp:117
CVector< D > argument_type
Definition: bases.hpp:109
static const int number_of_levels
Definition: bases.hpp:62
Eigen::Matrix< I, R, C > GMatrix
Definition: types.hpp:37
CMatrix< N, C > hessian_evaluation_type
Definition: bases.hpp:94
complex_t hessian_return_type
Definition: bases.hpp:99
std::complex< real_t > complex_t
Definition: types.hpp:15
c_to_c jacobian_type
Definition: bases.hpp:134
c_to_c hessian_type
Definition: bases.hpp:135
CMatrix< D, D > hessian_return_type
Definition: bases.hpp:122
GMatrix< c_to_c, N, C > potential_type
Definition: bases.hpp:88
CVector< D > jacobian_return_type
Definition: bases.hpp:121
c_to_c potential_type
Definition: bases.hpp:133
function_t< CMatrix< D, D >(CVector< D >)> cD_to_cDxD
Definition: types.hpp:99
function_t< complex_t(complex_t)> c_to_c
Definition: types.hpp:90
complex_t local_quadratic_return_type
Definition: bases.hpp:146
complex_t potential_evaluation_type
Definition: bases.hpp:114
complex_t hessian_return_type
Definition: bases.hpp:145
static const int number_of_columns
Definition: bases.hpp:63
CVector< D > jacobian_evaluation_type
Definition: bases.hpp:115
complex_t jacobian_evaluation_type
Definition: bases.hpp:138
Helper class to ease template specialzations.
Definition: bases.hpp:25
GMatrix< cD_to_cD< D >, N, C > jacobian_type
Definition: bases.hpp:67
GMatrix< CMatrix< D, D >, N, C > hessian_evaluation_type
Definition: bases.hpp:72
static const int argument_dimension
Definition: bases.hpp:61
CMatrix< N, C > potential_evaluation_type
Definition: bases.hpp:70
GMatrix< cD_to_c< D >, N, C > potential_type
Definition: bases.hpp:66
CMatrix< D, D > hessian_return_type
Definition: bases.hpp:77
cD_to_cD< D > jacobian_type
Definition: bases.hpp:111
CVector< D > argument_type
Definition: bases.hpp:65
function_t< CVector< D >(CVector< D >)> cD_to_cD
Definition: types.hpp:96
GMatrix< cD_to_cDxD< D >, N, C > hessian_type
Definition: bases.hpp:68
complex_t potential_return_type
Definition: bases.hpp:120
complex_t potential_evaluation_type
Definition: bases.hpp:137
cD_to_cDxD< D > hessian_type
Definition: bases.hpp:112
complex_t hessian_evaluation_type
Definition: bases.hpp:139
complex_t local_quadratic_return_type
Definition: bases.hpp:100
GMatrix< CVector< D >, N, C > jacobian_evaluation_type
Definition: bases.hpp:71
Eigen::Matrix< complex_t, R, C > CMatrix
Definition: types.hpp:19
cD_to_c< D > potential_type
Definition: bases.hpp:110
function_t< complex_t(CVector< D >)> cD_to_c
Definition: types.hpp:93
CMatrix< N, C > local_quadratic_evaluation_type
Definition: bases.hpp:95
complex_t potential_return_type
Definition: bases.hpp:75
complex_t jacobian_return_type
Definition: bases.hpp:98
CMatrix< N, C > local_quadratic_evaluation_type
Definition: bases.hpp:73
CMatrix< D, D > hessian_evaluation_type
Definition: bases.hpp:116
complex_t argument_type
Definition: bases.hpp:132
GMatrix< c_to_c, N, C > jacobian_type
Definition: bases.hpp:89
complex_t potential_return_type
Definition: bases.hpp:97
complex_t argument_type
Definition: bases.hpp:87
complex_t local_quadratic_return_type
Definition: bases.hpp:78
CMatrix< N, C > jacobian_evaluation_type
Definition: bases.hpp:93
CMatrix< N, C > potential_evaluation_type
Definition: bases.hpp:92