\frac{x + y \cdot \left(z - x\right)}{z}\left(\frac{x}{z} + y\right) - \frac{x}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \frac{y}{\sqrt[3]{z}}double f(double x, double y, double z) {
double r564181 = x;
double r564182 = y;
double r564183 = z;
double r564184 = r564183 - r564181;
double r564185 = r564182 * r564184;
double r564186 = r564181 + r564185;
double r564187 = r564186 / r564183;
return r564187;
}
double f(double x, double y, double z) {
double r564188 = x;
double r564189 = z;
double r564190 = r564188 / r564189;
double r564191 = y;
double r564192 = r564190 + r564191;
double r564193 = cbrt(r564189);
double r564194 = r564193 * r564193;
double r564195 = r564188 / r564194;
double r564196 = r564191 / r564193;
double r564197 = r564195 * r564196;
double r564198 = r564192 - r564197;
return r564198;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 10.2 |
|---|---|
| Target | 0.0 |
| Herbie | 1.0 |
Initial program 10.2
Simplified10.2
Taylor expanded around 0 3.7
rmApplied add-cube-cbrt3.8
Applied times-frac1.0
Final simplification1.0
herbie shell --seed 2019303 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.Backend.Rasterific:rasterificRadialGradient from diagrams-rasterific-1.3.1.3"
:precision binary64
:herbie-target
(- (+ y (/ x z)) (/ y (/ z x)))
(/ (+ x (* y (- z x))) z))