\frac{x + y \cdot \left(z - x\right)}{z}\left(\left(y + \frac{x}{z}\right) - \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \frac{x}{\frac{z}{\sqrt[3]{y}}}\right) + \frac{x}{\frac{z}{\sqrt[3]{y}}} \cdot \left(\left(-\sqrt[3]{y} \cdot \sqrt[3]{y}\right) + \sqrt[3]{y} \cdot \sqrt[3]{y}\right)double f(double x, double y, double z) {
double r448127 = x;
double r448128 = y;
double r448129 = z;
double r448130 = r448129 - r448127;
double r448131 = r448128 * r448130;
double r448132 = r448127 + r448131;
double r448133 = r448132 / r448129;
return r448133;
}
double f(double x, double y, double z) {
double r448134 = y;
double r448135 = x;
double r448136 = z;
double r448137 = r448135 / r448136;
double r448138 = r448134 + r448137;
double r448139 = cbrt(r448134);
double r448140 = r448139 * r448139;
double r448141 = r448136 / r448139;
double r448142 = r448135 / r448141;
double r448143 = r448140 * r448142;
double r448144 = r448138 - r448143;
double r448145 = -r448140;
double r448146 = r448145 + r448140;
double r448147 = r448142 * r448146;
double r448148 = r448144 + r448147;
return r448148;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 10.4 |
|---|---|
| Target | 0.0 |
| Herbie | 0.7 |
Initial program 10.4
Simplified10.4
Taylor expanded around 0 3.7
rmApplied associate-/l*2.9
rmApplied add-cube-cbrt3.0
Applied *-un-lft-identity3.0
Applied times-frac3.0
Applied add-sqr-sqrt32.9
Applied times-frac31.9
Applied add-sqr-sqrt48.1
Applied prod-diff48.1
Simplified31.9
Simplified0.7
Final simplification0.7
herbie shell --seed 2019326 +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))