MNE-CPP  0.1.9
A Framework for Electrophysiology
coherency.h
Go to the documentation of this file.
1 //=============================================================================================================
39 #ifndef COHERENCY_H
40 #define COHERENCY_H
41 
42 //=============================================================================================================
43 // INCLUDES
44 //=============================================================================================================
45 
46 #include "../connectivity_global.h"
47 
48 #include "abstractmetric.h"
49 #include "../connectivitysettings.h"
50 
51 //=============================================================================================================
52 // QT INCLUDES
53 //=============================================================================================================
54 
55 #include <QSharedPointer>
56 #include <QMutex>
57 
58 //=============================================================================================================
59 // EIGEN INCLUDES
60 //=============================================================================================================
61 
62 #include <Eigen/Core>
63 
64 //=============================================================================================================
65 // FORWARD DECLARATIONS
66 //=============================================================================================================
67 
68 //=============================================================================================================
69 // DEFINE NAMESPACE CONNECTIVITYLIB
70 //=============================================================================================================
71 
72 namespace CONNECTIVITYLIB {
73 
74 //=============================================================================================================
75 // CONNECTIVITYLIB FORWARD DECLARATIONS
76 //=============================================================================================================
77 
78 class Network;
79 
80 //=============================================================================================================
87 {
88 
89 public:
90  typedef QSharedPointer<Coherency> SPtr;
91  typedef QSharedPointer<const Coherency> ConstSPtr;
93  //=========================================================================================================
97  explicit Coherency();
98 
99  //=========================================================================================================
106  static void calculateAbs(Network& finalNetwork,
107  ConnectivitySettings &connectivitySettings);
108 
109  //=========================================================================================================
116  static void calculateImag(Network& finalNetwork,
117  ConnectivitySettings &connectivitySettings);
118 
119 private:
120  //=========================================================================================================
133  static void compute(ConnectivitySettings::IntermediateTrialData& inputData,
134  Eigen::MatrixXd& matPsdSum,
135  QVector<QPair<int,Eigen::MatrixXcd> >& vecPairCsdSum,
136  QMutex& mutex,
137  int iNRows,
138  int iNFreqs,
139  int iNfft,
140  const QPair<Eigen::MatrixXd, Eigen::VectorXd>& tapers);
141 
142  //=========================================================================================================
146  static void computePSDCSDAbs(QMutex& mutex,
147  Network& finalNetwork,
148  const QPair<int,Eigen::MatrixXcd>& pairInput,
149  const Eigen::MatrixXd& matPsdSum);
150  static void computePSDCSDImag(QMutex& mutex,
151  Network& finalNetwork,
152  const QPair<int,Eigen::MatrixXcd>& pairInput,
153  const Eigen::MatrixXd& matPsdSum);
154 };
155 
156 //=============================================================================================================
157 // INLINE DEFINITIONS
158 //=============================================================================================================
159 } // namespace CONNECTIVITYLIB
160 
161 #endif // COHERENCY_H
CONNECTIVITYLIB::Coherency::ConstSPtr
QSharedPointer< const Coherency > ConstSPtr
Definition: coherency.h:91
CONNECTIVITYLIB::ConnectivitySettings::IntermediateTrialData
Definition: connectivitysettings.h:98
CONNECTIVITYLIB::Network
This class holds information about a network, can compute a distance table and provide network metric...
Definition: network.h:88
CONNECTIVITYLIB::AbstractMetric
This class provides basic functionalities for all implemented metrics.
Definition: abstractmetric.h:77
CONNECTIVITYLIB::Coherency
This class computes the coherency connectivity metric.
Definition: coherency.h:86
CONNECTIVITYSHARED_EXPORT
#define CONNECTIVITYSHARED_EXPORT
Definition: connectivity_global.h:54
CONNECTIVITYLIB::Coherency::SPtr
QSharedPointer< Coherency > SPtr
Definition: coherency.h:90
CONNECTIVITYLIB::ConnectivitySettings
This class is a container for connectivity settings.
Definition: connectivitysettings.h:91
abstractmetric.h
AbstractMetric class declaration.