Average Error: 40.1 → 16.6
Time: 13.2s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le \frac{-444323874425227}{37778931862957161709568}:\\ \;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon\right)}^{3} - {\left(\sin x \cdot \sin \varepsilon + \cos x\right)}^{3}}{\left(\sin x \cdot \sin \varepsilon + \cos x\right) \cdot \left(\left(\sin x \cdot \sin \varepsilon + \cos x\right) + \cos x \cdot \cos \varepsilon\right) + \left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right)}\\ \mathbf{elif}\;\varepsilon \le \frac{3848614362414781}{75557863725914323419136}:\\ \;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\ \mathbf{else}:\\ \;\;\;\;\cos x \cdot \cos \varepsilon - \frac{{\left(\sin x \cdot \sin \varepsilon\right)}^{3} + {\left(\cos x\right)}^{3}}{\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon - \cos x\right) + \cos x \cdot \cos x}\\ \end{array}\]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le \frac{-444323874425227}{37778931862957161709568}:\\
\;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon\right)}^{3} - {\left(\sin x \cdot \sin \varepsilon + \cos x\right)}^{3}}{\left(\sin x \cdot \sin \varepsilon + \cos x\right) \cdot \left(\left(\sin x \cdot \sin \varepsilon + \cos x\right) + \cos x \cdot \cos \varepsilon\right) + \left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right)}\\

\mathbf{elif}\;\varepsilon \le \frac{3848614362414781}{75557863725914323419136}:\\
\;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\

\mathbf{else}:\\
\;\;\;\;\cos x \cdot \cos \varepsilon - \frac{{\left(\sin x \cdot \sin \varepsilon\right)}^{3} + {\left(\cos x\right)}^{3}}{\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon - \cos x\right) + \cos x \cdot \cos x}\\

\end{array}
double f(double x, double eps) {
        double r34687 = x;
        double r34688 = eps;
        double r34689 = r34687 + r34688;
        double r34690 = cos(r34689);
        double r34691 = cos(r34687);
        double r34692 = r34690 - r34691;
        return r34692;
}

double f(double x, double eps) {
        double r34693 = eps;
        double r34694 = -444323874425227.0;
        double r34695 = 3.777893186295716e+22;
        double r34696 = r34694 / r34695;
        bool r34697 = r34693 <= r34696;
        double r34698 = x;
        double r34699 = cos(r34698);
        double r34700 = cos(r34693);
        double r34701 = r34699 * r34700;
        double r34702 = 3.0;
        double r34703 = pow(r34701, r34702);
        double r34704 = sin(r34698);
        double r34705 = sin(r34693);
        double r34706 = r34704 * r34705;
        double r34707 = r34706 + r34699;
        double r34708 = pow(r34707, r34702);
        double r34709 = r34703 - r34708;
        double r34710 = r34707 + r34701;
        double r34711 = r34707 * r34710;
        double r34712 = r34701 * r34701;
        double r34713 = r34711 + r34712;
        double r34714 = r34709 / r34713;
        double r34715 = 3848614362414781.0;
        double r34716 = 7.555786372591432e+22;
        double r34717 = r34715 / r34716;
        bool r34718 = r34693 <= r34717;
        double r34719 = 0.16666666666666666;
        double r34720 = pow(r34698, r34702);
        double r34721 = r34719 * r34720;
        double r34722 = r34721 - r34698;
        double r34723 = 0.5;
        double r34724 = r34693 * r34723;
        double r34725 = r34722 - r34724;
        double r34726 = r34693 * r34725;
        double r34727 = pow(r34706, r34702);
        double r34728 = pow(r34699, r34702);
        double r34729 = r34727 + r34728;
        double r34730 = r34706 - r34699;
        double r34731 = r34706 * r34730;
        double r34732 = r34699 * r34699;
        double r34733 = r34731 + r34732;
        double r34734 = r34729 / r34733;
        double r34735 = r34701 - r34734;
        double r34736 = r34718 ? r34726 : r34735;
        double r34737 = r34697 ? r34714 : r34736;
        return r34737;
}

Error

Bits error versus x

