Average Error: 39.4 → 0.5
Time: 18.3s
Precision: binary64
Cost: 71624
\[\cos \left(x + \varepsilon\right) - \cos x \]
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0028:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \cos x\right) + \frac{\sin \varepsilon}{\frac{\sin x}{-{\sin x}^{2}}}\\ \mathbf{elif}\;\varepsilon \leq 0.0021:\\ \;\;\;\;0.041666666666666664 \cdot \left(\cos x \cdot {\varepsilon}^{4}\right) + \left(0.16666666666666666 \cdot \left(\sin x \cdot {\varepsilon}^{3}\right) + \left(-0.5 \cdot \left(\cos x \cdot {\varepsilon}^{2}\right) - \varepsilon \cdot \sin x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\mathsf{fma}\left(\cos \varepsilon, \cos x, \sin \varepsilon \cdot \left(-\sin x\right)\right) - \cos x\right) + \mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin \varepsilon \cdot \sin x\right)\\ \end{array} \]
(FPCore (x eps) :precision binary64 (- (cos (+ x eps)) (cos x)))
(FPCore (x eps)
 :precision binary64
 (if (<= eps -0.0028)
   (+
    (- (* (cos x) (cos eps)) (cos x))
    (/ (sin eps) (/ (sin x) (- (pow (sin x) 2.0)))))
   (if (<= eps 0.0021)
     (+
      (* 0.041666666666666664 (* (cos x) (pow eps 4.0)))
      (+
       (* 0.16666666666666666 (* (sin x) (pow eps 3.0)))
       (- (* -0.5 (* (cos x) (pow eps 2.0))) (* eps (sin x)))))
     (+
      (- (fma (cos eps) (cos x) (* (sin eps) (- (sin x)))) (cos x))
      (fma (- (sin eps)) (sin x) (* (sin eps) (sin x)))))))
