\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.509627698880911586338015526628233224088 \cdot 10^{129} \lor \neg \left(\left(y \cdot 9\right) \cdot z \le 2.414314480791499273783363683236492721004 \cdot 10^{188}\right):\\
\;\;\;\;\left(x \cdot 2 - y \cdot \left(\left(9 \cdot z\right) \cdot t\right)\right) + {\left(27 \cdot \left(a \cdot b\right)\right)}^{1}\\
\mathbf{else}:\\
\;\;\;\;\left(x \cdot 2 - \left(y \cdot \left(9 \cdot z\right)\right) \cdot t\right) + \left(a \cdot 27\right) \cdot b\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r755350 = x;
double r755351 = 2.0;
double r755352 = r755350 * r755351;
double r755353 = y;
double r755354 = 9.0;
double r755355 = r755353 * r755354;
double r755356 = z;
double r755357 = r755355 * r755356;
double r755358 = t;
double r755359 = r755357 * r755358;
double r755360 = r755352 - r755359;
double r755361 = a;
double r755362 = 27.0;
double r755363 = r755361 * r755362;
double r755364 = b;
double r755365 = r755363 * r755364;
double r755366 = r755360 + r755365;
return r755366;
}
double f(double x, double y, double z, double t, double a, double b) {
double r755367 = y;
double r755368 = 9.0;
double r755369 = r755367 * r755368;
double r755370 = z;
double r755371 = r755369 * r755370;
double r755372 = -1.5096276988809116e+129;
bool r755373 = r755371 <= r755372;
double r755374 = 2.4143144807914993e+188;
bool r755375 = r755371 <= r755374;
double r755376 = !r755375;
bool r755377 = r755373 || r755376;
double r755378 = x;
double r755379 = 2.0;
double r755380 = r755378 * r755379;
double r755381 = r755368 * r755370;
double r755382 = t;
double r755383 = r755381 * r755382;
double r755384 = r755367 * r755383;
double r755385 = r755380 - r755384;
double r755386 = 27.0;
double r755387 = a;
double r755388 = b;
double r755389 = r755387 * r755388;
double r755390 = r755386 * r755389;
double r755391 = 1.0;
double r755392 = pow(r755390, r755391);
double r755393 = r755385 + r755392;
double r755394 = r755367 * r755381;
double r755395 = r755394 * r755382;
double r755396 = r755380 - r755395;
double r755397 = r755387 * r755386;
double r755398 = r755397 * r755388;
double r755399 = r755396 + r755398;
double r755400 = r755377 ? r755393 : r755399;
return r755400;
}




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.6 |
|---|---|
| Target | 2.6 |
| Herbie | 0.7 |
if (* (* y 9.0) z) < -1.5096276988809116e+129 or 2.4143144807914993e+188 < (* (* y 9.0) z) Initial program 19.0
rmApplied associate-*l*2.3
rmApplied associate-*l*1.8
rmApplied associate-*r*1.9
rmApplied pow11.9
Applied pow11.9
Applied pow11.9
Applied pow-prod-down1.9
Applied pow-prod-down1.9
Simplified1.7
if -1.5096276988809116e+129 < (* (* y 9.0) z) < 2.4143144807914993e+188Initial program 0.5
rmApplied associate-*l*0.5
Final simplification0.7
herbie shell --seed 2020001
(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)))