Average Error: 31.5 → 0.2
Time: 28.4s
Precision: 64
\[\frac{1 - \cos x}{x \cdot x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.03465278425284570168463105233058740850538 \lor \neg \left(x \le 0.03299786672642589929749235011513519566506\right):\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{-1}{x}}{x}, \cos x, \frac{\frac{1}{x}}{x} \cdot \cos x\right) + \mathsf{fma}\left(1, \frac{\frac{1}{x}}{x}, \frac{\frac{-1}{x}}{x} \cdot \cos x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{1}{720}, {x}^{4}, \frac{1}{2}\right) - \left(x \cdot x\right) \cdot \frac{1}{24}\\ \end{array}\]
\frac{1 - \cos x}{x \cdot x}
\begin{array}{l}
\mathbf{if}\;x \le -0.03465278425284570168463105233058740850538 \lor \neg \left(x \le 0.03299786672642589929749235011513519566506\right):\\
\;\;\;\;\mathsf{fma}\left(\frac{\frac{-1}{x}}{x}, \cos x, \frac{\frac{1}{x}}{x} \cdot \cos x\right) + \mathsf{fma}\left(1, \frac{\frac{1}{x}}{x}, \frac{\frac{-1}{x}}{x} \cdot \cos x\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{720}, {x}^{4}, \frac{1}{2}\right) - \left(x \cdot x\right) \cdot \frac{1}{24}\\

\end{array}
double f(double x) {
        double r61859 = 1.0;
        double r61860 = x;
        double r61861 = cos(r61860);
        double r61862 = r61859 - r61861;
        double r61863 = r61860 * r61860;
        double r61864 = r61862 / r61863;
        return r61864;
}

double f(double x) {
        double r61865 = x;
        double r61866 = -0.0346527842528457;
        bool r61867 = r61865 <= r61866;
        double r61868 = 0.0329978667264259;
        bool r61869 = r61865 <= r61868;
        double r61870 = !r61869;
        bool r61871 = r61867 || r61870;
        double r61872 = -1.0;
        double r61873 = r61872 / r61865;
        double r61874 = r61873 / r61865;
        double r61875 = cos(r61865);
        double r61876 = 1.0;
        double r61877 = r61876 / r61865;
        double r61878 = r61877 / r61865;
        double r61879 = r61878 * r61875;
        double r61880 = fma(r61874, r61875, r61879);
        double r61881 = 1.0;
        double r61882 = r61881 / r61865;
        double r61883 = r61882 / r61865;
        double r61884 = r61874 * r61875;
        double r61885 = fma(r61876, r61883, r61884);
        double r61886 = r61880 + r61885;
        double r61887 = 0.001388888888888889;
        double r61888 = 4.0;
        double r61889 = pow(r61865, r61888);
        double r61890 = 0.5;
        double r61891 = fma(r61887, r61889, r61890);
        double r61892 = r61865 * r61865;
        double r61893 = 0.041666666666666664;
        double r61894 = r61892 * r61893;
        double r61895 = r61891 - r61894;
        double r61896 = r61871 ? r61886 : r61895;
        return r61896;
}

Error

Bits error versus x

Derivation

  1. Split input into 2 regimes
  2. if x < -0.0346527842528457 or 0.0329978667264259 < x

    1. Initial program 1.0

      \[\frac{1 - \cos x}{x \cdot x}\]
    2. Using strategy rm
    3. Applied div-sub1.1

      \[\leadsto \color{blue}{\frac{1}{x \cdot x} - \frac{\cos x}{x \cdot x}}\]
    4. Simplified1.1

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

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

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

      \[\leadsto \frac{\frac{1}{x}}{x} - \frac{\color{blue}{\cos x \cdot \frac{1}{x}}}{1 \cdot x}\]
    9. Applied times-frac0.5

      \[\leadsto \frac{\frac{1}{x}}{x} - \color{blue}{\frac{\cos x}{1} \cdot \frac{\frac{1}{x}}{x}}\]
    10. Applied *-un-lft-identity0.5

      \[\leadsto \frac{\frac{1}{x}}{\color{blue}{1 \cdot x}} - \frac{\cos x}{1} \cdot \frac{\frac{1}{x}}{x}\]
    11. Applied *-un-lft-identity0.5

      \[\leadsto \frac{\frac{1}{\color{blue}{1 \cdot x}}}{1 \cdot x} - \frac{\cos x}{1} \cdot \frac{\frac{1}{x}}{x}\]
    12. Applied *-un-lft-identity0.5

      \[\leadsto \frac{\frac{\color{blue}{1 \cdot 1}}{1 \cdot x}}{1 \cdot x} - \frac{\cos x}{1} \cdot \frac{\frac{1}{x}}{x}\]
    13. Applied times-frac0.5

      \[\leadsto \frac{\color{blue}{\frac{1}{1} \cdot \frac{1}{x}}}{1 \cdot x} - \frac{\cos x}{1} \cdot \frac{\frac{1}{x}}{x}\]
    14. Applied times-frac0.5

      \[\leadsto \color{blue}{\frac{\frac{1}{1}}{1} \cdot \frac{\frac{1}{x}}{x}} - \frac{\cos x}{1} \cdot \frac{\frac{1}{x}}{x}\]
    15. Applied prod-diff0.5

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{1}{1}}{1}, \frac{\frac{1}{x}}{x}, -\frac{\frac{1}{x}}{x} \cdot \frac{\cos x}{1}\right) + \mathsf{fma}\left(-\frac{\frac{1}{x}}{x}, \frac{\cos x}{1}, \frac{\frac{1}{x}}{x} \cdot \frac{\cos x}{1}\right)}\]
    16. Simplified0.5

      \[\leadsto \color{blue}{\mathsf{fma}\left(1, \frac{\frac{1}{x}}{x}, \left(-\frac{\frac{1}{x}}{x}\right) \cdot \cos x\right)} + \mathsf{fma}\left(-\frac{\frac{1}{x}}{x}, \frac{\cos x}{1}, \frac{\frac{1}{x}}{x} \cdot \frac{\cos x}{1}\right)\]
    17. Simplified0.5

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

    if -0.0346527842528457 < x < 0.0329978667264259

    1. Initial program 62.2

      \[\frac{1 - \cos x}{x \cdot x}\]
    2. Using strategy rm
    3. Applied div-sub62.0

      \[\leadsto \color{blue}{\frac{1}{x \cdot x} - \frac{\cos x}{x \cdot x}}\]
    4. Simplified62.1

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

      \[\leadsto \frac{\frac{1}{x}}{x} - \color{blue}{\frac{\frac{\cos x}{x}}{x}}\]
    6. 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}}\]
    7. Simplified0.0

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{1}{720}, {x}^{4}, \frac{1}{2}\right) - \frac{1}{24} \cdot \left(x \cdot x\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -0.03465278425284570168463105233058740850538 \lor \neg \left(x \le 0.03299786672642589929749235011513519566506\right):\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{-1}{x}}{x}, \cos x, \frac{\frac{1}{x}}{x} \cdot \cos x\right) + \mathsf{fma}\left(1, \frac{\frac{1}{x}}{x}, \frac{\frac{-1}{x}}{x} \cdot \cos x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{1}{720}, {x}^{4}, \frac{1}{2}\right) - \left(x \cdot x\right) \cdot \frac{1}{24}\\ \end{array}\]

Reproduce

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