\[x \cdot \left(1 + y \cdot y\right)
\]
↓
\[\begin{array}{l}
\mathbf{if}\;y \leq -8 \cdot 10^{+52}:\\
\;\;\;\;y \cdot \left(y \cdot x\right)\\
\mathbf{elif}\;y \leq 3.2 \cdot 10^{+133}:\\
\;\;\;\;x \cdot \mathsf{fma}\left(y, y, 1\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{y \cdot x}{\frac{1}{y}}\\
\end{array}
\]
(FPCore (x y) :precision binary64 (* x (+ 1.0 (* y y))))
↓
(FPCore (x y)
:precision binary64
(if (<= y -8e+52)
(* y (* y x))
(if (<= y 3.2e+133) (* x (fma y y 1.0)) (/ (* y x) (/ 1.0 y)))))
double code(double x, double y) {
return x * (1.0 + (y * y));
}
↓
double code(double x, double y) {
double tmp;
if (y <= -8e+52) {
tmp = y * (y * x);
} else if (y <= 3.2e+133) {
tmp = x * fma(y, y, 1.0);
} else {
tmp = (y * x) / (1.0 / y);
}
return tmp;
}
function code(x, y)
return Float64(x * Float64(1.0 + Float64(y * y)))
end
↓
function code(x, y)
tmp = 0.0
if (y <= -8e+52)
tmp = Float64(y * Float64(y * x));
elseif (y <= 3.2e+133)
tmp = Float64(x * fma(y, y, 1.0));
else
tmp = Float64(Float64(y * x) / Float64(1.0 / y));
end
return tmp
end
code[x_, y_] := N[(x * N[(1.0 + N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
↓
code[x_, y_] := If[LessEqual[y, -8e+52], N[(y * N[(y * x), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 3.2e+133], N[(x * N[(y * y + 1.0), $MachinePrecision]), $MachinePrecision], N[(N[(y * x), $MachinePrecision] / N[(1.0 / y), $MachinePrecision]), $MachinePrecision]]]
x \cdot \left(1 + y \cdot y\right)
↓
\begin{array}{l}
\mathbf{if}\;y \leq -8 \cdot 10^{+52}:\\
\;\;\;\;y \cdot \left(y \cdot x\right)\\
\mathbf{elif}\;y \leq 3.2 \cdot 10^{+133}:\\
\;\;\;\;x \cdot \mathsf{fma}\left(y, y, 1\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{y \cdot x}{\frac{1}{y}}\\
\end{array}