Average Error: 33.8 → 33.8
Time: 33.6s
Precision: 64
\[\left(\left(\cosh c\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]
\[e^{\log \left(\left(\cosh c\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)}\]
\left(\left(\cosh c\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)
e^{\log \left(\left(\cosh c\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)}
double f(double a, double c) {
        double r22910 = c;
        double r22911 = cosh(r22910);
        double r22912 = a;
        double r22913 = log1p(r22912);
        double r22914 = fmod(r22911, r22913);
        return r22914;
}

double f(double a, double c) {
        double r22915 = c;
        double r22916 = cosh(r22915);
        double r22917 = a;
        double r22918 = log1p(r22917);
        double r22919 = fmod(r22916, r22918);
        double r22920 = log(r22919);
        double r22921 = exp(r22920);
        return r22921;
}

Error

Bits error versus a

Bits error versus c

Derivation

  1. Initial program 33.8

    \[\left(\left(\cosh c\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]
  2. Using strategy rm
  3. Applied add-exp-log33.8

    \[\leadsto \color{blue}{e^{\log \left(\left(\cosh c\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)}}\]
  4. Final simplification33.8

    \[\leadsto e^{\log \left(\left(\cosh c\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)}\]

Reproduce

herbie shell --seed 2019208 +o rules:numerics
(FPCore (a c)
  :name "Random Jason Timeout Test 004"
  :precision binary64
  (fmod (cosh c) (log1p a)))