Average Error: 61.2 → 60.3
Time: 26.5s
Precision: 64
\[\cos^{-1} \left({\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}^{\left(\mathsf{log1p}\left(a\right)\right)}\right)\]
\[\cos^{-1} \left({\left(\log \left(e^{\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}\right)\right)}^{\left(\mathsf{log1p}\left(a\right)\right)}\right)\]
\cos^{-1} \left({\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}^{\left(\mathsf{log1p}\left(a\right)\right)}\right)
\cos^{-1} \left({\left(\log \left(e^{\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}\right)\right)}^{\left(\mathsf{log1p}\left(a\right)\right)}\right)
double f(double a) {
        double r6913 = a;
        double r6914 = cosh(r6913);
        double r6915 = r6913 * r6913;
        double r6916 = fmod(r6914, r6915);
        double r6917 = log1p(r6913);
        double r6918 = pow(r6916, r6917);
        double r6919 = acos(r6918);
        return r6919;
}

double f(double a) {
        double r6920 = a;
        double r6921 = cosh(r6920);
        double r6922 = r6920 * r6920;
        double r6923 = fmod(r6921, r6922);
        double r6924 = exp(r6923);
        double r6925 = log(r6924);
        double r6926 = log1p(r6920);
        double r6927 = pow(r6925, r6926);
        double r6928 = acos(r6927);
        return r6928;
}

Error

Bits error versus a

Derivation

  1. Initial program 61.2

    \[\cos^{-1} \left({\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}^{\left(\mathsf{log1p}\left(a\right)\right)}\right)\]
  2. Using strategy rm
  3. Applied add-log-exp60.3

    \[\leadsto \cos^{-1} \left({\color{blue}{\left(\log \left(e^{\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}\right)\right)}}^{\left(\mathsf{log1p}\left(a\right)\right)}\right)\]
  4. Final simplification60.3

    \[\leadsto \cos^{-1} \left({\left(\log \left(e^{\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}\right)\right)}^{\left(\mathsf{log1p}\left(a\right)\right)}\right)\]

Reproduce

herbie shell --seed 2019353 +o rules:numerics
(FPCore (a)
  :name "Random Jason Timeout Test 012"
  :precision binary64
  (acos (pow (fmod (cosh a) (* a a)) (log1p a))))