Average Error: 39.6 → 16.5
Time: 8.3s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -3.18854517915407509 \cdot 10^{-11}:\\ \;\;\;\;\left(\log \left(e^{\cos x \cdot \cos \varepsilon}\right) - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \mathbf{elif}\;\varepsilon \le 3.24354239355510184 \cdot 10^{-8}:\\ \;\;\;\;\frac{1}{6} \cdot \left({x}^{3} \cdot \varepsilon\right) - \left(x \cdot \varepsilon + \frac{1}{2} \cdot {\varepsilon}^{2}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \log \left(e^{\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}\right) \cdot \left(\sqrt[3]{\sin x} \cdot \sin \varepsilon\right)}\right)\right) - \cos x\\ \end{array}\]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -3.18854517915407509 \cdot 10^{-11}:\\
\;\;\;\;\left(\log \left(e^{\cos x \cdot \cos \varepsilon}\right) - \sin x \cdot \sin \varepsilon\right) - \cos x\\

\mathbf{elif}\;\varepsilon \le 3.24354239355510184 \cdot 10^{-8}:\\
\;\;\;\;\frac{1}{6} \cdot \left({x}^{3} \cdot \varepsilon\right) - \left(x \cdot \varepsilon + \frac{1}{2} \cdot {\varepsilon}^{2}\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \log \left(e^{\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}\right) \cdot \left(\sqrt[3]{\sin x} \cdot \sin \varepsilon\right)}\right)\right) - \cos x\\

\end{array}
double f(double x, double eps) {
        double r45611 = x;
        double r45612 = eps;
        double r45613 = r45611 + r45612;
        double r45614 = cos(r45613);
        double r45615 = cos(r45611);
        double r45616 = r45614 - r45615;
        return r45616;
}

double f(double x, double eps) {
        double r45617 = eps;
        double r45618 = -3.188545179154075e-11;
        bool r45619 = r45617 <= r45618;
        double r45620 = x;
        double r45621 = cos(r45620);
        double r45622 = cos(r45617);
        double r45623 = r45621 * r45622;
        double r45624 = exp(r45623);
        double r45625 = log(r45624);
        double r45626 = sin(r45620);
        double r45627 = sin(r45617);
        double r45628 = r45626 * r45627;
        double r45629 = r45625 - r45628;
        double r45630 = r45629 - r45621;
        double r45631 = 3.243542393555102e-08;
        bool r45632 = r45617 <= r45631;
        double r45633 = 0.16666666666666666;
        double r45634 = 3.0;
        double r45635 = pow(r45620, r45634);
        double r45636 = r45635 * r45617;
        double r45637 = r45633 * r45636;
        double r45638 = r45620 * r45617;
        double r45639 = 0.5;
        double r45640 = 2.0;
        double r45641 = pow(r45617, r45640);
        double r45642 = r45639 * r45641;
        double r45643 = r45638 + r45642;
        double r45644 = r45637 - r45643;
        double r45645 = cbrt(r45626);
        double r45646 = r45645 * r45645;
        double r45647 = r45645 * r45627;
        double r45648 = r45646 * r45647;
        double r45649 = exp(r45648);
        double r45650 = log(r45649);
        double r45651 = r45623 - r45650;
        double r45652 = r45651 - r45621;
        double r45653 = r45632 ? r45644 : r45652;
        double r45654 = r45619 ? r45630 : r45653;
        return r45654;
}

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 < -3.188545179154075e-11

    1. Initial program 31.3

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

      \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right)} - \cos x\]
    4. Using strategy rm
    5. Applied add-log-exp1.8

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

    if -3.188545179154075e-11 < eps < 3.243542393555102e-08

    1. Initial program 49.2

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

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

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

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

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

    if 3.243542393555102e-08 < eps

    1. Initial program 29.6

      \[\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. Using strategy rm
    5. Applied add-log-exp1.3

      \[\leadsto \left(\cos x \cdot \cos \varepsilon - \color{blue}{\log \left(e^{\sin x \cdot \sin \varepsilon}\right)}\right) - \cos x\]
    6. Using strategy rm
    7. Applied add-cube-cbrt1.4

      \[\leadsto \left(\cos x \cdot \cos \varepsilon - \log \left(e^{\color{blue}{\left(\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}\right) \cdot \sqrt[3]{\sin x}\right)} \cdot \sin \varepsilon}\right)\right) - \cos x\]
    8. Applied associate-*l*1.4

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -3.18854517915407509 \cdot 10^{-11}:\\ \;\;\;\;\left(\log \left(e^{\cos x \cdot \cos \varepsilon}\right) - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \mathbf{elif}\;\varepsilon \le 3.24354239355510184 \cdot 10^{-8}:\\ \;\;\;\;\frac{1}{6} \cdot \left({x}^{3} \cdot \varepsilon\right) - \left(x \cdot \varepsilon + \frac{1}{2} \cdot {\varepsilon}^{2}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \log \left(e^{\left(\sqrt[3]{\sin x} \cdot \sqrt[3]{\sin x}\right) \cdot \left(\sqrt[3]{\sin x} \cdot \sin \varepsilon\right)}\right)\right) - \cos x\\ \end{array}\]

Reproduce

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