main page
modules
namespaces
classes
files
Gecode home
Generated on Wed Jan 1 2020 10:37:59 for Gecode by
doxygen
1.8.16
gecode
int
irt.hpp
Go to the documentation of this file.
1
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2
/*
3
* Main authors:
4
* Christian Schulte <schulte@gecode.org>
5
*
6
* Copyright:
7
* Christian Schulte, 2017
8
*
9
* This file is part of Gecode, the generic constraint
10
* development environment:
11
* http://www.gecode.org
12
*
13
* Permission is hereby granted, free of charge, to any person obtaining
14
* a copy of this software and associated documentation files (the
15
* "Software"), to deal in the Software without restriction, including
16
* without limitation the rights to use, copy, modify, merge, publish,
17
* distribute, sublicense, and/or sell copies of the Software, and to
18
* permit persons to whom the Software is furnished to do so, subject to
19
* the following conditions:
20
*
21
* The above copyright notice and this permission notice shall be
22
* included in all copies or substantial portions of the Software.
23
*
24
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31
*
32
*/
33
34
namespace
Gecode
{
35
36
forceinline
IntRelType
37
swap
(
IntRelType
irt) {
38
switch
(irt) {
39
case
IRT_EQ
:
return
IRT_EQ
;
40
case
IRT_NQ
:
return
IRT_NQ
;
41
case
IRT_LE
:
return
IRT_GR
;
42
case
IRT_LQ
:
return
IRT_GQ
;
43
case
IRT_GR
:
return
IRT_LE
;
44
case
IRT_GQ
:
return
IRT_LQ
;
45
default
:
GECODE_NEVER
;
46
}
47
GECODE_NEVER
;
48
return
IRT_EQ
;
// Avoid compiler warnings
49
}
50
51
forceinline
IntRelType
52
neg
(
IntRelType
irt) {
53
switch
(irt) {
54
case
IRT_EQ
:
return
IRT_NQ
;
55
case
IRT_NQ
:
return
IRT_EQ
;
56
case
IRT_GQ
:
return
IRT_LE
;
57
case
IRT_LQ
:
return
IRT_GR
;
58
case
IRT_LE
:
return
IRT_GQ
;
59
case
IRT_GR
:
return
IRT_LQ
;
60
default
:
GECODE_NEVER
;
61
}
62
GECODE_NEVER
;
63
return
IRT_EQ
;
// Avoid compiler warnings
64
}
65
66
67
}
68
69
// STATISTICS: int-post
70
Gecode::IntRelType
IntRelType
Relation types for integers.
Definition:
int.hh:925
Gecode::IRT_GQ
Greater or equal ( )
Definition:
int.hh:930
Gecode::IRT_LE
Less ( )
Definition:
int.hh:929
Gecode
Gecode toplevel namespace
Gecode::swap
IntRelType swap(IntRelType irt)
Return swapped relation type of irt.
Definition:
irt.hpp:37
GECODE_NEVER
#define GECODE_NEVER
Assert that this command is never executed.
Definition:
macros.hpp:56
Gecode::neg
IntRelType neg(IntRelType irt)
Return negated relation type of irt.
Definition:
irt.hpp:52
forceinline
#define forceinline
Definition:
config.hpp:185
Gecode::IRT_EQ
Equality ( )
Definition:
int.hh:926
Gecode::IRT_NQ
Disequality ( )
Definition:
int.hh:927
Gecode::IRT_GR
Greater ( )
Definition:
int.hh:931
Gecode::IRT_LQ
Less or equal ( )
Definition:
int.hh:928