Graphviz
12.1.0~dev.20240716.1117
Loading...
Searching...
No Matches
constraint.cpp
Go to the documentation of this file.
1
19
#include <
vpsc/constraint.h
>
20
#include <cassert>
21
Constraint::Constraint
(
Variable
*
left
,
Variable
*
right
,
double
gap)
22
:
left
(
left
),
23
right
(
right
),
24
gap(gap),
25
timeStamp(0),
26
active(false),
27
visited(false)
28
{
29
left
->
out
.push_back(
this
);
30
right
->
in
.push_back(
this
);
31
}
32
Constraint::~Constraint
() {
33
Constraints::iterator i;
34
for
(i=
left
->
out
.begin(); i!=
left
->
out
.end(); i++) {
35
if
(*i==
this
)
break
;
36
}
37
left
->
out
.erase(i);
38
for
(i=
right
->
in
.begin(); i!=
right
->
in
.end(); i++) {
39
if
(*i==
this
)
break
;
40
}
41
right
->
in
.erase(i);
42
}
43
std::ostream&
operator <<
(std::ostream &os,
const
Constraint
&c)
44
{
45
os<<*c.
left
<<
"+"
<<c.
gap
<<
"<="
<<*c.
right
<<
"("
<<c.
slack
()<<
")"
<<(c.
active
?
"-active"
:
""
);
46
return
os;
47
}
right
#define right(i)
Definition
closest.c:77
operator<<
std::ostream & operator<<(std::ostream &os, const Constraint &c)
Definition
constraint.cpp:43
constraint.h
left
#define left
Definition
dthdr.h:12
Constraint
A constraint determines a minimum or exact spacing required between two variables.
Definition
constraint.h:25
Constraint::right
Variable * right
Definition
constraint.h:29
Constraint::gap
double gap
Definition
constraint.h:30
Constraint::left
Variable * left
Definition
constraint.h:28
Constraint::active
bool active
Definition
constraint.h:36
Constraint::Constraint
Constraint(Variable *left, Variable *right, double gap)
A constraint determines a minimum or exact spacing required between two variables.
Definition
constraint.cpp:21
Constraint::slack
double slack() const
Definition
constraint.h:34
Constraint::~Constraint
~Constraint()
Definition
constraint.cpp:32
Variable
Definition
variable.h:26
Variable::out
Constraints out
Definition
variable.h:36
Variable::in
Constraints in
Definition
variable.h:35
lib
vpsc
constraint.cpp
Generated by
1.9.8