Average Error: 31.4 → 0.3
Time: 11.3s
Precision: 64
\[\frac{1 - \cos x}{x \cdot x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.03379739734255029354192956247970869299024 \lor \neg \left(x \le 0.03113880728354161825377488526100933086127\right):\\ \;\;\;\;\left(1 - \cos x\right) \cdot \frac{\frac{1}{x}}{x}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}\\ \end{array}\]
\frac{1 - \cos x}{x \cdot x}
\begin{array}{l}
\mathbf{if}\;x \le -0.03379739734255029354192956247970869299024 \lor \neg \left(x \le 0.03113880728354161825377488526100933086127\right):\\
\;\;\;\;\left(1 - \cos x\right) \cdot \frac{\frac{1}{x}}{x}\\

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

\end{array}
double f(double x) {
        double r18239 = 1.0;
        double r18240 = x;
        double r18241 = cos(r18240);
        double r18242 = r18239 - r18241;
        double r18243 = r18240 * r18240;
        double r18244 = r18242 / r18243;
        return r18244;
}

double f(double x) {
        double r18245 = x;
        double r18246 = -0.033797397342550294;
        bool r18247 = r18245 <= r18246;
        double r18248 = 0.031138807283541618;
        bool r18249 = r18245 <= r18248;
        double r18250 = !r18249;
        bool r18251 = r18247 || r18250;
        double r18252 = 1.0;
        double r18253 = cos(r18245);
        double r18254 = r18252 - r18253;
        double r18255 = 1.0;
        double r18256 = r18255 / r18245;
        double r18257 = r18256 / r18245;
        double r18258 = r18254 * r18257;
        double r18259 = 0.001388888888888889;
        double r18260 = 4.0;
        double r18261 = pow(r18245, r18260);
        double r18262 = r18259 * r18261;
        double r18263 = 0.5;
        double r18264 = r18262 + r18263;
        double r18265 = 0.041666666666666664;
        double r18266 = 2.0;
        double r18267 = pow(r18245, r18266);
        double r18268 = r18265 * r18267;
        double r18269 = r18264 - r18268;
        double r18270 = r18251 ? r18258 : r18269;
        return r18270;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if x < -0.033797397342550294 or 0.031138807283541618 < x

    1. Initial program 0.9

      \[\frac{1 - \cos x}{x \cdot x}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity0.9

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

      \[\leadsto \color{blue}{\frac{1}{x} \cdot \frac{1 - \cos x}{x}}\]
    5. Using strategy rm
    6. Applied div-sub0.7

      \[\leadsto \frac{1}{x} \cdot \color{blue}{\left(\frac{1}{x} - \frac{\cos x}{x}\right)}\]
    7. Using strategy rm
    8. Applied sub-div0.5

      \[\leadsto \frac{1}{x} \cdot \color{blue}{\frac{1 - \cos x}{x}}\]
    9. Applied associate-*r/0.5

      \[\leadsto \color{blue}{\frac{\frac{1}{x} \cdot \left(1 - \cos x\right)}{x}}\]
    10. Simplified0.5

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

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

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

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

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

    if -0.033797397342550294 < x < 0.031138807283541618

    1. Initial program 62.2

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

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

Reproduce

herbie shell --seed 2019297 
(FPCore (x)
  :name "cos2 (problem 3.4.1)"
  :precision binary64
  (/ (- 1 (cos x)) (* x x)))