Average Error: 61.3 → 60.4
Time: 52.6s
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 r14122 = a;
        double r14123 = cosh(r14122);
        double r14124 = r14122 * r14122;
        double r14125 = fmod(r14123, r14124);
        double r14126 = log1p(r14122);
        double r14127 = pow(r14125, r14126);
        double r14128 = acos(r14127);
        return r14128;
}

double f(double a) {
        double r14129 = a;
        double r14130 = cosh(r14129);
        double r14131 = r14129 * r14129;
        double r14132 = fmod(r14130, r14131);
        double r14133 = exp(r14132);
        double r14134 = log(r14133);
        double r14135 = log1p(r14129);
        double r14136 = pow(r14134, r14135);
        double r14137 = acos(r14136);
        return r14137;
}

Error

Bits error versus a

Derivation

  1. Initial program 61.3

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

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

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