\[\tan \left(x + \varepsilon\right) - \tan x
\]
↓
\[\begin{array}{l}
t_0 := \frac{\tan x + \tan \varepsilon}{1 - \tan x \cdot \tan \varepsilon} - \tan x\\
\mathbf{if}\;\varepsilon \leq -8 \cdot 10^{-5}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;\varepsilon \leq 6.5 \cdot 10^{-7}:\\
\;\;\;\;\frac{\sin \varepsilon}{\left(-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) + 1\right) \cdot {\cos x}^{2} - \left(\varepsilon \cdot \cos x\right) \cdot \sin x}\\
\mathbf{else}:\\
\;\;\;\;t_0\\
\end{array}
\]
(FPCore (x eps) :precision binary64 (- (tan (+ x eps)) (tan x)))
↓
(FPCore (x eps)
:precision binary64
(let* ((t_0
(- (/ (+ (tan x) (tan eps)) (- 1.0 (* (tan x) (tan eps)))) (tan x))))
(if (<= eps -8e-5)
t_0
(if (<= eps 6.5e-7)
(/
(sin eps)
(-
(* (+ (* -0.5 (* eps eps)) 1.0) (pow (cos x) 2.0))
(* (* eps (cos x)) (sin x))))
t_0))))double code(double x, double eps) {
return tan((x + eps)) - tan(x);
}
↓
double code(double x, double eps) {
double t_0 = ((tan(x) + tan(eps)) / (1.0 - (tan(x) * tan(eps)))) - tan(x);
double tmp;
if (eps <= -8e-5) {
tmp = t_0;
} else if (eps <= 6.5e-7) {
tmp = sin(eps) / ((((-0.5 * (eps * eps)) + 1.0) * pow(cos(x), 2.0)) - ((eps * cos(x)) * sin(x)));
} else {
tmp = t_0;
}
return tmp;
}
real(8) function code(x, eps)
real(8), intent (in) :: x
real(8), intent (in) :: eps
code = tan((x + eps)) - tan(x)
end function
↓
real(8) function code(x, eps)
real(8), intent (in) :: x
real(8), intent (in) :: eps
real(8) :: t_0
real(8) :: tmp
t_0 = ((tan(x) + tan(eps)) / (1.0d0 - (tan(x) * tan(eps)))) - tan(x)
if (eps <= (-8d-5)) then
tmp = t_0
else if (eps <= 6.5d-7) then
tmp = sin(eps) / (((((-0.5d0) * (eps * eps)) + 1.0d0) * (cos(x) ** 2.0d0)) - ((eps * cos(x)) * sin(x)))
else
tmp = t_0
end if
code = tmp
end function
public static double code(double x, double eps) {
return Math.tan((x + eps)) - Math.tan(x);
}
↓
public static double code(double x, double eps) {
double t_0 = ((Math.tan(x) + Math.tan(eps)) / (1.0 - (Math.tan(x) * Math.tan(eps)))) - Math.tan(x);
double tmp;
if (eps <= -8e-5) {
tmp = t_0;
} else if (eps <= 6.5e-7) {
tmp = Math.sin(eps) / ((((-0.5 * (eps * eps)) + 1.0) * Math.pow(Math.cos(x), 2.0)) - ((eps * Math.cos(x)) * Math.sin(x)));
} else {
tmp = t_0;
}
return tmp;
}
def code(x, eps):
return math.tan((x + eps)) - math.tan(x)
↓
def code(x, eps):
t_0 = ((math.tan(x) + math.tan(eps)) / (1.0 - (math.tan(x) * math.tan(eps)))) - math.tan(x)
tmp = 0
if eps <= -8e-5:
tmp = t_0
elif eps <= 6.5e-7:
tmp = math.sin(eps) / ((((-0.5 * (eps * eps)) + 1.0) * math.pow(math.cos(x), 2.0)) - ((eps * math.cos(x)) * math.sin(x)))
else:
tmp = t_0
return tmp
function code(x, eps)
return Float64(tan(Float64(x + eps)) - tan(x))
end
↓
function code(x, eps)
t_0 = Float64(Float64(Float64(tan(x) + tan(eps)) / Float64(1.0 - Float64(tan(x) * tan(eps)))) - tan(x))
tmp = 0.0
if (eps <= -8e-5)
tmp = t_0;
elseif (eps <= 6.5e-7)
tmp = Float64(sin(eps) / Float64(Float64(Float64(Float64(-0.5 * Float64(eps * eps)) + 1.0) * (cos(x) ^ 2.0)) - Float64(Float64(eps * cos(x)) * sin(x))));
else
tmp = t_0;
end
return tmp
end
function tmp = code(x, eps)
tmp = tan((x + eps)) - tan(x);
end
↓
function tmp_2 = code(x, eps)
t_0 = ((tan(x) + tan(eps)) / (1.0 - (tan(x) * tan(eps)))) - tan(x);
tmp = 0.0;
if (eps <= -8e-5)
tmp = t_0;
elseif (eps <= 6.5e-7)
tmp = sin(eps) / ((((-0.5 * (eps * eps)) + 1.0) * (cos(x) ^ 2.0)) - ((eps * cos(x)) * sin(x)));
else
tmp = t_0;
end
tmp_2 = tmp;
end
code[x_, eps_] := N[(N[Tan[N[(x + eps), $MachinePrecision]], $MachinePrecision] - N[Tan[x], $MachinePrecision]), $MachinePrecision]
↓
code[x_, eps_] := Block[{t$95$0 = N[(N[(N[(N[Tan[x], $MachinePrecision] + N[Tan[eps], $MachinePrecision]), $MachinePrecision] / N[(1.0 - N[(N[Tan[x], $MachinePrecision] * N[Tan[eps], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[Tan[x], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[eps, -8e-5], t$95$0, If[LessEqual[eps, 6.5e-7], N[(N[Sin[eps], $MachinePrecision] / N[(N[(N[(N[(-0.5 * N[(eps * eps), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision] * N[Power[N[Cos[x], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] - N[(N[(eps * N[Cos[x], $MachinePrecision]), $MachinePrecision] * N[Sin[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\tan \left(x + \varepsilon\right) - \tan x
↓
\begin{array}{l}
t_0 := \frac{\tan x + \tan \varepsilon}{1 - \tan x \cdot \tan \varepsilon} - \tan x\\
\mathbf{if}\;\varepsilon \leq -8 \cdot 10^{-5}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;\varepsilon \leq 6.5 \cdot 10^{-7}:\\
\;\;\;\;\frac{\sin \varepsilon}{\left(-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) + 1\right) \cdot {\cos x}^{2} - \left(\varepsilon \cdot \cos x\right) \cdot \sin x}\\
\mathbf{else}:\\
\;\;\;\;t_0\\
\end{array}
Alternatives
| Alternative 1 |
|---|
| Error | 0.4 |
|---|
| Cost | 45440 |
|---|
\[\frac{\sin \varepsilon}{\mathsf{fma}\left(\sin \left(-\varepsilon\right), \sin x, \cos x \cdot \cos \varepsilon\right) \cdot \cos x}
\]
| Alternative 2 |
|---|
| Error | 0.4 |
|---|
| Cost | 45440 |
|---|
\[\frac{\sin \varepsilon}{\mathsf{fma}\left(\cos x, \cos \varepsilon, \sin x \cdot \sin \left(-\varepsilon\right)\right) \cdot \cos x}
\]
| Alternative 3 |
|---|
| Error | 0.4 |
|---|
| Cost | 39104 |
|---|
\[\frac{\sin \varepsilon}{\left(\cos \varepsilon \cdot \cos x - \sin \varepsilon \cdot \sin x\right) \cdot \cos x}
\]
| Alternative 4 |
|---|
| Error | 0.5 |
|---|
| Cost | 33216 |
|---|
\[\frac{\sin \varepsilon}{\frac{\cos \varepsilon \cdot \left(1 + \cos \left(x + x\right)\right)}{2} - \frac{\sin \varepsilon \cdot \sin \left(x + x\right)}{2}}
\]
| Alternative 5 |
|---|
| Error | 0.3 |
|---|
| Cost | 32968 |
|---|
\[\begin{array}{l}
t_0 := \frac{\tan x + \tan \varepsilon}{1 - \tan x \cdot \tan \varepsilon} - \tan x\\
\mathbf{if}\;\varepsilon \leq -9.6 \cdot 10^{-5}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;\varepsilon \leq 6.5 \cdot 10^{-7}:\\
\;\;\;\;\frac{\sin \varepsilon}{\left(\left(-0.5 \cdot \left(\varepsilon \cdot \varepsilon\right) + 1\right) \cdot \cos x - \varepsilon \cdot \sin x\right) \cdot \cos x}\\
\mathbf{else}:\\
\;\;\;\;t_0\\
\end{array}
\]
| Alternative 6 |
|---|
| Error | 14.7 |
|---|
| Cost | 19912 |
|---|
\[\begin{array}{l}
\mathbf{if}\;\varepsilon \leq -0.0074:\\
\;\;\;\;\tan \varepsilon - \tan x\\
\mathbf{elif}\;\varepsilon \leq 5.2 \cdot 10^{-7}:\\
\;\;\;\;\frac{\varepsilon}{{\cos x}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\tan x + \tan \varepsilon}{1} - \tan x\\
\end{array}
\]
| Alternative 7 |
|---|
| Error | 14.8 |
|---|
| Cost | 19904 |
|---|
\[\frac{\sin \varepsilon}{\frac{\cos \left(\left(x + \varepsilon\right) + x\right) + \cos \varepsilon}{2}}
\]
| Alternative 8 |
|---|
| Error | 14.8 |
|---|
| Cost | 19904 |
|---|
\[\frac{\frac{\sin \varepsilon}{\cos \left(\varepsilon + \left(x + x\right)\right) + \cos \varepsilon}}{0.5}
\]
| Alternative 9 |
|---|
| Error | 15.3 |
|---|
| Cost | 19648 |
|---|
\[\frac{\sin \varepsilon}{\cos \left(x + \varepsilon\right) \cdot \cos x}
\]
| Alternative 10 |
|---|
| Error | 14.7 |
|---|
| Cost | 13320 |
|---|
\[\begin{array}{l}
\mathbf{if}\;\varepsilon \leq -0.002:\\
\;\;\;\;\tan \varepsilon - \tan x\\
\mathbf{elif}\;\varepsilon \leq 6.2 \cdot 10^{-7}:\\
\;\;\;\;\frac{\varepsilon}{{\cos x}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\tan \varepsilon\\
\end{array}
\]
| Alternative 11 |
|---|
| Error | 41.5 |
|---|
| Cost | 6464 |
|---|
\[\sin \varepsilon
\]
| Alternative 12 |
|---|
| Error | 26.5 |
|---|
| Cost | 6464 |
|---|
\[\tan \varepsilon
\]
| Alternative 13 |
|---|
| Error | 61.3 |
|---|
| Cost | 64 |
|---|
\[0
\]
| Alternative 14 |
|---|
| Error | 44.0 |
|---|
| Cost | 64 |
|---|
\[\varepsilon
\]