Bits error versus eps

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if eps < -1.1761155027807802e-08

    1. Initial program 32.2

      \[\cos \left(x + \varepsilon\right) - \cos x\]
    2. Using strategy rm
    3. Applied cos-sum1.2

      \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)} - \cos x\]
    4. Applied associate--l-1.2

      \[\leadsto \color{blue}{\cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon + \cos x\right)}\]
    5. Using strategy rm
    6. Applied flip3--1.3

      \[\leadsto \color{blue}{\frac{{\left(\cos x \cdot \cos \varepsilon\right)}^{3} - {\left(\sin x \cdot \sin \varepsilon + \cos x\right)}^{3}}{\left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right) + \left(\left(\sin x \cdot \sin \varepsilon + \cos x\right) \cdot \left(\sin x \cdot \sin \varepsilon + \cos x\right) + \left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon + \cos x\right)\right)}}\]
    7. Simplified1.3

      \[\leadsto \frac{{\left(\cos x \cdot \cos \varepsilon\right)}^{3} - {\left(\sin x \cdot \sin \varepsilon + \cos x\right)}^{3}}{\color{blue}{\left(\sin x \cdot \sin \varepsilon + \cos x\right) \cdot \left(\left(\sin x \cdot \sin \varepsilon + \cos x\right) + \cos x \cdot \cos \varepsilon\right) + \left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right)}}\]

    if -1.1761155027807802e-08 < eps < 5.093598697252222e-08

    1. Initial program 49.4

      \[\cos \left(x + \varepsilon\right) - \cos x\]
    2. Taylor expanded around 0 32.7

      \[\leadsto \color{blue}{\frac{1}{6} \cdot \left({x}^{3} \cdot \varepsilon\right) - \left(x \cdot \varepsilon + \frac{1}{2} \cdot {\varepsilon}^{2}\right)}\]
    3. Simplified32.7

      \[\leadsto \color{blue}{\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)}\]

    if 5.093598697252222e-08 < eps

    1. Initial program 30.4

      \[\cos \left(x + \varepsilon\right) - \cos x\]
    2. Using strategy rm
    3. Applied cos-sum1.1

      \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)} - \cos x\]
    4. Applied associate--l-1.1

      \[\leadsto \color{blue}{\cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon + \cos x\right)}\]
    5. Using strategy rm
    6. Applied flip3-+1.2

      \[\leadsto \cos x \cdot \cos \varepsilon - \color{blue}{\frac{{\left(\sin x \cdot \sin \varepsilon\right)}^{3} + {\left(\cos x\right)}^{3}}{\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon\right) + \left(\cos x \cdot \cos x - \left(\sin x \cdot \sin \varepsilon\right) \cdot \cos x\right)}}\]
    7. Simplified1.2

      \[\leadsto \cos x \cdot \cos \varepsilon - \frac{{\left(\sin x \cdot \sin \varepsilon\right)}^{3} + {\left(\cos x\right)}^{3}}{\color{blue}{\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon - \cos x\right) + \cos x \cdot \cos x}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification16.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le \frac{-444323874425227}{37778931862957161709568}:\\ \;\;\;\;\frac{{\left(\cos x \cdot \cos \varepsilon\right)}^{3} - {\left(\sin x \cdot \sin \varepsilon + \cos x\right)}^{3}}{\left(\sin x \cdot \sin \varepsilon + \cos x\right) \cdot \left(\left(\sin x \cdot \sin \varepsilon + \cos x\right) + \cos x \cdot \cos \varepsilon\right) + \left(\cos x \cdot \cos \varepsilon\right) \cdot \left(\cos x \cdot \cos \varepsilon\right)}\\ \mathbf{elif}\;\varepsilon \le \frac{3848614362414781}{75557863725914323419136}:\\ \;\;\;\;\varepsilon \cdot \left(\left(\frac{1}{6} \cdot {x}^{3} - x\right) - \varepsilon \cdot \frac{1}{2}\right)\\ \mathbf{else}:\\ \;\;\;\;\cos x \cdot \cos \varepsilon - \frac{{\left(\sin x \cdot \sin \varepsilon\right)}^{3} + {\left(\cos x\right)}^{3}}{\left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon - \cos x\right) + \cos x \cdot \cos x}\\ \end{array}\]

Reproduce

herbie shell --seed 197574269 
(FPCore (x eps)
  :name "2cos (problem 3.3.5)"
  :precision binary64
  (- (cos (+ x eps)) (cos x)))