Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
NoiseTraits.h
Go to the documentation of this file.
1/* This file is part of MoDELib, the Mechanics Of Defects Evolution Library.
2 *
3 *
4 * MoDELib is distributed without any warranty under the
5 * GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
6 */
7
8#ifndef model_NoiseTraits_H
9#define model_NoiseTraits_H
10
11#include <cmath>
12#include <vector>
13#include <Eigen/Dense>
14
15namespace model
16{
18 {
19 typedef double REAL_SCALAR;
20 typedef std::complex<double> COMPLEX;
21 typedef Eigen::Array<int,3,1> GridSizeType;
22 typedef Eigen::Array<double,3,1> GridSpacingType;
23
24 static int LittleEndian();
25 static float ReverseFloat(const float& inFloat);
26 static double ReverseDouble(const double& inDouble);
27 };
28
29 template <int N>
31 {
35 typedef Eigen::Matrix<REAL_SCALAR,1,N> NoiseType;
36 typedef std::vector<NoiseType> NoiseContainerType;
37 static const NoiseType& fromMatrix(const Eigen::Matrix<REAL_SCALAR,1,N>& m);
38 static NoiseType Zero();
39 static NoiseType squared(const NoiseType& m);
40 };
41
42 template<>
43 struct NoiseTraits<1>
44 {
49 typedef std::vector<NoiseType> NoiseContainerType;
50 static const NoiseType& fromMatrix(const Eigen::Matrix<REAL_SCALAR,1,1>& m){return m(0,0);};
51 static NoiseType Zero(){return REAL_SCALAR(0.0);};
52 static NoiseType squared(const NoiseType& m){return m*m;};
53 };
54}
55#endif
NoiseTraitsBase::GridSizeType GridSizeType
Definition NoiseTraits.h:47
static NoiseType Zero()
Definition NoiseTraits.h:51
NoiseTraitsBase::REAL_SCALAR REAL_SCALAR
Definition NoiseTraits.h:45
NoiseTraitsBase::COMPLEX COMPLEX
Definition NoiseTraits.h:46
static NoiseType squared(const NoiseType &m)
Definition NoiseTraits.h:52
std::vector< NoiseType > NoiseContainerType
Definition NoiseTraits.h:49
static const NoiseType & fromMatrix(const Eigen::Matrix< REAL_SCALAR, 1, 1 > &m)
Definition NoiseTraits.h:50
std::complex< double > COMPLEX
Definition NoiseTraits.h:20
static double ReverseDouble(const double &inDouble)
static float ReverseFloat(const float &inFloat)
static int LittleEndian()
Eigen::Array< double, 3, 1 > GridSpacingType
Definition NoiseTraits.h:22
Eigen::Array< int, 3, 1 > GridSizeType
Definition NoiseTraits.h:21
static NoiseType squared(const NoiseType &m)
static NoiseType Zero()
static const NoiseType & fromMatrix(const Eigen::Matrix< REAL_SCALAR, 1, N > &m)
NoiseTraitsBase::GridSizeType GridSizeType
Definition NoiseTraits.h:34
std::vector< NoiseType > NoiseContainerType
Definition NoiseTraits.h:36
NoiseTraitsBase::COMPLEX COMPLEX
Definition NoiseTraits.h:33
Eigen::Matrix< REAL_SCALAR, 1, N > NoiseType
Definition NoiseTraits.h:35
NoiseTraitsBase::REAL_SCALAR REAL_SCALAR
Definition NoiseTraits.h:32
void t struct mesh * m