Program Listing for File workspace.hpp
↰ Return to documentation for file (include/proxsuite/serialization/workspace.hpp)
//
// Copyright (c) 2022 INRIA
//
#ifndef PROXSUITE_SERIALIZATION_WORKSPACE_HPP
#define PROXSUITE_SERIALIZATION_WORKSPACE_HPP
#include <cereal/cereal.hpp>
#include <proxsuite/proxqp/dense/workspace.hpp>
namespace cereal {
template<class Archive, typename T>
void
serialize(Archive& archive, proxsuite::proxqp::dense::Workspace<T>& work)
{
archive(
// CEREAL_NVP(work.ldl),
// CEREAL_NVP(work.ldl_stack),
CEREAL_NVP(work.H_scaled),
CEREAL_NVP(work.g_scaled),
CEREAL_NVP(work.A_scaled),
CEREAL_NVP(work.b_scaled),
CEREAL_NVP(work.C_scaled),
CEREAL_NVP(work.l_scaled),
CEREAL_NVP(work.u_scaled),
CEREAL_NVP(work.x_prev),
CEREAL_NVP(work.y_prev),
CEREAL_NVP(work.z_prev),
CEREAL_NVP(work.kkt),
CEREAL_NVP(work.current_bijection_map),
CEREAL_NVP(work.new_bijection_map),
CEREAL_NVP(work.active_set_up),
CEREAL_NVP(work.active_set_low),
CEREAL_NVP(work.active_inequalities),
CEREAL_NVP(work.Hdx),
CEREAL_NVP(work.Cdx),
CEREAL_NVP(work.Adx),
CEREAL_NVP(work.active_part_z),
CEREAL_NVP(work.alphas),
CEREAL_NVP(work.dw_aug),
CEREAL_NVP(work.rhs),
CEREAL_NVP(work.err),
CEREAL_NVP(work.dual_feasibility_rhs_2),
CEREAL_NVP(work.correction_guess_rhs_g),
CEREAL_NVP(work.correction_guess_rhs_b),
CEREAL_NVP(work.alpha),
CEREAL_NVP(work.dual_residual_scaled),
CEREAL_NVP(work.primal_residual_in_scaled_up),
CEREAL_NVP(work.primal_residual_in_scaled_up_plus_alphaCdx),
CEREAL_NVP(work.primal_residual_in_scaled_low_plus_alphaCdx),
CEREAL_NVP(work.CTz),
CEREAL_NVP(work.constraints_changed),
CEREAL_NVP(work.dirty),
CEREAL_NVP(work.refactorize),
CEREAL_NVP(work.proximal_parameter_update),
CEREAL_NVP(work.is_initialized),
CEREAL_NVP(work.n_c));
}
template<typename T, class Archive>
void
save(Archive& ar, proxsuite::linalg::veg::Vec<T> const& vec_T)
{
proxsuite::linalg::veg::isize len = vec_T.len();
ar(CEREAL_NVP(len));
for (proxsuite::linalg::veg::isize i = 0; i < len; i++)
ar(vec_T[i]);
}
template<typename T, class Archive>
void
load(Archive& ar, proxsuite::linalg::veg::Vec<T>& vec_T)
{
proxsuite::linalg::veg::isize len;
ar(len);
vec_T.reserve(len);
for (proxsuite::linalg::veg::isize i = 0; i < len; i++)
ar(vec_T[i]);
}
} // namespace cereal
#endif /* end of include guard PROXSUITE_SERIALIZATION_WORKSPACE_HPP */