Math FPCore C Fortran Java Python Julia MATLAB Wolfram TeX \[\log \left(1 + e^{x}\right) - x \cdot y
\]
↓
\[\begin{array}{l}
\mathbf{if}\;x \leq -33469073.123140775:\\
\;\;\;\;x \cdot \left(-y\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(0.5 - y\right) + \left(x \cdot \left(x \cdot 0.125\right) + \log 2\right)\\
\end{array}
\]
(FPCore (x y) :precision binary64 (- (log (+ 1.0 (exp x))) (* x y))) ↓
(FPCore (x y)
:precision binary64
(if (<= x -33469073.123140775)
(* x (- y))
(+ (* x (- 0.5 y)) (+ (* x (* x 0.125)) (log 2.0))))) double code(double x, double y) {
return log((1.0 + exp(x))) - (x * y);
}
↓
double code(double x, double y) {
double tmp;
if (x <= -33469073.123140775) {
tmp = x * -y;
} else {
tmp = (x * (0.5 - y)) + ((x * (x * 0.125)) + log(2.0));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = log((1.0d0 + exp(x))) - (x * y)
end function
↓
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (x <= (-33469073.123140775d0)) then
tmp = x * -y
else
tmp = (x * (0.5d0 - y)) + ((x * (x * 0.125d0)) + log(2.0d0))
end if
code = tmp
end function
public static double code(double x, double y) {
return Math.log((1.0 + Math.exp(x))) - (x * y);
}
↓
public static double code(double x, double y) {
double tmp;
if (x <= -33469073.123140775) {
tmp = x * -y;
} else {
tmp = (x * (0.5 - y)) + ((x * (x * 0.125)) + Math.log(2.0));
}
return tmp;
}
def code(x, y):
return math.log((1.0 + math.exp(x))) - (x * y)
↓
def code(x, y):
tmp = 0
if x <= -33469073.123140775:
tmp = x * -y
else:
tmp = (x * (0.5 - y)) + ((x * (x * 0.125)) + math.log(2.0))
return tmp
function code(x, y)
return Float64(log(Float64(1.0 + exp(x))) - Float64(x * y))
end
↓
function code(x, y)
tmp = 0.0
if (x <= -33469073.123140775)
tmp = Float64(x * Float64(-y));
else
tmp = Float64(Float64(x * Float64(0.5 - y)) + Float64(Float64(x * Float64(x * 0.125)) + log(2.0)));
end
return tmp
end
function tmp = code(x, y)
tmp = log((1.0 + exp(x))) - (x * y);
end
↓
function tmp_2 = code(x, y)
tmp = 0.0;
if (x <= -33469073.123140775)
tmp = x * -y;
else
tmp = (x * (0.5 - y)) + ((x * (x * 0.125)) + log(2.0));
end
tmp_2 = tmp;
end
code[x_, y_] := N[(N[Log[N[(1.0 + N[Exp[x], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] - N[(x * y), $MachinePrecision]), $MachinePrecision]
↓
code[x_, y_] := If[LessEqual[x, -33469073.123140775], N[(x * (-y)), $MachinePrecision], N[(N[(x * N[(0.5 - y), $MachinePrecision]), $MachinePrecision] + N[(N[(x * N[(x * 0.125), $MachinePrecision]), $MachinePrecision] + N[Log[2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\log \left(1 + e^{x}\right) - x \cdot y
↓
\begin{array}{l}
\mathbf{if}\;x \leq -33469073.123140775:\\
\;\;\;\;x \cdot \left(-y\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(0.5 - y\right) + \left(x \cdot \left(x \cdot 0.125\right) + \log 2\right)\\
\end{array}
Alternatives Alternative 1 Error 0.4 Cost 13376
\[3 \cdot \left(0.3333333333333333 \cdot \mathsf{log1p}\left(e^{x}\right)\right) - x \cdot y
\]
Alternative 2 Error 0.4 Cost 13120
\[\mathsf{log1p}\left(e^{x}\right) - x \cdot y
\]
Alternative 3 Error 13.3 Cost 7116
\[\begin{array}{l}
t_0 := x \cdot \left(-y\right)\\
\mathbf{if}\;x \leq -3.479592558766287 \cdot 10^{-25}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;x \leq 5.1792799326932635 \cdot 10^{-182}:\\
\;\;\;\;\log 2\\
\mathbf{elif}\;x \leq 2.0469331298371648 \cdot 10^{-156}:\\
\;\;\;\;t_0\\
\mathbf{else}:\\
\;\;\;\;\log 2 + x \cdot 0.5\\
\end{array}
\]
Alternative 4 Error 12.8 Cost 6992
\[\begin{array}{l}
t_0 := x \cdot \left(-y\right)\\
\mathbf{if}\;x \leq -3.479592558766287 \cdot 10^{-25}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;x \leq 5.1792799326932635 \cdot 10^{-182}:\\
\;\;\;\;\log 2\\
\mathbf{elif}\;x \leq 2.0469331298371648 \cdot 10^{-156}:\\
\;\;\;\;t_0\\
\mathbf{elif}\;x \leq 1.7496858793917048 \cdot 10^{-40}:\\
\;\;\;\;\log 2\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(0.5 - y\right)\\
\end{array}
\]
Alternative 5 Error 0.6 Cost 6980
\[\begin{array}{l}
\mathbf{if}\;x \leq -23.651518829085763:\\
\;\;\;\;x \cdot \left(-y\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(0.5 - y\right) + \log 2\\
\end{array}
\]
Alternative 6 Error 1.0 Cost 6852
\[\begin{array}{l}
\mathbf{if}\;x \leq -33469073.123140775:\\
\;\;\;\;x \cdot \left(-y\right)\\
\mathbf{else}:\\
\;\;\;\;\log 2 - x \cdot y\\
\end{array}
\]
Alternative 7 Error 33.9 Cost 256
\[x \cdot \left(-y\right)
\]
Alternative 8 Error 61.8 Cost 192
\[x \cdot 0.5
\]