Average Error: 31.0 → 0.4
Time: 3.9s
Precision: 64
\[\frac{1 - \cos x}{x \cdot x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.0345003221724181561:\\ \;\;\;\;\frac{1}{x} \cdot \frac{\log \left(e^{1 - \cos x}\right)}{x}\\ \mathbf{elif}\;x \le 0.0329960873997033124:\\ \;\;\;\;\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\log \left(1 - \cos x\right)}}{x \cdot x}\\ \end{array}\]
\frac{1 - \cos x}{x \cdot x}
\begin{array}{l}
\mathbf{if}\;x \le -0.0345003221724181561:\\
\;\;\;\;\frac{1}{x} \cdot \frac{\log \left(e^{1 - \cos x}\right)}{x}\\

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

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

\end{array}
double f(double x) {
        double r20462 = 1.0;
        double r20463 = x;
        double r20464 = cos(r20463);
        double r20465 = r20462 - r20464;
        double r20466 = r20463 * r20463;
        double r20467 = r20465 / r20466;
        return r20467;
}

double f(double x) {
        double r20468 = x;
        double r20469 = -0.034500322172418156;
        bool r20470 = r20468 <= r20469;
        double r20471 = 1.0;
        double r20472 = r20471 / r20468;
        double r20473 = 1.0;
        double r20474 = cos(r20468);
        double r20475 = r20473 - r20474;
        double r20476 = exp(r20475);
        double r20477 = log(r20476);
        double r20478 = r20477 / r20468;
        double r20479 = r20472 * r20478;
        double r20480 = 0.03299608739970331;
        bool r20481 = r20468 <= r20480;
        double r20482 = 0.001388888888888889;
        double r20483 = 4.0;
        double r20484 = pow(r20468, r20483);
        double r20485 = r20482 * r20484;
        double r20486 = 0.5;
        double r20487 = r20485 + r20486;
        double r20488 = 0.041666666666666664;
        double r20489 = 2.0;
        double r20490 = pow(r20468, r20489);
        double r20491 = r20488 * r20490;
        double r20492 = r20487 - r20491;
        double r20493 = log(r20475);
        double r20494 = exp(r20493);
        double r20495 = r20468 * r20468;
        double r20496 = r20494 / r20495;
        double r20497 = r20481 ? r20492 : r20496;
        double r20498 = r20470 ? r20479 : r20497;
        return r20498;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

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

    1. Initial program 1.1

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

      \[\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 add-log-exp0.6

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

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

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

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

    if -0.034500322172418156 < x < 0.03299608739970331

    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}}\]

    if 0.03299608739970331 < x

    1. Initial program 1.0

      \[\frac{1 - \cos x}{x \cdot x}\]
    2. Using strategy rm
    3. Applied add-exp-log1.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -0.0345003221724181561:\\ \;\;\;\;\frac{1}{x} \cdot \frac{\log \left(e^{1 - \cos x}\right)}{x}\\ \mathbf{elif}\;x \le 0.0329960873997033124:\\ \;\;\;\;\left(\frac{1}{720} \cdot {x}^{4} + \frac{1}{2}\right) - \frac{1}{24} \cdot {x}^{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\log \left(1 - \cos x\right)}}{x \cdot x}\\ \end{array}\]

Reproduce

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