Average Error: 31.1 → 0.3
Time: 31.8s
Precision: 64
\[\frac{1 - \cos x}{x \cdot x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.02826034963706557101570382428690209053457:\\ \;\;\;\;\sqrt{\frac{\frac{\frac{1 \cdot \left(1 \cdot 1\right) - \left(\cos x \cdot \cos x\right) \cdot \cos x}{\mathsf{fma}\left(\cos x, \cos x + 1, 1 \cdot 1\right)}}{x}}{x}} \cdot \sqrt{\frac{\frac{\log \left(e^{1 - \cos x}\right)}{x}}{x}}\\ \mathbf{elif}\;x \le 0.02946672320662404448432525327916664537042:\\ \;\;\;\;\mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), \frac{1}{720}, \mathsf{fma}\left(x \cdot x, \frac{-1}{24}, \frac{1}{2}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(1 - \cos x\right) \cdot \frac{\frac{1}{x}}{x}\\ \end{array}\]
\frac{1 - \cos x}{x \cdot x}
\begin{array}{l}
\mathbf{if}\;x \le -0.02826034963706557101570382428690209053457:\\
\;\;\;\;\sqrt{\frac{\frac{\frac{1 \cdot \left(1 \cdot 1\right) - \left(\cos x \cdot \cos x\right) \cdot \cos x}{\mathsf{fma}\left(\cos x, \cos x + 1, 1 \cdot 1\right)}}{x}}{x}} \cdot \sqrt{\frac{\frac{\log \left(e^{1 - \cos x}\right)}{x}}{x}}\\

\mathbf{elif}\;x \le 0.02946672320662404448432525327916664537042:\\
\;\;\;\;\mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), \frac{1}{720}, \mathsf{fma}\left(x \cdot x, \frac{-1}{24}, \frac{1}{2}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(1 - \cos x\right) \cdot \frac{\frac{1}{x}}{x}\\

\end{array}
double f(double x) {
        double r720447 = 1.0;
        double r720448 = x;
        double r720449 = cos(r720448);
        double r720450 = r720447 - r720449;
        double r720451 = r720448 * r720448;
        double r720452 = r720450 / r720451;
        return r720452;
}

double f(double x) {
        double r720453 = x;
        double r720454 = -0.02826034963706557;
        bool r720455 = r720453 <= r720454;
        double r720456 = 1.0;
        double r720457 = r720456 * r720456;
        double r720458 = r720456 * r720457;
        double r720459 = cos(r720453);
        double r720460 = r720459 * r720459;
        double r720461 = r720460 * r720459;
        double r720462 = r720458 - r720461;
        double r720463 = r720459 + r720456;
        double r720464 = fma(r720459, r720463, r720457);
        double r720465 = r720462 / r720464;
        double r720466 = r720465 / r720453;
        double r720467 = r720466 / r720453;
        double r720468 = sqrt(r720467);
        double r720469 = r720456 - r720459;
        double r720470 = exp(r720469);
        double r720471 = log(r720470);
        double r720472 = r720471 / r720453;
        double r720473 = r720472 / r720453;
        double r720474 = sqrt(r720473);
        double r720475 = r720468 * r720474;
        double r720476 = 0.029466723206624044;
        bool r720477 = r720453 <= r720476;
        double r720478 = r720453 * r720453;
        double r720479 = r720478 * r720478;
        double r720480 = 0.001388888888888889;
        double r720481 = -0.041666666666666664;
        double r720482 = 0.5;
        double r720483 = fma(r720478, r720481, r720482);
        double r720484 = fma(r720479, r720480, r720483);
        double r720485 = 1.0;
        double r720486 = r720485 / r720453;
        double r720487 = r720486 / r720453;
        double r720488 = r720469 * r720487;
        double r720489 = r720477 ? r720484 : r720488;
        double r720490 = r720455 ? r720475 : r720489;
        return r720490;
}

Error

Bits error versus x

Derivation

  1. Split input into 3 regimes
  2. if x < -0.02826034963706557

    1. Initial program 1.0

      \[\frac{1 - \cos x}{x \cdot x}\]
    2. Using strategy rm
    3. Applied associate-/r*0.4

      \[\leadsto \color{blue}{\frac{\frac{1 - \cos x}{x}}{x}}\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt0.5

      \[\leadsto \color{blue}{\sqrt{\frac{\frac{1 - \cos x}{x}}{x}} \cdot \sqrt{\frac{\frac{1 - \cos x}{x}}{x}}}\]
    6. Using strategy rm
    7. Applied add-log-exp0.6

      \[\leadsto \sqrt{\frac{\frac{1 - \color{blue}{\log \left(e^{\cos x}\right)}}{x}}{x}} \cdot \sqrt{\frac{\frac{1 - \cos x}{x}}{x}}\]
    8. Applied add-log-exp0.6

      \[\leadsto \sqrt{\frac{\frac{\color{blue}{\log \left(e^{1}\right)} - \log \left(e^{\cos x}\right)}{x}}{x}} \cdot \sqrt{\frac{\frac{1 - \cos x}{x}}{x}}\]
    9. Applied diff-log0.6

      \[\leadsto \sqrt{\frac{\frac{\color{blue}{\log \left(\frac{e^{1}}{e^{\cos x}}\right)}}{x}}{x}} \cdot \sqrt{\frac{\frac{1 - \cos x}{x}}{x}}\]
    10. Simplified0.6

      \[\leadsto \sqrt{\frac{\frac{\log \color{blue}{\left(e^{1 - \cos x}\right)}}{x}}{x}} \cdot \sqrt{\frac{\frac{1 - \cos x}{x}}{x}}\]
    11. Using strategy rm
    12. Applied flip3--0.6

      \[\leadsto \sqrt{\frac{\frac{\log \left(e^{1 - \cos x}\right)}{x}}{x}} \cdot \sqrt{\frac{\frac{\color{blue}{\frac{{1}^{3} - {\left(\cos x\right)}^{3}}{1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)}}}{x}}{x}}\]
    13. Simplified0.6

      \[\leadsto \sqrt{\frac{\frac{\log \left(e^{1 - \cos x}\right)}{x}}{x}} \cdot \sqrt{\frac{\frac{\frac{\color{blue}{\left(1 \cdot 1\right) \cdot 1 - \cos x \cdot \left(\cos x \cdot \cos x\right)}}{1 \cdot 1 + \left(\cos x \cdot \cos x + 1 \cdot \cos x\right)}}{x}}{x}}\]
    14. Simplified0.6

      \[\leadsto \sqrt{\frac{\frac{\log \left(e^{1 - \cos x}\right)}{x}}{x}} \cdot \sqrt{\frac{\frac{\frac{\left(1 \cdot 1\right) \cdot 1 - \cos x \cdot \left(\cos x \cdot \cos x\right)}{\color{blue}{\mathsf{fma}\left(\cos x, 1 + \cos x, 1 \cdot 1\right)}}}{x}}{x}}\]

    if -0.02826034963706557 < x < 0.029466723206624044

    1. Initial program 62.3

      \[\frac{1 - \cos x}{x \cdot x}\]
    2. Taylor expanded around 0 0.0

      \[\leadsto \color{blue}{\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}}\]
    3. Simplified0.0

      \[\leadsto \color{blue}{\mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), \frac{1}{720}, \mathsf{fma}\left(x \cdot x, \frac{-1}{24}, \frac{1}{2}\right)\right)}\]

    if 0.029466723206624044 < x

    1. Initial program 1.0

      \[\frac{1 - \cos x}{x \cdot x}\]
    2. Using strategy rm
    3. Applied associate-/r*0.5

      \[\leadsto \color{blue}{\frac{\frac{1 - \cos x}{x}}{x}}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity0.5

      \[\leadsto \frac{\frac{1 - \cos x}{x}}{\color{blue}{1 \cdot x}}\]
    6. Applied div-inv0.5

      \[\leadsto \frac{\color{blue}{\left(1 - \cos x\right) \cdot \frac{1}{x}}}{1 \cdot x}\]
    7. Applied times-frac0.5

      \[\leadsto \color{blue}{\frac{1 - \cos x}{1} \cdot \frac{\frac{1}{x}}{x}}\]
    8. Simplified0.5

      \[\leadsto \color{blue}{\left(1 - \cos x\right)} \cdot \frac{\frac{1}{x}}{x}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -0.02826034963706557101570382428690209053457:\\ \;\;\;\;\sqrt{\frac{\frac{\frac{1 \cdot \left(1 \cdot 1\right) - \left(\cos x \cdot \cos x\right) \cdot \cos x}{\mathsf{fma}\left(\cos x, \cos x + 1, 1 \cdot 1\right)}}{x}}{x}} \cdot \sqrt{\frac{\frac{\log \left(e^{1 - \cos x}\right)}{x}}{x}}\\ \mathbf{elif}\;x \le 0.02946672320662404448432525327916664537042:\\ \;\;\;\;\mathsf{fma}\left(\left(x \cdot x\right) \cdot \left(x \cdot x\right), \frac{1}{720}, \mathsf{fma}\left(x \cdot x, \frac{-1}{24}, \frac{1}{2}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(1 - \cos x\right) \cdot \frac{\frac{1}{x}}{x}\\ \end{array}\]

Reproduce

herbie shell --seed 2019200 +o rules:numerics
(FPCore (x)
  :name "cos2 (problem 3.4.1)"
  (/ (- 1.0 (cos x)) (* x x)))