Average Error: 40.0 → 15.7
Time: 6.3s
Precision: 64
\[\cos \left(x + \varepsilon\right) - \cos x\]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \le -1.5330496627903165 \cdot 10^{-7} \lor \neg \left(\varepsilon \le 4.3765411525387599 \cdot 10^{-4}\right):\\ \;\;\;\;\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right) + \mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right) \cdot \left(\left(-1\right) + 1\right)\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left({\varepsilon}^{3} \cdot \frac{1}{24} - \mathsf{fma}\left(\frac{1}{2}, \varepsilon, x\right)\right) + \mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right) \cdot \left(\left(-1\right) + 1\right)\\ \end{array}\]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \le -1.5330496627903165 \cdot 10^{-7} \lor \neg \left(\varepsilon \le 4.3765411525387599 \cdot 10^{-4}\right):\\
\;\;\;\;\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right) + \mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right) \cdot \left(\left(-1\right) + 1\right)\\

\mathbf{else}:\\
\;\;\;\;\varepsilon \cdot \left({\varepsilon}^{3} \cdot \frac{1}{24} - \mathsf{fma}\left(\frac{1}{2}, \varepsilon, x\right)\right) + \mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right) \cdot \left(\left(-1\right) + 1\right)\\

\end{array}
double code(double x, double eps) {
	return (cos((x + eps)) - cos(x));
}
double code(double x, double eps) {
	double temp;
	if (((eps <= -1.5330496627903165e-07) || !(eps <= 0.000437654115253876))) {
		temp = (fma(cos(eps), cos(x), -fma(sin(x), sin(eps), cos(x))) + (fma(sin(x), sin(eps), cos(x)) * (-1.0 + 1.0)));
	} else {
		temp = ((eps * ((pow(eps, 3.0) * 0.041666666666666664) - fma(0.5, eps, x))) + (fma(sin(x), sin(eps), cos(x)) * (-1.0 + 1.0)));
	}
	return temp;
}

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 2 regimes
  2. if eps < -1.5330496627903165e-07 or 0.000437654115253876 < eps

    1. Initial program 30.5

      \[\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. Simplified1.1

      \[\leadsto \cos x \cdot \cos \varepsilon - \color{blue}{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}\]
    6. Using strategy rm
    7. Applied add-cube-cbrt1.5

      \[\leadsto \cos x \cdot \cos \varepsilon - \color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}}\]
    8. Applied prod-diff1.5

      \[\leadsto \color{blue}{\mathsf{fma}\left(\cos x, \cos \varepsilon, -\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}\right)\right) + \mathsf{fma}\left(-\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}, \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}, \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}\right)\right)}\]
    9. Simplified1.0

      \[\leadsto \color{blue}{\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right)} + \mathsf{fma}\left(-\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}, \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}, \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}\right)\right)\]
    10. Simplified1.0

      \[\leadsto \mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right) + \color{blue}{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right) \cdot \left(\left(-1\right) + 1\right)}\]

    if -1.5330496627903165e-07 < eps < 0.000437654115253876

    1. Initial program 49.8

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

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

      \[\leadsto \color{blue}{\cos x \cdot \cos \varepsilon - \left(\sin x \cdot \sin \varepsilon + \cos x\right)}\]
    5. Simplified49.2

      \[\leadsto \cos x \cdot \cos \varepsilon - \color{blue}{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}\]
    6. Using strategy rm
    7. Applied add-cube-cbrt49.8

      \[\leadsto \cos x \cdot \cos \varepsilon - \color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}}\]
    8. Applied prod-diff49.8

      \[\leadsto \color{blue}{\mathsf{fma}\left(\cos x, \cos \varepsilon, -\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}\right)\right) + \mathsf{fma}\left(-\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}, \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}, \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}\right)\right)}\]
    9. Simplified49.8

      \[\leadsto \color{blue}{\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right)} + \mathsf{fma}\left(-\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}, \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}, \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \left(\sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}\right)\right)\]
    10. Simplified49.2

      \[\leadsto \mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right) + \color{blue}{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right) \cdot \left(\left(-1\right) + 1\right)}\]
    11. Taylor expanded around 0 30.8

      \[\leadsto \color{blue}{\left(\frac{1}{24} \cdot {\varepsilon}^{4} - \left(x \cdot \varepsilon + \frac{1}{2} \cdot {\varepsilon}^{2}\right)\right)} + \mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right) \cdot \left(\left(-1\right) + 1\right)\]
    12. Simplified30.8

      \[\leadsto \color{blue}{\varepsilon \cdot \left({\varepsilon}^{3} \cdot \frac{1}{24} - \mathsf{fma}\left(\frac{1}{2}, \varepsilon, x\right)\right)} + \mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right) \cdot \left(\left(-1\right) + 1\right)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification15.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \le -1.5330496627903165 \cdot 10^{-7} \lor \neg \left(\varepsilon \le 4.3765411525387599 \cdot 10^{-4}\right):\\ \;\;\;\;\mathsf{fma}\left(\cos \varepsilon, \cos x, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right) + \mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right) \cdot \left(\left(-1\right) + 1\right)\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left({\varepsilon}^{3} \cdot \frac{1}{24} - \mathsf{fma}\left(\frac{1}{2}, \varepsilon, x\right)\right) + \mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right) \cdot \left(\left(-1\right) + 1\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020058 +o rules:numerics
(FPCore (x eps)
  :name "2cos (problem 3.3.5)"
  :precision binary64
  (- (cos (+ x eps)) (cos x)))