\[\frac{a1 \cdot a2}{b1 \cdot b2}
\]
↓
\[\begin{array}{l}
\mathbf{if}\;b1 \cdot b2 \leq -1 \cdot 10^{+131}:\\
\;\;\;\;\frac{\frac{a2}{b1} \cdot a1}{b2}\\
\mathbf{elif}\;b1 \cdot b2 \leq -2 \cdot 10^{-250}:\\
\;\;\;\;\frac{a2}{\frac{b1 \cdot b2}{a1}}\\
\mathbf{elif}\;b1 \cdot b2 \leq 10^{-292} \lor \neg \left(b1 \cdot b2 \leq 2 \cdot 10^{+146}\right):\\
\;\;\;\;\frac{\frac{a2}{\frac{b1}{a1}}}{b2}\\
\mathbf{else}:\\
\;\;\;\;\frac{a2 \cdot a1}{b1 \cdot b2}\\
\end{array}
\]
(FPCore (a1 a2 b1 b2) :precision binary64 (/ (* a1 a2) (* b1 b2)))
↓
(FPCore (a1 a2 b1 b2)
:precision binary64
(if (<= (* b1 b2) -1e+131)
(/ (* (/ a2 b1) a1) b2)
(if (<= (* b1 b2) -2e-250)
(/ a2 (/ (* b1 b2) a1))
(if (or (<= (* b1 b2) 1e-292) (not (<= (* b1 b2) 2e+146)))
(/ (/ a2 (/ b1 a1)) b2)
(/ (* a2 a1) (* b1 b2))))))double code(double a1, double a2, double b1, double b2) {
return (a1 * a2) / (b1 * b2);
}
↓
double code(double a1, double a2, double b1, double b2) {
double tmp;
if ((b1 * b2) <= -1e+131) {
tmp = ((a2 / b1) * a1) / b2;
} else if ((b1 * b2) <= -2e-250) {
tmp = a2 / ((b1 * b2) / a1);
} else if (((b1 * b2) <= 1e-292) || !((b1 * b2) <= 2e+146)) {
tmp = (a2 / (b1 / a1)) / b2;
} else {
tmp = (a2 * a1) / (b1 * b2);
}
return tmp;
}
real(8) function code(a1, a2, b1, b2)
real(8), intent (in) :: a1
real(8), intent (in) :: a2
real(8), intent (in) :: b1
real(8), intent (in) :: b2
code = (a1 * a2) / (b1 * b2)
end function
↓
real(8) function code(a1, a2, b1, b2)
real(8), intent (in) :: a1
real(8), intent (in) :: a2
real(8), intent (in) :: b1
real(8), intent (in) :: b2
real(8) :: tmp
if ((b1 * b2) <= (-1d+131)) then
tmp = ((a2 / b1) * a1) / b2
else if ((b1 * b2) <= (-2d-250)) then
tmp = a2 / ((b1 * b2) / a1)
else if (((b1 * b2) <= 1d-292) .or. (.not. ((b1 * b2) <= 2d+146))) then
tmp = (a2 / (b1 / a1)) / b2
else
tmp = (a2 * a1) / (b1 * b2)
end if
code = tmp
end function
public static double code(double a1, double a2, double b1, double b2) {
return (a1 * a2) / (b1 * b2);
}
↓
public static double code(double a1, double a2, double b1, double b2) {
double tmp;
if ((b1 * b2) <= -1e+131) {
tmp = ((a2 / b1) * a1) / b2;
} else if ((b1 * b2) <= -2e-250) {
tmp = a2 / ((b1 * b2) / a1);
} else if (((b1 * b2) <= 1e-292) || !((b1 * b2) <= 2e+146)) {
tmp = (a2 / (b1 / a1)) / b2;
} else {
tmp = (a2 * a1) / (b1 * b2);
}
return tmp;
}
def code(a1, a2, b1, b2):
return (a1 * a2) / (b1 * b2)
↓
def code(a1, a2, b1, b2):
tmp = 0
if (b1 * b2) <= -1e+131:
tmp = ((a2 / b1) * a1) / b2
elif (b1 * b2) <= -2e-250:
tmp = a2 / ((b1 * b2) / a1)
elif ((b1 * b2) <= 1e-292) or not ((b1 * b2) <= 2e+146):
tmp = (a2 / (b1 / a1)) / b2
else:
tmp = (a2 * a1) / (b1 * b2)
return tmp
function code(a1, a2, b1, b2)
return Float64(Float64(a1 * a2) / Float64(b1 * b2))
end
↓
function code(a1, a2, b1, b2)
tmp = 0.0
if (Float64(b1 * b2) <= -1e+131)
tmp = Float64(Float64(Float64(a2 / b1) * a1) / b2);
elseif (Float64(b1 * b2) <= -2e-250)
tmp = Float64(a2 / Float64(Float64(b1 * b2) / a1));
elseif ((Float64(b1 * b2) <= 1e-292) || !(Float64(b1 * b2) <= 2e+146))
tmp = Float64(Float64(a2 / Float64(b1 / a1)) / b2);
else
tmp = Float64(Float64(a2 * a1) / Float64(b1 * b2));
end
return tmp
end
function tmp = code(a1, a2, b1, b2)
tmp = (a1 * a2) / (b1 * b2);
end
↓
function tmp_2 = code(a1, a2, b1, b2)
tmp = 0.0;
if ((b1 * b2) <= -1e+131)
tmp = ((a2 / b1) * a1) / b2;
elseif ((b1 * b2) <= -2e-250)
tmp = a2 / ((b1 * b2) / a1);
elseif (((b1 * b2) <= 1e-292) || ~(((b1 * b2) <= 2e+146)))
tmp = (a2 / (b1 / a1)) / b2;
else
tmp = (a2 * a1) / (b1 * b2);
end
tmp_2 = tmp;
end
code[a1_, a2_, b1_, b2_] := N[(N[(a1 * a2), $MachinePrecision] / N[(b1 * b2), $MachinePrecision]), $MachinePrecision]
↓
code[a1_, a2_, b1_, b2_] := If[LessEqual[N[(b1 * b2), $MachinePrecision], -1e+131], N[(N[(N[(a2 / b1), $MachinePrecision] * a1), $MachinePrecision] / b2), $MachinePrecision], If[LessEqual[N[(b1 * b2), $MachinePrecision], -2e-250], N[(a2 / N[(N[(b1 * b2), $MachinePrecision] / a1), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[N[(b1 * b2), $MachinePrecision], 1e-292], N[Not[LessEqual[N[(b1 * b2), $MachinePrecision], 2e+146]], $MachinePrecision]], N[(N[(a2 / N[(b1 / a1), $MachinePrecision]), $MachinePrecision] / b2), $MachinePrecision], N[(N[(a2 * a1), $MachinePrecision] / N[(b1 * b2), $MachinePrecision]), $MachinePrecision]]]]
\frac{a1 \cdot a2}{b1 \cdot b2}
↓
\begin{array}{l}
\mathbf{if}\;b1 \cdot b2 \leq -1 \cdot 10^{+131}:\\
\;\;\;\;\frac{\frac{a2}{b1} \cdot a1}{b2}\\
\mathbf{elif}\;b1 \cdot b2 \leq -2 \cdot 10^{-250}:\\
\;\;\;\;\frac{a2}{\frac{b1 \cdot b2}{a1}}\\
\mathbf{elif}\;b1 \cdot b2 \leq 10^{-292} \lor \neg \left(b1 \cdot b2 \leq 2 \cdot 10^{+146}\right):\\
\;\;\;\;\frac{\frac{a2}{\frac{b1}{a1}}}{b2}\\
\mathbf{else}:\\
\;\;\;\;\frac{a2 \cdot a1}{b1 \cdot b2}\\
\end{array}