37#ifndef FIFFSPARSEMATRIX_H
38#define FIFFSPARSEMATRIX_H
53#include <Eigen/SparseCore>
65#include <QSharedPointer>
88 using SPtr = QSharedPointer<FiffSparseMatrix>;
89 using ConstSPtr = QSharedPointer<const FiffSparseMatrix>;
90 using UPtr = std::unique_ptr<FiffSparseMatrix>;
91 using ConstUPtr = std::unique_ptr<const FiffSparseMatrix>;
145 inline Eigen::SparseMatrix<float>&
eigen() {
return m_eigen; }
151 inline const Eigen::SparseMatrix<float>&
eigen()
const {
return m_eigen; }
156 inline operator const Eigen::SparseMatrix<float>&()
const {
return m_eigen; }
161 inline int rows()
const {
return static_cast<int>(m_eigen.rows()); }
166 inline int cols()
const {
return static_cast<int>(m_eigen.cols()); }
171 inline int nonZeros()
const {
return static_cast<int>(m_eigen.nonZeros()); }
231 inline bool is_empty()
const;
238 inline Eigen::SparseMatrix<double> toEigenSparse()
const;
248 static FiffSparseMatrix fromEigenSparse(
const Eigen::SparseMatrix<double>& mat);
257 static FiffSparseMatrix fromEigenSparse(
const Eigen::SparseMatrix<float>& mat);
263 Eigen::SparseMatrix<float> m_eigen;
272 return m_eigen.nonZeros() <= 0;
277 return m_eigen.cast<
double>();
Fiff library export/import macros.
#define FIFFSHARED_EXPORT
Old fiff_type declarations - replace them.
FiffTag class declaration, which provides fiff tag I/O and processing methods.
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
FIFF sparse matrix storage backed by Eigen.
Eigen::SparseMatrix< float > & eigen()
~FiffSparseMatrix()=default
FiffSparseMatrix & operator=(const FiffSparseMatrix &)=default
FiffSparseMatrix(const FiffSparseMatrix &mat)=default
FiffSparseMatrix(FiffSparseMatrix &&mat)=default
QSharedPointer< FiffSparseMatrix > SPtr
const Eigen::SparseMatrix< float > & eigen() const
QSharedPointer< const FiffSparseMatrix > ConstSPtr
Eigen::SparseMatrix< double > toEigenSparse() const
FiffSparseMatrix & operator=(FiffSparseMatrix &&)=default
std::unique_ptr< const FiffSparseMatrix > ConstUPtr
std::unique_ptr< FiffSparseMatrix > UPtr
FIFFLIB::fiff_int_t coding
std::unique_ptr< FiffTag > UPtr