Skip to content

Commit 87434cf

Browse files
committed
example: fix
1 parent 5e5d93c commit 87434cf

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

examples/cpp/solve_without_api.cpp

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
#include <iostream>
22
#include "proxsuite/proxqp/sparse/sparse.hpp" // get the sparse backend of ProxQP
33
#include "proxsuite/proxqp/dense/dense.hpp" // get the dense backend of ProxQP
4-
#include <proxsuite/proxqp/utils/random_qp_problems.hpp> // used for generating a random convex qp
4+
#include "proxsuite/proxqp/utils/random_qp_problems.hpp" // used for generating a random convex qp
55

66
using namespace proxsuite::proxqp;
77
using T = double;
8+
using Mat = dense::Mat<T>;
9+
using Vec = dense::Vec<T>;
810

911
int
1012
main()
@@ -15,13 +17,17 @@ main()
1517
T p = 0.15; // level of sparsity
1618
T conditioning = 10.0; // conditioning level for H
1719
auto H = utils::rand::sparse_positive_definite_rand(n, conditioning, p);
18-
auto g = utils::rand::vector_rand<T>(n);
20+
Mat H_dense = Mat(H);
21+
Vec g = utils::rand::vector_rand<T>(n);
1922
auto A = utils::rand::sparse_matrix_rand<T>(n_eq, n, p);
23+
Mat A_dense = Mat(A);
2024
auto C = utils::rand::sparse_matrix_rand<T>(n_in, n, p);
21-
auto x_sol = utils::rand::vector_rand<T>(n);
22-
auto b = (A * x_sol).eval();
23-
auto l = (C * x_sol).eval();
24-
auto u = (l.array() + 10).matrix().eval();
25+
Mat C_dense = Mat(C);
26+
Vec x_sol = utils::rand::vector_rand<T>(n);
27+
Vec b = A * x_sol;
28+
Vec l = C * x_sol;
29+
Vec u = (l.array() + 10).matrix();
30+
2531
// Solve the problem using the sparse backend
2632
Results<T> results_sparse_solver =
2733
sparse::solve<T, isize>(H, g, A, b, C, l, u);
@@ -32,8 +38,9 @@ main()
3238
std::cout << "optimal z from sparse solver: " << results_sparse_solver.z
3339
<< std::endl;
3440
// Solve the problem using the dense backend
35-
Results<T> results_dense_solver = dense::solve<T>(
36-
dense::Mat<T>(H), g, dense::Mat<T>(A), b, dense::Mat<T>(C), u, l);
41+
Results<T> results_dense_solver =
42+
dense::solve<T>(H_dense, g, A_dense, b, C_dense, l, u);
43+
3744
// print an optimal solution x,y and z
3845
std::cout << "optimal x from dense solver: " << results_dense_solver.x
3946
<< std::endl;

0 commit comments

Comments
 (0)