\frac{x + y \cdot \left(z - x\right)}{z}\left(\frac{x}{z} + y\right) - \left(\frac{\sqrt[3]{x}}{\sqrt[3]{z}} \cdot y\right) \cdot \left(\frac{\sqrt[3]{x}}{\sqrt[3]{z}} \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{z}}\right)double f(double x, double y, double z) {
double r37282384 = x;
double r37282385 = y;
double r37282386 = z;
double r37282387 = r37282386 - r37282384;
double r37282388 = r37282385 * r37282387;
double r37282389 = r37282384 + r37282388;
double r37282390 = r37282389 / r37282386;
return r37282390;
}
double f(double x, double y, double z) {
double r37282391 = x;
double r37282392 = z;
double r37282393 = r37282391 / r37282392;
double r37282394 = y;
double r37282395 = r37282393 + r37282394;
double r37282396 = cbrt(r37282391);
double r37282397 = cbrt(r37282392);
double r37282398 = r37282396 / r37282397;
double r37282399 = r37282398 * r37282394;
double r37282400 = r37282398 * r37282398;
double r37282401 = r37282399 * r37282400;
double r37282402 = r37282395 - r37282401;
return r37282402;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 10.4 |
|---|---|
| Target | 0.0 |
| Herbie | 0.2 |
Initial program 10.4
Taylor expanded around 0 3.4
rmApplied associate-/l*2.9
rmApplied *-un-lft-identity2.9
Applied add-cube-cbrt3.0
Applied times-frac3.0
Applied add-cube-cbrt3.1
Applied times-frac0.7
Simplified0.7
Simplified0.2
Final simplification0.2
herbie shell --seed 2019192
(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))