10#ifdef DLINEAR_ENABLED_QSOPTEX
11#include "dlinear/libs/libqsopt_ex.h"
13#ifdef DLINEAR_ENABLED_SOPLEX
14#include "dlinear/libs/libsoplex.h"
19bool Infinity::initialised_{
false};
21#ifdef DLINEAR_ENABLED_QSOPTEX
22mpq_class Infinity::qsoptex_ninfinity_{0};
23mpq_class Infinity::qsoptex_infinity_{0};
25#ifdef DLINEAR_ENABLED_SOPLEX
26mpq_class Infinity::soplex_ninfinity_{-soplex::infinity};
27mpq_class Infinity::soplex_infinity_{soplex::infinity};
34 if (initialised_)
return;
35#ifdef DLINEAR_ENABLED_QSOPTEX
36 Infinity::qsoptex_ninfinity_ = gmp::ToMpqClass(mpq_NINFTY);
37 Infinity::qsoptex_infinity_ = gmp::ToMpqClass(mpq_INFTY);
39#ifdef DLINEAR_ENABLED_SOPLEX
40 Infinity::soplex_ninfinity_ = -soplex::infinity;
41 Infinity::soplex_infinity_ = soplex::infinity;
49#ifdef DLINEAR_ENABLED_QSOPTEX
51 return qsoptex_infinity_;
53#ifdef DLINEAR_ENABLED_SOPLEX
55 return soplex_infinity_;
58 DLINEAR_UNREACHABLE();
65#ifdef DLINEAR_ENABLED_QSOPTEX
67 return qsoptex_ninfinity_;
69#ifdef DLINEAR_ENABLED_SOPLEX
71 return soplex_ninfinity_;
74 DLINEAR_UNREACHABLE();
Simple dataclass used to store the configuration of the program.
LPSolver
Underlying LP solver used by the theory solver.
@ SOPLEX
Soplex Solver. Default option.
const LPSolver & lp_solver() const
Get read-write access to the lp_solver parameter of the configuration.
static const mpq_class & ninfinity(const Config &config)
Get the negative infinity value for the given LP solver in the config.
static const mpq_class & infinity(const Config &config)
Get the positive infinity value for the given LP solver in the config.
static void Initialise()
Lazy initialisation of the infinity values.
Global namespace for the dlinear library.