2cos (problem 3.3.5)

?

Percentage Accurate: 38.4% → 99.2%
Time: 16.3s
Precision: binary64
Cost: 40136

?

\[\cos \left(x + \varepsilon\right) - \cos x \]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.00325:\\ \;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, \left(-\cos x\right) - \sin x \cdot \sin \varepsilon\right)\\ \mathbf{elif}\;\varepsilon \leq 0.0014:\\ \;\;\;\;\left(-2 \cdot \left(\left(\sin x \cdot {\varepsilon}^{3}\right) \cdot -0.08333333333333333\right) - \varepsilon \cdot \sin x\right) + \cos x \cdot \mathsf{fma}\left({\varepsilon}^{4}, 0.041666666666666664, \varepsilon \cdot \left(\varepsilon \cdot -0.5\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\sin x, -\sin \varepsilon, \cos x \cdot \left(\cos \varepsilon + -1\right)\right)\\ \end{array} \]
(FPCore (x eps) :precision binary64 (- (cos (+ x eps)) (cos x)))
(FPCore (x eps)
 :precision binary64
 (if (<= eps -0.00325)
   (fma (cos x) (cos eps) (- (- (cos x)) (* (sin x) (sin eps))))
   (if (<= eps 0.0014)
     (+
      (-
       (* -2.0 (* (* (sin x) (pow eps 3.0)) -0.08333333333333333))
       (* eps (sin x)))
      (*
       (cos x)
       (fma (pow eps 4.0) 0.041666666666666664 (* eps (* eps -0.5)))))
     (fma (sin x) (- (sin eps)) (* (cos x) (+ (cos eps) -1.0))))))
double code(double x, double eps) {
	return cos((x + eps)) - cos(x);
}
double code(double x, double eps) {
	double tmp;
	if (eps <= -0.00325) {
		tmp = fma(cos(x), cos(eps), (-cos(x) - (sin(x) * sin(eps))));
	} else if (eps <= 0.0014) {
		tmp = ((-2.0 * ((sin(x) * pow(eps, 3.0)) * -0.08333333333333333)) - (eps * sin(x))) + (cos(x) * fma(pow(eps, 4.0), 0.041666666666666664, (eps * (eps * -0.5))));
	} else {
		tmp = fma(sin(x), -sin(eps), (cos(x) * (cos(eps) + -1.0)));
	}
	return tmp;
}
function code(x, eps)
	return Float64(cos(Float64(x + eps)) - cos(x))
end
function code(x, eps)
	tmp = 0.0
	if (eps <= -0.00325)
		tmp = fma(cos(x), cos(eps), Float64(Float64(-cos(x)) - Float64(sin(x) * sin(eps))));
	elseif (eps <= 0.0014)
		tmp = Float64(Float64(Float64(-2.0 * Float64(Float64(sin(x) * (eps ^ 3.0)) * -0.08333333333333333)) - Float64(eps * sin(x))) + Float64(cos(x) * fma((eps ^ 4.0), 0.041666666666666664, Float64(eps * Float64(eps * -0.5)))));
	else
		tmp = fma(sin(x), Float64(-sin(eps)), Float64(cos(x) * Float64(cos(eps) + -1.0)));
	end
	return tmp
