12#ifndef __ImportExportUtilities_H
13#define __ImportExportUtilities_H
20template <
class T,
int Rows,
int Cols>
21std::ostream &
operator<<(std::ostream &out,
const Eigen::Matrix<T, Rows, Cols> &matrix)
23 out << matrix.rows() <<
"," << matrix.cols() <<
",";
25 for (
unsigned int c = 0; c < matrix.cols(); c++)
27 out << (c != 0 ?
",{" :
"{");
28 for (
unsigned int r = 0; r < matrix.rows(); r++)
29 out << (r != 0 ?
", " :
"") << matrix(r, c);
37template <
class T, std::
size_t s> std::ostream &
operator<<(std::ostream &out,
const std::array<T, s> &elements)
39 out << elements.size() <<
",";
42 for (
const auto &element : elements)
44 out << (i != 0 ?
"," :
"") << element;
52template <
class T> std::ostream &
operator<<(std::ostream &out,
const std::vector<T> &elements)
54 out << elements.size() <<
",";
57 for (
const auto &element : elements)
59 out << (i != 0 ?
"," :
"") << element;
67template <
class T,
int Rows,
int Cols> std::istream &
operator>>(std::istream &in, Eigen::Matrix<T, Rows, Cols> &matrix)
70 unsigned int rows = 0, cols = 0;
74 matrix.resize(rows, cols);
78 for (
unsigned int c = 0; c < matrix.cols(); c++)
81 for (
unsigned int r = 0; r < matrix.rows(); r++)
89 if (matrix.cols() == 0)
95template <
class T, std::
size_t s> std::istream &
operator>>(std::istream &in, std::array<T, s> &elements)
98 unsigned int size = 0;
103 for (
unsigned int v = 0; v < size; v++)
108 elements[v] = element;
117template <
class T> std::istream &
operator>>(std::istream &in, std::vector<T> &elements)
120 unsigned int size = 0;
122 elements.resize(size);
126 for (
unsigned int v = 0; v < size; v++)
131 elements[v] = element;
Definition ImportExportUtilities.hpp:18
std::ostream & operator<<(std::ostream &out, const Eigen::Matrix< T, Rows, Cols > &matrix)
Definition ImportExportUtilities.hpp:21
std::istream & operator>>(std::istream &in, Eigen::Matrix< T, Rows, Cols > &matrix)
Definition ImportExportUtilities.hpp:67