?

Average Accuracy: 38.0% → 99.4%
Time: 13.4s
Precision: binary64
Cost: 33088

?

\[\cos \left(x + \varepsilon\right) - \cos x \]
\[\sin \left(\frac{\varepsilon}{2}\right) \cdot \left(\left(\cos \left(\varepsilon \cdot 0.5\right) \cdot \sin x - \sin \left(\varepsilon \cdot -0.5\right) \cdot \cos x\right) \cdot -2\right) \]
(FPCore (x eps) :precision binary64 (- (cos (+ x eps)) (cos x)))
(FPCore (x eps)
 :precision binary64
 (*
  (sin (/ eps 2.0))
  (* (- (* (cos (* eps 0.5)) (sin x)) (* (sin (* eps -0.5)) (cos x))) -2.0)))
double code(double x, double eps) {
	return cos((x + eps)) - cos(x);
}
double code(double x, double eps) {
	return sin((eps / 2.0)) * (((cos((eps * 0.5)) * sin(x)) - (sin((eps * -0.5)) * cos(x))) * -2.0);
}
real(8) function code(x, eps)
    real(8), intent (in) :: x
    real(8), intent (in) :: eps
    code = cos((x + eps)) - cos(x)
end function
real(8) function code(x, eps)
    real(8), intent (in) :: x
    real(8), intent (in) :: eps
    code = sin((eps / 2.0d0)) * (((cos((eps * 0.5d0)) * sin(x)) - (sin((eps * (-0.5d0))) * cos(x))) * (-2.0d0))
end function
public static double code(double x, double eps) {
	return Math.cos((x + eps)) - Math.cos(x);
}
public static double code(double x, double eps) {
	return Math.sin((eps / 2.0)) * (((Math.cos((eps * 0.5)) * Math.sin(x)) - (Math.sin((eps * -0.5)) * Math.cos(x))) * -2.0);
}
def code(x, eps):
	return math.cos((x + eps)) - math.cos(x)
def code(x, eps):
	return math.sin((eps / 2.0)) * (((math.cos((eps * 0.5)) * math.sin(x)) - (math.sin((eps * -0.5)) * math.cos(x))) * -2.0)
function code(x, eps)
	return Float64(cos(Float64(x + eps)) - cos(x))
end
function code(x, eps)
	return Float64(sin(Float64(eps / 2.0)) * Float64(Float64(Float64(cos(Float64(eps * 0.5)) * sin(x)) - Float64(sin(Float64(eps * -0.5)) * cos(x))) * -2.0))
end
function tmp = code(x, eps)
	tmp = cos((x + eps)) - cos(x);
end
function tmp = code(x, eps)
	tmp = sin((eps / 2.0)) * (((cos((eps * 0.5)) * sin(x)) - (sin((eps * -0.5)) * cos(x))) * -2.0);
