Average Error: 34.0 → 33.6
Time: 32.0s
Precision: 64
\[\left(\left(\cosh c\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]
\[\left(\left(\cosh c\right) \bmod \left(\sqrt[3]{\mathsf{log1p}\left(a\right)} \cdot \left(\sqrt[3]{\mathsf{log1p}\left(a\right)} \cdot \sqrt[3]{\mathsf{log1p}\left(a\right)}\right)\right)\right)\]
\left(\left(\cosh c\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)
\left(\left(\cosh c\right) \bmod \left(\sqrt[3]{\mathsf{log1p}\left(a\right)} \cdot \left(\sqrt[3]{\mathsf{log1p}\left(a\right)} \cdot \sqrt[3]{\mathsf{log1p}\left(a\right)}\right)\right)\right)
double f(double a, double c) {
        double r56302 = c;
        double r56303 = cosh(r56302);
        double r56304 = a;
        double r56305 = log1p(r56304);
        double r56306 = fmod(r56303, r56305);
        return r56306;
}

double f(double a, double c) {
        double r56307 = c;
        double r56308 = cosh(r56307);
        double r56309 = a;
        double r56310 = log1p(r56309);
        double r56311 = cbrt(r56310);
        double r56312 = r56311 * r56311;
        double r56313 = r56311 * r56312;
        double r56314 = fmod(r56308, r56313);
        return r56314;
}

Error

Bits error versus a

Bits error versus c

Derivation

  1. Initial program 34.0

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

    \[\leadsto \left(\left(\cosh c\right) \bmod \color{blue}{\left(\left(\sqrt[3]{\mathsf{log1p}\left(a\right)} \cdot \sqrt[3]{\mathsf{log1p}\left(a\right)}\right) \cdot \sqrt[3]{\mathsf{log1p}\left(a\right)}\right)}\right)\]
  4. Final simplification33.6

    \[\leadsto \left(\left(\cosh c\right) \bmod \left(\sqrt[3]{\mathsf{log1p}\left(a\right)} \cdot \left(\sqrt[3]{\mathsf{log1p}\left(a\right)} \cdot \sqrt[3]{\mathsf{log1p}\left(a\right)}\right)\right)\right)\]

Reproduce

herbie shell --seed 2019120 
(FPCore (a c)
  :name "Random Jason Timeout Test 004"
  (fmod (cosh c) (log1p a)))