Average Error: 61.2 → 60.2
Time: 56.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 r18096 = a;
        double r18097 = cosh(r18096);
        double r18098 = r18096 * r18096;
        double r18099 = fmod(r18097, r18098);
        double r18100 = log1p(r18096);
        double r18101 = pow(r18099, r18100);
        double r18102 = acos(r18101);
        return r18102;
}

double f(double a) {
        double r18103 = a;
        double r18104 = cosh(r18103);
        double r18105 = r18103 * r18103;
        double r18106 = fmod(r18104, r18105);
        double r18107 = exp(r18106);
        double r18108 = log(r18107);
        double r18109 = log1p(r18103);
        double r18110 = pow(r18108, r18109);
        double r18111 = acos(r18110);
        return r18111;
}

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.2

    \[\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.2

    \[\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 2019209 +o rules:numerics
(FPCore (a)
  :name "Random Jason Timeout Test 012"
  :precision binary64
  (acos (pow (fmod (cosh a) (* a a)) (log1p a))))