Average Error: 61.3 → 59.0
Time: 1.0m
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)\]
\[\begin{array}{l} \mathbf{if}\;a \le 1.542338768776221979718923094404481642848 \cdot 10^{-162}:\\ \;\;\;\;\cos^{-1} \left({\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}^{\left(\log \left(e^{\mathsf{fma}\left(a, a \cdot \mathsf{fma}\left(a, \frac{1}{3}, \frac{-1}{2}\right), a\right)}\right)\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\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)\\ \end{array}\]
\cos^{-1} \left({\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}^{\left(\mathsf{log1p}\left(a\right)\right)}\right)
\begin{array}{l}
\mathbf{if}\;a \le 1.542338768776221979718923094404481642848 \cdot 10^{-162}:\\
\;\;\;\;\cos^{-1} \left({\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}^{\left(\log \left(e^{\mathsf{fma}\left(a, a \cdot \mathsf{fma}\left(a, \frac{1}{3}, \frac{-1}{2}\right), a\right)}\right)\right)}\right)\\

\mathbf{else}:\\
\;\;\;\;\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)\\

\end{array}
double f(double a) {
        double r18040 = a;
        double r18041 = cosh(r18040);
        double r18042 = r18040 * r18040;
        double r18043 = fmod(r18041, r18042);
        double r18044 = log1p(r18040);
        double r18045 = pow(r18043, r18044);
        double r18046 = acos(r18045);
        return r18046;
}

double f(double a) {
        double r18047 = a;
        double r18048 = 1.542338768776222e-162;
        bool r18049 = r18047 <= r18048;
        double r18050 = cosh(r18047);
        double r18051 = r18047 * r18047;
        double r18052 = fmod(r18050, r18051);
        double r18053 = 0.3333333333333333;
        double r18054 = -0.5;
        double r18055 = fma(r18047, r18053, r18054);
        double r18056 = r18047 * r18055;
        double r18057 = fma(r18047, r18056, r18047);
        double r18058 = exp(r18057);
        double r18059 = log(r18058);
        double r18060 = pow(r18052, r18059);
        double r18061 = acos(r18060);
        double r18062 = exp(r18052);
        double r18063 = log(r18062);
        double r18064 = log1p(r18047);
        double r18065 = pow(r18063, r18064);
        double r18066 = acos(r18065);
        double r18067 = r18049 ? r18061 : r18066;
        return r18067;
}

Error

Bits error versus a

Derivation

  1. Split input into 2 regimes
  2. if a < 1.542338768776222e-162

    1. Initial program 64.0

      \[\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-exp61.3

      \[\leadsto \cos^{-1} \left({\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}^{\color{blue}{\left(\log \left(e^{\mathsf{log1p}\left(a\right)}\right)\right)}}\right)\]
    4. Taylor expanded around 0 61.3

      \[\leadsto \cos^{-1} \left({\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}^{\left(\log \left(e^{\color{blue}{\left(\frac{1}{3} \cdot {a}^{3} + a\right) - \frac{1}{2} \cdot {a}^{2}}}\right)\right)}\right)\]
    5. Simplified61.3

      \[\leadsto \cos^{-1} \left({\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}^{\left(\log \left(e^{\color{blue}{\mathsf{fma}\left(a, a \cdot \mathsf{fma}\left(a, \frac{1}{3}, \frac{-1}{2}\right), a\right)}}\right)\right)}\right)\]

    if 1.542338768776222e-162 < a

    1. Initial program 58.8

      \[\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-exp56.9

      \[\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)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification59.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le 1.542338768776221979718923094404481642848 \cdot 10^{-162}:\\ \;\;\;\;\cos^{-1} \left({\left(\left(\cosh a\right) \bmod \left(a \cdot a\right)\right)}^{\left(\log \left(e^{\mathsf{fma}\left(a, a \cdot \mathsf{fma}\left(a, \frac{1}{3}, \frac{-1}{2}\right), a\right)}\right)\right)}\right)\\ \mathbf{else}:\\ \;\;\;\;\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)\\ \end{array}\]

Reproduce

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