dlinear  0.0.1
Delta-complete SMT solver for linear programming
Loading...
Searching...
No Matches
Infinity.h
1
7#pragma once
8
9#include "dlinear/libs/libgmp.h"
10#include "dlinear/util/Config.h"
11
12namespace dlinear {
13
21class Infinity {
22 public:
28 static const mpq_class& infinity(const Config& config);
34 static const mpq_class& ninfinity(const Config& config);
40 static const mpq_class& infinity(Config::LPSolver lp_solver);
46 static const mpq_class& ninfinity(Config::LPSolver lp_solver);
47
48 private:
50 static void Initialise();
51
52 static bool initialised_;
53#ifdef DLINEAR_ENABLED_QSOPTEX
54 static mpq_class qsoptex_ninfinity_;
55 static mpq_class qsoptex_infinity_;
56#endif
57#ifdef DLINEAR_ENABLED_SOPLEX
58 static mpq_class soplex_ninfinity_;
59 static mpq_class soplex_infinity_;
60#endif
61};
62
63} // namespace dlinear
Simple dataclass used to store the configuration of the program.
Definition Config.h:38
LPSolver
Underlying LP solver used by the theory solver.
Definition Config.h:41
Global class storing the infinity values for the different LP solvers.
Definition Infinity.h:21
static const mpq_class & ninfinity(const Config &config)
Get the negative infinity value for the given LP solver in the config.
Definition Infinity.cpp:31
static const mpq_class & infinity(const Config &config)
Get the positive infinity value for the given LP solver in the config.
Definition Infinity.cpp:30
static void Initialise()
Lazy initialisation of the infinity values.
Definition Infinity.cpp:33
Global namespace for the dlinear library.