x + \frac{y \cdot \left(z - t\right)}{z - a}x + \frac{\frac{\sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{z - a}}}}{\sqrt[3]{\sqrt[3]{z - a}}} \cdot \left(\left(\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{z - a}} \cdot \frac{\frac{1}{\sqrt[3]{\sqrt[3]{z - a} \cdot \sqrt[3]{z - a}}}}{\sqrt[3]{\sqrt[3]{z - a}} \cdot \sqrt[3]{\sqrt[3]{z - a}}}\right) \cdot \left(z - t\right)\right)double f(double x, double y, double z, double t, double a) {
double r27414565 = x;
double r27414566 = y;
double r27414567 = z;
double r27414568 = t;
double r27414569 = r27414567 - r27414568;
double r27414570 = r27414566 * r27414569;
double r27414571 = a;
double r27414572 = r27414567 - r27414571;
double r27414573 = r27414570 / r27414572;
double r27414574 = r27414565 + r27414573;
return r27414574;
}
double f(double x, double y, double z, double t, double a) {
double r27414575 = x;
double r27414576 = y;
double r27414577 = cbrt(r27414576);
double r27414578 = z;
double r27414579 = a;
double r27414580 = r27414578 - r27414579;
double r27414581 = cbrt(r27414580);
double r27414582 = cbrt(r27414581);
double r27414583 = r27414577 / r27414582;
double r27414584 = r27414583 / r27414582;
double r27414585 = r27414577 * r27414577;
double r27414586 = r27414585 / r27414581;
double r27414587 = 1.0;
double r27414588 = r27414581 * r27414581;
double r27414589 = cbrt(r27414588);
double r27414590 = r27414587 / r27414589;
double r27414591 = r27414582 * r27414582;
double r27414592 = r27414590 / r27414591;
double r27414593 = r27414586 * r27414592;
double r27414594 = t;
double r27414595 = r27414578 - r27414594;
double r27414596 = r27414593 * r27414595;
double r27414597 = r27414584 * r27414596;
double r27414598 = r27414575 + r27414597;
return r27414598;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 11.1 |
|---|---|
| Target | 1.3 |
| Herbie | 1.5 |
Initial program 11.1
Simplified3.0
rmApplied fma-udef3.0
rmApplied add-cube-cbrt3.4
Applied associate-/r*3.4
rmApplied *-un-lft-identity3.4
Applied cbrt-prod3.4
Applied add-cube-cbrt3.5
Applied times-frac3.5
Applied times-frac3.5
Applied associate-*r*3.5
Simplified3.5
rmApplied add-cube-cbrt3.6
Applied add-cube-cbrt3.6
Applied cbrt-prod3.7
Applied *-un-lft-identity3.7
Applied cbrt-prod3.7
Applied times-frac3.7
Applied times-frac3.7
Applied associate-*r*3.7
Simplified1.5
Final simplification1.5
herbie shell --seed 2019168 +o rules:numerics
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, A"
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (/ (* y (- z t)) (- z a))))