Average Error: 61.1 → 60.2
Time: 36.7s
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 r8290 = a;
        double r8291 = cosh(r8290);
        double r8292 = r8290 * r8290;
        double r8293 = fmod(r8291, r8292);
        double r8294 = log1p(r8290);
        double r8295 = pow(r8293, r8294);
        double r8296 = acos(r8295);
        return r8296;
}

double f(double a) {
        double r8297 = a;
        double r8298 = cosh(r8297);
        double r8299 = r8297 * r8297;
        double r8300 = fmod(r8298, r8299);
        double r8301 = exp(r8300);
        double r8302 = log(r8301);
        double r8303 = log1p(r8297);
        double r8304 = pow(r8302, r8303);
        double r8305 = acos(r8304);
        return r8305;
}

Error

Bits error versus a

Derivation

  1. Initial program 61.1

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