28 #ifndef EIGEN_BOOST_SERIALIZATION
29 #define EIGEN_BOOST_SERIALIZATION
31 #include <Eigen/Dense>
32 #include <boost/serialization/split_free.hpp>
33 #include <boost/serialization/vector.hpp>
36 namespace serialization {
37 template <
class Archive,
typename _Scalar,
int _Rows,
int _Cols,
int _Options,
38 int _MaxRows,
int _MaxCols>
41 const Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& m,
42 const unsigned int version) {
46 Eigen::DenseIndex rows(m.rows()), cols(m.cols());
47 ar& BOOST_SERIALIZATION_NVP(rows);
48 ar& BOOST_SERIALIZATION_NVP(cols);
49 ar& make_nvp(
"data", make_array(m.data(), (
size_t)m.size()));
52 template <
class Archive,
typename _Scalar,
int _Rows,
int _Cols,
int _Options,
53 int _MaxRows,
int _MaxCols>
55 Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& m,
56 const unsigned int version) {
60 Eigen::DenseIndex rows, cols;
61 ar >> BOOST_SERIALIZATION_NVP(rows);
62 ar >> BOOST_SERIALIZATION_NVP(cols);
65 ar >> make_nvp(
"data", make_array(m.data(), (
size_t)m.size()));
68 template <
class Archive,
typename _Scalar,
int _Rows,
int _Cols,
int _Options,
69 int _MaxRows,
int _MaxCols>
72 Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& m,
73 const unsigned int version) {
74 split_free(ar, m, version);
80 #endif // ifndef __multicontact_api_serialization_eigen_matrix_hpp__