(FPCore (x y z t) :precision binary64 (* x (- (/ y z) (/ t (- 1.0 z)))))
↓
(FPCore (x y z t)
:precision binary64
(let* ((t_1 (/ (* (+ y t) x) z)))
(if (<= z -6.085483990096874e+189)
t_1
(if (<= z -1.0)
(* (+ y t) (/ 1.0 (/ z x)))
(if (<= z 1e-10) (* x (- (/ y z) t)) t_1)))))
double code(double x, double y, double z, double t) {
double t_1 = ((y + t) * x) / z;
double tmp;
if (z <= -6.085483990096874e+189) {
tmp = t_1;
} else if (z <= -1.0) {
tmp = (y + t) * (1.0 / (z / x));
} else if (z <= 1e-10) {
tmp = x * ((y / z) - t);
} 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 / (1.0d0 - z)))
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 = ((y + t) * x) / z
if (z <= (-6.085483990096874d+189)) then
tmp = t_1
else if (z <= (-1.0d0)) then
tmp = (y + t) * (1.0d0 / (z / x))
else if (z <= 1d-10) then
tmp = x * ((y / z) - t)
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 / (1.0 - z)));
}
↓
public static double code(double x, double y, double z, double t) {
double t_1 = ((y + t) * x) / z;
double tmp;
if (z <= -6.085483990096874e+189) {
tmp = t_1;
} else if (z <= -1.0) {
tmp = (y + t) * (1.0 / (z / x));
} else if (z <= 1e-10) {
tmp = x * ((y / z) - t);
} else {
tmp = t_1;
}
return tmp;
}
def code(x, y, z, t):
return x * ((y / z) - (t / (1.0 - z)))
↓
def code(x, y, z, t):
t_1 = ((y + t) * x) / z
tmp = 0
if z <= -6.085483990096874e+189:
tmp = t_1
elif z <= -1.0:
tmp = (y + t) * (1.0 / (z / x))
elif z <= 1e-10:
tmp = x * ((y / z) - t)
else:
tmp = t_1
return tmp
function code(x, y, z, t)
return Float64(x * Float64(Float64(y / z) - Float64(t / Float64(1.0 - z))))
end
↓
function code(x, y, z, t)
t_1 = Float64(Float64(Float64(y + t) * x) / z)
tmp = 0.0
if (z <= -6.085483990096874e+189)
tmp = t_1;
elseif (z <= -1.0)
tmp = Float64(Float64(y + t) * Float64(1.0 / Float64(z / x)));
elseif (z <= 1e-10)
tmp = Float64(x * Float64(Float64(y / z) - t));
else
tmp = t_1;
end
return tmp
end
function tmp = code(x, y, z, t)
tmp = x * ((y / z) - (t / (1.0 - z)));
end
↓
function tmp_2 = code(x, y, z, t)
t_1 = ((y + t) * x) / z;
tmp = 0.0;
if (z <= -6.085483990096874e+189)
tmp = t_1;
elseif (z <= -1.0)
tmp = (y + t) * (1.0 / (z / x));
elseif (z <= 1e-10)
tmp = x * ((y / z) - t);
else
tmp = t_1;
end
tmp_2 = tmp;
end
herbie shell --seed 2022228
(FPCore (x y z t)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, C"
:precision binary64
:herbie-target
(if (< (* x (- (/ y z) (/ t (- 1.0 z)))) -7.623226303312042e-196) (* x (- (/ y z) (* t (/ 1.0 (- 1.0 z))))) (if (< (* x (- (/ y z) (/ t (- 1.0 z)))) 1.4133944927702302e-211) (+ (/ (* y x) z) (- (/ (* t x) (- 1.0 z)))) (* x (- (/ y z) (* t (/ 1.0 (- 1.0 z)))))))
(* x (- (/ y z) (/ t (- 1.0 z)))))