\frac{x \cdot \frac{\sin y}{y}}{z}\frac{x}{\frac{z}{\frac{\sin y}{y}}}double f(double x, double y, double z) {
double r348201 = x;
double r348202 = y;
double r348203 = sin(r348202);
double r348204 = r348203 / r348202;
double r348205 = r348201 * r348204;
double r348206 = z;
double r348207 = r348205 / r348206;
return r348207;
}
double f(double x, double y, double z) {
double r348208 = x;
double r348209 = z;
double r348210 = y;
double r348211 = sin(r348210);
double r348212 = r348211 / r348210;
double r348213 = r348209 / r348212;
double r348214 = r348208 / r348213;
return r348214;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 2.8 |
|---|---|
| Target | 0.2 |
| Herbie | 3.0 |
if (* x (/ (sin y) y)) < -3.088891312397517e-278 or 8.1864372841967e-209 < (* x (/ (sin y) y)) Initial program 0.2
rmApplied clear-num0.2
if -3.088891312397517e-278 < (* x (/ (sin y) y)) < 8.1864372841967e-209Initial program 10.2
rmApplied associate-/l*0.2
Final simplification3.0
herbie shell --seed 2019297
(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))