Average Error: 0.0 → 0.0
Time: 28.3s
Precision: 64
\[\cos x \cdot \frac{\sinh y}{y}\]
\[\cos x \cdot \frac{1}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{y}{\sinh y}\right)\right)}\]
\cos x \cdot \frac{\sinh y}{y}
\cos x \cdot \frac{1}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{y}{\sinh y}\right)\right)}
double f(double x, double y) {
        double r15416327 = x;
        double r15416328 = cos(r15416327);
        double r15416329 = y;
        double r15416330 = sinh(r15416329);
        double r15416331 = r15416330 / r15416329;
        double r15416332 = r15416328 * r15416331;
        return r15416332;
}

double f(double x, double y) {
        double r15416333 = x;
        double r15416334 = cos(r15416333);
        double r15416335 = 1.0;
        double r15416336 = y;
        double r15416337 = sinh(r15416336);
        double r15416338 = r15416336 / r15416337;
        double r15416339 = log1p(r15416338);
        double r15416340 = expm1(r15416339);
        double r15416341 = r15416335 / r15416340;
        double r15416342 = r15416334 * r15416341;
        return r15416342;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\cos x \cdot \frac{\sinh y}{y}\]
  2. Using strategy rm
  3. Applied clear-num0.0

    \[\leadsto \cos x \cdot \color{blue}{\frac{1}{\frac{y}{\sinh y}}}\]
  4. Using strategy rm
  5. Applied expm1-log1p-u0.0

    \[\leadsto \cos x \cdot \frac{1}{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{y}{\sinh y}\right)\right)}}\]
  6. Final simplification0.0

    \[\leadsto \cos x \cdot \frac{1}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{y}{\sinh y}\right)\right)}\]

Reproduce

herbie shell --seed 2019173 +o rules:numerics
(FPCore (x y)
  :name "Linear.Quaternion:$csin from linear-1.19.1.3"
  (* (cos x) (/ (sinh y) y)))