x + y \cdot \frac{z - t}{z - a}x + \left(y \cdot \frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{z - a} \cdot \sqrt[3]{z - a}}\right) \cdot \frac{\sqrt[3]{z - t}}{\sqrt[3]{z - a}}double f(double x, double y, double z, double t, double a) {
double r383287 = x;
double r383288 = y;
double r383289 = z;
double r383290 = t;
double r383291 = r383289 - r383290;
double r383292 = a;
double r383293 = r383289 - r383292;
double r383294 = r383291 / r383293;
double r383295 = r383288 * r383294;
double r383296 = r383287 + r383295;
return r383296;
}
double f(double x, double y, double z, double t, double a) {
double r383297 = x;
double r383298 = y;
double r383299 = z;
double r383300 = t;
double r383301 = r383299 - r383300;
double r383302 = cbrt(r383301);
double r383303 = r383302 * r383302;
double r383304 = a;
double r383305 = r383299 - r383304;
double r383306 = cbrt(r383305);
double r383307 = r383306 * r383306;
double r383308 = r383303 / r383307;
double r383309 = r383298 * r383308;
double r383310 = r383302 / r383306;
double r383311 = r383309 * r383310;
double r383312 = r383297 + r383311;
return r383312;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.7 |
|---|---|
| Target | 1.5 |
| Herbie | 0.5 |
Initial program 1.7
rmApplied add-cube-cbrt2.2
Applied add-cube-cbrt2.0
Applied times-frac2.0
Applied associate-*r*0.5
Final simplification0.5
herbie shell --seed 2019323
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (* y (/ (- z t) (- z a)))))