double code(double x, double eps) {
	return cos((x + eps)) - cos(x);
}
double code(double x, double eps) {
	double tmp;
	if (eps <= -0.0028) {
		tmp = ((cos(x) * cos(eps)) - cos(x)) + (sin(eps) / (sin(x) / -pow(sin(x), 2.0)));
	} else if (eps <= 0.0021) {
		tmp = (0.041666666666666664 * (cos(x) * pow(eps, 4.0))) + ((0.16666666666666666 * (sin(x) * pow(eps, 3.0))) + ((-0.5 * (cos(x) * pow(eps, 2.0))) - (eps * sin(x))));
	} else {
		tmp = (fma(cos(eps), cos(x), (sin(eps) * -sin(x))) - cos(x)) + fma(-sin(eps), sin(x), (sin(eps) * sin(x)));
	}
	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.0028)
		tmp = Float64(Float64(Float64(cos(x) * cos(eps)) - cos(x)) + Float64(sin(eps) / Float64(sin(x) / Float64(-(sin(x) ^ 2.0)))));
	elseif (eps <= 0.0021)
		tmp = Float64(Float64(0.041666666666666664 * Float64(cos(x) * (eps ^ 4.0))) + Float64(Float64(0.16666666666666666 * Float64(sin(x) * (eps ^ 3.0))) + Float64(Float64(-0.5 * Float64(cos(x) * (eps ^ 2.0))) - Float64(eps * sin(x)))));
	else
		tmp = Float64(Float64(fma(cos(eps), cos(x), Float64(sin(eps) * Float64(-sin(x)))) - cos(x)) + fma(Float64(-sin(eps)), sin(x), Float64(sin(eps) * sin(x))));
	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.0028], N[(N[(N[(N[Cos[x], $MachinePrecision] * N[Cos[eps], $MachinePrecision]), $MachinePrecision] - N[Cos[x], $MachinePrecision]), $MachinePrecision] + N[(N[Sin[eps], $MachinePrecision] / N[(N[Sin[x], $MachinePrecision] / (-N[Power[N[Sin[x], $MachinePrecision], 2.0], $MachinePrecision])), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[eps, 0.0021], N[(N[(0.041666666666666664 * N[(N[Cos[x], $MachinePrecision] * N[Power[eps, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(0.16666666666666666 * N[(N[Sin[x], $MachinePrecision] * N[Power[eps, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(-0.5 * N[(N[Cos[x], $MachinePrecision] * N[Power[eps, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(eps * N[Sin[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[Cos[eps], $MachinePrecision] * N[Cos[x], $MachinePrecision] + N[(N[Sin[eps], $MachinePrecision] * (-N[Sin[x], $MachinePrecision])), $MachinePrecision]), $MachinePrecision] - N[Cos[x], $MachinePrecision]), $MachinePrecision] + N[((-N[Sin[eps], $MachinePrecision]) * N[Sin[x], $MachinePrecision] + N[(N[Sin[eps], $MachinePrecision] * N[Sin[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\cos \left(x + \varepsilon\right) - \cos x
\begin{array}{l}
\mathbf{if}\;\varepsilon \leq -0.0028:\\
\;\;\;\;\left(\cos x \cdot \cos \varepsilon - \cos x\right) + \frac{\sin \varepsilon}{\frac{\sin x}{-{\sin x}^{2}}}\\

\mathbf{elif}\;\varepsilon \leq 0.0021:\\
\;\;\;\;0.041666666666666664 \cdot \left(\cos x \cdot {\varepsilon}^{4}\right) + \left(0.16666666666666666 \cdot \left(\sin x \cdot {\varepsilon}^{3}\right) + \left(-0.5 \cdot \left(\cos x \cdot {\varepsilon}^{2}\right) - \varepsilon \cdot \sin x\right)\right)\\

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


\end{array}

Error

Derivation

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

    1. Initial program 30.4

      \[\cos \left(x + \varepsilon\right) - \cos x \]
    2. Applied egg-rr0.9

      \[\leadsto \color{blue}{\left(\left(-\cos x\right) + \cos x \cdot \cos \varepsilon\right) + \sin \varepsilon \cdot \left(-\sin x\right)} \]
    3. Applied egg-rr0.9

      \[\leadsto \left(\left(-\cos x\right) + \cos x \cdot \cos \varepsilon\right) + \color{blue}{\frac{\sin \varepsilon \cdot \left(0 - {\sin x}^{2}\right)}{\sin x}} \]
    4. Simplified0.9

      \[\leadsto \left(\left(-\cos x\right) + \cos x \cdot \cos \varepsilon\right) + \color{blue}{\frac{\sin \varepsilon}{\frac{\sin x}{-{\sin x}^{2}}}} \]
      Proof
      (+.f64 (+.f64 (neg.f64 (cos.f64 x)) (*.f64 (cos.f64 x) (cos.f64 eps))) (/.f64 (sin.f64 eps) (/.f64 (sin.f64 x) (neg.f64 (pow.f64 (sin.f64 x) 2))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (neg.f64 (cos.f64 x)) (*.f64 (cos.f64 x) (cos.f64 eps))) (/.f64 (sin.f64 eps) (/.f64 (sin.f64 x) (Rewrite<= sub0-neg_binary64 (-.f64 0 (pow.f64 (sin.f64 x) 2)))))): 0 points increase in error, 3 points decrease in error
      (+.f64 (+.f64 (neg.f64 (cos.f64 x)) (*.f64 (cos.f64 x) (cos.f64 eps))) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (sin.f64 eps) (-.f64 0 (pow.f64 (sin.f64 x) 2))) (sin.f64 x)))): 3 points increase in error, 0 points decrease in error

    if -0.00279999999999999997 < eps < 0.00209999999999999987

    1. Initial program 48.6

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

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

    if 0.00209999999999999987 < eps

    1. Initial program 30.3

      \[\cos \left(x + \varepsilon\right) - \cos x \]
    2. Applied egg-rr0.9

      \[\leadsto \color{blue}{\left(\left(-\cos x\right) + \cos x \cdot \cos \varepsilon\right) + \sin \varepsilon \cdot \left(-\sin x\right)} \]
    3. Taylor expanded in x around inf 0.9

      \[\leadsto \color{blue}{\left(-1 \cdot \left(\sin x \cdot \sin \varepsilon\right) + \cos \varepsilon \cdot \cos x\right) - \cos x} \]
    4. Simplified0.9

      \[\leadsto \color{blue}{\left(\cos \varepsilon \cdot \cos x - \cos x\right) - \sin x \cdot \sin \varepsilon} \]
      Proof
      (+.f64 (+.f64 (neg.f64 (cos.f64 x)) (*.f64 (cos.f64 x) (cos.f64 eps))) (/.f64 (sin.f64 eps) (/.f64 (sin.f64 x) (neg.f64 (pow.f64 (sin.f64 x) 2))))): 0 points increase in error, 0 points decrease in error
      (+.f64 (+.f64 (neg.f64 (cos.f64 x)) (*.f64 (cos.f64 x) (cos.f64 eps))) (/.f64 (sin.f64 eps) (/.f64 (sin.f64 x) (Rewrite<= sub0-neg_binary64 (-.f64 0 (pow.f64 (sin.f64 x) 2)))))): 0 points increase in error, 3 points decrease in error
      (+.f64 (+.f64 (neg.f64 (cos.f64 x)) (*.f64 (cos.f64 x) (cos.f64 eps))) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 (sin.f64 eps) (-.f64 0 (pow.f64 (sin.f64 x) 2))) (sin.f64 x)))): 3 points increase in error, 0 points decrease in error
    5. Applied egg-rr0.9

      \[\leadsto \left(\cos \varepsilon \cdot \cos x - \cos x\right) - \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\sin x \cdot \sin \varepsilon\right)\right)} \]
    6. Applied egg-rr0.9

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

      \[\leadsto \color{blue}{\left(\mathsf{fma}\left(\cos \varepsilon, \cos x, \sin \varepsilon \cdot \left(-\sin x\right)\right) - \cos x\right) + \mathsf{fma}\left(-\sin \varepsilon, \sin x, \sin x \cdot \sin \varepsilon\right)} \]
      Proof
      (+.f64 (-.f64 (fma.f64 (cos.f64 eps) (cos.f64 x) (*.f64 (sin.f64 eps) (neg.f64 (sin.f64 x)))) (cos.f64 x)) (fma.f64 (neg.f64 (sin.f64 eps)) (sin.f64 x) (*.f64 (sin.f64 x) (sin.f64 eps)))): 0 points increase in error, 0 points decrease in error
      (+.f64 (-.f64 (Rewrite<= fma-def_binary64 (+.f64 (*.f64 (cos.f64 eps) (cos.f64 x)) (*.f64 (sin.f64 eps) (neg.f64 (sin.f64 x))))) (cos.f64 x)) (fma.f64 (neg.f64 (sin.f64 eps)) (sin.f64 x) (*.f64 (sin.f64 x) (sin.f64 eps)))): 0 points increase in error, 8 points decrease in error
      (+.f64 (-.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 (sin.f64 eps) (neg.f64 (sin.f64 x))) (*.f64 (cos.f64 eps) (cos.f64 x)))) (cos.f64 x)) (fma.f64 (neg.f64 (sin.f64 eps)) (sin.f64 x) (*.f64 (sin.f64 x) (sin.f64 eps)))): 8 points increase in error, 0 points decrease in error
      (+.f64 (Rewrite<= unsub-neg_binary64 (+.f64 (+.f64 (*.f64 (sin.f64 eps) (neg.f64 (sin.f64 x))) (*.f64 (cos.f64 eps) (cos.f64 x))) (neg.f64 (cos.f64 x)))) (fma.f64 (neg.f64 (sin.f64 eps)) (sin.f64 x) (*.f64 (sin.f64 x) (sin.f64 eps)))): 8 points increase in error, 0 points decrease in error
      (+.f64 (Rewrite=> +-commutative_binary64 (+.f64 (neg.f64 (cos.f64 x)) (+.f64 (*.f64 (sin.f64 eps) (neg.f64 (sin.f64 x))) (*.f64 (cos.f64 eps) (cos.f64 x))))) (fma.f64 (neg.f64 (sin.f64 eps)) (sin.f64 x) (*.f64 (sin.f64 x) (sin.f64 eps)))): 0 points increase in error, 8 points decrease in error
      (+.f64 (Rewrite<= associate-+l+_binary64 (+.f64 (+.f64 (neg.f64 (cos.f64 x)) (*.f64 (sin.f64 eps) (neg.f64 (sin.f64 x)))) (*.f64 (cos.f64 eps) (cos.f64 x)))) (fma.f64 (neg.f64 (sin.f64 eps)) (sin.f64 x) (*.f64 (sin.f64 x) (sin.f64 eps)))): 8 points increase in error, 0 points decrease in error
      (+.f64 (Rewrite=> +-commutative_binary64 (+.f64 (*.f64 (cos.f64 eps) (cos.f64 x)) (+.f64 (neg.f64 (cos.f64 x)) (*.f64 (sin.f64 eps) (neg.f64 (sin.f64 x)))))) (fma.f64 (neg.f64 (sin.f64 eps)) (sin.f64 x) (*.f64 (sin.f64 x) (sin.f64 eps)))): 0 points increase in error, 8 points decrease in error
      (Rewrite<= associate-+r+_binary64 (+.f64 (*.f64 (cos.f64 eps) (cos.f64 x)) (+.f64 (+.f64 (neg.f64 (cos.f64 x)) (*.f64 (sin.f64 eps) (neg.f64 (sin.f64 x)))) (fma.f64 (neg.f64 (sin.f64 eps)) (sin.f64 x) (*.f64 (sin.f64 x) (sin.f64 eps)))))): 0 points increase in error, 1 points decrease in error
  3. Recombined 3 regimes into one program.
  4. Final simplification0.5

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

Alternatives

Alternative 1
Error0.5
Cost46600
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0027:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \cos x\right) + \frac{\sin \varepsilon}{\frac{\sin x}{-{\sin x}^{2}}}\\ \mathbf{elif}\;\varepsilon \leq 0.0033:\\ \;\;\;\;0.041666666666666664 \cdot \left(\cos x \cdot {\varepsilon}^{4}\right) + \left(0.16666666666666666 \cdot \left(\sin x \cdot {\varepsilon}^{3}\right) + \left(-0.5 \cdot \left(\cos x \cdot {\varepsilon}^{2}\right) - \varepsilon \cdot \sin x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, \sin \varepsilon \cdot \left(-\sin x\right)\right) - \cos x\\ \end{array} \]
Alternative 2
Error0.5
Cost45764
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0045:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \cos x\right) + \frac{\sin \varepsilon}{\frac{\sin x}{-{\sin x}^{2}}}\\ \mathbf{elif}\;\varepsilon \leq 0.0052:\\ \;\;\;\;\cos x \cdot \left(-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) + 0.041666666666666664 \cdot {\varepsilon}^{4}\right) - \sin \varepsilon \cdot \sin x\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, \sin \varepsilon \cdot \left(-\sin x\right)\right) - \cos x\\ \end{array} \]
Alternative 3
Error0.5
Cost39177
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0045 \lor \neg \left(\varepsilon \leq 0.0052\right):\\ \;\;\;\;\mathsf{fma}\left(\cos x, \cos \varepsilon, \sin \varepsilon \cdot \left(-\sin x\right)\right) - \cos x\\ \mathbf{else}:\\ \;\;\;\;\cos x \cdot \left(-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) + 0.041666666666666664 \cdot {\varepsilon}^{4}\right) - \sin \varepsilon \cdot \sin x\\ \end{array} \]
Alternative 4
Error0.5
Cost32840
\[\begin{array}{l} t_0 := \sin \varepsilon \cdot \sin x\\ \mathbf{if}\;\varepsilon \leq -0.0052:\\ \;\;\;\;\cos x \cdot \left(\cos \varepsilon + -1\right) - t_0\\ \mathbf{elif}\;\varepsilon \leq 0.0055:\\ \;\;\;\;\cos x \cdot \left(-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) + 0.041666666666666664 \cdot {\varepsilon}^{4}\right) - t_0\\ \mathbf{else}:\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \cos x\right) - t_0\\ \end{array} \]
Alternative 5
Error0.5
Cost26889
\[\begin{array}{l} t_0 := \sin \varepsilon \cdot \sin x\\ \mathbf{if}\;\varepsilon \leq -0.0052 \lor \neg \left(\varepsilon \leq 0.0055\right):\\ \;\;\;\;\cos x \cdot \left(\cos \varepsilon + -1\right) - t_0\\ \mathbf{else}:\\ \;\;\;\;\cos x \cdot \left(-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) + 0.041666666666666664 \cdot {\varepsilon}^{4}\right) - t_0\\ \end{array} \]
Alternative 6
Error0.6
Cost26441
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.000125 \lor \neg \left(\varepsilon \leq 0.00015\right):\\ \;\;\;\;\cos x \cdot \left(\cos \varepsilon + -1\right) - \sin \varepsilon \cdot \sin x\\ \mathbf{else}:\\ \;\;\;\;\left(\varepsilon \cdot \varepsilon\right) \cdot \left(\cos x \cdot -0.5 + \varepsilon \cdot \left(\sin x \cdot 0.16666666666666666\right)\right) - \varepsilon \cdot \sin x\\ \end{array} \]
Alternative 7
Error15.2
Cost13888
\[-2 \cdot \left(\sin \left(\frac{\varepsilon + \left(x - x\right)}{2}\right) \cdot \sin \left(\frac{\varepsilon + \left(x + x\right)}{2}\right)\right) \]
Alternative 8
Error15.1
Cost13640
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0125:\\ \;\;\;\;\frac{1}{\frac{1}{\cos \varepsilon + -1}}\\ \mathbf{elif}\;\varepsilon \leq 0.03:\\ \;\;\;\;\varepsilon \cdot \left(\cos x \cdot \left(\varepsilon \cdot -0.5\right) - \sin x\right)\\ \mathbf{else}:\\ \;\;\;\;\cos \varepsilon - \cos x\\ \end{array} \]
Alternative 9
Error15.2
Cost13256
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0044:\\ \;\;\;\;\frac{1}{\frac{1}{\cos \varepsilon + -1}}\\ \mathbf{elif}\;\varepsilon \leq 0.0019:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) - \varepsilon \cdot \sin x\\ \mathbf{else}:\\ \;\;\;\;\cos \varepsilon - \cos x\\ \end{array} \]
Alternative 10
Error15.4
Cost7240
\[\begin{array}{l} t_0 := \cos \varepsilon + -1\\ \mathbf{if}\;\varepsilon \leq -0.0058:\\ \;\;\;\;\frac{1}{\frac{1}{t_0}}\\ \mathbf{elif}\;\varepsilon \leq 0.012:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) - \varepsilon \cdot \sin x\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 11
Error21.0
Cost6988
\[\begin{array}{l} t_0 := \cos \varepsilon + -1\\ \mathbf{if}\;\varepsilon \leq -1.3 \cdot 10^{-5}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;\varepsilon \leq 1.3 \cdot 10^{-66}:\\ \;\;\;\;\varepsilon \cdot \left(-\sin x\right)\\ \mathbf{elif}\;\varepsilon \leq 36:\\ \;\;\;\;\varepsilon \cdot \left(\varepsilon \cdot -0.5 - x\right)\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 12
Error21.0
Cost6988
\[\begin{array}{l} t_0 := \cos \varepsilon + -1\\ \mathbf{if}\;\varepsilon \leq -5.6 \cdot 10^{-5}:\\ \;\;\;\;\frac{1}{\frac{1}{t_0}}\\ \mathbf{elif}\;\varepsilon \leq 1.25 \cdot 10^{-66}:\\ \;\;\;\;\varepsilon \cdot \left(-\sin x\right)\\ \mathbf{elif}\;\varepsilon \leq 36:\\ \;\;\;\;\varepsilon \cdot \left(\varepsilon \cdot -0.5 - x\right)\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 13
Error30.3
Cost6857
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -1.2 \cdot 10^{-5} \lor \neg \left(\varepsilon \leq 36\right):\\ \;\;\;\;\cos \varepsilon + -1\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left(\varepsilon \cdot -0.5 - x\right)\\ \end{array} \]
Alternative 14
Error48.3
Cost585
\[\begin{array}{l} \mathbf{if}\;x \leq -3.2 \cdot 10^{-92} \lor \neg \left(x \leq 2.9 \cdot 10^{-96}\right):\\ \;\;\;\;\varepsilon \cdot \left(-x\right)\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left(\varepsilon \cdot -0.5\right)\\ \end{array} \]
Alternative 15
Error46.9
Cost448
\[\varepsilon \cdot \left(\varepsilon \cdot -0.5 - x\right) \]
Alternative 16
Error52.3
Cost256
\[\varepsilon \cdot \left(-x\right) \]

Error

Reproduce

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