(FPCore (x y z t a b)
:precision binary64
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))
↓
(FPCore (x y z t a b)
:precision binary64
(let* ((t_1 (* (+ t -1.0) (log a))))
(if (<= t_1 -2000.0)
(/ (* (pow a (+ t -1.0)) x) y)
(if (<= t_1 -360.0)
(/ x (* y (+ a (* a b))))
(/ (* x (exp (- (+ t_1 (* y (log z))) b))) y)))))
double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (t + -1.0) * log(a);
double tmp;
if (t_1 <= -2000.0) {
tmp = (pow(a, (t + -1.0)) * x) / y;
} else if (t_1 <= -360.0) {
tmp = x / (y * (a + (a * b)));
} else {
tmp = (x * exp(((t_1 + (y * log(z))) - b))) / y;
}
return tmp;
}
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
code = (x * exp((((y * log(z)) + ((t - 1.0d0) * log(a))) - b))) / y
end function
↓
real(8) function code(x, y, z, t, a, b)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8), intent (in) :: z
real(8), intent (in) :: t
real(8), intent (in) :: a
real(8), intent (in) :: b
real(8) :: t_1
real(8) :: tmp
t_1 = (t + (-1.0d0)) * log(a)
if (t_1 <= (-2000.0d0)) then
tmp = ((a ** (t + (-1.0d0))) * x) / y
else if (t_1 <= (-360.0d0)) then
tmp = x / (y * (a + (a * b)))
else
tmp = (x * exp(((t_1 + (y * log(z))) - b))) / y
end if
code = tmp
end function
public static double code(double x, double y, double z, double t, double a, double b) {
return (x * Math.exp((((y * Math.log(z)) + ((t - 1.0) * Math.log(a))) - b))) / y;
}
↓
public static double code(double x, double y, double z, double t, double a, double b) {
double t_1 = (t + -1.0) * Math.log(a);
double tmp;
if (t_1 <= -2000.0) {
tmp = (Math.pow(a, (t + -1.0)) * x) / y;
} else if (t_1 <= -360.0) {
tmp = x / (y * (a + (a * b)));
} else {
tmp = (x * Math.exp(((t_1 + (y * Math.log(z))) - b))) / y;
}
return tmp;
}
def code(x, y, z, t, a, b):
return (x * math.exp((((y * math.log(z)) + ((t - 1.0) * math.log(a))) - b))) / y
↓
def code(x, y, z, t, a, b):
t_1 = (t + -1.0) * math.log(a)
tmp = 0
if t_1 <= -2000.0:
tmp = (math.pow(a, (t + -1.0)) * x) / y
elif t_1 <= -360.0:
tmp = x / (y * (a + (a * b)))
else:
tmp = (x * math.exp(((t_1 + (y * math.log(z))) - b))) / y
return tmp
function code(x, y, z, t, a, b)
return Float64(Float64(x * exp(Float64(Float64(Float64(y * log(z)) + Float64(Float64(t - 1.0) * log(a))) - b))) / y)
end
↓
function code(x, y, z, t, a, b)
t_1 = Float64(Float64(t + -1.0) * log(a))
tmp = 0.0
if (t_1 <= -2000.0)
tmp = Float64(Float64((a ^ Float64(t + -1.0)) * x) / y);
elseif (t_1 <= -360.0)
tmp = Float64(x / Float64(y * Float64(a + Float64(a * b))));
else
tmp = Float64(Float64(x * exp(Float64(Float64(t_1 + Float64(y * log(z))) - b))) / y);
end
return tmp
end
function tmp = code(x, y, z, t, a, b)
tmp = (x * exp((((y * log(z)) + ((t - 1.0) * log(a))) - b))) / y;
end
↓
function tmp_2 = code(x, y, z, t, a, b)
t_1 = (t + -1.0) * log(a);
tmp = 0.0;
if (t_1 <= -2000.0)
tmp = ((a ^ (t + -1.0)) * x) / y;
elseif (t_1 <= -360.0)
tmp = x / (y * (a + (a * b)));
else
tmp = (x * exp(((t_1 + (y * log(z))) - b))) / y;
end
tmp_2 = tmp;
end
herbie shell --seed 2023140
(FPCore (x y z t a b)
:name "Numeric.SpecFunctions:incompleteBetaWorker from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(if (< t -0.8845848504127471) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z)))) (if (< t 852031.2288374073) (/ (* (/ x y) (pow a (- t 1.0))) (exp (- b (* (log z) y)))) (/ (* x (/ (pow a (- t 1.0)) y)) (- (+ b 1.0) (* y (log z))))))
(/ (* x (exp (- (+ (* y (log z)) (* (- t 1.0) (log a))) b))) y))