Added serialization functions for fixed-size vectors
parent
5be3c49228
commit
974bef7bc8
|
|
@ -374,7 +374,21 @@ namespace boost {
|
||||||
ar >> make_nvp("data", make_array(v.data(), v.size()));
|
ar >> make_nvp("data", make_array(v.data(), v.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// split version - copies into an STL vector for serialization
|
||||||
|
template<class Archive, int D>
|
||||||
|
void save(Archive & ar, const Eigen::Matrix<double,D,1> & v, unsigned int version) {
|
||||||
|
ar << make_nvp("data", make_array(v.data(), v.RowsAtCompileTime));
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class Archive, int D>
|
||||||
|
void load(Archive & ar, Eigen::Matrix<double,D,1> & v, unsigned int version) {
|
||||||
|
ar >> make_nvp("data", make_array(v.data(), v.RowsAtCompileTime));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace serialization
|
} // namespace serialization
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
BOOST_SERIALIZATION_SPLIT_FREE(gtsam::Vector)
|
BOOST_SERIALIZATION_SPLIT_FREE(gtsam::Vector)
|
||||||
|
BOOST_SERIALIZATION_SPLIT_FREE(gtsam::Vector2)
|
||||||
|
BOOST_SERIALIZATION_SPLIT_FREE(gtsam::Vector3)
|
||||||
|
BOOST_SERIALIZATION_SPLIT_FREE(gtsam::Vector6)
|
||||||
|
|
|
||||||
|
|
@ -85,12 +85,21 @@ TEST (Serialization, FastVector) {
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST (Serialization, matrix_vector) {
|
TEST (Serialization, matrix_vector) {
|
||||||
EXPECT(equality<Vector>(Vector_(4, 1.0, 2.0, 3.0, 4.0)));
|
EXPECT(equality<Vector>(Vector_(4, 1.0, 2.0, 3.0, 4.0)));
|
||||||
|
EXPECT(equality<Vector2>(Vector2(1.0, 2.0)));
|
||||||
|
EXPECT(equality<Vector3>(Vector3(1.0, 2.0, 3.0)));
|
||||||
|
EXPECT(equality<Vector6>((Vector6() << 1.0, 2.0, 3.0, 4.0, 5.0, 6.0).finished()));
|
||||||
EXPECT(equality<Matrix>(Matrix_(2, 2, 1.0, 2.0, 3.0, 4.0)));
|
EXPECT(equality<Matrix>(Matrix_(2, 2, 1.0, 2.0, 3.0, 4.0)));
|
||||||
|
|
||||||
EXPECT(equalityXML<Vector>(Vector_(4, 1.0, 2.0, 3.0, 4.0)));
|
EXPECT(equalityXML<Vector>(Vector_(4, 1.0, 2.0, 3.0, 4.0)));
|
||||||
|
EXPECT(equalityXML<Vector2>(Vector2(1.0, 2.0)));
|
||||||
|
EXPECT(equalityXML<Vector3>(Vector3(1.0, 2.0, 3.0)));
|
||||||
|
EXPECT(equalityXML<Vector6>((Vector6() << 1.0, 2.0, 3.0, 4.0, 5.0, 6.0).finished()));
|
||||||
EXPECT(equalityXML<Matrix>(Matrix_(2, 2, 1.0, 2.0, 3.0, 4.0)));
|
EXPECT(equalityXML<Matrix>(Matrix_(2, 2, 1.0, 2.0, 3.0, 4.0)));
|
||||||
|
|
||||||
EXPECT(equalityBinary<Vector>(Vector_(4, 1.0, 2.0, 3.0, 4.0)));
|
EXPECT(equalityBinary<Vector>(Vector_(4, 1.0, 2.0, 3.0, 4.0)));
|
||||||
|
EXPECT(equalityBinary<Vector2>(Vector2(1.0, 2.0)));
|
||||||
|
EXPECT(equalityBinary<Vector3>(Vector3(1.0, 2.0, 3.0)));
|
||||||
|
EXPECT(equalityBinary<Vector6>((Vector6() << 1.0, 2.0, 3.0, 4.0, 5.0, 6.0).finished()));
|
||||||
EXPECT(equalityBinary<Matrix>(Matrix_(2, 2, 1.0, 2.0, 3.0, 4.0)));
|
EXPECT(equalityBinary<Matrix>(Matrix_(2, 2, 1.0, 2.0, 3.0, 4.0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue