(FPCore (x eps) :precision binary64 (- (cos (+ x eps)) (cos x)))
(FPCore (x eps) :precision binary64 (- (* (* (tan (/ eps 2.0)) (sin eps)) (- (cos x))) (* (sin eps) (sin x))))
double code(double x, double eps) {
return cos((x + eps)) - cos(x);
}
double code(double x, double eps) {
return ((tan((eps / 2.0)) * sin(eps)) * -cos(x)) - (sin(eps) * sin(x));
}
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 = ((tan((eps / 2.0d0)) * sin(eps)) * -cos(x)) - (sin(eps) * sin(x))
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.tan((eps / 2.0)) * Math.sin(eps)) * -Math.cos(x)) - (Math.sin(eps) * Math.sin(x));
}
def code(x, eps): return math.cos((x + eps)) - math.cos(x)
def code(x, eps): return ((math.tan((eps / 2.0)) * math.sin(eps)) * -math.cos(x)) - (math.sin(eps) * math.sin(x))
function code(x, eps) return Float64(cos(Float64(x + eps)) - cos(x)) end
function code(x, eps) return Float64(Float64(Float64(tan(Float64(eps / 2.0)) * sin(eps)) * Float64(-cos(x))) - Float64(sin(eps) * sin(x))) end
function tmp = code(x, eps) tmp = cos((x + eps)) - cos(x); end
function tmp = code(x, eps) tmp = ((tan((eps / 2.0)) * sin(eps)) * -cos(x)) - (sin(eps) * sin(x)); end
code[x_, eps_] := N[(N[Cos[N[(x + eps), $MachinePrecision]], $MachinePrecision] - N[Cos[x], $MachinePrecision]), $MachinePrecision]
code[x_, eps_] := N[(N[(N[(N[Tan[N[(eps / 2.0), $MachinePrecision]], $MachinePrecision] * N[Sin[eps], $MachinePrecision]), $MachinePrecision] * (-N[Cos[x], $MachinePrecision])), $MachinePrecision] - N[(N[Sin[eps], $MachinePrecision] * N[Sin[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\cos \left(x + \varepsilon\right) - \cos x
\left(\tan \left(\frac{\varepsilon}{2}\right) \cdot \sin \varepsilon\right) \cdot \left(-\cos x\right) - \sin \varepsilon \cdot \sin x



Bits error versus x



Bits error versus eps
Results
Initial program 39.8
Applied egg-rr25.3
Taylor expanded in x around inf 25.3
Simplified6.2
Applied egg-rr0.6
Taylor expanded in eps around inf 0.6
Simplified0.3
Final simplification0.3
herbie shell --seed 2022150
(FPCore (x eps)
:name "2cos (problem 3.3.5)"
:precision binary64
(- (cos (+ x eps)) (cos x)))