21 requires (std::is_trivially_copyable_v<T>)
22 void serialize(std::ofstream& f,
const T& x)
24 f.write(
reinterpret_cast<const char*
>(&x),
sizeof(T));
28 requires (std::is_trivially_copyable_v<T>)
29 void deserialize(std::ifstream& f, T& x)
31 f.read(
reinterpret_cast<char*
>(&x),
sizeof(T));
37 void serialize(std::ofstream& f,
const Eigen::Matrix<T,-1,1>& x)
39 Index size = x.size();
40 f.write(
reinterpret_cast<const char*
>(&size),
sizeof(T));
41 for(Index i = 0 ; i < size ; i++)
46 void deserialize(std::ifstream& f, Eigen::Matrix<T,-1,1>& x)
49 f.read(
reinterpret_cast<char*
>(&size),
sizeof(T));
51 for(Index i = 0 ; i < size ; i++)
58 void serialize(std::ofstream& f,
const Eigen::Matrix<T,-1,-1>& x)
60 Index r = x.rows(), c = x.cols();
61 f.write(
reinterpret_cast<const char*
>(&r),
sizeof(T));
62 f.write(
reinterpret_cast<const char*
>(&c),
sizeof(T));
63 for(Index i = 0 ; i < r ; i++)
64 for(Index j = 0 ; j < c ; j++)
69 void deserialize(std::ifstream& f, Eigen::Matrix<T,-1,-1>& x)
72 f.read(
reinterpret_cast<char*
>(&r),
sizeof(T));
73 f.read(
reinterpret_cast<char*
>(&c),
sizeof(T));
75 for(Index i = 0 ; i < r ; i++)
76 for(Index j = 0 ; j < c ; j++)
77 deserialize(f,x(i,j));
83 void serialize(std::ofstream& f,
const SampledTraj<T>& x)
85 Index size = x.nb_samples();
86 f.write(
reinterpret_cast<const char*
>(&size),
sizeof(size));
88 for(
const auto& [ti, xi] : x)
96 void deserialize(std::ifstream& f, SampledTraj<T>& x)
100 f.read(
reinterpret_cast<char*
>(&size),
sizeof(size));
102 for(Index i = 0 ; i < size ; i++)
104 double ti; deserialize(f,ti);
105 T xi; deserialize(f,xi);