main page
modules
namespaces
classes
files
Gecode home
Generated on Fri Jan 10 2020 11:38:25 for Gecode by
doxygen
1.8.16
gecode
int
branch
assign.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, 2012
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
37
IntAssign::IntAssign
(
Select
s0)
38
: s(s0) {}
39
40
forceinline
41
IntAssign::IntAssign
(
Rnd
r
)
42
:
ValBranch
<
IntVar
>(
r
), s(SEL_RND) {}
43
44
forceinline
45
IntAssign::IntAssign
(
IntBranchVal
v
,
IntBranchCommit
c
)
46
:
ValBranch
<
IntVar
>(
v
,
c
), s(SEL_VAL_COMMIT) {}
47
48
forceinline
IntAssign::Select
49
IntAssign::select
(
void
)
const
{
50
return
s
;
51
}
52
53
54
inline
IntAssign
55
INT_ASSIGN_MIN
(
void
) {
56
return
IntAssign
(
IntAssign::SEL_MIN
);
57
}
58
59
inline
IntAssign
60
INT_ASSIGN_MED
(
void
) {
61
return
IntAssign
(
IntAssign::SEL_MED
);
62
}
63
64
inline
IntAssign
65
INT_ASSIGN_MAX
(
void
) {
66
return
IntAssign
(
IntAssign::SEL_MAX
);
67
}
68
69
inline
IntAssign
70
INT_ASSIGN_RND
(
Rnd
r
) {
71
return
IntAssign
(
r
);
72
}
73
74
inline
IntAssign
75
INT_ASSIGN
(
IntBranchVal
v
,
IntBranchCommit
c
) {
76
return
IntAssign
(
v
,
c
);
77
}
78
79
80
81
forceinline
82
BoolAssign::BoolAssign
(
Select
s0)
83
: s(s0) {}
84
85
forceinline
86
BoolAssign::BoolAssign
(
Rnd
r
)
87
:
ValBranch
<
BoolVar
>(
r
), s(SEL_RND) {}
88
89
forceinline
90
BoolAssign::BoolAssign
(
BoolBranchVal
v
,
BoolBranchCommit
c
)
91
:
ValBranch
<
BoolVar
>(
v
,
c
), s(SEL_VAL_COMMIT) {}
92
93
forceinline
BoolAssign::Select
94
BoolAssign::select
(
void
)
const
{
95
return
s
;
96
}
97
98
99
inline
BoolAssign
100
BOOL_ASSIGN_MIN
(
void
) {
101
return
BoolAssign
(
BoolAssign::SEL_MIN
);
102
}
103
104
inline
BoolAssign
105
BOOL_ASSIGN_MAX
(
void
) {
106
return
BoolAssign
(
BoolAssign::SEL_MAX
);
107
}
108
109
inline
BoolAssign
110
BOOL_ASSIGN_RND
(
Rnd
r
) {
111
return
BoolAssign
(
r
);
112
}
113
114
inline
BoolAssign
115
BOOL_ASSIGN
(
BoolBranchVal
v
,
BoolBranchCommit
c
) {
116
return
BoolAssign
(
v
,
c
);
117
}
118
119
}
120
121
// STATISTICS: int-branch
Gecode::BOOL_ASSIGN_RND
BoolAssign BOOL_ASSIGN_RND(Rnd r)
Select random value.
Definition:
assign.hpp:110
Gecode::BOOL_ASSIGN_MIN
BoolAssign BOOL_ASSIGN_MIN(void)
Select smallest value.
Definition:
assign.hpp:100
Gecode::BoolAssign::s
Select s
Which value to select.
Definition:
int.hh:5011
Gecode::IntAssign::s
Select s
Which value to select.
Definition:
int.hh:4983
Gecode::BoolBranchVal
std::function< int(const Space &home, BoolVar x, int i)> BoolBranchVal
Branch value function type for Boolean variables.
Definition:
int.hh:4234
Gecode::BoolAssign::SEL_MAX
Select largest value.
Definition:
int.hh:5005
Gecode
Gecode toplevel namespace
Gecode::BoolAssign::SEL_MIN
Select smallest value.
Definition:
int.hh:5004
Gecode::BoolAssign::Select
Select
Which value selection.
Definition:
int.hh:5003
Gecode::IntAssign
Which values to select for assignment.
Definition:
int.hh:4971
Gecode::IntAssign::Select
Select
Which value selection.
Definition:
int.hh:4974
Gecode::IntAssign::SEL_MAX
Select largest value.
Definition:
int.hh:4977
Gecode::r
Post propagator for SetVar SetOpType SetVar SetRelType r
Definition:
set.hh:767
Gecode::BoolVar
Boolean integer variables.
Definition:
int.hh:512
Gecode::ValBranch
Value branching information.
Definition:
val.hpp:41
Gecode::Rnd
Random number generator.
Definition:
rnd.hpp:42
Gecode::INT_ASSIGN_MAX
IntAssign INT_ASSIGN_MAX(void)
Select largest value.
Definition:
assign.hpp:65
Gecode::IntVar
Integer variables.
Definition:
int.hh:371
Gecode::INT_ASSIGN
IntAssign INT_ASSIGN(IntBranchVal v, IntBranchCommit c)
Select value as defined by the value function v and commit function c.
Definition:
assign.hpp:75
Gecode::INT_ASSIGN_RND
IntAssign INT_ASSIGN_RND(Rnd r)
Select random value.
Definition:
assign.hpp:70
Gecode::IntAssign::select
Select select(void) const
Return selection strategy.
Definition:
assign.hpp:49
Test::Int::Distinct::v
const int v[7]
Definition:
distinct.cpp:259
Gecode::IntBranchVal
std::function< int(const Space &home, IntVar x, int i)> IntBranchVal
Branch value function type for integer variables.
Definition:
int.hh:4222
Gecode::BoolAssign::select
Select select(void) const
Return selection strategy.
Definition:
assign.hpp:94
Gecode::IntAssign::IntAssign
IntAssign(Select s=SEL_MIN)
Initialize with selection strategy s.
Definition:
assign.hpp:37
Gecode::BoolAssign::BoolAssign
BoolAssign(Select s=SEL_MIN)
Initialize with selection strategy s.
Definition:
assign.hpp:82
Gecode::INT_ASSIGN_MED
IntAssign INT_ASSIGN_MED(void)
Select greatest value not greater than the median.
Definition:
assign.hpp:60
Gecode::BoolBranchCommit
std::function< void(Space &home, unsigned int a, BoolVar x, int i, int n)> BoolBranchCommit
Branch commit function type for Boolean variables.
Definition:
int.hh:4263
Gecode::BOOL_ASSIGN_MAX
BoolAssign BOOL_ASSIGN_MAX(void)
Select largest value.
Definition:
assign.hpp:105
forceinline
#define forceinline
Definition:
config.hpp:185
Gecode::BoolAssign
Which values to select for assignment.
Definition:
int.hh:5000
Test::Float::Arithmetic::c
Gecode::FloatVal c(-8, 8)
Gecode::BOOL_ASSIGN
BoolAssign BOOL_ASSIGN(BoolBranchVal v, BoolBranchCommit c)
Select value as defined by the value function v and commit function c.
Definition:
assign.hpp:115
Gecode::IntAssign::SEL_MIN
Select smallest value.
Definition:
int.hh:4975
Gecode::IntAssign::SEL_MED
Select greatest value not greater than the median.
Definition:
int.hh:4976
Gecode::IntBranchCommit
std::function< void(Space &home, unsigned int a, IntVar x, int i, int n)> IntBranchCommit
Branch commit function type for integer variables.
Definition:
int.hh:4249
Gecode::INT_ASSIGN_MIN
IntAssign INT_ASSIGN_MIN(void)
Select smallest value.
Definition:
assign.hpp:55