\frac{x \cdot y}{z}\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \frac{x}{\frac{\sqrt[3]{z}}{\sqrt[3]{y}}}double f(double x, double y, double z) {
double r601552 = x;
double r601553 = y;
double r601554 = r601552 * r601553;
double r601555 = z;
double r601556 = r601554 / r601555;
return r601556;
}
double f(double x, double y, double z) {
double r601557 = y;
double r601558 = cbrt(r601557);
double r601559 = r601558 * r601558;
double r601560 = z;
double r601561 = cbrt(r601560);
double r601562 = r601561 * r601561;
double r601563 = r601559 / r601562;
double r601564 = x;
double r601565 = r601561 / r601558;
double r601566 = r601564 / r601565;
double r601567 = r601563 * r601566;
return r601567;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.5 |
|---|---|
| Target | 6.2 |
| Herbie | 1.9 |
Initial program 6.5
rmApplied associate-/l*6.0
rmApplied add-cube-cbrt6.8
Applied add-cube-cbrt7.0
Applied times-frac7.0
Applied *-un-lft-identity7.0
Applied times-frac2.0
Simplified1.9
Final simplification1.9
herbie shell --seed 2019350 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.Solve.Tridiagonal:solveCyclicTriDiagonal from diagrams-solve-0.1, A"
:precision binary64
:herbie-target
(if (< z -4.262230790519429e-138) (/ (* x y) z) (if (< z 1.7042130660650472e-164) (/ x (/ z y)) (* (/ x z) y)))
(/ (* x y) z))