Average Error: 31.2 → 0.2
Time: 17.8s
Precision: 64
\[\frac{1 - \cos x}{x \cdot x}\]
\[\frac{1}{x} \cdot \left(\tan \left(\frac{x}{2}\right) \cdot \frac{\sin x}{x}\right)\]
\frac{1 - \cos x}{x \cdot x}
\frac{1}{x} \cdot \left(\tan \left(\frac{x}{2}\right) \cdot \frac{\sin x}{x}\right)
double f(double x) {
        double r521006 = 1.0;
        double r521007 = x;
        double r521008 = cos(r521007);
        double r521009 = r521006 - r521008;
        double r521010 = r521007 * r521007;
        double r521011 = r521009 / r521010;
        return r521011;
}

double f(double x) {
        double r521012 = 1.0;
        double r521013 = x;
        double r521014 = r521012 / r521013;
        double r521015 = 2.0;
        double r521016 = r521013 / r521015;
        double r521017 = tan(r521016);
        double r521018 = sin(r521013);
        double r521019 = r521018 / r521013;
        double r521020 = r521017 * r521019;
        double r521021 = r521014 * r521020;
        return r521021;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 31.2

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

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

    \[\leadsto \frac{\frac{\color{blue}{\sin x \cdot \sin x}}{1 + \cos x}}{x \cdot x}\]
  5. Using strategy rm
  6. Applied *-un-lft-identity15.4

    \[\leadsto \frac{\color{blue}{1 \cdot \frac{\sin x \cdot \sin x}{1 + \cos x}}}{x \cdot x}\]
  7. Applied times-frac15.3

    \[\leadsto \color{blue}{\frac{1}{x} \cdot \frac{\frac{\sin x \cdot \sin x}{1 + \cos x}}{x}}\]
  8. Simplified0.2

    \[\leadsto \frac{1}{x} \cdot \color{blue}{\left(\frac{\sin x}{x} \cdot \tan \left(\frac{x}{2}\right)\right)}\]
  9. Final simplification0.2

    \[\leadsto \frac{1}{x} \cdot \left(\tan \left(\frac{x}{2}\right) \cdot \frac{\sin x}{x}\right)\]

Reproduce

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