43 LinExpr::Node::decrement(
void) {
45 if ((l != NULL) && l->decrement())
47 if ((
r != NULL) &&
r->decrement())
60 n->n_int = n->n_bool = 0;
68 n->n_int = n->n_bool = 0;
104 for (
int i=x.
size();
i--; ) {
105 n->sum.ti[
i].x = x[
i];
121 for (
int i=x.
size();
i--; ) {
122 n->sum.ti[
i].x = x[
i];
123 n->sum.ti[
i].a = a[
i];
131 n->n_bool = x.
size();
136 for (
int i=x.
size();
i--; ) {
137 n->sum.tb[
i].x = x[
i];
148 n->n_bool = x.
size();
153 for (
int i=x.
size();
i--; ) {
154 n->sum.tb[
i].x = x[
i];
155 n->sum.tb[
i].a = a[
i];
162 n->n_int = e0.n->n_int + e1.n->n_int;
163 n->n_bool = e0.n->n_bool + e1.n->n_bool;
165 n->l = e0.n; n->l->use++;
166 n->r = e1.n; n->r->use++;
171 n->n_int = e.n->n_int;
172 n->n_bool = e.n->n_bool;
175 n->r = e.n; n->r->use++;
181 n->n_int = e.n->n_int;
182 n->n_bool = e.n->n_bool;
184 n->l = e.n; n->l->use++;
219 double m,
double&
d)
const {
227 ti->
a=
static_cast<int>(m*
a); ti->
x=x_int; ti++;
230 ti->
a=
static_cast<int>(
m); ti->
x=
sum.ne->
post(home, NULL, icl); ti++;
234 tb->
a=
static_cast<int>(m*
a); tb->
x=x_bool; tb++;
237 for (
int i=n_int;
i--; ) {
239 ti[
i].
x =
sum.ti[
i].x; ti[
i].
a =
static_cast<int>(m*
sum.ti[
i].a);
244 for (
int i=n_bool;
i--; ) {
246 tb[
i].
x =
sum.tb[
i].x; tb[
i].
a =
static_cast<int>(m*
sum.tb[
i].a);
255 l->fill(home,icl,ti,tb,m,d);
257 r->fill(home,icl,ti,tb,m,d);
264 l->fill(home,icl,ti,tb,m,d);
266 r->fill(home,icl,ti,tb,-m,d);
270 l->fill(home,icl,ti,tb,m*
a,d);
285 return LinExpr(static_cast<double>(c)+x.
val());
292 return LinExpr(static_cast<double>(c)+x.
val());
303 return LinExpr(static_cast<double>(c)+x.
val());
310 return LinExpr(static_cast<double>(c)+x.
val());
390 return LinExpr(static_cast<double>(c)-x.
val());
397 return LinExpr(static_cast<double>(c)-x.
val());
517 return LinExpr(static_cast<double>(a)*x.
val());
527 return LinExpr(static_cast<double>(a)*x.
val());
537 return LinExpr(static_cast<double>(a)*x.
val());
547 return LinExpr(static_cast<double>(a)*x.
val());
587 return e.
post(home,icl);