44#include <visp3/core/vpConfig.h>
45#include <visp3/core/vpMatrix.h>
46#include <visp3/core/vpMatrixException.h>
47#include <visp3/core/vpLinProg.h>
77#if (VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11)
86 bool use_equality =
false,
87 const double &tol = 1e-6);
97 bool setEqualityConstraint(
const vpMatrix &A,
const vpColVector &b,
const double &tol = 1e-6);
154 const std::string fct)
158 const bool Ab = (A !=
nullptr && b !=
nullptr && A->
getRows());
159 const bool Cd = (C !=
nullptr && d !=
nullptr && C->
getRows());
161 if ( (Ab && n != A->
getCols()) ||
164 (Cd && C->
getRows() != d->getRows()) ||
167 std::cout <<
"vpQuadProg::" << fct <<
": wrong dimension\n" <<
172 std::cout <<
"C: " << C->
getRows() <<
"x" << C->
getCols() <<
" - d: " << d->getRows() << std::endl;
unsigned int getCols() const
unsigned int getRows() const
Implementation of column vector and the associated operations.
@ dimensionError
Bad dimension.
Implementation of a matrix and operations on matrices.
This class provides a solver for Quadratic Programs.
std::vector< unsigned int > inactive
std::vector< unsigned int > active
static unsigned int checkDimensions(const vpMatrix &Q, const vpColVector &r, const vpMatrix *A, const vpColVector *b, const vpMatrix *C, const vpColVector *d, const std::string fct)