Math FPCore C Java Python Julia Wolfram TeX \[\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)}
\]
↓
\[\begin{array}{l}
t_0 := \frac{x}{y \cdot 2}\\
\mathbf{if}\;\frac{\tan t_0}{\sin t_0} \leq 4:\\
\;\;\;\;\frac{1}{\mathsf{expm1}\left(\mathsf{log1p}\left(\cos \left(\frac{x}{y} \cdot 0.5\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\mathsf{expm1}\left(\log 2 + -0.0625 \cdot \frac{x \cdot x}{y \cdot y}\right)}\\
\end{array}
\]
(FPCore (x y)
:precision binary64
(/ (tan (/ x (* y 2.0))) (sin (/ x (* y 2.0))))) ↓
(FPCore (x y)
:precision binary64
(let* ((t_0 (/ x (* y 2.0))))
(if (<= (/ (tan t_0) (sin t_0)) 4.0)
(/ 1.0 (expm1 (log1p (cos (* (/ x y) 0.5)))))
(/ 1.0 (expm1 (+ (log 2.0) (* -0.0625 (/ (* x x) (* y y))))))))) double code(double x, double y) {
return tan((x / (y * 2.0))) / sin((x / (y * 2.0)));
}
↓
double code(double x, double y) {
double t_0 = x / (y * 2.0);
double tmp;
if ((tan(t_0) / sin(t_0)) <= 4.0) {
tmp = 1.0 / expm1(log1p(cos(((x / y) * 0.5))));
} else {
tmp = 1.0 / expm1((log(2.0) + (-0.0625 * ((x * x) / (y * y)))));
}
return tmp;
}
public static double code(double x, double y) {
return Math.tan((x / (y * 2.0))) / Math.sin((x / (y * 2.0)));
}
↓
public static double code(double x, double y) {
double t_0 = x / (y * 2.0);
double tmp;
if ((Math.tan(t_0) / Math.sin(t_0)) <= 4.0) {
tmp = 1.0 / Math.expm1(Math.log1p(Math.cos(((x / y) * 0.5))));
} else {
tmp = 1.0 / Math.expm1((Math.log(2.0) + (-0.0625 * ((x * x) / (y * y)))));
}
return tmp;
}
def code(x, y):
return math.tan((x / (y * 2.0))) / math.sin((x / (y * 2.0)))
↓
def code(x, y):
t_0 = x / (y * 2.0)
tmp = 0
if (math.tan(t_0) / math.sin(t_0)) <= 4.0:
tmp = 1.0 / math.expm1(math.log1p(math.cos(((x / y) * 0.5))))
else:
tmp = 1.0 / math.expm1((math.log(2.0) + (-0.0625 * ((x * x) / (y * y)))))
return tmp
function code(x, y)
return Float64(tan(Float64(x / Float64(y * 2.0))) / sin(Float64(x / Float64(y * 2.0))))
end
↓
function code(x, y)
t_0 = Float64(x / Float64(y * 2.0))
tmp = 0.0
if (Float64(tan(t_0) / sin(t_0)) <= 4.0)
tmp = Float64(1.0 / expm1(log1p(cos(Float64(Float64(x / y) * 0.5)))));
else
tmp = Float64(1.0 / expm1(Float64(log(2.0) + Float64(-0.0625 * Float64(Float64(x * x) / Float64(y * y))))));
end
return tmp
end
code[x_, y_] := N[(N[Tan[N[(x / N[(y * 2.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / N[Sin[N[(x / N[(y * 2.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
↓
code[x_, y_] := Block[{t$95$0 = N[(x / N[(y * 2.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(N[Tan[t$95$0], $MachinePrecision] / N[Sin[t$95$0], $MachinePrecision]), $MachinePrecision], 4.0], N[(1.0 / N[(Exp[N[Log[1 + N[Cos[N[(N[(x / y), $MachinePrecision] * 0.5), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]] - 1), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(Exp[N[(N[Log[2.0], $MachinePrecision] + N[(-0.0625 * N[(N[(x * x), $MachinePrecision] / N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]] - 1), $MachinePrecision]), $MachinePrecision]]]
\frac{\tan \left(\frac{x}{y \cdot 2}\right)}{\sin \left(\frac{x}{y \cdot 2}\right)}
↓
\begin{array}{l}
t_0 := \frac{x}{y \cdot 2}\\
\mathbf{if}\;\frac{\tan t_0}{\sin t_0} \leq 4:\\
\;\;\;\;\frac{1}{\mathsf{expm1}\left(\mathsf{log1p}\left(\cos \left(\frac{x}{y} \cdot 0.5\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\mathsf{expm1}\left(\log 2 + -0.0625 \cdot \frac{x \cdot x}{y \cdot y}\right)}\\
\end{array}