Average Error: 34.3 → 34.1
Time: 37.3s
Precision: 64
\[\left(\left(\cosh c\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]
\[\left(\left(\sqrt[3]{{\left(\frac{\mathsf{expm1}\left(\sqrt[3]{{\left(\mathsf{log1p}\left(e^{-c} + e^{c}\right)\right)}^{3}}\right)}{2}\right)}^{3}}\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]
\left(\left(\cosh c\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)
\left(\left(\sqrt[3]{{\left(\frac{\mathsf{expm1}\left(\sqrt[3]{{\left(\mathsf{log1p}\left(e^{-c} + e^{c}\right)\right)}^{3}}\right)}{2}\right)}^{3}}\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)
double f(double a, double c) {
        double r19855 = c;
        double r19856 = cosh(r19855);
        double r19857 = a;
        double r19858 = log1p(r19857);
        double r19859 = fmod(r19856, r19858);
        return r19859;
}

double f(double a, double c) {
        double r19860 = c;
        double r19861 = -r19860;
        double r19862 = exp(r19861);
        double r19863 = exp(r19860);
        double r19864 = r19862 + r19863;
        double r19865 = log1p(r19864);
        double r19866 = 3.0;
        double r19867 = pow(r19865, r19866);
        double r19868 = cbrt(r19867);
        double r19869 = expm1(r19868);
        double r19870 = 2.0;
        double r19871 = r19869 / r19870;
        double r19872 = pow(r19871, r19866);
        double r19873 = cbrt(r19872);
        double r19874 = a;
        double r19875 = log1p(r19874);
        double r19876 = fmod(r19873, r19875);
        return r19876;
}

Error

Bits error versus a

Bits error versus c

Derivation

  1. Initial program 34.3

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

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

    \[\leadsto \left(\left(\sqrt[3]{\color{blue}{{\left(\cosh c\right)}^{3}}}\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]
  5. Using strategy rm
  6. Applied cosh-def34.3

    \[\leadsto \left(\left(\sqrt[3]{{\color{blue}{\left(\frac{e^{c} + e^{-c}}{2}\right)}}^{3}}\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]
  7. Simplified34.3

    \[\leadsto \left(\left(\sqrt[3]{{\left(\frac{\color{blue}{e^{-c} + e^{c}}}{2}\right)}^{3}}\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]
  8. Using strategy rm
  9. Applied expm1-log1p-u34.1

    \[\leadsto \left(\left(\sqrt[3]{{\left(\frac{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(e^{-c} + e^{c}\right)\right)}}{2}\right)}^{3}}\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]
  10. Using strategy rm
  11. Applied add-cbrt-cube34.1

    \[\leadsto \left(\left(\sqrt[3]{{\left(\frac{\mathsf{expm1}\left(\color{blue}{\sqrt[3]{\left(\mathsf{log1p}\left(e^{-c} + e^{c}\right) \cdot \mathsf{log1p}\left(e^{-c} + e^{c}\right)\right) \cdot \mathsf{log1p}\left(e^{-c} + e^{c}\right)}}\right)}{2}\right)}^{3}}\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]
  12. Simplified34.1

    \[\leadsto \left(\left(\sqrt[3]{{\left(\frac{\mathsf{expm1}\left(\sqrt[3]{\color{blue}{{\left(\mathsf{log1p}\left(e^{-c} + e^{c}\right)\right)}^{3}}}\right)}{2}\right)}^{3}}\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]
  13. Final simplification34.1

    \[\leadsto \left(\left(\sqrt[3]{{\left(\frac{\mathsf{expm1}\left(\sqrt[3]{{\left(\mathsf{log1p}\left(e^{-c} + e^{c}\right)\right)}^{3}}\right)}{2}\right)}^{3}}\right) \bmod \left(\mathsf{log1p}\left(a\right)\right)\right)\]

Reproduce

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