|
CGAL 6.3 - Linear and Quadratic Programming Solver
|
A model of QuadraticProgram describes a convex quadratic program of the form.
\begin{eqnarray*}\mbox{(QP)}& \mbox{minimize} & \qpx^{T}D\qpx+\qpc^{T}\qpx+c_0 \\ &\mbox{subject to} & A\qpx\qprel \qpb, \\ & & \qpl \leq \qpx \leq \qpu \end{eqnarray*}
in \( n\) real variables \( \qpx=(x_0,\ldots,x_{n-1})\).
Here,
The description is given by appropriate random-access iterators over the program data, see below. The program therefore comes in dense representation which includes zero entries.
The value types of all iterator types (nested iterator types, respectively, for A_iterator and D_iterator) must be convertible to some common IntegralDomain ET.
Types | |
| typedef unspecified_type | A_iterator |
| A random access iterator type to go columnwise over the constraint matrix \( A\). | |
| typedef unspecified_type | B_iterator |
| A random access iterator type to go over the entries of the right-hand side \( \qpb\). | |
| typedef unspecified_type | R_iterator |
| A random access iterator type to go over the relations \( \qprel\). | |
| typedef unspecified_type | FL_iterator |
| A random access iterator type to go over the existence (finiteness) of the lower bounds \( l_j, j=0,\ldots,n-1\). | |
| typedef unspecified_type | L_iterator |
| A random access iterator type to go over the entries of the lower bound vector \( \qpl\). | |
| typedef unspecified_type | UL_iterator |
| A random access iterator type to go over the existence (finiteness) of the upper bounds \( u_j, j=0,\ldots,n-1\). | |
| typedef unspecified_type | U_iterator |
| A random access iterator type to go over the entries of the upper bound vector \( \qpu\). | |
| typedef unspecified_type | D_iterator |
| A random access iterator type to go rowwise over the matrix \( 2D\). | |
| typedef unspecified_type | C_iterator |
| A random access iterator type to go over the entries of the linear objective function vector \( c\). | |
Operations | |
| int | get_n () const |
| returns the number \( n\) of variables (number of columns of \( A\)) in qp. | |
| int | get_m () const |
| returns the number \( m\) of constraints (number of rows of \( A\)) in qp. | |
| A_iterator | get_a () const |
| returns an iterator over the columns of \( A\). | |
| B_iterator | get_b () const |
| returns an iterator over the entries of \( \qpb\). | |
| R_iterator | get_r () const |
| returns an iterator over the entries of \( \qprel\). | |
| FL_iterator | get_fl () const |
| returns an iterator over the existence of the lower bounds \( l_j, j=0,\ldots,n-1\). | |
| L_iterator | get_l () const |
| returns an iterator over the entries of \( \qpl\). | |
| FU_iterator | get_fu () const |
| returns an iterator over the existence of the upper bounds \( u_j, j=0,\ldots,n-1\). | |
| L_iterator | get_u () const |
| returns an iterator over the entries of \( \qpu\). | |
| D_iterator | get_d () const |
| returns an iterator over the rows of \( 2D\). | |
| C_iterator | get_c () const |
| returns an iterator over the entries of \( \qpc\). | |
| std::iterator_traits< C_iterator >::value_type | get_c0 () const |
| returns the constant term \( c_0\) of the objective function. | |
A random access iterator type to go columnwise over the constraint matrix \( A\).
The value type is a random access iterator type for an individual column that goes over the entries in that column.
A random access iterator type to go rowwise over the matrix \( 2D\).
The value type is a random access iterator type for an individual row that goes over the entries in that row, up to (and including) the entry on the main diagonal.
A random access iterator type to go over the existence (finiteness) of the lower bounds \( l_j, j=0,\ldots,n-1\).
The value type of FL_iterator is bool.
A random access iterator type to go over the relations \( \qprel\).
The value type of R_iterator is CGAL::Comparison_result.
A random access iterator type to go over the existence (finiteness) of the upper bounds \( u_j, j=0,\ldots,n-1\).
The value type of UL_iterator is bool.
| A_iterator QuadraticProgram::get_a | ( | ) | const |
| B_iterator QuadraticProgram::get_b | ( | ) | const |
| C_iterator QuadraticProgram::get_c | ( | ) | const |
| D_iterator QuadraticProgram::get_d | ( | ) | const |
returns an iterator over the rows of \( 2D\).
The corresponding past-the-end iterator is get_d()+get_n(). For \( i=0,\ldots,n-1\), *(get_d()+i) is a random access iterator for the entries in row \( i\) below or on the diagonal. The valid range of this iterator is guaranteed to have length \( i+1\) but not more. Values to the right of the diagonal are deduced from the symmetry requirement on \( D\).
| FL_iterator QuadraticProgram::get_fl | ( | ) | const |
| FU_iterator QuadraticProgram::get_fu | ( | ) | const |
| L_iterator QuadraticProgram::get_l | ( | ) | const |
| R_iterator QuadraticProgram::get_r | ( | ) | const |
returns an iterator over the entries of \( \qprel\).
The corresponding past-the-end iterator is get_r()+get_m(). The value CGAL::SMALLER stands for \( \leq\), CGAL::EQUAL stands for \( =\), and CGAL::LARGER stands for \( \geq\).
| L_iterator QuadraticProgram::get_u | ( | ) | const |