\frac{x \cdot y}{z}x \cdot \frac{y}{z}double f(double x, double y, double z) {
double r659811 = x;
double r659812 = y;
double r659813 = r659811 * r659812;
double r659814 = z;
double r659815 = r659813 / r659814;
return r659815;
}
double f(double x, double y, double z) {
double r659816 = x;
double r659817 = y;
double r659818 = z;
double r659819 = r659817 / r659818;
double r659820 = r659816 * r659819;
return r659820;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.4 |
|---|---|
| Target | 6.5 |
| Herbie | 6.4 |
if (/ (* x y) z) < -7.76860356189378e+305Initial program 62.6
rmApplied *-un-lft-identity62.6
Applied times-frac0.3
Simplified0.3
if -7.76860356189378e+305 < (/ (* x y) z) < -5.989061428235972e-77 or -0.0 < (/ (* x y) z) < 3.534109248982644e+298Initial program 2.2
if -5.989061428235972e-77 < (/ (* x y) z) < -0.0Initial program 5.7
rmApplied associate-/l*6.4
rmApplied *-un-lft-identity6.4
Applied add-cube-cbrt7.0
Applied times-frac7.0
Applied associate-/r*5.3
Simplified5.3
if 3.534109248982644e+298 < (/ (* x y) z) Initial program 57.5
rmApplied associate-/l*1.5
Final simplification6.4
herbie shell --seed 2019303
(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))