13 auto [N, nx, nu, ny, ny_N] = ocp.
dim;
15 std::mt19937 rng{seed};
16 std::uniform_real_distribution<real_t> uni{-1, 1};
17 std::bernoulli_distribution bernoulli{0.5};
20 for (index_t i = 0; i < N; ++i) {
21 auto Ai = ocp.
A(i), Bi = ocp.
B(i), Ci = ocp.
C(i), Di = ocp.
D(i);
22 auto Qi = ocp.
Q(i), Ri = ocp.
R(i), Si = ocp.
S(i), Hi = ocp.
H(i);
23 Ai.generate([&] {
return uni(rng) * 0.9; });
24 Bi.generate([&] {
return uni(rng); });
25 Ci.generate([&] {
return uni(rng); });
26 Di.generate([&] {
return uni(rng); });
27 Qi.generate([&] {
return uni(rng); });
28 Ri.generate([&] {
return uni(rng); });
29 Si.generate([&] {
return uni(rng); });
30 for (index_t j = 0; j < nx; ++j)
31 Qi(j, j) += 2 *
static_cast<real_t
>(nx + nu);
32 for (index_t j = 0; j < nu; ++j)
33 Ri(j, j) += 2 *
static_cast<real_t
>(nx + nu);
34 for (index_t c = 0; c < nx + nu; ++c)
35 for (index_t r = c + 1; r < nx + nu; ++r)
38 auto Ci = ocp.
C(N), Qi = ocp.
Q(N);
39 Ci.generate([&] {
return uni(rng); });
40 Qi.generate([&] {
return uni(rng); });
41 for (index_t j = 0; j < nx; ++j)
42 Qi(j, j) += 2 *
static_cast<real_t
>(nx);
43 for (index_t c = 0; c < nx; ++c)
44 for (index_t r = c + 1; r < nx; ++r)