\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 r586092 = x;
double r586093 = y;
double r586094 = r586092 * r586093;
double r586095 = z;
double r586096 = r586094 / r586095;
return r586096;
}
double f(double x, double y, double z) {
double r586097 = y;
double r586098 = cbrt(r586097);
double r586099 = r586098 * r586098;
double r586100 = z;
double r586101 = cbrt(r586100);
double r586102 = r586101 * r586101;
double r586103 = r586099 / r586102;
double r586104 = x;
double r586105 = r586101 / r586098;
double r586106 = r586104 / r586105;
double r586107 = r586103 * r586106;
return r586107;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.1 |
|---|---|
| Target | 6.1 |
| Herbie | 2.0 |
Initial program 6.1
rmApplied associate-/l*6.0
rmApplied add-cube-cbrt6.8
Applied add-cube-cbrt6.9
Applied times-frac6.9
Applied *-un-lft-identity6.9
Applied times-frac2.1
Simplified2.0
Final simplification2.0
herbie shell --seed 2019306 +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.70421306606504721e-164) (/ x (/ z y)) (* (/ x z) y)))
(/ (* x y) z))