(FPCore (x y z) :precision binary64 (/ (* x y) (* (* z z) (+ z 1.0))))
↓
(FPCore (x y z)
:precision binary64
(if (<= (* x y) -5e+149)
(/ (/ x z) (* z (* (/ 1.0 y) (+ z 1.0))))
(if (<= (* x y) 4e+185)
(/ (* y (/ x z)) (+ z (* z z)))
(/ (/ x z) (* z (/ (+ z 1.0) y))))))
double code(double x, double y, double z) {
double tmp;
if ((x * y) <= -5e+149) {
tmp = (x / z) / (z * ((1.0 / y) * (z + 1.0)));
} else if ((x * y) <= 4e+185) {
tmp = (y * (x / z)) / (z + (z * z));
} else {
tmp = (x / z) / (z * ((z + 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 * y) / ((z * z) * (z + 1.0d0))
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 ((x * y) <= (-5d+149)) then
tmp = (x / z) / (z * ((1.0d0 / y) * (z + 1.0d0)))
else if ((x * y) <= 4d+185) then
tmp = (y * (x / z)) / (z + (z * z))
else
tmp = (x / z) / (z * ((z + 1.0d0) / y))
end if
code = tmp
end function
public static double code(double x, double y, double z) {
return (x * y) / ((z * z) * (z + 1.0));
}
↓
public static double code(double x, double y, double z) {
double tmp;
if ((x * y) <= -5e+149) {
tmp = (x / z) / (z * ((1.0 / y) * (z + 1.0)));
} else if ((x * y) <= 4e+185) {
tmp = (y * (x / z)) / (z + (z * z));
} else {
tmp = (x / z) / (z * ((z + 1.0) / y));
}
return tmp;
}
def code(x, y, z):
return (x * y) / ((z * z) * (z + 1.0))
↓
def code(x, y, z):
tmp = 0
if (x * y) <= -5e+149:
tmp = (x / z) / (z * ((1.0 / y) * (z + 1.0)))
elif (x * y) <= 4e+185:
tmp = (y * (x / z)) / (z + (z * z))
else:
tmp = (x / z) / (z * ((z + 1.0) / y))
return tmp
function code(x, y, z)
return Float64(Float64(x * y) / Float64(Float64(z * z) * Float64(z + 1.0)))
end
herbie shell --seed 2023090
(FPCore (x y z)
:name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(if (< z 249.6182814532307) (/ (* y (/ x z)) (+ z (* z z))) (/ (* (/ (/ y z) (+ 1.0 z)) x) z))
(/ (* x y) (* (* z z) (+ z 1.0))))