20 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 25 #include <boost/serialization/array.hpp> 26 #include <boost/serialization/nvp.hpp> 27 #include <boost/serialization/split_free.hpp> 30 namespace serialization {
33 template <
class Archive>
34 void save(Archive& ar,
const gtsam::Vector& v,
unsigned int ) {
35 const size_t size = v.size();
36 ar << BOOST_SERIALIZATION_NVP(size);
37 ar << make_nvp(
"data", make_array(v.data(), v.size()));
40 template <
class Archive>
41 void load(Archive& ar, gtsam::Vector& v,
unsigned int ) {
43 ar >> BOOST_SERIALIZATION_NVP(size);
45 ar >> make_nvp(
"data", make_array(v.data(), v.size()));
49 template <
class Archive,
int D>
50 void save(Archive& ar,
const Eigen::Matrix<double, D, 1>& v,
52 ar << make_nvp(
"data", make_array(v.data(), v.RowsAtCompileTime));
55 template <
class Archive,
int D>
56 void load(Archive& ar, Eigen::Matrix<double, D, 1>& v,
58 ar >> make_nvp(
"data", make_array(v.data(), v.RowsAtCompileTime));
64 BOOST_SERIALIZATION_SPLIT_FREE(gtsam::Vector)
65 BOOST_SERIALIZATION_SPLIT_FREE(gtsam::Vector2)
66 BOOST_SERIALIZATION_SPLIT_FREE(gtsam::Vector3)
67 BOOST_SERIALIZATION_SPLIT_FREE(gtsam::Vector6)
GTSAM_EXPORT void save(const Matrix &A, const std::string &s, const std::string &filename)
typedef and functions to augment Eigen's VectorXd