\[\left(\frac{x}{2} + y \cdot x\right) + z
\]
↓
\[\begin{array}{l}
\mathbf{if}\;y \leq -9220194.986088628:\\
\;\;\;\;\mathsf{fma}\left(y, x, z\right)\\
\mathbf{elif}\;y \leq 1.459398127082692 \cdot 10^{-17}:\\
\;\;\;\;z + x \cdot 0.5\\
\mathbf{else}:\\
\;\;\;\;z + y \cdot x\\
\end{array}
\]
(FPCore (x y z) :precision binary64 (+ (+ (/ x 2.0) (* y x)) z))
↓
(FPCore (x y z)
:precision binary64
(if (<= y -9220194.986088628)
(fma y x z)
(if (<= y 1.459398127082692e-17) (+ z (* x 0.5)) (+ z (* y x)))))
double code(double x, double y, double z) {
return ((x / 2.0) + (y * x)) + z;
}
↓
double code(double x, double y, double z) {
double tmp;
if (y <= -9220194.986088628) {
tmp = fma(y, x, z);
} else if (y <= 1.459398127082692e-17) {
tmp = z + (x * 0.5);
} else {
tmp = z + (y * x);
}
return tmp;
}
function code(x, y, z)
return Float64(Float64(Float64(x / 2.0) + Float64(y * x)) + z)
end
↓
function code(x, y, z)
tmp = 0.0
if (y <= -9220194.986088628)
tmp = fma(y, x, z);
elseif (y <= 1.459398127082692e-17)
tmp = Float64(z + Float64(x * 0.5));
else
tmp = Float64(z + Float64(y * x));
end
return tmp
end
code[x_, y_, z_] := N[(N[(N[(x / 2.0), $MachinePrecision] + N[(y * x), $MachinePrecision]), $MachinePrecision] + z), $MachinePrecision]
↓
code[x_, y_, z_] := If[LessEqual[y, -9220194.986088628], N[(y * x + z), $MachinePrecision], If[LessEqual[y, 1.459398127082692e-17], N[(z + N[(x * 0.5), $MachinePrecision]), $MachinePrecision], N[(z + N[(y * x), $MachinePrecision]), $MachinePrecision]]]
\left(\frac{x}{2} + y \cdot x\right) + z
↓
\begin{array}{l}
\mathbf{if}\;y \leq -9220194.986088628:\\
\;\;\;\;\mathsf{fma}\left(y, x, z\right)\\
\mathbf{elif}\;y \leq 1.459398127082692 \cdot 10^{-17}:\\
\;\;\;\;z + x \cdot 0.5\\
\mathbf{else}:\\
\;\;\;\;z + y \cdot x\\
\end{array}