\frac{\left(\left(x \cdot 9\right) \cdot y - \left(\left(z \cdot 4\right) \cdot t\right) \cdot a\right) + b}{z \cdot c}\begin{array}{l}
\mathbf{if}\;z \le -1.2968195247031482 \cdot 10^{259}:\\
\;\;\;\;\left(\frac{\sqrt[3]{b} \cdot \sqrt[3]{b}}{z} \cdot \frac{\sqrt[3]{b}}{c} + 9 \cdot \left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\frac{z}{\sqrt[3]{y} \cdot \sqrt[3]{y}}} \cdot \frac{\sqrt[3]{x}}{\frac{c}{\sqrt[3]{y}}}\right)\right) - 4 \cdot \frac{a \cdot t}{c}\\
\mathbf{elif}\;z \le -1.75501527398249654 \cdot 10^{179}:\\
\;\;\;\;\left(\frac{b}{z \cdot c} + 9 \cdot \frac{x}{\frac{z \cdot c}{y}}\right) - 4 \cdot \frac{a}{\frac{c}{t}}\\
\mathbf{elif}\;z \le -1.30643333571272192 \cdot 10^{-133}:\\
\;\;\;\;\left(\frac{b}{z \cdot c} + \left(9 \cdot \frac{x}{z}\right) \cdot \frac{y}{c}\right) - 4 \cdot \frac{a \cdot t}{c}\\
\mathbf{elif}\;z \le 8.4931605539463159 \cdot 10^{67}:\\
\;\;\;\;\left(\frac{b}{z \cdot c} + 9 \cdot \frac{x}{\frac{z \cdot c}{y}}\right) - 4 \cdot \frac{a}{\frac{c}{t}}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{\sqrt[3]{b} \cdot \sqrt[3]{b}}{z} \cdot \frac{\sqrt[3]{b}}{c} + 9 \cdot \left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\frac{z}{\sqrt[3]{y} \cdot \sqrt[3]{y}}} \cdot \frac{\sqrt[3]{x}}{\frac{c}{\sqrt[3]{y}}}\right)\right) - 4 \cdot \frac{a \cdot t}{c}\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c) {
double r654448 = x;
double r654449 = 9.0;
double r654450 = r654448 * r654449;
double r654451 = y;
double r654452 = r654450 * r654451;
double r654453 = z;
double r654454 = 4.0;
double r654455 = r654453 * r654454;
double r654456 = t;
double r654457 = r654455 * r654456;
double r654458 = a;
double r654459 = r654457 * r654458;
double r654460 = r654452 - r654459;
double r654461 = b;
double r654462 = r654460 + r654461;
double r654463 = c;
double r654464 = r654453 * r654463;
double r654465 = r654462 / r654464;
return r654465;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r654466 = z;
double r654467 = -1.2968195247031482e+259;
bool r654468 = r654466 <= r654467;
double r654469 = b;
double r654470 = cbrt(r654469);
double r654471 = r654470 * r654470;
double r654472 = r654471 / r654466;
double r654473 = c;
double r654474 = r654470 / r654473;
double r654475 = r654472 * r654474;
double r654476 = 9.0;
double r654477 = x;
double r654478 = cbrt(r654477);
double r654479 = r654478 * r654478;
double r654480 = y;
double r654481 = cbrt(r654480);
double r654482 = r654481 * r654481;
double r654483 = r654466 / r654482;
double r654484 = r654479 / r654483;
double r654485 = r654473 / r654481;
double r654486 = r654478 / r654485;
double r654487 = r654484 * r654486;
double r654488 = r654476 * r654487;
double r654489 = r654475 + r654488;
double r654490 = 4.0;
double r654491 = a;
double r654492 = t;
double r654493 = r654491 * r654492;
double r654494 = r654493 / r654473;
double r654495 = r654490 * r654494;
double r654496 = r654489 - r654495;
double r654497 = -1.7550152739824965e+179;
bool r654498 = r654466 <= r654497;
double r654499 = r654466 * r654473;
double r654500 = r654469 / r654499;
double r654501 = r654499 / r654480;
double r654502 = r654477 / r654501;
double r654503 = r654476 * r654502;
double r654504 = r654500 + r654503;
double r654505 = r654473 / r654492;
double r654506 = r654491 / r654505;
double r654507 = r654490 * r654506;
double r654508 = r654504 - r654507;
double r654509 = -1.306433335712722e-133;
bool r654510 = r654466 <= r654509;
double r654511 = r654477 / r654466;
double r654512 = r654476 * r654511;
double r654513 = r654480 / r654473;
double r654514 = r654512 * r654513;
double r654515 = r654500 + r654514;
double r654516 = r654515 - r654495;
double r654517 = 8.493160553946316e+67;
bool r654518 = r654466 <= r654517;
double r654519 = r654518 ? r654508 : r654496;
double r654520 = r654510 ? r654516 : r654519;
double r654521 = r654498 ? r654508 : r654520;
double r654522 = r654468 ? r654496 : r654521;
return r654522;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b




Bits error versus c
Results
| Original | 20.3 |
|---|---|
| Target | 14.4 |
| Herbie | 8.1 |
if z < -1.2968195247031482e+259 or 8.493160553946316e+67 < z Initial program 35.4
Taylor expanded around 0 15.2
rmApplied associate-/l*12.3
rmApplied add-cube-cbrt12.4
Applied times-frac9.7
Applied add-cube-cbrt9.8
Applied times-frac8.5
rmApplied add-cube-cbrt8.6
Applied times-frac6.3
if -1.2968195247031482e+259 < z < -1.7550152739824965e+179 or -1.306433335712722e-133 < z < 8.493160553946316e+67Initial program 12.7
Taylor expanded around 0 9.5
rmApplied associate-/l*10.1
rmApplied associate-/l*8.3
if -1.7550152739824965e+179 < z < -1.306433335712722e-133Initial program 16.2
Taylor expanded around 0 10.8
rmApplied times-frac9.9
Applied associate-*r*9.9
Final simplification8.1
herbie shell --seed 2020064
(FPCore (x y z t a b c)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, J"
:precision binary64
:herbie-target
(if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) -1.1001567408041051e-171) (/ (+ (- (* (* x 9) y) (* (* z 4) (* t a))) b) (* z c)) (if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) -0.0) (/ (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) z) c) (if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) 1.1708877911747488e-53) (/ (+ (- (* (* x 9) y) (* (* z 4) (* t a))) b) (* z c)) (if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) 2.876823679546137e+130) (- (+ (* (* 9 (/ y c)) (/ x z)) (/ b (* c z))) (* 4 (/ (* a t) c))) (if (< (/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)) 1.3838515042456319e+158) (/ (+ (- (* (* x 9) y) (* (* z 4) (* t a))) b) (* z c)) (- (+ (* 9 (* (/ y (* c z)) x)) (/ b (* c z))) (* 4 (/ (* a t) c))))))))
(/ (+ (- (* (* x 9) y) (* (* (* z 4) t) a)) b) (* z c)))