\cosh x \cdot \frac{\sin y}{y}\frac{\frac{\cosh x}{y}}{\frac{1}{\sin y}}double f(double x, double y) {
double r380328 = x;
double r380329 = cosh(r380328);
double r380330 = y;
double r380331 = sin(r380330);
double r380332 = r380331 / r380330;
double r380333 = r380329 * r380332;
return r380333;
}
double f(double x, double y) {
double r380334 = x;
double r380335 = cosh(r380334);
double r380336 = y;
double r380337 = r380335 / r380336;
double r380338 = 1.0;
double r380339 = sin(r380336);
double r380340 = r380338 / r380339;
double r380341 = r380337 / r380340;
return r380341;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.3 |
Initial program 0.1
rmApplied pow10.1
Applied pow10.1
Applied pow-prod-down0.1
Simplified0.1
rmApplied associate-/l*0.2
rmApplied div-inv0.3
Applied associate-/r*0.3
Final simplification0.3
herbie shell --seed 2019209 +o rules:numerics
(FPCore (x y)
:name "Linear.Quaternion:$csinh from linear-1.19.1.3"
:precision binary64
:herbie-target
(/ (* (cosh x) (sin y)) y)
(* (cosh x) (/ (sin y) y)))