\cosh x \cdot \frac{\sin y}{y}\cosh x \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\sin y}{y}\right)\right)double f(double x, double y) {
double r361198 = x;
double r361199 = cosh(r361198);
double r361200 = y;
double r361201 = sin(r361200);
double r361202 = r361201 / r361200;
double r361203 = r361199 * r361202;
return r361203;
}
double f(double x, double y) {
double r361204 = x;
double r361205 = cosh(r361204);
double r361206 = y;
double r361207 = sin(r361206);
double r361208 = r361207 / r361206;
double r361209 = expm1(r361208);
double r361210 = log1p(r361209);
double r361211 = r361205 * r361210;
return r361211;
}




Bits error versus x




Bits error versus y
Results
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.1
rmApplied log1p-expm1-u0.1
Final simplification0.1
herbie shell --seed 2019323 +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)))