@@ -725,11 +725,14 @@ External links: [DLMF](https://dlmf.nist.gov/8.17.1), [Wikipedia](https://en.wik
725
725
726
726
See also: [`beta_inc_inv`](@ref)
727
727
"""
728
- function beta_inc (a:: Real , b:: Real , x:: Real , y:: Real = 1 - x)
728
+ function beta_inc (a:: Real , b:: Real , x:: Real )
729
+ return _beta_inc (map (float, promote (a, b, x))... )
730
+ end
731
+ function beta_inc (a:: Real , b:: Real , x:: Real , y:: Real )
729
732
return _beta_inc (map (float, promote (a, b, x, y))... )
730
733
end
731
734
732
- function _beta_inc (a:: Float64 , b:: Float64 , x:: Float64 , y:: Float64 )
735
+ function _beta_inc (a:: Float64 , b:: Float64 , x:: Float64 , y:: Float64 = 1 - x )
733
736
p = 0.0
734
737
q = 0.0
735
738
# lambda = a - (a+b)*x
@@ -883,6 +886,10 @@ function _beta_inc(a::Float64, b::Float64, x::Float64, y::Float64)
883
886
return ind ? (q, p) : (p, q)
884
887
end
885
888
889
+ function _beta_inc (a:: T , b:: T , x:: T ) where {T<: Union{Float16, Float32} }
890
+ p, q = _beta_inc (Float64 (a), Float64 (b), Float64 (x))
891
+ T (p), T (q)
892
+ end
886
893
function _beta_inc (a:: T , b:: T , x:: T , y:: T ) where {T<: Union{Float16, Float32} }
887
894
p, q = _beta_inc (Float64 (a), Float64 (b), Float64 (x), Float64 (y))
888
895
T (p), T (q)
@@ -901,11 +908,14 @@ of the regularized incomplete beta function ``I_{x}(a, b)``.
901
908
902
909
See also: [`beta_inc`](@ref)
903
910
"""
904
- function beta_inc_inv (a:: Real , b:: Real , p:: Real , q:: Real = 1 - p)
911
+ function beta_inc_inv (a:: Real , b:: Real , p:: Real )
912
+ return _beta_inc_inv (map (float, promote (a, b, p))... )
913
+ end
914
+ function beta_inc_inv (a:: Real , b:: Real , p:: Real , q:: Real )
905
915
return _beta_inc_inv (map (float, promote (a, b, p, q))... )
906
916
end
907
917
908
- function _beta_inc_inv (a:: Float64 , b:: Float64 , p:: Float64 , q:: Float64 )
918
+ function _beta_inc_inv (a:: Float64 , b:: Float64 , p:: Float64 , q:: Float64 = 1 - p )
909
919
# change tail if necessary
910
920
if p > 0.5
911
921
y, x = _beta_inc_inv (b, a, q, p)
@@ -1002,6 +1012,10 @@ function _beta_inc_inv(a::Float64, b::Float64, p::Float64, q::Float64)
1002
1012
end
1003
1013
end
1004
1014
1015
+ function _beta_inc_inv (a:: T , b:: T , p:: T ) where {T<: Union{Float16, Float32} }
1016
+ x, y = _beta_inc_inv (Float64 (a), Float64 (b), Float64 (p))
1017
+ T (x), T (y)
1018
+ end
1005
1019
function _beta_inc_inv (a:: T , b:: T , p:: T , q:: T ) where {T<: Union{Float16, Float32} }
1006
1020
x, y = _beta_inc_inv (Float64 (a), Float64 (b), Float64 (p), Float64 (q))
1007
1021
T (x), T (y)
0 commit comments