(FPCore (x y z)
:precision binary64
(+ x (/ (exp (* y (log (/ y (+ z y))))) y)))
↓
(FPCore (x y z)
:precision binary64
(if (or (<= y -3.5e+47) (not (<= y 2.8e-5)))
(+ x (/ (exp (- z)) y))
(+ x (/ 1.0 y))))
double code(double x, double y, double z) {
return x + (exp((y * log((y / (z + y))))) / y);
}
↓
double code(double x, double y, double z) {
double tmp;
if ((y <= -3.5e+47) || !(y <= 2.8e-5)) {
tmp = x + (exp(-z) / y);
} else {
tmp = x + (1.0 / y);
}
return tmp;
}
real(8) function code(x, y, z)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
code = x + (exp((y * log((y / (z + y))))) / y)
end function
↓
real(8) function code(x, y, z)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8) :: tmp
if ((y <= (-3.5d+47)) .or. (.not. (y <= 2.8d-5))) then
tmp = x + (exp(-z) / y)
else
tmp = x + (1.0d0 / y)
end if
code = tmp
end function
public static double code(double x, double y, double z) {
return x + (Math.exp((y * Math.log((y / (z + y))))) / y);
}
↓
public static double code(double x, double y, double z) {
double tmp;
if ((y <= -3.5e+47) || !(y <= 2.8e-5)) {
tmp = x + (Math.exp(-z) / y);
} else {
tmp = x + (1.0 / y);
}
return tmp;
}
def code(x, y, z):
return x + (math.exp((y * math.log((y / (z + y))))) / y)
↓
def code(x, y, z):
tmp = 0
if (y <= -3.5e+47) or not (y <= 2.8e-5):
tmp = x + (math.exp(-z) / y)
else:
tmp = x + (1.0 / y)
return tmp
function code(x, y, z)
return Float64(x + Float64(exp(Float64(y * log(Float64(y / Float64(z + y))))) / y))
end
↓
function code(x, y, z)
tmp = 0.0
if ((y <= -3.5e+47) || !(y <= 2.8e-5))
tmp = Float64(x + Float64(exp(Float64(-z)) / y));
else
tmp = Float64(x + Float64(1.0 / y));
end
return tmp
end
function tmp = code(x, y, z)
tmp = x + (exp((y * log((y / (z + y))))) / y);
end
↓
function tmp_2 = code(x, y, z)
tmp = 0.0;
if ((y <= -3.5e+47) || ~((y <= 2.8e-5)))
tmp = x + (exp(-z) / y);
else
tmp = x + (1.0 / y);
end
tmp_2 = tmp;
end
herbie shell --seed 2023137
(FPCore (x y z)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, G"
:precision binary64
:herbie-target
(if (< (/ y (+ z y)) 7.11541576e-315) (+ x (/ (exp (/ -1.0 z)) y)) (+ x (/ (exp (log (pow (/ y (+ y z)) y))) y)))
(+ x (/ (exp (* y (log (/ y (+ z y))))) y)))