(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 (or (<= t_1 -678.0) (not (<= t_1 -75.0)))
(/ (* x (exp (- (+ t_1 (* y (log z))) b))) y)
(* x (/ (/ (pow z y) (pow a (- 1.0 t))) (* y (exp b)))))))
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 <= (-678.0d0)) .or. (.not. (t_1 <= (-75.0d0)))) then
tmp = (x * exp(((t_1 + (y * log(z))) - b))) / y
else
tmp = x * (((z ** y) / (a ** (1.0d0 - t))) / (y * exp(b)))
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;
}
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 <= -678.0) or not (t_1 <= -75.0):
tmp = (x * math.exp(((t_1 + (y * math.log(z))) - b))) / y
else:
tmp = x * ((math.pow(z, y) / math.pow(a, (1.0 - t))) / (y * math.exp(b)))
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 <= -678.0) || !(t_1 <= -75.0))
tmp = Float64(Float64(x * exp(Float64(Float64(t_1 + Float64(y * log(z))) - b))) / y);
else
tmp = Float64(x * Float64(Float64((z ^ y) / (a ^ Float64(1.0 - t))) / Float64(y * exp(b))));
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 <= -678.0) || ~((t_1 <= -75.0)))
tmp = (x * exp(((t_1 + (y * log(z))) - b))) / y;
else
tmp = x * (((z ^ y) / (a ^ (1.0 - t))) / (y * exp(b)));
end
tmp_2 = tmp;
end
herbie shell --seed 2023141
(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))