Lines Matching refs:constraint

189 		Constraint* constraint = fConstraints[i];
191 while (constraint != NULL) {
192 Constraint* next = constraint->next;
193 delete constraint;
194 constraint = next;
242 // previous constraint exists -- use stricter values
245 // no previous constraint -- create new one
246 Constraint* constraint = new(nothrow) Constraint(element, end, min,
248 if (!constraint)
250 constraint->next = *slot;
251 *slot = constraint;
374 Constraint* constraint = fConstraints[i];
376 while (constraint) {
377 *end = new(nothrow) Constraint(constraint->start, constraint->end,
378 constraint->min, constraint->max);
383 constraint = constraint->next;
474 Constraint* constraint = fConstraints[i];
475 while (constraint != NULL) {
476 SumItem& base = fSums[constraint->start];
477 int32 sumMin = base.min + constraint->min;
478 int32 baseMax = sum.max - constraint->min;
481 int32 sumMax = base.max + constraint->effectiveMax;
482 int32 baseMin = sum.min - constraint->effectiveMax;
487 if (constraint->min == constraint->effectiveMax) {
488 // min and max equal -- add an equality constraint
489 success = fOptimizer->AddConstraint(constraint->start - 1,
490 constraint->end, constraint->min, true);
496 constraint->start - 1, constraint->end,
497 constraint->min, false);
500 success |= fOptimizer->AddConstraint(constraint->end,
501 constraint->start - 1,
502 -constraint->effectiveMax, false);
510 constraint = constraint->next;
537 Constraint* constraint = fConstraints[i];
538 while (constraint) {
539 if (!constraint->IsSatisfied(sumValues))
542 constraint = constraint->next;
580 // a conflict, we relax the max constraint as much as necessary to yield
605 Constraint* constraint = fConstraints[i];
606 while (constraint != NULL) {
607 int32 minSum = fSums[constraint->start].min + constraint->min;
610 //ignored if fSums[constraint->start] evaluates to, say, fSums[i-1]).
617 TRACE("min constraint is redundant: x%ld + ... + x%ld >= %ld\n",
618 constraint->start, constraint->end, constraint->min);
621 constraint = constraint->next;
630 Constraint* constraint = fConstraints[i];
631 while (constraint != NULL) {
632 SumItem& base = fSums[constraint->start];
633 int32 baseMax = sum.max - constraint->min;
637 constraint = constraint->next;
643 Constraint* constraint = fConstraints[i];
644 while (constraint != NULL) {
645 _ApplyMaxConstraint(constraint, i);
647 constraint = constraint->next;
711 TRACE("relaxing conflicting max constraint (1): "
718 TRACE("max constraint is redundant: x%ld + ... + x%ld <= %ld\n",
747 // check the new constraint again -- if it doesn't hold, it
769 // if we've got a conflict, we relax the constraint and try again
772 TRACE("relaxing conflicting max constraint (2): "
804 Constraint* constraint = fConstraints[i];
805 while (constraint != NULL) {
806 SumItem& base = sums[constraint->start];
808 if (constraint == lastMaxConstraint)
813 int32 sumMin = base.min + constraint->min;
822 int32 sumMax = base.max + constraint->effectiveMax;
829 constraint = constraint->next;
855 Constraint* constraint = fConstraints[i];
856 while (constraint != NULL) {
857 SumItem& base = sums[constraint->start];
859 if (constraint == lastMaxConstraint)
864 int32 baseMin = sum.min - constraint->effectiveMax;
869 constraint->start, baseMin, base.max);
878 int32 baseMax = sum.max - constraint->min;
883 constraint->start, baseMax, base.min);
890 constraint = constraint->next;