Math FPCore C Julia Wolfram TeX \[\frac{x + y \cdot \left(z - x\right)}{z}
\]
↓
\[\begin{array}{l}
\mathbf{if}\;y \leq -2.8 \cdot 10^{+26}:\\
\;\;\;\;\frac{y}{\frac{z}{z - x}}\\
\mathbf{elif}\;y \leq 5.2 \cdot 10^{+15}:\\
\;\;\;\;\frac{\mathsf{fma}\left(y, z - x, x\right)}{z}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \frac{z - x}{z}\\
\end{array}
\]
(FPCore (x y z) :precision binary64 (/ (+ x (* y (- z x))) z)) ↓
(FPCore (x y z)
:precision binary64
(if (<= y -2.8e+26)
(/ y (/ z (- z x)))
(if (<= y 5.2e+15) (/ (fma y (- z x) x) z) (* y (/ (- z x) z))))) double code(double x, double y, double z) {
return (x + (y * (z - x))) / z;
}
↓
double code(double x, double y, double z) {
double tmp;
if (y <= -2.8e+26) {
tmp = y / (z / (z - x));
} else if (y <= 5.2e+15) {
tmp = fma(y, (z - x), x) / z;
} else {
tmp = y * ((z - x) / z);
}
return tmp;
}
function code(x, y, z)
return Float64(Float64(x + Float64(y * Float64(z - x))) / z)
end
↓
function code(x, y, z)
tmp = 0.0
if (y <= -2.8e+26)
tmp = Float64(y / Float64(z / Float64(z - x)));
elseif (y <= 5.2e+15)
tmp = Float64(fma(y, Float64(z - x), x) / z);
else
tmp = Float64(y * Float64(Float64(z - x) / z));
end
return tmp
end
code[x_, y_, z_] := N[(N[(x + N[(y * N[(z - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]
↓
code[x_, y_, z_] := If[LessEqual[y, -2.8e+26], N[(y / N[(z / N[(z - x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 5.2e+15], N[(N[(y * N[(z - x), $MachinePrecision] + x), $MachinePrecision] / z), $MachinePrecision], N[(y * N[(N[(z - x), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]]]
\frac{x + y \cdot \left(z - x\right)}{z}
↓
\begin{array}{l}
\mathbf{if}\;y \leq -2.8 \cdot 10^{+26}:\\
\;\;\;\;\frac{y}{\frac{z}{z - x}}\\
\mathbf{elif}\;y \leq 5.2 \cdot 10^{+15}:\\
\;\;\;\;\frac{\mathsf{fma}\left(y, z - x, x\right)}{z}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \frac{z - x}{z}\\
\end{array}