55 using Matrix::operator=;
58 *
this = Source2MEGMat+(
Head2MEGMat*HeadMatInv)*SourceMat;
65 using Matrix::operator=;
75 using Matrix::operator=;
83 #pragma omp parallel for 85 for (
int i=0;i<static_cast<int>(LeadField.nlin());++i) {
87 for (
unsigned i=0;i<LeadField.nlin();++i) {
91 mtemp.setlin(i, vtemp);
98 mtemp=mtemp.transpose();
100 for (
unsigned i = 0; i < LeadField.ncol(); ++i) {
111 using Matrix::operator=;
115 const Matrix& Source2MEGMat) {
122 #pragma omp parallel for 124 for (
int i=0;i<static_cast<int>(LeadField.nlin());++i) {
126 for (
unsigned i=0;i<LeadField.nlin();++i) {
130 mtemp.setlin(i,vtemp);
137 mtemp=mtemp.transpose();
139 for (
unsigned i=0;i<LeadField.ncol();i++) {
151 unsigned gauss_order = 3;
166 #pragma omp parallel for 168 for (
int i=0;i<static_cast<int>(RHS.nlin());++i) {
170 for (
unsigned i=0;i<RHS.nlin();++i) {
174 mtemp.setlin(i, vtemp);
179 Matrix mtemp(RHS.transpose());
181 mtemp = mtemp.transpose();
183 for (
unsigned i = 0; i < dipoles.
nlin(); ++i) {
191 void saveEEG(
const std::string filename )
const { EEGleadfield.save(filename); }
193 void saveMEG(
const std::string filename )
const { MEGleadfield.
save(filename); }
203 using Matrix::operator=;
205 *
this = Source2IPMat + (Head2IPMat * HeadMatInv) * SourceMat;
212 using Matrix::operator=;
214 *
this = (Head2IPMat * HeadMatInv) * SourceMat;
GainEEG(const SymMatrix &HeadMatInv, const Matrix &SourceMat, const SparseMatrix &Head2EEGMat)
void saveMEG(const std::string filename) const
Geometry contains the electrophysiological model Here are stored the vertices, meshes and domains...
GainMEG(const Matrix &GainMat)
Vector getcol(size_t j) const
Matrix submat(size_t istart, size_t isize, size_t jstart, size_t jsize) const
SparseMatrix transpose() const
void saveEEG(const std::string filename) const
GainEEGMEGadjoint(const Geometry &geo, const Matrix &dipoles, const SymMatrix &HeadMat, const SparseMatrix &Head2EEGMat, const Matrix &Head2MEGMat, const Matrix &Source2MEGMat)
Vector getlin(size_t i) const
GainMEGadjoint(const Geometry &geo, const Matrix &dipoles, const SymMatrix &HeadMat, const Matrix &Head2MEGMat, const Matrix &Source2MEGMat)
GainEEG(const Matrix &GainMat)
Vector getlin(size_t i) const
GainEITInternalPot(const SymMatrix &HeadMatInv, const Matrix &SourceMat, const Matrix &Head2IPMat)
GainEEGadjoint(const Geometry &geo, const Matrix &dipoles, const SymMatrix &HeadMat, const SparseMatrix &Head2EEGMat)
void save(const char *filename) const
Save Matrix to file (Format set using file name extension)
Vector getlin(size_t i) const
GainMEG(const SymMatrix &HeadMatInv, const Matrix &SourceMat, const Matrix &Head2MEGMat, const Matrix &Source2MEGMat)
GainInternalPot(const SymMatrix &HeadMatInv, const Matrix &SourceMat, const Matrix &Head2IPMat, const Matrix &Source2IPMat)
void setcol(size_t j, const Vector &v)
unsigned GMRes(const T &A, const P &M, Vector &x, const Vector &b, int max_iter, double tol, unsigned m)
Vector solveLin(const Vector &B) const
#define PROGRESSBAR(a, b)
virtual size_t ncol() const
void setlin(size_t i, const Vector &v)