Skip to content

Commit 85ae02c

Browse files
authored
Merge pull request #25 from nim65s/devel
fix warning about conversion of unused parameters
2 parents 9bfeb65 + f6d519a commit 85ae02c

File tree

5 files changed

+102
-92
lines changed

5 files changed

+102
-92
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
[![Pipeline status](https://gitlab.laas.fr/stack-of-tasks/eiquadprog/badges/master/pipeline.svg)](https://gitlab.laas.fr/stack-of-tasks/eiquadprog/commits/master)
44
[![Coverage report](https://gitlab.laas.fr/stack-of-tasks/eiquadprog/badges/master/coverage.svg?job=doc-coverage)](http://projects.laas.fr/gepetto/doc/stack-of-tasks/eiquadprog/master/coverage/)
5+
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/stack-of-tasks/eiquadprog/master.svg)](https://results.pre-commit.ci/latest/github/stack-of-tasks/eiquadprog/master)
56

67
This repo contains different C++ implementations of the algorithm of Goldfarb and Idnani for the solution of a (convex) Quadratic Programming problem by means of a dual method.
78

include/eiquadprog/eiquadprog-rt.hxx

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ RtEiquadprog_status RtEiquadprog<nVars, nEqCon, nIneqCon>::solve_quadprog(
245245

246246
c2 = m_J.trace();
247247
#ifdef EIQGUADPROG_TRACE_SOLVER
248-
utils::print_matrix("m_J", m_J, nVars);
248+
utils::print_matrix("m_J", m_J);
249249
#endif
250250

251251
/* c1 * c2 is an estimate for cond(Hess) */
@@ -271,7 +271,7 @@ RtEiquadprog_status RtEiquadprog<nVars, nEqCon, nIneqCon>::solve_quadprog(
271271
f_value = 0.5 * g0.dot(x);
272272
#ifdef EIQGUADPROG_TRACE_SOLVER
273273
std::cerr << "Unconstrained solution: " << f_value << std::endl;
274-
utils::print_vector("x", x, nVars);
274+
utils::print_vector("x", x);
275275
#endif
276276
STOP_PROFILER_EIQUADPROG_RT(PROFILE_EIQUADPROG_STEP_1_UNCONSTR_MINIM);
277277

@@ -288,10 +288,10 @@ RtEiquadprog_status RtEiquadprog<nVars, nEqCon, nIneqCon>::solve_quadprog(
288288
update_r(R, r, d, iq);
289289

290290
#ifdef EIQGUADPROG_TRACE_SOLVER
291-
utils::print_matrix("R", R, iq);
292-
utils::print_vector("z", z, nVars);
293-
utils::print_vector("r", r, iq);
294-
utils::print_vector("d", d, nVars);
291+
utils::print_matrix("R", R);
292+
utils::print_vector("z", z);
293+
utils::print_vector("r", r);
294+
utils::print_vector("d", d);
295295
#endif
296296

297297
/* compute full step length t2: i.e., the minimum step in primal space s.t.
@@ -372,7 +372,7 @@ l1:
372372
}
373373

374374
#ifdef EIQGUADPROG_TRACE_SOLVER
375-
utils::print_vector("x", x, nVars);
375+
utils::print_vector("x", x);
376376
#endif
377377
/* step 1: choose a violated constraint */
378378
for (i = nEqCon; i < iq; i++) {
@@ -400,7 +400,7 @@ l1:
400400
#endif
401401
STOP_PROFILER_EIQUADPROG_RT(PROFILE_EIQUADPROG_STEP_1_2);
402402
#ifdef EIQGUADPROG_TRACE_SOLVER
403-
utils::print_vector("s", s, nIneqCon);
403+
utils::print_vector("s", s);
404404
#endif
405405

406406
STOP_PROFILER_EIQUADPROG_RT(PROFILE_EIQUADPROG_STEP_1);
@@ -447,7 +447,7 @@ l2: /* Step 2: check for feasibility and determine a new S-pair */
447447

448448
#ifdef EIQGUADPROG_TRACE_SOLVER
449449
std::cerr << "Trying with constraint " << ip << std::endl;
450-
utils::print_vector("np", np, nVars);
450+
utils::print_vector("np", np);
451451
#endif
452452
STOP_PROFILER_EIQUADPROG_RT(PROFILE_EIQUADPROG_STEP_2);
453453

@@ -468,11 +468,11 @@ l2a: /* Step 2a: determine step direction */
468468
update_r(R, r, d, iq);
469469
#ifdef EIQGUADPROG_TRACE_SOLVER
470470
std::cerr << "Step direction z" << std::endl;
471-
utils::print_vector("z", z, nVars);
472-
utils::print_vector("r", r, iq + 1);
473-
utils::print_vector("u", u, iq + 1);
474-
utils::print_vector("d", d, nVars);
475-
utils::print_vector("A", A, iq + 1);
471+
utils::print_vector("z", z);
472+
utils::print_vector("r", r);
473+
utils::print_vector("u", u);
474+
utils::print_vector("d", d);
475+
utils::print_vector("A", A);
476476
#endif
477477
STOP_PROFILER_EIQUADPROG_RT(PROFILE_EIQUADPROG_STEP_2A);
478478

@@ -525,9 +525,9 @@ l2a: /* Step 2a: determine step direction */
525525
delete_constraint(R, m_J, A, u, iq, l);
526526
#ifdef EIQGUADPROG_TRACE_SOLVER
527527
std::cerr << " in dual space: " << f_value << std::endl;
528-
utils::print_vector("x", x, nVars);
529-
utils::print_vector("z", z, nVars);
530-
utils::print_vector("A", A, iq + 1);
528+
utils::print_vector("x", x);
529+
utils::print_vector("z", z);
530+
utils::print_vector("A", A);
531531
#endif
532532
STOP_PROFILER_EIQUADPROG_RT(PROFILE_EIQUADPROG_STEP_2C);
533533
goto l2a;
@@ -543,25 +543,25 @@ l2a: /* Step 2a: determine step direction */
543543

544544
#ifdef EIQGUADPROG_TRACE_SOLVER
545545
std::cerr << " in both spaces: " << f_value << std::endl;
546-
utils::print_vector("x", x, nVars);
547-
utils::print_vector("u", u, iq + 1);
548-
utils::print_vector("r", r, iq + 1);
549-
utils::print_vector("A", A, iq + 1);
546+
utils::print_vector("x", x);
547+
utils::print_vector("u", u);
548+
utils::print_vector("r", r);
549+
utils::print_vector("A", A);
550550
#endif
551551

552552
if (t == t2) {
553553
#ifdef EIQGUADPROG_TRACE_SOLVER
554554
std::cerr << "Full step has taken " << t << std::endl;
555-
utils::print_vector("x", x, nVars);
555+
utils::print_vector("x", x);
556556
#endif
557557
/* full step has taken */
558558
/* add constraint ip to the active set*/
559559
if (!add_constraint(R, m_J, d, iq, R_norm)) {
560560
iaexcl(ip) = 0;
561561
delete_constraint(R, m_J, A, u, iq, ip);
562562
#ifdef EIQGUADPROG_TRACE_SOLVER
563-
utils::print_matrix("R", R, nVars);
564-
utils::print_vector("A", A, iq);
563+
utils::print_matrix("R", R);
564+
utils::print_vector("A", A);
565565
#endif
566566
for (i = 0; i < nIneqCon; i++) iai(i) = i;
567567
for (i = 0; i < iq; i++) {
@@ -575,8 +575,8 @@ l2a: /* Step 2a: determine step direction */
575575
} else
576576
iai(ip) = -1;
577577
#ifdef EIQGUADPROG_TRACE_SOLVER
578-
utils::print_matrix("R", R, nVars);
579-
utils::print_vector("A", A, iq);
578+
utils::print_matrix("R", R);
579+
utils::print_vector("A", A);
580580
#endif
581581
STOP_PROFILER_EIQUADPROG_RT(PROFILE_EIQUADPROG_STEP_2C);
582582
goto l1;
@@ -591,10 +591,10 @@ l2a: /* Step 2a: determine step direction */
591591

592592
#ifdef EIQGUADPROG_TRACE_SOLVER
593593
std::cerr << "Partial step has taken " << t << std::endl;
594-
utils::print_vector("x", x, nVars);
595-
utils::print_matrix("R", R, nVars);
596-
utils::print_vector("A", A, iq);
597-
utils::print_vector("s", s, nIneqCon);
594+
utils::print_vector("x", x);
595+
utils::print_matrix("R", R);
596+
utils::print_vector("A", A);
597+
utils::print_vector("s", s);
598598
#endif
599599
STOP_PROFILER_EIQUADPROG_RT(PROFILE_EIQUADPROG_STEP_2C);
600600

include/eiquadprog/eiquadprog-utils.hxx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,23 @@ inline Scalar distance(Scalar a, Scalar b) {
2424
}
2525

2626
template <class Derived>
27-
void print_vector(const char *name, Eigen::MatrixBase<Derived> &x, int /*n*/) {
27+
void print_vector(const char *name, Eigen::MatrixBase<Derived> &x) {
2828
std::cerr << name << x.transpose() << std::endl;
2929
}
3030
template <class Derived>
31-
void print_matrix(const char *name, Eigen::MatrixBase<Derived> &x, int /*n*/) {
31+
void print_matrix(const char *name, Eigen::MatrixBase<Derived> &x) {
3232
std::cerr << name << std::endl << x << std::endl;
3333
}
3434

35+
template <class Derived>
36+
void print_vector(const char *name, Eigen::MatrixBase<Derived> &x, int /*n*/) {
37+
print_vector(name, x);
38+
}
39+
template <class Derived>
40+
void print_matrix(const char *name, Eigen::MatrixBase<Derived> &x, int /*n*/) {
41+
print_matrix(name, x);
42+
}
43+
3544
} // namespace utils
3645
} // namespace eiquadprog
3746

src/eiquadprog-fast.cpp

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ EiquadprogFast_status EiquadprogFast::solve_quadprog(
255255

256256
c2 = m_J.trace();
257257
#ifdef EIQGUADPROG_TRACE_SOLVER
258-
utils::print_matrix("m_J", m_J, nVars);
258+
utils::print_matrix("m_J", m_J);
259259
#endif
260260

261261
/* c1 * c2 is an estimate for cond(Hess) */
@@ -283,7 +283,7 @@ EiquadprogFast_status EiquadprogFast::solve_quadprog(
283283
f_value = 0.5 * g0.dot(x);
284284
#ifdef EIQGUADPROG_TRACE_SOLVER
285285
std::cerr << "Unconstrained solution: " << f_value << std::endl;
286-
utils::print_vector("x", x, nVars);
286+
utils::print_vector("x", x);
287287
#endif
288288
STOP_PROFILER_EIQUADPROG_FAST(EIQUADPROG_FAST_STEP_1_UNCONSTR_MINIM);
289289

@@ -299,10 +299,10 @@ EiquadprogFast_status EiquadprogFast::solve_quadprog(
299299
update_r(R, r, d, iq);
300300

301301
#ifdef EIQGUADPROG_TRACE_SOLVER
302-
utils::print_matrix("R", R, iq);
303-
utils::print_vector("z", z, nVars);
304-
utils::print_vector("r", r, iq);
305-
utils::print_vector("d", d, nVars);
302+
utils::print_matrix("R", R);
303+
utils::print_vector("z", z);
304+
utils::print_vector("r", r);
305+
utils::print_vector("d", d);
306306
#endif
307307

308308
/* compute full step length t2: i.e.,
@@ -386,7 +386,7 @@ EiquadprogFast_status EiquadprogFast::solve_quadprog(
386386
START_PROFILER_EIQUADPROG_FAST(EIQUADPROG_FAST_STEP_1);
387387

388388
#ifdef EIQGUADPROG_TRACE_SOLVER
389-
utils::print_vector("x", x, nVars);
389+
utils::print_vector("x", x);
390390
#endif
391391
/* step 1: choose a violated constraint */
392392
for (i = nEqCon; i < iq; i++) {
@@ -414,7 +414,7 @@ EiquadprogFast_status EiquadprogFast::solve_quadprog(
414414
#endif
415415
STOP_PROFILER_EIQUADPROG_FAST(EIQUADPROG_FAST_STEP_1_2);
416416
#ifdef EIQGUADPROG_TRACE_SOLVER
417-
utils::print_vector("s", s, nIneqCon);
417+
utils::print_vector("s", s);
418418
#endif
419419

420420
STOP_PROFILER_EIQUADPROG_FAST(EIQUADPROG_FAST_STEP_1);
@@ -461,7 +461,7 @@ EiquadprogFast_status EiquadprogFast::solve_quadprog(
461461

462462
#ifdef EIQGUADPROG_TRACE_SOLVER
463463
std::cerr << "Trying with constraint " << ip << std::endl;
464-
utils::print_vector("np", np, nVars);
464+
utils::print_vector("np", np);
465465
#endif
466466
STOP_PROFILER_EIQUADPROG_FAST(EIQUADPROG_FAST_STEP_2);
467467

@@ -482,11 +482,11 @@ EiquadprogFast_status EiquadprogFast::solve_quadprog(
482482
update_r(R, r, d, iq);
483483
#ifdef EIQGUADPROG_TRACE_SOLVER
484484
std::cerr << "Step direction z" << std::endl;
485-
utils::print_vector("z", z, nVars);
486-
utils::print_vector("r", r, iq + 1);
487-
utils::print_vector("u", u, iq + 1);
488-
utils::print_vector("d", d, nVars);
489-
utils::print_vector("A", A, iq + 1);
485+
utils::print_vector("z", z);
486+
utils::print_vector("r", r);
487+
utils::print_vector("u", u);
488+
utils::print_vector("d", d);
489+
utils::print_vector("A", A);
490490
#endif
491491
STOP_PROFILER_EIQUADPROG_FAST(EIQUADPROG_FAST_STEP_2A);
492492

@@ -539,9 +539,9 @@ EiquadprogFast_status EiquadprogFast::solve_quadprog(
539539
delete_constraint(R, m_J, A, u, nEqCon, iq, l);
540540
#ifdef EIQGUADPROG_TRACE_SOLVER
541541
std::cerr << " in dual space: " << f_value << std::endl;
542-
utils::print_vector("x", x, nVars);
543-
utils::print_vector("z", z, nVars);
544-
utils::print_vector("A", A, iq + 1);
542+
utils::print_vector("x", x);
543+
utils::print_vector("z", z);
544+
utils::print_vector("A", A);
545545
#endif
546546
STOP_PROFILER_EIQUADPROG_FAST(EIQUADPROG_FAST_STEP_2C);
547547
goto l2a;
@@ -557,25 +557,25 @@ EiquadprogFast_status EiquadprogFast::solve_quadprog(
557557

558558
#ifdef EIQGUADPROG_TRACE_SOLVER
559559
std::cerr << " in both spaces: " << f_value << std::endl;
560-
utils::print_vector("x", x, nVars);
561-
utils::print_vector("u", u, iq + 1);
562-
utils::print_vector("r", r, iq + 1);
563-
utils::print_vector("A", A, iq + 1);
560+
utils::print_vector("x", x);
561+
utils::print_vector("u", u);
562+
utils::print_vector("r", r);
563+
utils::print_vector("A", A);
564564
#endif
565565

566566
if (t == t2) {
567567
#ifdef EIQGUADPROG_TRACE_SOLVER
568568
std::cerr << "Full step has taken " << t << std::endl;
569-
utils::print_vector("x", x, nVars);
569+
utils::print_vector("x", x);
570570
#endif
571571
/* full step has taken */
572572
/* add constraint ip to the active set*/
573573
if (!add_constraint(R, m_J, d, iq, R_norm)) {
574574
iaexcl(ip) = 0;
575575
delete_constraint(R, m_J, A, u, nEqCon, iq, ip);
576576
#ifdef EIQGUADPROG_TRACE_SOLVER
577-
utils::print_matrix("R", R, nVars);
578-
utils::print_vector("A", A, iq);
577+
utils::print_matrix("R", R);
578+
utils::print_vector("A", A);
579579
#endif
580580
for (i = 0; i < nIneqCon; i++) iai(i) = static_cast<VectorXi::Scalar>(i);
581581
for (i = 0; i < iq; i++) {
@@ -589,8 +589,8 @@ EiquadprogFast_status EiquadprogFast::solve_quadprog(
589589
} else
590590
iai(ip) = -1;
591591
#ifdef EIQGUADPROG_TRACE_SOLVER
592-
utils::print_matrix("R", R, nVars);
593-
utils::print_vector("A", A, iq);
592+
utils::print_matrix("R", R);
593+
utils::print_vector("A", A);
594594
#endif
595595
STOP_PROFILER_EIQUADPROG_FAST(EIQUADPROG_FAST_STEP_2C);
596596
goto l1;
@@ -603,10 +603,10 @@ EiquadprogFast_status EiquadprogFast::solve_quadprog(
603603

604604
#ifdef EIQGUADPROG_TRACE_SOLVER
605605
std::cerr << "Partial step has taken " << t << std::endl;
606-
utils::print_vector("x", x, nVars);
607-
utils::print_matrix("R", R, nVars);
608-
utils::print_vector("A", A, iq);
609-
utils::print_vector("s", s, nIneqCon);
606+
utils::print_vector("x", x);
607+
utils::print_matrix("R", R);
608+
utils::print_vector("A", A);
609+
utils::print_vector("s", s);
610610
#endif
611611
STOP_PROFILER_EIQUADPROG_FAST(EIQUADPROG_FAST_STEP_2C);
612612

0 commit comments

Comments
 (0)