Lines Matching defs:bound
100 ** lo, % float: lower bound
101 ** hi, % float: upper bound
219 ** | RHS upper bound (double) |
223 ** | RHS lower bound (double) |
320 #define SHORT_LWB 1 /* set everything to their lower bound */
321 #define SHORT_UPB 2 /* set everything to their upper bound */
461 #define Constant_To_Lower_Bound(vc, tc, bound) \
464 bound = Dbl(vc); \
468 bound = IvlLwb(ivl.ptr); \
471 #define Constant_To_Upper_Bound(vc, tc, bound) \
474 bound = Dbl(vc); \
478 bound = IvlUpb(ivl.ptr); \
612 /* XXX - this can be used for any value, not just a bound? */
613 #define Set_Var_To_Value(var_info, bound) { \
617 if ((var_info)->prop_int && (bound) == floor(bound)) { \
624 result = ec_double_to_int_or_bignum(bound, &res); \
628 Make_Interval(&res, bound, bound); \
632 (var_info)->tb.b.l = (bound); \
633 (var_info)->tb.b.u = (bound); \
729 ** of the bound exceed the threshold. See ic_kernel.ecl and ic_design for
900 ** ic_lwb(var_info, bound)
902 ** bound.
905 ic_lwb(var_info *vi, double bound)
912 if (bound <= vi->tb.b.l) {
916 if (bound > vi->tb.b.u) {
925 maybe_round_up(vi->tb.i, bound);
927 if (bound == vi->tb.b.u) {
928 Set_Var_To_Value(vi, bound)
931 } else /* bound > lwb */ {
933 abs_delta = bound - vi->tb.b.l;
938 ** XXX - instead of not modifying the bound (so that no
940 ** the bound, and just not wake anything?
943 bound = vi->tb.b.l;
959 int_bound = (word) bound;
969 /* There was a hole at bound. */
970 bound = (double) new_int_bound;
972 if (bound == vi->tb.b.u) {
973 Set_Var_To_Value(vi, bound)
982 /* If we get here, then the bound needs to be updated. */
984 Make_Checked_Double_Val(val, bound);
987 vi->tb.b.l = bound;
993 result = set_bitmap_lwb(vi->bitmap->val.wptr, (word) bound,
1016 ** Applies the lower bound `Bound' to the variable `Var'.
1023 double bound;
1026 Constant_To_Lower_Bound(vc, tc, bound);
1030 return ic_lwb(&vi, bound);
1035 ** ic_upb(var_info, bound)
1037 ** bound.
1040 ic_upb(var_info *vi, double bound)
1047 if (bound >= vi->tb.b.u) {
1051 if (bound < vi->tb.b.l) {
1060 maybe_round_down(vi->tb.i, bound);
1062 if (bound == vi->tb.b.l) {
1063 Set_Var_To_Value(vi, bound)
1066 } else /* bound < upb */ {
1068 abs_delta = vi->tb.b.u - bound;
1073 ** XXX - instead of not modifying the bound (so that no
1075 ** the bound, and just not wake anything?
1078 bound = vi->tb.b.u;
1094 int_bound = (word) bound;
1104 /* There was a hole at bound. */
1105 bound = (double) new_int_bound;
1107 if (bound == vi->tb.b.l) {
1108 Set_Var_To_Value(vi, bound)
1117 /* If we get here, then the bound needs to be updated. */
1119 Make_Checked_Double_Val(val, bound);
1122 vi->tb.b.u = bound;
1128 result = set_bitmap_upb(vi->bitmap->val.wptr, (word) bound,
1151 ** Applies the upper bound `Bound' to the variable `Var'.
1158 double bound;
1161 Constant_To_Upper_Bound(vc, tc, bound);
1165 return ic_upb(&vi, bound);
1171 ** Applies the lower bound `Lwb' and upper bound `Upb' to the
1344 /* Wake on lower/upper bound changes. */
1482 /* Wake on lower/upper bound changes. */
1606 /* op: 1 for lower bound, 2 for upper bound, 3 for both. */
1628 /* Impose lower bound. */
1638 /* Impose upper bound. */
1956 ** something became ground due to bound rounding for an integer
2108 ** already seen an infinite bound, no propagation is
2126 ** No E-based bound updates / (dis)entailment
2152 ** already seen an infinite bound, no propagation is
2169 ** No F-based bound updates / (dis)entailment
2629 /* Upper bound update. */
2638 fprintf(stderr, " Upper bound update with single infinity.\n");
2676 ** integer rounding, because the other bound is still
2689 /* Lower bound update. */
2698 fprintf(stderr, " Lower bound update with single infinity.\n");
2737 ** integer rounding, because the other bound is still
2750 /* At least one bound requires the second pass. */
3071 /* Variable is still a variable, so set term to lower bound. */
3082 ** Try to determine which variable bound is the right
3213 /* Intersection resulted in bound change(s). */
3223 /* Lower bound has changed. */
3233 /* Upper bound has changed. */
3909 ** Wake on either bound change.
3928 ** Wake on appropriate bound only.
3941 /* Coefficient spans zero: wake on either bound. */
3948 ** Wake on either bound change.
3991 /* If appropriate, propagate the bound for this term. */
3998 /* If appropriate, propagate the bound for this term. */
4637 ** Assumes the lower bound cannot be +inf or the upper bound -inf.
4648 /* Lower bound. */
4658 /* Upper bound. */
4913 /* Check if num implies bound changes for attr2. */
4919 /* No bound change --- postpone the suspensions. */
4946 /* No bound change --- postpone the suspensions. */
5157 /* Intersection resulted in bound change(s). */
5445 ** Check for whether the lower bound is too small (or large) to make
5446 ** integer labelling sensible. We don't worry about the upper bound
5448 ** with (for example) an infinite upper bound.
5496 /* Make sure we don't try anything smaller than the lower bound. */
5504 /* Careful: upper bound may be too large to safely cast to a word. */