Average Error: 61.3 → 60.3
Time: 57.2s
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 r15206 = a;
        double r15207 = cosh(r15206);
        double r15208 = r15206 * r15206;
        double r15209 = fmod(r15207, r15208);
        double r15210 = log1p(r15206);
        double r15211 = pow(r15209, r15210);
        double r15212 = acos(r15211);
        return r15212;
}

double f(double a) {
        double r15213 = a;
        double r15214 = cosh(r15213);
        double r15215 = r15213 * r15213;
        double r15216 = fmod(r15214, r15215);
        double r15217 = exp(r15216);
        double r15218 = log(r15217);
        double r15219 = log1p(r15213);
        double r15220 = pow(r15218, r15219);
        double r15221 = acos(r15220);
        return r15221;
}

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