\cosh x \cdot \frac{\sin y}{y}\frac{\sin y \cdot \left(\left(2 \cdot \frac{e^{x} + e^{-x}}{2}\right) \cdot 0.5\right)}{y}(FPCore (x y) :precision binary64 (* (cosh x) (/ (sin y) y)))
(FPCore (x y) :precision binary64 (/ (* (sin y) (* (* 2.0 (/ (+ (exp x) (exp (- x))) 2.0)) 0.5)) y))
double code(double x, double y) {
return cosh(x) * (sin(y) / y);
}
double code(double x, double y) {
return (sin(y) * ((2.0 * ((exp(x) + exp(-x)) / 2.0)) * 0.5)) / y;
}







Bits error versus x







Bits error versus y
Results
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
| Alternative 1 | |
|---|---|
| Accuracy | 0.1 |
| Cost | 832 |
| Alternative 2 | |
|---|---|
| Accuracy | 0.2 |
| Cost | 1024 |
| Alternative 3 | |
|---|---|
| Accuracy | 0.8 |
| Cost | 1664 |
Initial program 0.1
Taylor expanded around -inf 0.1
Simplified0.1
rmApplied cosh-undef_binary64_122070.1
rmApplied cosh-def_binary64_121990.1
Final simplification0.1
herbie shell --seed 2020322
(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)))