\frac{x + y \cdot \left(z - x\right)}{z}\left(\frac{x}{z} + y\right) - \left(\frac{\sqrt[3]{y}}{\sqrt[3]{z}} \cdot \left(x \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{z}}\right)\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{z}}double f(double x, double y, double z) {
double r39840251 = x;
double r39840252 = y;
double r39840253 = z;
double r39840254 = r39840253 - r39840251;
double r39840255 = r39840252 * r39840254;
double r39840256 = r39840251 + r39840255;
double r39840257 = r39840256 / r39840253;
return r39840257;
}
double f(double x, double y, double z) {
double r39840258 = x;
double r39840259 = z;
double r39840260 = r39840258 / r39840259;
double r39840261 = y;
double r39840262 = r39840260 + r39840261;
double r39840263 = cbrt(r39840261);
double r39840264 = cbrt(r39840259);
double r39840265 = r39840263 / r39840264;
double r39840266 = r39840258 * r39840265;
double r39840267 = r39840265 * r39840266;
double r39840268 = r39840267 * r39840265;
double r39840269 = r39840262 - r39840268;
return r39840269;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 9.8 |
|---|---|
| Target | 0.0 |
| Herbie | 0.2 |
Initial program 9.8
Taylor expanded around 0 3.4
rmApplied *-un-lft-identity3.4
Applied times-frac3.3
Simplified3.3
rmApplied add-cube-cbrt3.5
Applied add-cube-cbrt3.5
Applied times-frac3.5
Applied associate-*r*0.7
Simplified0.2
Final simplification0.2
herbie shell --seed 2019165
(FPCore (x y z)
:name "Diagrams.Backend.Rasterific:rasterificRadialGradient from diagrams-rasterific-1.3.1.3"
:herbie-target
(- (+ y (/ x z)) (/ y (/ z x)))
(/ (+ x (* y (- z x))) z))