## CGAL::Quadratic_program_pricing_strategy

*#include <CGAL/QP_options.h>*

### Definition

This is an enumeration type containing the values
*QP_CHOOSE_DEFAULT*, *QP_DANTZIG*,
*QP_PARTIAL_DANTZIG*, *QP_FILTERED_DANTZIG*,
*QP_PARTIAL_FILTERED_DANTZIG*, and*QP_BLAND*.
It indicates the pricing strategy to be used in
solving a linear or quadratic program. This strategy determines
how the solver gets from one intermediate solution to the next
during any of its iterations.

Here we briefly describe when to choose which strategy.

*QP_CHOOSE_DEFAULT*

This is the default value of the pricing strategy in
*Quadratic_program_options*, and it lets the solver choose the
strategy that it thinks is most appropriate for the problem at hand.
There are only few reasons to deviate from this default, but you are
free to experiment, of course.

*QP_PARTIAL_DANTZIG*

If the input type is **not** *double*, this is usually the
best choice for linear and quadratic programs of medium size.

*QP_DANTZIG*

If the input type is **not** *double*, this can sometimes
make a difference (be faster or slowe) than *QP_PARTIAL_DANTZIG*
for problems with a high variable/constraint or constraint/variable ratio.

*QP_PARTIAL_FILTERED_DANTZIG*

If the input type **is** *double*, this is usually the best choice
for linear and quadratic programs of medium size.
If the input type is not *double*, this choice is equivalent
to *QP_PARTIAL_DANTZIG*.
**Note:** filtered strategies may in rare cases fail due to double
exponent overflows, see
Section 65.8.1.
In this case, the slower fallback option is
the non-filtered variant *QP_PARTIAL_DANTZIG* of this strategy.

*QP_FILTERED_DANTZIG*

If the input type **is** *double*, this can sometimes
make a difference (be faster or slowe) than *QP_PARTIAL_FILTERED_DANTZIG*
for problems with a high variable/constraint or constraint/variable ratio.
If the input type is not *double*, this choice is equivalent
to *QP_DANTZIG*.
**Note:** filtered strategies may in rare cases fail due to double
exponent overflows, see
Section 65.8.1.
In this case, the slower fallback option is
the non-filtered variant *QP_DANTZIG* of this strategy.

*QP_BLAND*

This is hardly ever the most efficient choice, but it is guaranteed
to avoid internal cycling of the solution algorithm, see
Section 65.8.2.

### See Also

*Quadratic_program_options*