mirror of https://github.com/CGAL/cgal
37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
template < class Point >
|
|
class PD_D_iterator {
|
|
|
|
// ...
|
|
|
|
// data members
|
|
Point_it points; // iterator referring to C matrix
|
|
int i; // row index
|
|
|
|
public:
|
|
PD_D_iterator( Point_it it) : points( it), i( 0) { }
|
|
|
|
Row_it operator * ( ) { return Row_it( points, i);}
|
|
|
|
// other operators required for random access iterators
|
|
// ...
|
|
};
|
|
|
|
typedef CGAL::QP_transform_iterator_1< Matrix::const_iterator>
|
|
Vector_iterator;
|
|
|
|
struct QPSolverTraits {
|
|
typedef GMP::Double ET;
|
|
typedef Vector_iterator A_iterator;
|
|
typedef CGAL::QP_const_value_iterator<IT> B_iterator;
|
|
typedef CGAL::QP_const_value_iterator<IT> C_iterator;
|
|
typedef PD_D_iterator<Point> D_iterator;
|
|
|
|
enum Row_type { LESS_EQUAL, EQUAL, GREATER_EQUAL};
|
|
typedef CGAL::QP_const_value_iterator<Row_type> Row_type_iterator;
|
|
|
|
typedef CGAL::Tag_false Is_linear;
|
|
typedef CGAL::Tag_true Is_symmetric;
|
|
typedef CGAL::Tag_true Has_full_row_rank;
|
|
typedef CGAL::Tag_false Use_perturbation;
|
|
};
|