end
code[x_, eps_] := N[(N[Cos[N[(x + eps), $MachinePrecision]], $MachinePrecision] - N[Cos[x], $MachinePrecision]), $MachinePrecision]
code[x_, eps_] := N[(N[Sin[N[(eps / 2.0), $MachinePrecision]], $MachinePrecision] * N[(N[(N[(N[Cos[N[(eps * 0.5), $MachinePrecision]], $MachinePrecision] * N[Sin[x], $MachinePrecision]), $MachinePrecision] - N[(N[Sin[N[(eps * -0.5), $MachinePrecision]], $MachinePrecision] * N[Cos[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * -2.0), $MachinePrecision]), $MachinePrecision]
\cos \left(x + \varepsilon\right) - \cos x
\sin \left(\frac{\varepsilon}{2}\right) \cdot \left(\left(\cos \left(\varepsilon \cdot 0.5\right) \cdot \sin x - \sin \left(\varepsilon \cdot -0.5\right) \cdot \cos x\right) \cdot -2\right)

Error?

Try it out?

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation?

  1. Initial program 36.1%

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

    \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt{\cos \left(x + \varepsilon\right)}, \sqrt{\cos \left(x + \varepsilon\right)}, -\cos x\right)} \]
  3. Applied egg-rr43.5%

    \[\leadsto \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)} \]
  4. Simplified76.8%

    \[\leadsto \color{blue}{\sin \left(\frac{\varepsilon}{2}\right) \cdot \left(\sin \left(\frac{\varepsilon + \left(x + x\right)}{2}\right) \cdot -2\right)} \]
  5. Applied egg-rr76.8%

    \[\leadsto \sin \left(\frac{\varepsilon}{2}\right) \cdot \left(\color{blue}{\left(-\sin \left(\frac{\mathsf{fma}\left(x, 2, \varepsilon\right)}{-2}\right)\right)} \cdot -2\right) \]
  6. Simplified76.8%

    \[\leadsto \sin \left(\frac{\varepsilon}{2}\right) \cdot \left(\color{blue}{\left(-\sin \left(\frac{\varepsilon}{-2} - x\right)\right)} \cdot -2\right) \]
  7. Applied egg-rr99.5%

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

    \[\leadsto \sin \left(\frac{\varepsilon}{2}\right) \cdot \left(\left(-\color{blue}{\left(\sin \left(-0.5 \cdot \varepsilon\right) \cdot \cos x - \cos \left(\varepsilon \cdot 0.5\right) \cdot \sin x\right)}\right) \cdot -2\right) \]
  9. Final simplification99.5%

    \[\leadsto \sin \left(\frac{\varepsilon}{2}\right) \cdot \left(\left(\cos \left(\varepsilon \cdot 0.5\right) \cdot \sin x - \sin \left(\varepsilon \cdot -0.5\right) \cdot \cos x\right) \cdot -2\right) \]

Alternatives

Alternative 1
Accuracy99.1%
Cost32841
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -4.2 \cdot 10^{-5} \lor \neg \left(\varepsilon \leq 4.8 \cdot 10^{-5}\right):\\ \;\;\;\;\left(\cos x \cdot \cos \varepsilon - \sin x \cdot \sin \varepsilon\right) - \cos x\\ \mathbf{else}:\\ \;\;\;\;\cos x \cdot \left(-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right)\right) - \varepsilon \cdot \sin x\\ \end{array} \]
Alternative 2
Accuracy99.1%
Cost32840
\[\begin{array}{l} t_0 := \cos x \cdot \cos \varepsilon\\ t_1 := \sin x \cdot \sin \varepsilon\\ \mathbf{if}\;\varepsilon \leq -3.9 \cdot 10^{-5}:\\ \;\;\;\;t_0 - \left(\cos x + t_1\right)\\ \mathbf{elif}\;\varepsilon \leq 4.8 \cdot 10^{-5}:\\ \;\;\;\;\cos x \cdot \left(-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right)\right) - \varepsilon \cdot \sin x\\ \mathbf{else}:\\ \;\;\;\;\left(t_0 - t_1\right) - \cos x\\ \end{array} \]
Alternative 3
Accuracy76.3%
Cost13641
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.0088 \lor \neg \left(\varepsilon \leq 0.018\right):\\ \;\;\;\;\cos \varepsilon - \cos x\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left(\varepsilon \cdot \left(-0.5 \cdot \cos x\right) - \sin x\right)\\ \end{array} \]
Alternative 4
Accuracy75.7%
Cost13504
\[\left(\sin \left(\varepsilon \cdot -0.5\right) \cdot -2\right) \cdot \sin \left(\varepsilon \cdot -0.5 - x\right) \]
Alternative 5
Accuracy76.1%
Cost13257
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.011 \lor \neg \left(\varepsilon \leq 0.0031\right):\\ \;\;\;\;\cos \varepsilon - \cos x\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left(\varepsilon \cdot -0.5\right) - \varepsilon \cdot \sin x\\ \end{array} \]
Alternative 6
Accuracy75.4%
Cost7241
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.011 \lor \neg \left(\varepsilon \leq 0.0068\right):\\ \;\;\;\;\cos \varepsilon + -1\\ \mathbf{else}:\\ \;\;\;\;\varepsilon \cdot \left(\varepsilon \cdot -0.5\right) - \varepsilon \cdot \sin x\\ \end{array} \]
Alternative 7
Accuracy65.3%
Cost7052
\[\begin{array}{l} t_0 := \cos \varepsilon + -1\\ \mathbf{if}\;\varepsilon \leq -0.000175:\\ \;\;\;\;t_0\\ \mathbf{elif}\;\varepsilon \leq -1.35 \cdot 10^{-94}:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right)\\ \mathbf{elif}\;\varepsilon \leq 9.5 \cdot 10^{-7}:\\ \;\;\;\;\varepsilon \cdot \left(-\sin x\right)\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 8
Accuracy46.8%
Cost6857
\[\begin{array}{l} \mathbf{if}\;\varepsilon \leq -0.000175 \lor \neg \left(\varepsilon \leq 0.000185\right):\\ \;\;\;\;\cos \varepsilon + -1\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right)\\ \end{array} \]
Alternative 9
Accuracy20.5%
Cost320
\[-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) \]
Alternative 10
Accuracy12.3%
Cost64
\[0 \]

Error

Reproduce?

herbie shell --seed 2023157 -o generate:proofs
(FPCore (x eps)
  :name "2cos (problem 3.3.5)"
  :precision binary64
  (- (cos (+ x eps)) (cos x)))