|
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.
| |
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 over
the entries of the right-hand side b.
| |
| |
A random access iterator type to go over the
relations ⋛ . The value type of R_iterator is
CGAL::Comparison_result.
| |
| |
A random access iterator type to go over the
existence (finiteness) of the lower bounds lj, j=0,
,n-1.
The value type of FL_iterator is bool.
| |
| |
A random acess iterator type to go over
the entries of the lower bound vector l.
| |
| |
A random access iterator type to go over the
existence (finiteness) of the upper bounds uj, j=0,
,n-1.
The value type of UL_iterator is bool.
| |
| |
A random acess iterator type to go over
the entries of the upper bound vector u.
| |
| |
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
entries of the linear objective function vector c.
|
|
| returns the number n of variables (number of columns of A) in qp. | ||
|
| returns the number m of constraints (number of rows of A) in qp. | ||
|
| returns an iterator over the columns of A. The corresponding past-the-end iterator is get_a()+get_n(). For j=0, ,n-1, *(get_a()+j) is a random access iterator for column j. | ||
|
| returns an iterator over the entries of b. The corresponding past-the-end iterator is get_b()+get_m(). | ||
|
| returns an iterator over the entries of ⋛ . The corresponding past-the-end iterator is get_r()+get_m(). The value CGAL::SMALLER stands for ≤ , CGAL::EQUAL stands for =, and CGAL::LARGER stands for ≥ . | ||
|
| returns an iterator over the existence of the lower bounds lj, j=0, ,n-1. The corresponding past-the-end iterator is get_fl()+get_n(). If *(get_fl()+j) has value true, the variable xj has a lower bound given by *(get_l()+j), otherwise it has no lower bound. | ||
|
|
returns an iterator over the
entries of l.
The corresponding past-the-end iterator is get_l()+get_n().
If *(get_fl()+j) has value false, the value
*(get_l()+j) is not accessed.
| ||
|
| returns an iterator over the existence of the upper bounds uj, j=0, ,n-1. The corresponding past-the-end iterator is get_fu()+get_n(). If *(get_fu()+j) has value true, the variable xj has an upper bound given by *(get_u()+j), otherwise it has no upper bound. | ||
|
|
returns an iterator over the
entries of u.
The corresponding past-the-end iterator is get_u()+get_n().
If *(get_fu()+j) has value false, the value
*(get_u()+j) is not accessed.
| ||
|
| returns an iterator over the rows of 2D. The corresponding past-the-end iterator is get_d()+get_n(). For i=0, ,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. | ||
|
| returns an iterator over the entries of c. The corresponding past-the-end iterator is get_c()+get_n(). | ||
| ||||
| returns the constant term c0 of the objective function. |
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.
Quadratic_program<NT>
Quadratic_program_from_mps<NT>
Quadratic_program_from_iterators<A_it, B_it, R_it, FL_it, L_it, FU_it, U_it, D_it, C_it>
and the other conepts
NonnegativeQuadraticProgramInterface
LinearProgramInterface
NonnegativeLinearProgramInterface