Average Error: 30.9 → 0.3
Time: 40.2s
Precision: 64
\[\frac{1.0 - \cos x}{x \cdot x}\]
\[\begin{array}{l} \mathbf{if}\;x \le -0.027773708198225854:\\ \;\;\;\;\frac{\frac{\left(1.0 \cdot \left(1.0 \cdot 1.0\right) - \cos x \cdot \frac{1}{2}\right) - \cos x \cdot \left(\cos \left(2 \cdot x\right) \cdot \frac{1}{2}\right)}{\left(\cos x \cdot 1.0 + \cos x \cdot \cos x\right) + 1.0 \cdot 1.0}}{x} \cdot \frac{1}{x}\\ \mathbf{elif}\;x \le 0.031731941663915054:\\ \;\;\;\;\left(\left(x \cdot x\right) \cdot \frac{1}{720} - \frac{1}{24}\right) \cdot \left(x \cdot x\right) + \frac{1}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{1.0 - \cos x}{x} \cdot \frac{1}{x}\\ \end{array}\]
\frac{1.0 - \cos x}{x \cdot x}
\begin{array}{l}
\mathbf{if}\;x \le -0.027773708198225854:\\
\;\;\;\;\frac{\frac{\left(1.0 \cdot \left(1.0 \cdot 1.0\right) - \cos x \cdot \frac{1}{2}\right) - \cos x \cdot \left(\cos \left(2 \cdot x\right) \cdot \frac{1}{2}\right)}{\left(\cos x \cdot 1.0 + \cos x \cdot \cos x\right) + 1.0 \cdot 1.0}}{x} \cdot \frac{1}{x}\\

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

\mathbf{else}:\\
\;\;\;\;\frac{1.0 - \cos x}{x} \cdot \frac{1}{x}\\

\end{array}
double f(double x) {
        double r741651 = 1.0;
        double r741652 = x;
        double r741653 = cos(r741652);
        double r741654 = r741651 - r741653;
        double r741655 = r741652 * r741652;
        double r741656 = r741654 / r741655;
        return r741656;
}

double f(double x) {
        double r741657 = x;
        double r741658 = -0.027773708198225854;
        bool r741659 = r741657 <= r741658;
        double r741660 = 1.0;
        double r741661 = r741660 * r741660;
        double r741662 = r741660 * r741661;
        double r741663 = cos(r741657);
        double r741664 = 0.5;
        double r741665 = r741663 * r741664;
        double r741666 = r741662 - r741665;
        double r741667 = 2.0;
        double r741668 = r741667 * r741657;
        double r741669 = cos(r741668);
        double r741670 = r741669 * r741664;
        double r741671 = r741663 * r741670;
        double r741672 = r741666 - r741671;
        double r741673 = r741663 * r741660;
        double r741674 = r741663 * r741663;
        double r741675 = r741673 + r741674;
        double r741676 = r741675 + r741661;
        double r741677 = r741672 / r741676;
        double r741678 = r741677 / r741657;
        double r741679 = 1.0;
        double r741680 = r741679 / r741657;
        double r741681 = r741678 * r741680;
        double r741682 = 0.031731941663915054;
        bool r741683 = r741657 <= r741682;
        double r741684 = r741657 * r741657;
        double r741685 = 0.001388888888888889;
        double r741686 = r741684 * r741685;
        double r741687 = 0.041666666666666664;
        double r741688 = r741686 - r741687;
        double r741689 = r741688 * r741684;
        double r741690 = r741689 + r741664;
        double r741691 = r741660 - r741663;
        double r741692 = r741691 / r741657;
        double r741693 = r741692 * r741680;
        double r741694 = r741683 ? r741690 : r741693;
        double r741695 = r741659 ? r741681 : r741694;
        return r741695;
}

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.027773708198225854

    1. Initial program 1.1

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

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

      \[\leadsto \color{blue}{\frac{1}{x} \cdot \frac{1.0 - \cos x}{x}}\]
    5. Using strategy rm
    6. Applied flip3--0.6

      \[\leadsto \frac{1}{x} \cdot \frac{\color{blue}{\frac{{1.0}^{3} - {\left(\cos x\right)}^{3}}{1.0 \cdot 1.0 + \left(\cos x \cdot \cos x + 1.0 \cdot \cos x\right)}}}{x}\]
    7. Simplified0.5

      \[\leadsto \frac{1}{x} \cdot \frac{\frac{\color{blue}{\left(1.0 \cdot 1.0\right) \cdot 1.0 - \cos x \cdot \left(\cos x \cdot \cos x\right)}}{1.0 \cdot 1.0 + \left(\cos x \cdot \cos x + 1.0 \cdot \cos x\right)}}{x}\]
    8. Using strategy rm
    9. Applied sqr-cos0.5

      \[\leadsto \frac{1}{x} \cdot \frac{\frac{\left(1.0 \cdot 1.0\right) \cdot 1.0 - \cos x \cdot \color{blue}{\left(\frac{1}{2} + \frac{1}{2} \cdot \cos \left(2 \cdot x\right)\right)}}{1.0 \cdot 1.0 + \left(\cos x \cdot \cos x + 1.0 \cdot \cos x\right)}}{x}\]
    10. Applied distribute-rgt-in0.5

      \[\leadsto \frac{1}{x} \cdot \frac{\frac{\left(1.0 \cdot 1.0\right) \cdot 1.0 - \color{blue}{\left(\frac{1}{2} \cdot \cos x + \left(\frac{1}{2} \cdot \cos \left(2 \cdot x\right)\right) \cdot \cos x\right)}}{1.0 \cdot 1.0 + \left(\cos x \cdot \cos x + 1.0 \cdot \cos x\right)}}{x}\]
    11. Applied associate--r+0.5

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

    if -0.027773708198225854 < x < 0.031731941663915054

    1. Initial program 62.2

      \[\frac{1.0 - \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}{\left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \frac{1}{720} - \frac{1}{24}\right) + \frac{1}{2}}\]

    if 0.031731941663915054 < x

    1. Initial program 1.0

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -0.027773708198225854:\\ \;\;\;\;\frac{\frac{\left(1.0 \cdot \left(1.0 \cdot 1.0\right) - \cos x \cdot \frac{1}{2}\right) - \cos x \cdot \left(\cos \left(2 \cdot x\right) \cdot \frac{1}{2}\right)}{\left(\cos x \cdot 1.0 + \cos x \cdot \cos x\right) + 1.0 \cdot 1.0}}{x} \cdot \frac{1}{x}\\ \mathbf{elif}\;x \le 0.031731941663915054:\\ \;\;\;\;\left(\left(x \cdot x\right) \cdot \frac{1}{720} - \frac{1}{24}\right) \cdot \left(x \cdot x\right) + \frac{1}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{1.0 - \cos x}{x} \cdot \frac{1}{x}\\ \end{array}\]

Reproduce

herbie shell --seed 2019165 
(FPCore (x)
  :name "cos2 (problem 3.4.1)"
  (/ (- 1.0 (cos x)) (* x x)))