double code(double x, double y, double z, double t) {
double t_1 = t + ((x / y) * (z - t));
double tmp;
if (y <= -2e-294) {
tmp = t_1;
} else if (y <= 5.5e-168) {
tmp = (x * (z - t)) / y;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
code = ((x / y) * (z - t)) + t
end function
↓
real(8) function code(x, y, z, t)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8) :: t_1
real(8) :: tmp
t_1 = t + ((x / y) * (z - t))
if (y <= (-2d-294)) then
tmp = t_1
else if (y <= 5.5d-168) then
tmp = (x * (z - t)) / y
else
tmp = t_1
end if
code = tmp
end function
public static double code(double x, double y, double z, double t) {
return ((x / y) * (z - t)) + t;
}
↓
public static double code(double x, double y, double z, double t) {
double t_1 = t + ((x / y) * (z - t));
double tmp;
if (y <= -2e-294) {
tmp = t_1;
} else if (y <= 5.5e-168) {
tmp = (x * (z - t)) / y;
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t):
return ((x / y) * (z - t)) + t
↓
def code(x, y, z, t):
t_1 = t + ((x / y) * (z - t))
tmp = 0
if y <= -2e-294:
tmp = t_1
elif y <= 5.5e-168:
tmp = (x * (z - t)) / y
else:
tmp = t_1
return tmp
function code(x, y, z, t)
return Float64(Float64(Float64(x / y) * Float64(z - t)) + t)
end
↓
function code(x, y, z, t)
t_1 = Float64(t + Float64(Float64(x / y) * Float64(z - t)))
tmp = 0.0
if (y <= -2e-294)
tmp = t_1;
elseif (y <= 5.5e-168)
tmp = Float64(Float64(x * Float64(z - t)) / y);
else
tmp = t_1;
end
return tmp
end
function tmp = code(x, y, z, t)
tmp = ((x / y) * (z - t)) + t;
end
↓
function tmp_2 = code(x, y, z, t)
t_1 = t + ((x / y) * (z - t));
tmp = 0.0;
if (y <= -2e-294)
tmp = t_1;
elseif (y <= 5.5e-168)
tmp = (x * (z - t)) / y;
else
tmp = t_1;
end
tmp_2 = tmp;
end
\[\begin{array}{l}
t_1 := t + z \cdot \frac{x}{y}\\
\mathbf{if}\;z \leq -6.6 \cdot 10^{-178}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;z \leq 4.3 \cdot 10^{-125}:\\
\;\;\;\;t - x \cdot \frac{t}{y}\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}
\]
Alternative 11
Error
32.0
Cost
64
\[t
\]
Error
Reproduce
herbie shell --seed 2022325
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cget from hsignal-0.2.7.1"
:precision binary64
:herbie-target
(if (< z 2.759456554562692e-282) (+ (* (/ x y) (- z t)) t) (if (< z 2.326994450874436e-110) (+ (* x (/ (- z t) y)) t) (+ (* (/ x y) (- z t)) t)))
(+ (* (/ x y) (- z t)) t))