end
code[x_, eps_] := N[(N[Cos[N[(x + eps), $MachinePrecision]], $MachinePrecision] - N[Cos[x], $MachinePrecision]), $MachinePrecision]
code[x_, eps_] := If[LessEqual[eps, -0.00325], N[(N[Cos[x], $MachinePrecision] * N[Cos[eps], $MachinePrecision] + N[((-N[Cos[x], $MachinePrecision]) - N[(N[Sin[x], $MachinePrecision] * N[Sin[eps], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[eps, 0.0014], N[(N[(N[(-2.0 * N[(N[(N[Sin[x], $MachinePrecision] * N[Power[eps, 3.0], $MachinePrecision]), $MachinePrecision] * -0.08333333333333333), $MachinePrecision]), $MachinePrecision] - N[(eps * N[Sin[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[Cos[x], $MachinePrecision] * N[(N[Power[eps, 4.0], $MachinePrecision] * 0.041666666666666664 + N[(eps * N[(eps * -0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[Sin[x], $MachinePrecision] * (-N[Sin[eps], $MachinePrecision]) + N[(N[Cos[x], $MachinePrecision] * N[(N[Cos[eps], $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \leq -0.00325:\\
\;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, \left(-\cos x\right) - \sin x \cdot \sin \varepsilon\right)\\

\mathbf{elif}\;\varepsilon \leq 0.0014:\\
\;\;\;\;\left(-2 \cdot \left(\left(\sin x \cdot {\varepsilon}^{3}\right) \cdot -0.08333333333333333\right) - \varepsilon \cdot \sin x\right) + \cos x \cdot \mathsf{fma}\left({\varepsilon}^{4}, 0.041666666666666664, \varepsilon \cdot \left(\varepsilon \cdot -0.5\right)\right)\\

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


\end{array}

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Herbie found 14 alternatives:

AlternativeAccuracySpeedup

Accuracy vs Speed

The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Bogosity?

Bogosity

Derivation?

  1. Split input into 3 regimes
  2. if eps < -0.00324999999999999985

    1. Initial program 58.5%

      \[\cos \left(x + \varepsilon\right) - \cos x \]
    2. Applied egg-rr98.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\cos x, \cos \varepsilon, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right)} \]
      Step-by-step derivation

      [Start]58.5%

      \[ \cos \left(x + \varepsilon\right) - \cos x \]

      cos-sum [=>]98.7%

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

      associate--l- [=>]98.7%

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

      fma-neg [=>]98.8%

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

      fma-def [=>]98.8%

      \[ \mathsf{fma}\left(\cos x, \cos \varepsilon, -\color{blue}{\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)}\right) \]
    3. Applied egg-rr98.8%

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

      [Start]98.8%

      \[ \mathsf{fma}\left(\cos x, \cos \varepsilon, -\mathsf{fma}\left(\sin x, \sin \varepsilon, \cos x\right)\right) \]

      fma-udef [=>]98.8%

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

    if -0.00324999999999999985 < eps < 0.00139999999999999999

    1. Initial program 19.4%

      \[\cos \left(x + \varepsilon\right) - \cos x \]
    2. Applied egg-rr44.1%

      \[\leadsto \color{blue}{-2 \cdot \left(\sin \left(\left(\left(x + \varepsilon\right) - x\right) \cdot 0.5\right) \cdot \sin \left(\left(x + \left(x + \varepsilon\right)\right) \cdot 0.5\right)\right)} \]
      Step-by-step derivation

      [Start]19.4%

      \[ \cos \left(x + \varepsilon\right) - \cos x \]

      diff-cos [=>]44.1%

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

      div-inv [=>]44.1%

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

      metadata-eval [=>]44.1%

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

      div-inv [=>]44.1%

      \[ -2 \cdot \left(\sin \left(\left(\left(x + \varepsilon\right) - x\right) \cdot 0.5\right) \cdot \sin \color{blue}{\left(\left(\left(x + \varepsilon\right) + x\right) \cdot \frac{1}{2}\right)}\right) \]

      +-commutative [=>]44.1%

      \[ -2 \cdot \left(\sin \left(\left(\left(x + \varepsilon\right) - x\right) \cdot 0.5\right) \cdot \sin \left(\color{blue}{\left(x + \left(x + \varepsilon\right)\right)} \cdot \frac{1}{2}\right)\right) \]

      metadata-eval [=>]44.1%

      \[ -2 \cdot \left(\sin \left(\left(\left(x + \varepsilon\right) - x\right) \cdot 0.5\right) \cdot \sin \left(\left(x + \left(x + \varepsilon\right)\right) \cdot \color{blue}{0.5}\right)\right) \]
    3. Simplified99.2%

      \[\leadsto \color{blue}{-2 \cdot \left(\sin \left(0.5 \cdot \varepsilon + 0\right) \cdot \sin \left(0.5 \cdot \left(x + \left(\varepsilon + x\right)\right)\right)\right)} \]
      Step-by-step derivation

      [Start]44.1%

      \[ -2 \cdot \left(\sin \left(\left(\left(x + \varepsilon\right) - x\right) \cdot 0.5\right) \cdot \sin \left(\left(x + \left(x + \varepsilon\right)\right) \cdot 0.5\right)\right) \]

      *-commutative [=>]44.1%

      \[ -2 \cdot \left(\sin \color{blue}{\left(0.5 \cdot \left(\left(x + \varepsilon\right) - x\right)\right)} \cdot \sin \left(\left(x + \left(x + \varepsilon\right)\right) \cdot 0.5\right)\right) \]

      +-commutative [<=]44.1%

      \[ -2 \cdot \left(\sin \left(0.5 \cdot \left(\color{blue}{\left(\varepsilon + x\right)} - x\right)\right) \cdot \sin \left(\left(x + \left(x + \varepsilon\right)\right) \cdot 0.5\right)\right) \]

      associate--l+ [=>]99.2%

      \[ -2 \cdot \left(\sin \left(0.5 \cdot \color{blue}{\left(\varepsilon + \left(x - x\right)\right)}\right) \cdot \sin \left(\left(x + \left(x + \varepsilon\right)\right) \cdot 0.5\right)\right) \]

      +-inverses [=>]99.2%

      \[ -2 \cdot \left(\sin \left(0.5 \cdot \left(\varepsilon + \color{blue}{0}\right)\right) \cdot \sin \left(\left(x + \left(x + \varepsilon\right)\right) \cdot 0.5\right)\right) \]

      distribute-lft-in [=>]99.2%

      \[ -2 \cdot \left(\sin \color{blue}{\left(0.5 \cdot \varepsilon + 0.5 \cdot 0\right)} \cdot \sin \left(\left(x + \left(x + \varepsilon\right)\right) \cdot 0.5\right)\right) \]

      metadata-eval [=>]99.2%

      \[ -2 \cdot \left(\sin \left(0.5 \cdot \varepsilon + \color{blue}{0}\right) \cdot \sin \left(\left(x + \left(x + \varepsilon\right)\right) \cdot 0.5\right)\right) \]

      *-commutative [=>]99.2%

      \[ -2 \cdot \left(\sin \left(0.5 \cdot \varepsilon + 0\right) \cdot \sin \color{blue}{\left(0.5 \cdot \left(x + \left(x + \varepsilon\right)\right)\right)}\right) \]

      +-commutative [<=]99.2%

      \[ -2 \cdot \left(\sin \left(0.5 \cdot \varepsilon + 0\right) \cdot \sin \left(0.5 \cdot \left(x + \color{blue}{\left(\varepsilon + x\right)}\right)\right)\right) \]
    4. Taylor expanded in eps around 0 99.8%

      \[\leadsto \color{blue}{0.041666666666666664 \cdot \left({\varepsilon}^{4} \cdot \cos x\right) + \left(-0.5 \cdot \left({\varepsilon}^{2} \cdot \cos x\right) + \left(-1 \cdot \left(\varepsilon \cdot \sin x\right) + -2 \cdot \left({\varepsilon}^{3} \cdot \left(-0.0625 \cdot \sin x + -0.020833333333333332 \cdot \sin x\right)\right)\right)\right)} \]
    5. Simplified99.8%

      \[\leadsto \color{blue}{\left(-2 \cdot \left(\left(\sin x \cdot {\varepsilon}^{3}\right) \cdot -0.08333333333333333\right) - \varepsilon \cdot \sin x\right) + \cos x \cdot \mathsf{fma}\left({\varepsilon}^{4}, 0.041666666666666664, \varepsilon \cdot \left(\varepsilon \cdot -0.5\right)\right)} \]
      Step-by-step derivation

      [Start]99.8%

      \[ 0.041666666666666664 \cdot \left({\varepsilon}^{4} \cdot \cos x\right) + \left(-0.5 \cdot \left({\varepsilon}^{2} \cdot \cos x\right) + \left(-1 \cdot \left(\varepsilon \cdot \sin x\right) + -2 \cdot \left({\varepsilon}^{3} \cdot \left(-0.0625 \cdot \sin x + -0.020833333333333332 \cdot \sin x\right)\right)\right)\right) \]

      associate-+r+ [=>]99.8%

      \[ \color{blue}{\left(0.041666666666666664 \cdot \left({\varepsilon}^{4} \cdot \cos x\right) + -0.5 \cdot \left({\varepsilon}^{2} \cdot \cos x\right)\right) + \left(-1 \cdot \left(\varepsilon \cdot \sin x\right) + -2 \cdot \left({\varepsilon}^{3} \cdot \left(-0.0625 \cdot \sin x + -0.020833333333333332 \cdot \sin x\right)\right)\right)} \]

      +-commutative [=>]99.8%

      \[ \color{blue}{\left(-1 \cdot \left(\varepsilon \cdot \sin x\right) + -2 \cdot \left({\varepsilon}^{3} \cdot \left(-0.0625 \cdot \sin x + -0.020833333333333332 \cdot \sin x\right)\right)\right) + \left(0.041666666666666664 \cdot \left({\varepsilon}^{4} \cdot \cos x\right) + -0.5 \cdot \left({\varepsilon}^{2} \cdot \cos x\right)\right)} \]

    if 0.00139999999999999999 < eps

    1. Initial program 54.9%

      \[\cos \left(x + \varepsilon\right) - \cos x \]
    2. Applied egg-rr98.8%

      \[\leadsto \color{blue}{\left(\cos x \cdot \cos \varepsilon + \left(-\sin x \cdot \sin \varepsilon\right)\right)} - \cos x \]
      Step-by-step derivation

      [Start]54.9%

      \[ \cos \left(x + \varepsilon\right) - \cos x \]

      cos-sum [=>]98.8%

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

      sub-neg [=>]98.8%

      \[ \color{blue}{\left(\cos x \cdot \cos \varepsilon + \left(-\sin x \cdot \sin \varepsilon\right)\right)} - \cos x \]
    3. Simplified98.9%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\sin \varepsilon, -\sin x, \cos \varepsilon \cdot \cos x\right)} - \cos x \]
      Step-by-step derivation

      [Start]98.8%

      \[ \left(\cos x \cdot \cos \varepsilon + \left(-\sin x \cdot \sin \varepsilon\right)\right) - \cos x \]

      +-commutative [=>]98.8%

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

      distribute-lft-neg-in [=>]98.8%

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

      *-commutative [=>]98.8%

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

      fma-def [=>]98.9%

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

      *-commutative [=>]98.9%

      \[ \mathsf{fma}\left(\sin \varepsilon, -\sin x, \color{blue}{\cos \varepsilon \cdot \cos x}\right) - \cos x \]
    4. Taylor expanded in eps around inf 98.8%

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

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

      [Start]98.8%

      \[ \left(-1 \cdot \left(\sin x \cdot \sin \varepsilon\right) + \cos x \cdot \cos \varepsilon\right) - \cos x \]

      neg-mul-1 [<=]98.8%

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

      associate--l+ [=>]98.9%

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

      *-commutative [<=]98.9%

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

      distribute-rgt-neg-in [=>]98.9%

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

      fma-def [=>]99.1%

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

      *-commutative [=>]99.1%

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

      *-rgt-identity [<=]99.1%

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

      distribute-lft-out-- [=>]99.1%

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

      sub-neg [=>]99.1%

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

      metadata-eval [=>]99.1%

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

      +-commutative [=>]99.1%

      \[ \mathsf{fma}\left(\sin x, -\sin \varepsilon, \cos x \cdot \color{blue}{\left(-1 + \cos \varepsilon\right)}\right) \]
  3. Recombined 3 regimes into one program.
  4. Final simplification99.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.00325:\\ \;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, \left(-\cos x\right) - \sin x \cdot \sin \varepsilon\right)\\ \mathbf{elif}\;\varepsilon \leq 0.0014:\\ \;\;\;\;\left(-2 \cdot \left(\left(\sin x \cdot {\varepsilon}^{3}\right) \cdot -0.08333333333333333\right) - \varepsilon \cdot \sin x\right) + \cos x \cdot \mathsf{fma}\left({\varepsilon}^{4}, 0.041666666666666664, \varepsilon \cdot \left(\varepsilon \cdot -0.5\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\sin x, -\sin \varepsilon, \cos x \cdot \left(\cos \varepsilon + -1\right)\right)\\ \end{array} \]

Alternatives

Alternative 1
Accuracy99.2%
Cost40136
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.00325:\\ \;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, \left(-\cos x\right) - \sin x \cdot \sin \varepsilon\right)\\ \mathbf{elif}\;\varepsilon \leq 0.0014:\\ \;\;\;\;\left(-2 \cdot \left(\left(\sin x \cdot {\varepsilon}^{3}\right) \cdot -0.08333333333333333\right) - \varepsilon \cdot \sin x\right) + \cos x \cdot \mathsf{fma}\left({\varepsilon}^{4}, 0.041666666666666664, \varepsilon \cdot \left(\varepsilon \cdot -0.5\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\sin x, -\sin \varepsilon, \cos x \cdot \left(\cos \varepsilon + -1\right)\right)\\ \end{array} \]
Alternative 2
Accuracy99.2%
Cost40008
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0025:\\ \;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, \left(-\cos x\right) - \sin x \cdot \sin \varepsilon\right)\\ \mathbf{elif}\;\varepsilon \leq 0.0036:\\ \;\;\;\;\mathsf{fma}\left(0.041666666666666664, \cos x \cdot {\varepsilon}^{4}, -0.5 \cdot \left(\varepsilon \cdot \left(\varepsilon \cdot \cos x\right)\right) + \sin x \cdot \left({\varepsilon}^{3} \cdot 0.16666666666666666 - \varepsilon\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\sin x, -\sin \varepsilon, \cos x \cdot \left(\cos \varepsilon + -1\right)\right)\\ \end{array} \]
Alternative 3
Accuracy99.1%
Cost39044
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.00014:\\ \;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, \left(-\cos x\right) - \sin x \cdot \sin \varepsilon\right)\\ \mathbf{elif}\;\varepsilon \leq 0.00014:\\ \;\;\;\;\cos x \cdot \left(\varepsilon \cdot \left(\varepsilon \cdot -0.5\right)\right) + \sin x \cdot \left({\varepsilon}^{3} \cdot 0.16666666666666666 - \varepsilon\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\sin x, -\sin \varepsilon, \cos x \cdot \left(\cos \varepsilon + -1\right)\right)\\ \end{array} \]
Alternative 4
Accuracy99.1%
Cost32777
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.000108 \lor \neg \left(\varepsilon \leq 0.00014\right):\\ \;\;\;\;\mathsf{fma}\left(\sin x, -\sin \varepsilon, \cos x \cdot \left(\cos \varepsilon + -1\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\cos x \cdot \left(\varepsilon \cdot \left(\varepsilon \cdot -0.5\right)\right) + \sin x \cdot \left({\varepsilon}^{3} \cdot 0.16666666666666666 - \varepsilon\right)\\ \end{array} \]
Alternative 5
Accuracy75.6%
Cost26692
\[\begin{array}{l} \mathbf{if}\;\cos \left(\varepsilon + x\right) - \cos x \leq -1 \cdot 10^{-15}:\\ \;\;\;\;\left(-\sin \varepsilon\right) \cdot \tan \left(\frac{\varepsilon}{2}\right)\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \left(\varepsilon \cdot \cos x\right)\right) - \varepsilon \cdot \sin x\\ \end{array} \]
Alternative 6
Accuracy66.3%
Cost19844
\[\begin{array}{l} \mathbf{if}\;\cos \left(\varepsilon + x\right) - \cos x \leq -1 \cdot 10^{-15}:\\ \;\;\;\;\cos \varepsilon + -1\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left(-\sin x\right)\\ \end{array} \]
Alternative 7
Accuracy76.5%
Cost13632
\[-2 \cdot \left(\sin \left(\varepsilon \cdot 0.5\right) \cdot \sin \left(0.5 \cdot \left(\varepsilon - x \cdot -2\right)\right)\right) \]
Alternative 8
Accuracy76.5%
Cost13632
\[-2 \cdot \left(\sin \left(\varepsilon \cdot 0.5\right) \cdot \sin \left(0.5 \cdot \left(x + \left(\varepsilon + x\right)\right)\right)\right) \]
Alternative 9
Accuracy69.2%
Cost13513
\[\begin{array}{l} \mathbf{if}\;x \leq -3.5 \cdot 10^{-15} \lor \neg \left(x \leq 2.9 \cdot 10^{-85}\right):\\ \;\;\;\;-2 \cdot \left(\sin x \cdot \sin \left(\varepsilon \cdot 0.5\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(-\sin \varepsilon\right) \cdot \tan \left(\frac{\varepsilon}{2}\right)\\ \end{array} \]
Alternative 10
Accuracy67.3%
Cost13449
\[\begin{array}{l} \mathbf{if}\;x \leq -1.02 \cdot 10^{-13} \lor \neg \left(x \leq 3.5 \cdot 10^{-85}\right):\\ \;\;\;\;\varepsilon \cdot \left(-\sin x\right)\\ \mathbf{else}:\\ \;\;\;\;-2 \cdot {\sin \left(\varepsilon \cdot 0.5\right)}^{2}\\ \end{array} \]
Alternative 11
Accuracy67.4%
Cost13449
\[\begin{array}{l} \mathbf{if}\;x \leq -3.2 \cdot 10^{-15} \lor \neg \left(x \leq 3.5 \cdot 10^{-85}\right):\\ \;\;\;\;\varepsilon \cdot \left(-\sin x\right)\\ \mathbf{else}:\\ \;\;\;\;\left(-\sin \varepsilon\right) \cdot \tan \left(\frac{\varepsilon}{2}\right)\\ \end{array} \]
Alternative 12
Accuracy47.3%
Cost6857
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.085 \lor \neg \left(\varepsilon \leq 0.00014\right):\\ \;\;\;\;\cos \varepsilon + -1\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left(\varepsilon \cdot -0.5\right)\\ \end{array} \]
Alternative 13
Accuracy22.0%
Cost320
\[\varepsilon \cdot \left(\varepsilon \cdot -0.5\right) \]
Alternative 14
Accuracy13.0%
Cost64
\[0 \]

Reproduce?

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