24#ifndef FIFFSPARSEMATRIX_H
25#define FIFFSPARSEMATRIX_H
40#include <Eigen/SparseCore>
52#include <QSharedPointer>
74 using SPtr = QSharedPointer<FiffSparseMatrix>;
75 using ConstSPtr = QSharedPointer<const FiffSparseMatrix>;
76 using UPtr = std::unique_ptr<FiffSparseMatrix>;
77 using ConstUPtr = std::unique_ptr<const FiffSparseMatrix>;
131 inline Eigen::SparseMatrix<float>&
eigen() {
return m_eigen; }
137 inline const Eigen::SparseMatrix<float>&
eigen()
const {
return m_eigen; }
142 inline operator const Eigen::SparseMatrix<float>&()
const {
return m_eigen; }
147 inline int rows()
const {
return static_cast<int>(m_eigen.rows()); }
152 inline int cols()
const {
return static_cast<int>(m_eigen.cols()); }
157 inline int nonZeros()
const {
return static_cast<int>(m_eigen.nonZeros()); }
217 inline bool is_empty()
const;
224 inline Eigen::SparseMatrix<double> toEigenSparse()
const;
234 static FiffSparseMatrix fromEigenSparse(
const Eigen::SparseMatrix<double>& mat);
243 static FiffSparseMatrix fromEigenSparse(
const Eigen::SparseMatrix<float>& mat);
249 Eigen::SparseMatrix<float> m_eigen;
258 return m_eigen.nonZeros() <= 0;
263 return m_eigen.cast<
double>();
Export/import macros and build-info accessors for the FIFFLIB shared library.
#define FIFFSHARED_EXPORT
FIFF tag: the 16-byte tag header (kind, type, size, next) plus its decoded payload.
Primitive scalar typedefs and forward-compatible aliases backing the FIFF type system.
FIFF file I/O, in-memory data structures and high-level readers/writers.
Sparse FIFF matrix: CCS or RCS storage with the value / index / pointer triple as written by FiffStre...
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