\frac{x \cdot \left(y - z\right)}{t - z}\frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{t - z} \cdot \sqrt[3]{t - z}} \cdot \frac{x}{\frac{\sqrt[3]{t - z}}{\sqrt[3]{y - z}}}double f(double x, double y, double z, double t) {
double r26360322 = x;
double r26360323 = y;
double r26360324 = z;
double r26360325 = r26360323 - r26360324;
double r26360326 = r26360322 * r26360325;
double r26360327 = t;
double r26360328 = r26360327 - r26360324;
double r26360329 = r26360326 / r26360328;
return r26360329;
}
double f(double x, double y, double z, double t) {
double r26360330 = y;
double r26360331 = z;
double r26360332 = r26360330 - r26360331;
double r26360333 = cbrt(r26360332);
double r26360334 = r26360333 * r26360333;
double r26360335 = t;
double r26360336 = r26360335 - r26360331;
double r26360337 = cbrt(r26360336);
double r26360338 = r26360337 * r26360337;
double r26360339 = r26360334 / r26360338;
double r26360340 = x;
double r26360341 = r26360337 / r26360333;
double r26360342 = r26360340 / r26360341;
double r26360343 = r26360339 * r26360342;
return r26360343;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.9 |
|---|---|
| Target | 2.0 |
| Herbie | 1.0 |
Initial program 11.9
rmApplied associate-/l*2.0
rmApplied add-cube-cbrt3.1
Applied add-cube-cbrt2.8
Applied times-frac2.8
Applied *-un-lft-identity2.8
Applied times-frac1.0
Simplified1.0
Final simplification1.0
herbie shell --seed 2019192 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Plot.AreaSpots:renderAreaSpots4D from Chart-1.5.3"
:herbie-target
(/ x (/ (- t z) (- y z)))
(/ (* x (- y z)) (- t z)))