Math FPCore C Julia Wolfram TeX \[\tan \left(x + \varepsilon\right) - \tan x
\]
↓
\[\begin{array}{l}
\mathbf{if}\;\varepsilon \leq -3.8 \cdot 10^{-9} \lor \neg \left(\varepsilon \leq 1.45 \cdot 10^{-26}\right):\\
\;\;\;\;\mathsf{fma}\left(\tan x + \tan \varepsilon, \frac{1}{\frac{\mathsf{fma}\left(\tan x, \tan \varepsilon, -1\right)}{-1}}, -\tan x\right)\\
\mathbf{else}:\\
\;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
\end{array}
\]
(FPCore (x eps) :precision binary64 (- (tan (+ x eps)) (tan x))) ↓
(FPCore (x eps)
:precision binary64
(if (or (<= eps -3.8e-9) (not (<= eps 1.45e-26)))
(fma
(+ (tan x) (tan eps))
(/ 1.0 (/ (fma (tan x) (tan eps) -1.0) -1.0))
(- (tan x)))
(+ eps (* eps (/ (pow (sin x) 2.0) (pow (cos x) 2.0)))))) double code(double x, double eps) {
return tan((x + eps)) - tan(x);
}
↓
double code(double x, double eps) {
double tmp;
if ((eps <= -3.8e-9) || !(eps <= 1.45e-26)) {
tmp = fma((tan(x) + tan(eps)), (1.0 / (fma(tan(x), tan(eps), -1.0) / -1.0)), -tan(x));
} else {
tmp = eps + (eps * (pow(sin(x), 2.0) / pow(cos(x), 2.0)));
}
return tmp;
}
function code(x, eps)
return Float64(tan(Float64(x + eps)) - tan(x))
end
↓
function code(x, eps)
tmp = 0.0
if ((eps <= -3.8e-9) || !(eps <= 1.45e-26))
tmp = fma(Float64(tan(x) + tan(eps)), Float64(1.0 / Float64(fma(tan(x), tan(eps), -1.0) / -1.0)), Float64(-tan(x)));
else
tmp = Float64(eps + Float64(eps * Float64((sin(x) ^ 2.0) / (cos(x) ^ 2.0))));
end
return tmp
end
code[x_, eps_] := N[(N[Tan[N[(x + eps), $MachinePrecision]], $MachinePrecision] - N[Tan[x], $MachinePrecision]), $MachinePrecision]
↓
code[x_, eps_] := If[Or[LessEqual[eps, -3.8e-9], N[Not[LessEqual[eps, 1.45e-26]], $MachinePrecision]], N[(N[(N[Tan[x], $MachinePrecision] + N[Tan[eps], $MachinePrecision]), $MachinePrecision] * N[(1.0 / N[(N[(N[Tan[x], $MachinePrecision] * N[Tan[eps], $MachinePrecision] + -1.0), $MachinePrecision] / -1.0), $MachinePrecision]), $MachinePrecision] + (-N[Tan[x], $MachinePrecision])), $MachinePrecision], N[(eps + N[(eps * N[(N[Power[N[Sin[x], $MachinePrecision], 2.0], $MachinePrecision] / N[Power[N[Cos[x], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\tan \left(x + \varepsilon\right) - \tan x
↓
\begin{array}{l}
\mathbf{if}\;\varepsilon \leq -3.8 \cdot 10^{-9} \lor \neg \left(\varepsilon \leq 1.45 \cdot 10^{-26}\right):\\
\;\;\;\;\mathsf{fma}\left(\tan x + \tan \varepsilon, \frac{1}{\frac{\mathsf{fma}\left(\tan x, \tan \varepsilon, -1\right)}{-1}}, -\tan x\right)\\
\mathbf{else}:\\
\;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
\end{array}
Alternatives Alternative 1 Accuracy 98.8% Cost 45833
\[\begin{array}{l}
\mathbf{if}\;\varepsilon \leq -3.8 \cdot 10^{-9} \lor \neg \left(\varepsilon \leq 1.45 \cdot 10^{-26}\right):\\
\;\;\;\;\mathsf{fma}\left(\tan x + \tan \varepsilon, \frac{1}{\frac{\mathsf{fma}\left(\tan x, \tan \varepsilon, -1\right)}{-1}}, -\tan x\right)\\
\mathbf{else}:\\
\;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
\end{array}
\]
Alternative 2 Accuracy 98.8% Cost 39304
\[\begin{array}{l}
\mathbf{if}\;\varepsilon \leq -3.5 \cdot 10^{-9}:\\
\;\;\;\;\left(\tan x + \tan \varepsilon\right) \cdot \frac{1}{1 - \tan x \cdot \tan \varepsilon} - \tan x\\
\mathbf{elif}\;\varepsilon \leq 1.45 \cdot 10^{-26}:\\
\;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-\tan x\right) - \tan \varepsilon}{\mathsf{fma}\left(\tan x, \tan \varepsilon, -1\right)} - \tan x\\
\end{array}
\]
Alternative 3 Accuracy 98.8% Cost 39304
\[\begin{array}{l}
t_0 := \mathsf{fma}\left(\tan x, \tan \varepsilon, -1\right)\\
\mathbf{if}\;\varepsilon \leq -6.2 \cdot 10^{-9}:\\
\;\;\;\;\left(\tan x + \tan \varepsilon\right) \cdot \frac{1}{-t_0} - \tan x\\
\mathbf{elif}\;\varepsilon \leq 1.45 \cdot 10^{-26}:\\
\;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-\tan x\right) - \tan \varepsilon}{t_0} - \tan x\\
\end{array}
\]
Alternative 4 Accuracy 98.8% Cost 39304
\[\begin{array}{l}
t_0 := -\tan x\\
\mathbf{if}\;\varepsilon \leq -2.5 \cdot 10^{-9}:\\
\;\;\;\;\mathsf{fma}\left(\tan x + \tan \varepsilon, \frac{1}{1 - \tan x \cdot \tan \varepsilon}, t_0\right)\\
\mathbf{elif}\;\varepsilon \leq 1.45 \cdot 10^{-26}:\\
\;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{t_0 - \tan \varepsilon}{\mathsf{fma}\left(\tan x, \tan \varepsilon, -1\right)} - \tan x\\
\end{array}
\]
Alternative 5 Accuracy 98.8% Cost 33096
\[\begin{array}{l}
t_0 := \tan x + \tan \varepsilon\\
\mathbf{if}\;\varepsilon \leq -6.2 \cdot 10^{-9}:\\
\;\;\;\;t_0 \cdot \frac{1}{1 - \tan x \cdot \tan \varepsilon} - \tan x\\
\mathbf{elif}\;\varepsilon \leq 1.45 \cdot 10^{-26}:\\
\;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{t_0}{1 - \frac{\tan x}{\frac{1}{\tan \varepsilon}}} - \tan x\\
\end{array}
\]
Alternative 6 Accuracy 98.8% Cost 32969
\[\begin{array}{l}
\mathbf{if}\;\varepsilon \leq -1.9 \cdot 10^{-9} \lor \neg \left(\varepsilon \leq 1.45 \cdot 10^{-26}\right):\\
\;\;\;\;\frac{\tan x + \tan \varepsilon}{1 - \tan x \cdot \tan \varepsilon} - \tan x\\
\mathbf{else}:\\
\;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
\end{array}
\]
Alternative 7 Accuracy 98.8% Cost 32968
\[\begin{array}{l}
t_0 := \tan x + \tan \varepsilon\\
t_1 := 1 - \tan x \cdot \tan \varepsilon\\
\mathbf{if}\;\varepsilon \leq -4 \cdot 10^{-9}:\\
\;\;\;\;t_0 \cdot \frac{1}{t_1} - \tan x\\
\mathbf{elif}\;\varepsilon \leq 1.45 \cdot 10^{-26}:\\
\;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{t_0}{t_1} - \tan x\\
\end{array}
\]
Alternative 8 Accuracy 77.6% Cost 26440
\[\begin{array}{l}
\mathbf{if}\;\varepsilon \leq -6.8 \cdot 10^{-6}:\\
\;\;\;\;\tan \varepsilon\\
\mathbf{elif}\;\varepsilon \leq 1.45 \cdot 10^{-26}:\\
\;\;\;\;\varepsilon \cdot \left(1 + \frac{{\sin x}^{2}}{{\cos x}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\tan \varepsilon\\
\end{array}
\]
Alternative 9 Accuracy 77.6% Cost 26440
\[\begin{array}{l}
\mathbf{if}\;\varepsilon \leq -6.5 \cdot 10^{-6}:\\
\;\;\;\;\tan \varepsilon\\
\mathbf{elif}\;\varepsilon \leq 1.45 \cdot 10^{-26}:\\
\;\;\;\;\varepsilon + \varepsilon \cdot \frac{{\sin x}^{2}}{{\cos x}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\tan \varepsilon\\
\end{array}
\]
Alternative 10 Accuracy 58.1% Cost 6464
\[\tan \varepsilon
\]
Alternative 11 Accuracy 31.7% Cost 64
\[\varepsilon
\]