void SymbolicBound::print(Sprinter &sp) const { if (loop) sp.printf("[loop] "); sum.print(sp); }
void LinearSum::print(Sprinter &sp) const { for (size_t i = 0; i < terms_.length(); i++) { int32_t scale = terms_[i].scale; int32_t id = terms_[i].term->id(); JS_ASSERT(scale); if (scale > 0) { if (i) sp.printf("+"); if (scale == 1) sp.printf("#%d", id); else sp.printf("%d*#%d", scale, id); } else if (scale == -1) { sp.printf("-#%d", id); } else { sp.printf("%d*#%d", scale, id); } } if (constant_ > 0) sp.printf("+%d", constant_); else if (constant_ < 0) sp.printf("%d", constant_); }
void Range::print(Sprinter &sp) const { JS_ASSERT_IF(lower_infinite_, lower_ == JSVAL_INT_MIN); JS_ASSERT_IF(upper_infinite_, upper_ == JSVAL_INT_MAX); // Real or Natural subset. if (decimal_) sp.printf("R"); else sp.printf("N"); sp.printf("["); if (lower_infinite_) sp.printf("-inf"); else sp.printf("%d", lower_); if (symbolicLower_) { sp.printf(" {"); symbolicLower_->print(sp); sp.printf("}"); } sp.printf(", "); if (upper_infinite_) sp.printf("inf"); else sp.printf("%d", upper_); if (symbolicUpper_) { sp.printf(" {"); symbolicUpper_->print(sp); sp.printf("}"); } sp.printf("]"); sp.printf(" (%db)", numBits()); }
void Range::print(Sprinter &sp) const { JS_ASSERT_IF(lower_infinite_, lower_ == JSVAL_INT_MIN); JS_ASSERT_IF(upper_infinite_, upper_ == JSVAL_INT_MAX); sp.printf("["); if (lower_infinite_) sp.printf("-inf"); else sp.printf("%d", lower_); if (symbolicLower_) { sp.printf(" {"); symbolicLower_->print(sp); sp.printf("}"); } sp.printf(", "); if (upper_infinite_) sp.printf("inf"); else sp.printf("%d", upper_); if (symbolicUpper_) { sp.printf(" {"); symbolicUpper_->print(sp); sp.printf("}"); } sp.printf("]"); }