Average Error: 39.1 → 0.7
Time: 5.3s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -3.893780865416545 \cdot 10^{-5}:\\ \;\;\;\;\frac{\left(\cos x \cdot \cos \varepsilon - \cos x\right) \cdot \left(\cos x \cdot \cos \varepsilon - \cos x\right) - \left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon\right)}{\left(\cos x \cdot \cos \varepsilon - \cos x\right) + \sin x \cdot \sin \varepsilon}\\ \mathbf{elif}\;\varepsilon \le 1.14867786703334021 \cdot 10^{-5}:\\ \;\;\;\;\frac{-1}{2} \cdot {\varepsilon}^{2} - \sin x \cdot \sin \varepsilon\\ \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 -3.893780865416545 \cdot 10^{-5}:\\
\;\;\;\;\frac{\left(\cos x \cdot \cos \varepsilon - \cos x\right) \cdot \left(\cos x \cdot \cos \varepsilon - \cos x\right) - \left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon\right)}{\left(\cos x \cdot \cos \varepsilon - \cos x\right) + \sin x \cdot \sin \varepsilon}\\

\mathbf{elif}\;\varepsilon \le 1.14867786703334021 \cdot 10^{-5}:\\
\;\;\;\;\frac{-1}{2} \cdot {\varepsilon}^{2} - \sin x \cdot \sin \varepsilon\\

\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 code(double x, double eps) {
	return (cos((x + eps)) - cos(x));
}
double code(double x, double eps) {
	double VAR;
	if ((eps <= -3.893780865416545e-05)) {
		VAR = (((((cos(x) * cos(eps)) - cos(x)) * ((cos(x) * cos(eps)) - cos(x))) - ((sin(x) * sin(eps)) * (sin(x) * sin(eps)))) / (((cos(x) * cos(eps)) - cos(x)) + (sin(x) * sin(eps))));
	} else {
		double VAR_1;
		if ((eps <= 1.1486778670333402e-05)) {
			VAR_1 = ((-0.5 * pow(eps, 2.0)) - (sin(x) * sin(eps)));
		} else {
			VAR_1 = ((cos(x) * cos(eps)) - ((pow((sin(x) * sin(eps)), 3.0) + pow(cos(x), 3.0)) / (((sin(x) * sin(eps)) * ((sin(x) * sin(eps)) - cos(x))) + (cos(x) * cos(x)))));
		}
		VAR = VAR_1;
	}
	return VAR;
}

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.893780865416545e-05

    1. Initial program 29.9

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

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

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

      \[\leadsto \cos x \cdot \cos \varepsilon - \color{blue}{\left(\cos x + \sin x \cdot \sin \varepsilon\right)}\]
    8. Applied associate--r+0.9

      \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon - \cos x\right) - \sin x \cdot \sin \varepsilon}\]
    9. Using strategy rm
    10. Applied flip--1.0

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

    if -3.893780865416545e-05 < eps < 1.1486778670333402e-05

    1. Initial program 48.8

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

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

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

      \[\leadsto \cos x \cdot \cos \varepsilon - \color{blue}{\left(\cos x + \sin x \cdot \sin \varepsilon\right)}\]
    8. Applied associate--r+11.8

      \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon - \cos x\right) - \sin x \cdot \sin \varepsilon}\]
    9. Taylor expanded around 0 0.4

      \[\leadsto \color{blue}{\frac{-1}{2} \cdot {\varepsilon}^{2}} - \sin x \cdot \sin \varepsilon\]

    if 1.1486778670333402e-05 < eps

    1. Initial program 29.6

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

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

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

      \[\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)}}\]
    8. Simplified1.1

      \[\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 simplification0.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -3.893780865416545 \cdot 10^{-5}:\\ \;\;\;\;\frac{\left(\cos x \cdot \cos \varepsilon - \cos x\right) \cdot \left(\cos x \cdot \cos \varepsilon - \cos x\right) - \left(\sin x \cdot \sin \varepsilon\right) \cdot \left(\sin x \cdot \sin \varepsilon\right)}{\left(\cos x \cdot \cos \varepsilon - \cos x\right) + \sin x \cdot \sin \varepsilon}\\ \mathbf{elif}\;\varepsilon \le 1.14867786703334021 \cdot 10^{-5}:\\ \;\;\;\;\frac{-1}{2} \cdot {\varepsilon}^{2} - \sin x \cdot \sin \varepsilon\\ \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 2020071 
(FPCore (x eps)
  :name "2cos (problem 3.3.5)"
  :precision binary64
  (- (cos (+ x eps)) (cos x)))