delpi
0.0.1
DElta-complete LP solver
Toggle main menu visibility
Loading...
Searching...
No Matches
LpRowSense.cpp
1
6
#include "delpi/solver/LpRowSense.h"
7
8
#include <ostream>
9
10
#include "delpi/util/error.h"
11
12
namespace
delpi
{
13
14
LpRowSense
parseLpSense
(
const
char
sense) {
15
switch
(sense) {
16
case
'g'
:
17
case
'>'
:
18
return
LpRowSense::GT
;
19
case
'G'
:
20
return
LpRowSense::GE
;
21
case
'='
:
22
case
'E'
:
23
return
LpRowSense::EQ
;
24
case
'N'
:
25
return
LpRowSense::NQ
;
26
case
'L'
:
27
return
LpRowSense::LE
;
28
case
'<'
:
29
case
'l'
:
30
return
LpRowSense::LT
;
31
case
'I'
:
32
return
LpRowSense::IN
;
33
default
:
34
DELPI_UNREACHABLE();
35
}
36
}
37
38
char
toChar
(
const
LpRowSense
sense) {
39
switch
(sense) {
40
case
LpRowSense::GT
:
41
return
'g'
;
42
case
LpRowSense::GE
:
43
return
'G'
;
44
case
LpRowSense::EQ
:
45
return
'E'
;
46
case
LpRowSense::NQ
:
47
return
'N'
;
48
case
LpRowSense::LE
:
49
return
'L'
;
50
case
LpRowSense::LT
:
51
return
'l'
;
52
case
LpRowSense::IN
:
53
return
'I'
;
54
default
:
55
DELPI_UNREACHABLE();
56
}
57
}
58
59
LpRowSense
operator!
(
const
LpRowSense
sense) {
60
switch
(sense) {
61
case
LpRowSense::GT
:
62
return
LpRowSense::LE
;
63
case
LpRowSense::GE
:
64
return
LpRowSense::LT
;
65
case
LpRowSense::EQ
:
66
return
LpRowSense::NQ
;
67
case
LpRowSense::NQ
:
68
return
LpRowSense::EQ
;
69
case
LpRowSense::LE
:
70
return
LpRowSense::GT
;
71
case
LpRowSense::LT
:
72
return
LpRowSense::GE
;
73
case
LpRowSense::IN
:
74
return
LpRowSense::IN
;
75
default
:
76
DELPI_UNREACHABLE();
77
}
78
}
79
80
LpRowSense
operator-
(
const
LpRowSense
sense) {
81
switch
(sense) {
82
case
LpRowSense::GE
:
83
return
LpRowSense::LE
;
84
case
LpRowSense::EQ
:
85
return
LpRowSense::NQ
;
86
case
LpRowSense::LE
:
87
return
LpRowSense::GE
;
88
case
LpRowSense::IN
:
89
return
LpRowSense::IN
;
90
default
:
91
DELPI_UNREACHABLE();
92
}
93
}
94
95
LpRowSense
operator~
(
const
LpRowSense
sense) {
96
switch
(sense) {
97
case
LpRowSense::GT
:
98
return
LpRowSense::GE
;
99
case
LpRowSense::LT
:
100
return
LpRowSense::LE
;
101
default
:
102
return
sense;
103
}
104
}
105
106
std::ostream &operator<<(std::ostream &os,
const
LpRowSense
&lp_result) {
return
os <<
toChar
(lp_result); }
107
108
}
// namespace delpi
delpi
Global namespace for the delpi library.
delpi::parseLpSense
LpRowSense parseLpSense(const char sense)
Parse the sense from a character.
Definition
LpRowSense.cpp:14
delpi::operator~
LpResult operator~(const LpResult result)
Relax the result of the theory solver (i.e.
Definition
LpResult.cpp:33
delpi::toChar
char toChar(const LpRowSense sense)
Convert the sense to a character.
Definition
LpRowSense.cpp:38
delpi::LpRowSense
LpRowSense
Sense of a linear programming row describing a constraint.
Definition
LpRowSense.h:20
delpi::LpRowSense::NQ
@ NQ
Not equal to.
Definition
LpRowSense.h:26
delpi::LpRowSense::EQ
@ EQ
Equal to.
Definition
LpRowSense.h:22
delpi::LpRowSense::LT
@ LT
Less than.
Definition
LpRowSense.h:21
delpi::LpRowSense::IN
@ IN
Inactive.
Definition
LpRowSense.h:27
delpi::LpRowSense::GT
@ GT
Greater than.
Definition
LpRowSense.h:25
delpi::LpRowSense::LE
@ LE
Less than or equal to.
Definition
LpRowSense.h:23
delpi::LpRowSense::GE
@ GE
Greater than or equal to.
Definition
LpRowSense.h:24
delpi::operator!
LpRowSense operator!(const LpRowSense sense)
Invert the sense with delta == 0.
Definition
LpRowSense.cpp:59
delpi::operator-
LpRowSense operator-(const LpRowSense sense)
Invert the sense with delta > 0.
Definition
LpRowSense.cpp:80
delpi
solver
LpRowSense.cpp
Generated by
1.17.0