Average Error: 34.0 → 33.6
Time: 32.7s
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 r702915 = c;
        double r702916 = cosh(r702915);
        double r702917 = a;
        double r702918 = log1p(r702917);
        double r702919 = fmod(r702916, r702918);
        return r702919;
}

double f(double a, double c) {
        double r702920 = c;
        double r702921 = cosh(r702920);
        double r702922 = a;
        double r702923 = log1p(r702922);
        double r702924 = cbrt(r702923);
        double r702925 = r702924 * r702924;
        double r702926 = r702924 * r702925;
        double r702927 = fmod(r702921, r702926);
        return r702927;
}

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 +o rules:numerics
(FPCore (a c)
  :name "Random Jason Timeout Test 004"
  (fmod (cosh c) (log1p a)))