NodeManager* nm = NodeManager::currentNM();
Kind k = tf.getKind();
+
+ // Figure 3 : c
+ Node c = d_model.computeAbstractModelValue(tf[0]);
+ int csign = c.getConst<Rational>().sgn();
+ Assert(csign == 1 || csign == -1);
+
// Figure 3: P_l, P_u
// mapped to for signs of c
std::map<int, Node> poly_approx_bounds[2];
std::vector<Node> pbounds;
- getPolynomialApproximationBounds(k, d, pbounds);
+ getPolynomialApproximationBoundForArg(k, c, d, pbounds);
poly_approx_bounds[0][1] = pbounds[0];
poly_approx_bounds[0][-1] = pbounds[1];
poly_approx_bounds[1][1] = pbounds[2];
poly_approx_bounds[1][-1] = pbounds[3];
- // Figure 3 : c
- Node c = d_model.computeAbstractModelValue(tf[0]);
- int csign = c.getConst<Rational>().sgn();
- Assert(csign == 1 || csign == -1);
-
// Figure 3 : v
Node v = d_model.computeAbstractModelValue(tf);
regress1/nl/dumortier_llibre_artes_ex_5_13.transcendental.k2.smt2
regress1/nl/exp-4.5-lt.smt2
regress1/nl/exp-approx.smt2
+ regress1/nl/exp-soundness-bound.smt2
regress1/nl/exp1-lb.smt2
regress1/nl/exp_monotone.smt2
regress1/nl/factor_agg_s.smt2