Skip to content

Commit 5814f60

Browse files
authored
Update specialfunctions.jl
Added function newgamma which is identical to gamma but returns Inf at negative integers.
1 parent d2add70 commit 5814f60

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/specialfunctions.jl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ pochhammer(x::AbstractArray{T,1},n::Integer) where {T<:Number} = [pochhammer(x[i
4949
pochhammer(x::AbstractArray{T,2},n::Integer) where {T<:Number} = [pochhammer(x[i,j],n) for i=1:size(x,1),j=1:size(x,2)]
5050
pochhammer(x::AbstractArray{T},n::Integer) where {T<:Number} = reshape([ pochhammer(x[i],n) for i in eachindex(x) ], size(x))
5151

52-
pochhammer(x::Number,n::Number) = gamma(x+n)/gamma(x)
53-
pochhammer(x::AbstractArray{T},n::Number) where {T<:Number} = gamma(x+n)./gamma(x)
52+
pochhammer(x::Number,n::Number) = newgamma(x+n)/newgamma(x)
53+
pochhammer(x::AbstractArray{T},n::Number) where {T<:Number} = newgamma(x+n)./newgamma(x)
5454

5555
function pochhammer(x::Number,n::UnitRange{T}) where T<:Real
5656
ret = Vector{promote_type(typeof(x),T)}(length(n))
@@ -61,6 +61,14 @@ function pochhammer(x::Number,n::UnitRange{T}) where T<:Real
6161
ret
6262
end
6363

64+
function newgamma(x::Number)
65+
if isinteger(x) && x<0
66+
Inf
67+
else
68+
gamma(x)
69+
end
70+
end
71+
6472
"""
6573
Stirling's asymptotic series for ``\\Gamma(z)``.
6674
"""

0 commit comments

Comments
 (0)