MNE-CPP  0.1.9
A Framework for Electrophysiology
interpolation.h
Go to the documentation of this file.
1 //=============================================================================================================
35 #ifndef DISP3DLIB_INTERPOLATION_H
36 #define DISP3DLIB_INTERPOLATION_H
37 
38 //=============================================================================================================
39 // INCLUDES
40 //=============================================================================================================
41 
42 #include "../../disp3D_global.h"
43 #include <limits>
44 #include <fiff/fiff_info.h>
45 
46 //=============================================================================================================
47 // QT INCLUDES
48 //=============================================================================================================
49 
50 #include <QSharedPointer>
51 #include <QVector>
52 
53 //=============================================================================================================
54 // EIGEN INCLUDES
55 //=============================================================================================================
56 
57 #include <Eigen/Core>
58 #include <Eigen/Sparse>
59 
60 //=============================================================================================================
61 // FORWARD DECLARATIONS
62 //=============================================================================================================
63 
64 //=============================================================================================================
65 // DEFINE NAMESPACE DISP3DLIB
66 //=============================================================================================================
67 
68 namespace DISP3DLIB {
69 
70 #define FLOAT_INFINITY std::numeric_limits<float>::infinity()
71 
72 //=============================================================================================================
73 // DISP3DLIB FORWARD DECLARATIONS
74 //=============================================================================================================
75 
76 //=============================================================================================================
89 {
90 
91 public:
92  typedef QSharedPointer<Interpolation> SPtr;
93  typedef QSharedPointer<const Interpolation> ConstSPtr;
95  //=========================================================================================================
99  Interpolation() = delete;
100 
101  //=========================================================================================================
118  static QSharedPointer<Eigen::SparseMatrix<float> > createInterpolationMat(const QVector<int> &vecProjectedSensors,
119  const QSharedPointer<Eigen::MatrixXd> matDistanceTable,
120  double (*interpolationFunction) (double),
121  const double dCancelDist = FLOAT_INFINITY,
122  const QVector<int> &vecExcludeIndex = QVector<int>());
123 
124  //=========================================================================================================
136  static Eigen::VectorXf interpolateSignal(const QSharedPointer<Eigen::SparseMatrix<float> > matInterpolationMatrix,
137  const QSharedPointer<Eigen::VectorXf> &vecMeasurementData);
138 
139  //=========================================================================================================
151  static Eigen::VectorXf interpolateSignal(const Eigen::SparseMatrix<float> &matInterpolationMatrix,
152  const Eigen::VectorXf &vecMeasurementData);
153 
154  //=========================================================================================================
162  static double linear(const double dIn);
163 
164  //=========================================================================================================
172  static double gaussian(const double dIn);
173 
174  //=========================================================================================================
182  static double square(const double dIn);
183 
184  //=========================================================================================================
192  static double cubic(const double dIn);
193 
194 protected:
195 
196 private:
197 };
198 
199 //=============================================================================================================
200 // INLINE DEFINITIONS
201 //=============================================================================================================
202 } // namespace DISP3DLIB
203 
204 #endif // DISP3DLIB_INTERPOLATION_H
DISP3DLIB::Interpolation::ConstSPtr
QSharedPointer< const Interpolation > ConstSPtr
Definition: interpolation.h:93
DISP3DLIB::Interpolation
This class holds methods for creating distance-based weight matrices and for interpolating signals.
Definition: interpolation.h:88
fiff_info.h
FiffInfo class declaration.
DISP3DLIB::Interpolation::SPtr
QSharedPointer< Interpolation > SPtr
Definition: interpolation.h:92
DISP3DSHARED_EXPORT
#define DISP3DSHARED_EXPORT
Definition: disp3D_global.h:55