15 std::array<index_t, 5> dims_array;
17 std::ifstream dims_file = folder / (
"dim-" + name +
".csv");
20 auto [N, nx, nu, ny, ny_N] = dims_array;
31 eigen_mat A = eigen_mat::Zero(nx, nx), B = eigen_mat::Zero(nx, nu), C = eigen_mat::Zero(ny, nx),
32 D = eigen_mat::Zero(ny, nu), CN = eigen_mat::Zero(ny_N, nx),
33 QN = eigen_mat::Zero(nx, nx), Q = eigen_mat::Zero(nx, nx),
34 R = eigen_mat::Zero(nu, nu);
36 std::ifstream f = folder / (
"A-" + name +
".csv");
40 std::ifstream f = folder / (
"B-" + name +
".csv");
44 std::ifstream f = folder / (
"C-" + name +
".csv");
48 std::ifstream f = folder / (
"D-" + name +
".csv");
52 std::ifstream f = folder / (
"CN-" + name +
".csv");
56 std::ifstream f = folder / (
"QN-" + name +
".csv");
60 std::ifstream f = folder / (
"Q-" + name +
".csv");
64 std::ifstream f = folder / (
"R-" + name +
".csv");
69 std::vector<real_t> qr(N * (nx + nu) + nx);
71 std::ifstream f = folder / (
"q-" + name +
".csv");
76 std::vector<real_t> eq((N + 1) * nx), lb(N * ny + ny_N), ub(N * ny + ny_N);
78 std::ifstream f = folder / (
"eq-" + name +
".csv");
82 std::ifstream f = folder / (
"lb-" + name +
".csv");
86 std::ifstream f = folder / (
"ub-" + name +
".csv");
91 for (index_t i = 0; i < N; ++i) {
92 auto Ai = ocp.
A(i), Bi = ocp.
B(i), Ci = ocp.
C(i), Di = ocp.
D(i);
93 auto Qi = ocp.
Q(i), Ri = ocp.
R(i);
101 auto Ci = ocp.
C(N), Qi = ocp.
Q(N);
106 ocp.
qr() =
decltype(ocp.
qr())::as_column(std::span{qr});
107 ocp.
b() =
decltype(ocp.
b())::as_column(std::span{eq});
108 ocp.
b_min() =
decltype(ocp.
b_min())::as_column(std::span{lb});
109 ocp.
b_max() =
decltype(ocp.
b_max())::as_column(std::span{ub});