\frac{x \cdot \frac{\sin y}{y}}{z}\frac{x \cdot \frac{\sin y}{y}}{z}double f(double x, double y, double z) {
double r342029 = x;
double r342030 = y;
double r342031 = sin(r342030);
double r342032 = r342031 / r342030;
double r342033 = r342029 * r342032;
double r342034 = z;
double r342035 = r342033 / r342034;
return r342035;
}
double f(double x, double y, double z) {
double r342036 = x;
double r342037 = y;
double r342038 = sin(r342037);
double r342039 = r342038 / r342037;
double r342040 = r342036 * r342039;
double r342041 = z;
double r342042 = r342040 / r342041;
return r342042;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 2.6 |
|---|---|
| Target | 0.3 |
| Herbie | 2.6 |
if (* x (/ (sin y) y)) < 1.669669962309958e-201Initial program 3.9
rmApplied associate-/l*2.6
rmApplied div-inv2.6
Simplified2.6
if 1.669669962309958e-201 < (* x (/ (sin y) y)) Initial program 0.2
rmApplied div-inv0.4
Final simplification2.6
herbie shell --seed 2019291
(FPCore (x y z)
:name "Linear.Quaternion:$ctanh from linear-1.19.1.3"
:precision binary64
:herbie-target
(if (< z -4.21737202034271466e-29) (/ (* x (/ 1 (/ y (sin y)))) z) (if (< z 4.44670236911381103e64) (/ x (* z (/ y (sin y)))) (/ (* x (/ 1 (/ y (sin y)))) z)))
(/ (* x (/ (sin y) y)) z))