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>
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}
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}
43std::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}
#define right(i)
Definition closest.c:77
std::ostream & operator<<(std::ostream &os, const Constraint &c)
#define left
Definition dthdr.h:12
A constraint determines a minimum or exact spacing required between two variables.
Definition constraint.h:25
Variable * right
Definition constraint.h:29
double gap
Definition constraint.h:30
Variable * left
Definition constraint.h:28
bool active
Definition constraint.h:36
Constraint(Variable *left, Variable *right, double gap)
A constraint determines a minimum or exact spacing required between two variables.
double slack() const
Definition constraint.h:34
Constraints out
Definition variable.h:36
Constraints in
Definition variable.h:35