MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
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
68namespace DISP3DLIB {
69
70#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
71
72//=============================================================================================================
73// DISP3DLIB FORWARD DECLARATIONS
74//=============================================================================================================
75
76//=============================================================================================================
89{
90
91public:
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
194protected:
195
196private:
197};
198
199//=============================================================================================================
200// INLINE DEFINITIONS
201//=============================================================================================================
202} // namespace DISP3DLIB
203
204#endif // DISP3DLIB_INTERPOLATION_H
FiffInfo class declaration.
#define DISP3DSHARED_EXPORT
This class holds methods for creating distance-based weight matrices and for interpolating signals.
QSharedPointer< const Interpolation > ConstSPtr
static Eigen::VectorXf interpolateSignal(const Eigen::SparseMatrix< float > &matInterpolationMatrix, const Eigen::VectorXf &vecMeasurementData)
static Eigen::VectorXf interpolateSignal(const QSharedPointer< Eigen::SparseMatrix< float > > matInterpolationMatrix, const QSharedPointer< Eigen::VectorXf > &vecMeasurementData)
QSharedPointer< Interpolation > SPtr