12#ifndef __EIGEN_UTILITIES_H
13#define __EIGEN_UTILITIES_H
23std::ostream &
operator<<(std::ostream &out,
const Eigen::VectorXd &vec);
24std::ostream &
operator<<(std::ostream &out,
const Eigen::Map<const Eigen::VectorXd> &vec);
25std::ostream &
operator<<(std::ostream &out,
const Eigen::MatrixXd &mat);
31 template <
typename Derived>
32 static Eigen::Map<const Eigen::SparseMatrix<Derived>>
SparseMatrixToMap(
const unsigned int &rows,
33 const unsigned int &cols,
34 const unsigned int &
nnz,
42 template <
typename Derived>
53 template <
typename Derived,
int Rows,
int Cols>
54 static Eigen::Map<const Eigen::Array<Derived, Rows, Cols>>
ArrayToMap(
const int &rows,
const int &cols,
const Derived *values)
56 return Eigen::Map<const Eigen::Array<Derived, Rows, Cols>>(values, rows, cols);
62 template <
typename Derived,
int Rows,
int Cols>
63 static Eigen::Map<const Eigen::Array<Derived, Rows, Cols>>
ArrayToMap(
const Eigen::Array<Derived, Rows, Cols> &
matrix)
68 template <
typename Derived,
int Rows,
int Cols = 1,
int Options>
69 static Eigen::Map<const Eigen::Matrix<Derived, Rows, Cols, Options>>
MatrixToMap(
const int &rows,
const int &cols,
const Derived *values)
71 return Eigen::Map<const Eigen::Matrix<Derived, Rows, Cols, Options>>(values, rows, cols);
77 template <
typename Derived,
int Rows,
int Cols,
int Options>
78 static Eigen::Map<const Eigen::Matrix<Derived, Rows, Cols, Options>>
MatrixToMap(
const Eigen::Matrix<Derived, Rows, Cols, Options> &
matrix)
86 template <
typename Derived,
int Rows,
int Cols>
87 static std::vector<Eigen::Map<const Eigen::Matrix<Derived, Rows, Cols>>>
MatrixToMap(
88 const std::vector<Eigen::Matrix<Derived, Rows, Cols>> &
matrices)
90 std::vector<Eigen::Map<const Eigen::Matrix<Derived, Rows, Cols>>>
maps;
97 template <
typename Derived>
100 std::vector<Eigen::Triplet<Derived>>
triplets;
102 for (
typename Eigen::SparseMatrix<Derived>::InnerIterator
it(
sparseMatrix, i);
it; ++
it)
112 const Eigen::VectorXd &
vec,
115 const bool &
append =
false);
121 const Eigen::Map<const Eigen::VectorXd> &
vec,
124 const bool &
append =
false);
128 std::vector<Eigen::Triplet<double>> &
triplets,
131 Eigen::SparseMatrix<double, Eigen::RowMajor> &
matrix,
134 Eigen::SparseMatrix<double, Eigen::ColMajor> &
matrix,
137 const Eigen::SparseMatrix<double, Eigen::RowMajor> &
matrix,
138 const Eigen::UpLoType &
matrixType = (Eigen::UpLoType)0,
139 const bool &
append =
false);
141 const Eigen::SparseMatrix<double, Eigen::ColMajor> &
matrix,
142 const Eigen::UpLoType &
matrixType = (Eigen::UpLoType)0,
143 const bool &
append =
false);
150 Eigen::MatrixXd
matrix(3, coordinates.size());
Eigen column vector.
Definition Eigen_Array.hpp:23
Definition Eigen_Utilities.hpp:28
static Eigen::MatrixXd CoordinatesToMatrix(const collection_type &coordinates)
Definition Eigen_Utilities.hpp:148
static void ReadFromBinaryFile(const std::string &nameFile, Eigen::SparseMatrix< double, Eigen::RowMajor > &matrix, const unsigned int &startingPosition=0)
static Eigen::Map< const Eigen::SparseMatrix< Derived > > SparseMatrixToMap(const Eigen::Ref< const Eigen::SparseMatrix< Derived > > sparseMatrix)
Definition Eigen_Utilities.hpp:43
static Eigen::Map< const Eigen::Matrix< Derived, Rows, Cols, Options > > MatrixToMap(const Eigen::Matrix< Derived, Rows, Cols, Options > &matrix)
Convert a matrix expressions to map.
Definition Eigen_Utilities.hpp:78
static void ReadFromBinaryFile(const std::string &nameFile, Eigen::Map< Eigen::VectorXd > &dataToRead, const unsigned int &dataSizeToRead=0, const unsigned int &startingPosition=0)
static void WriteToBinaryFile(const std::string &nameFile, const Eigen::Map< const Eigen::VectorXd > &vec, const unsigned int &dataSizeToWrite=0, const unsigned int &dataStartingPositionToWrite=0, const bool &append=false)
static void WriteToBinaryFile(const std::string &nameFile, const Eigen::SparseMatrix< double, Eigen::RowMajor > &matrix, const Eigen::UpLoType &matrixType=(Eigen::UpLoType) 0, const bool &append=false)
static Eigen::Map< const Eigen::Array< Derived, Rows, Cols > > ArrayToMap(const int &rows, const int &cols, const Derived *values)
Definition Eigen_Utilities.hpp:54
static void ReadFromBinaryFile(const std::string &nameFile, Eigen::SparseMatrix< double, Eigen::ColMajor > &matrix, const unsigned int &startingPosition=0)
static std::vector< Eigen::Map< const Eigen::Matrix< Derived, Rows, Cols > > > MatrixToMap(const std::vector< Eigen::Matrix< Derived, Rows, Cols > > &matrices)
Convert a std::vector of const Eigen::Matrix expressions to const map.
Definition Eigen_Utilities.hpp:87
static void RemoveRow(Eigen::MatrixXd &matrix, const unsigned int &rowToRemove)
Definition Eigen_Utilities.cpp:61
static void WriteToBinaryFile(const std::string &nameFile, const Eigen::SparseMatrix< double, Eigen::ColMajor > &matrix, const Eigen::UpLoType &matrixType=(Eigen::UpLoType) 0, const bool &append=false)
static void WriteToBinaryFile(const std::string &nameFile, const Eigen::VectorXd &vec, const unsigned int &dataSizeToWrite=0, const unsigned int &dataStartingPositionToWrite=0, const bool &append=false)
static void ReadFromBinaryFile(const std::string &nameFile, Eigen::VectorXd &dataToRead, const unsigned int &dataSizeToRead=0, const unsigned int &startingPosition=0)
static void ReadFromBinaryFile(const std::string &nameFile, unsigned int &rows, unsigned int &cols, std::vector< Eigen::Triplet< double > > &triplets, const unsigned int &startingPosition=0)
static void RemoveColumn(Eigen::MatrixXd &matrix, const unsigned int &colToRemove)
Definition Eigen_Utilities.cpp:72
static Eigen::Map< const Eigen::Array< Derived, Rows, Cols > > ArrayToMap(const Eigen::Array< Derived, Rows, Cols > &matrix)
Convert a matrix expressions to map.
Definition Eigen_Utilities.hpp:63
static Eigen::Map< const Eigen::SparseMatrix< Derived > > SparseMatrixToMap(const unsigned int &rows, const unsigned int &cols, const unsigned int &nnz, const int *innerVectors, const int *innerIndeces, const Derived *values)
Definition Eigen_Utilities.hpp:32
static Eigen::Map< const Eigen::Matrix< Derived, Rows, Cols, Options > > MatrixToMap(const int &rows, const int &cols, const Derived *values)
Definition Eigen_Utilities.hpp:69
static std::vector< Eigen::Triplet< Derived > > SparseMatrixToTriplets(const Eigen::SparseMatrix< Derived > &sparseMatrix)
Definition Eigen_Utilities.hpp:98
Definition Eigen_Array.cpp:22
std::ostream & operator<<(std::ostream &out, const Eigen::VectorXd &vec)
Definition Eigen_Utilities.cpp:21