\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b
\begin{array}{l}
\mathbf{if}\;\left(y \cdot 9\right) \cdot z \le -1.98996444836475591 \cdot 10^{240} \lor \neg \left(\left(y \cdot 9\right) \cdot z \le 7.881184043757349 \cdot 10^{221}\right):\\
\;\;\;\;\left(x \cdot 2 - \left(y \cdot 9\right) \cdot \left(z \cdot t\right)\right) + \left(a \cdot 27\right) \cdot b\\
\mathbf{else}:\\
\;\;\;\;\left(x \cdot 2 - \left(\left(y \cdot 9\right) \cdot z\right) \cdot t\right) + a \cdot \left(27 \cdot b\right)\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r943170 = x;
double r943171 = 2.0;
double r943172 = r943170 * r943171;
double r943173 = y;
double r943174 = 9.0;
double r943175 = r943173 * r943174;
double r943176 = z;
double r943177 = r943175 * r943176;
double r943178 = t;
double r943179 = r943177 * r943178;
double r943180 = r943172 - r943179;
double r943181 = a;
double r943182 = 27.0;
double r943183 = r943181 * r943182;
double r943184 = b;
double r943185 = r943183 * r943184;
double r943186 = r943180 + r943185;
return r943186;
}
double f(double x, double y, double z, double t, double a, double b) {
double r943187 = y;
double r943188 = 9.0;
double r943189 = r943187 * r943188;
double r943190 = z;
double r943191 = r943189 * r943190;
double r943192 = -1.989964448364756e+240;
bool r943193 = r943191 <= r943192;
double r943194 = 7.881184043757349e+221;
bool r943195 = r943191 <= r943194;
double r943196 = !r943195;
bool r943197 = r943193 || r943196;
double r943198 = x;
double r943199 = 2.0;
double r943200 = r943198 * r943199;
double r943201 = t;
double r943202 = r943190 * r943201;
double r943203 = r943189 * r943202;
double r943204 = r943200 - r943203;
double r943205 = a;
double r943206 = 27.0;
double r943207 = r943205 * r943206;
double r943208 = b;
double r943209 = r943207 * r943208;
double r943210 = r943204 + r943209;
double r943211 = r943191 * r943201;
double r943212 = r943200 - r943211;
double r943213 = r943206 * r943208;
double r943214 = r943205 * r943213;
double r943215 = r943212 + r943214;
double r943216 = r943197 ? r943210 : r943215;
return r943216;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 3.5 |
|---|---|
| Target | 2.5 |
| Herbie | 0.5 |
if (* (* y 9.0) z) < -1.989964448364756e+240 or 7.881184043757349e+221 < (* (* y 9.0) z) Initial program 32.1
rmApplied associate-*l*1.4
if -1.989964448364756e+240 < (* (* y 9.0) z) < 7.881184043757349e+221Initial program 0.4
rmApplied associate-*l*0.4
Final simplification0.5
herbie shell --seed 2020056
(FPCore (x y z t a b)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, A"
:precision binary64
:herbie-target
(if (< y 7.590524218811189e-161) (+ (- (* x 2) (* (* (* y 9) z) t)) (* a (* 27 b))) (+ (- (* x 2) (* 9 (* y (* t z)))) (* (* a 27) b)))
(+ (- (* x 2) (* (* (* y 9) z) t)) (* (* a 27) b)))