@@ -165,12 +165,11 @@ function Λ(x::Float64,λ₁::Float64,λ₂::Float64)
165
165
(x+ λ₂)/ (x+ λ₁)* Λ (x+ 1. ,λ₁,λ₂)
166
166
end
167
167
end
168
- Λ {T<:Number} (x:: AbstractArray{T} ,λ₁:: Number ,λ₂:: Number ) = promote_type (T,typeof (λ₁),typeof (λ₂))[ Λ (x[i],λ₁,λ₂) for i in eachindex (x) ]
169
168
170
169
171
170
Cnλ (n:: Integer ,λ:: Float64 ) = 2 ^ λ/ sqrtpi* Λ (n+ λ)
172
171
Cnλ (n:: Integer ,λ:: Number ) = 2 ^ λ/ sqrt (oftype (λ,π))* Λ (n+ λ)
173
- function Cnλ {T<:Integer} (n:: UnitRange{T} ,λ:: Number )
172
+ function broadcast {T<:Integer} (:: typeof (Cnλ), n:: UnitRange{T} ,λ:: Number )
174
173
ret = Vector {typeof(λ)} (length (n))
175
174
ret[1 ] = Cnλ (first (n),λ)
176
175
for i= 2 : length (n)
@@ -179,9 +178,6 @@ function Cnλ{T<:Integer}(n::UnitRange{T},λ::Number)
179
178
ret
180
179
end
181
180
182
- Cnλ {T<:Integer} (n:: AbstractVector{T} ,λ:: Number ) = [ Cnλ (n[i],λ) for i= 1 : length (n) ]
183
- Cnλ {T<:Integer} (n:: AbstractMatrix{T} ,λ:: Number ) = [ Cnλ (n[i,j],λ) for i= 1 : size (n,1 ), j= 1 : size (n,2 ) ]
184
-
185
181
function Cnmλ (n:: Integer ,m:: Integer ,λ:: Number )
186
182
if m == 0
187
183
Cnλ (n,λ)
@@ -190,9 +186,6 @@ function Cnmλ(n::Integer,m::Integer,λ::Number)
190
186
end
191
187
end
192
188
193
- Cnmλ {T<:Integer} (n:: AbstractVector{T} ,m:: Integer ,λ:: Number ) = [ Cnmλ (n[i],m,λ) for i= 1 : length (n) ]
194
-
195
-
196
189
function Cnαβ (n:: Integer ,α:: Number ,β:: Number )
197
190
if n== 0
198
191
2 ^ (α+ β+ 1 )* beta (α+ 1 ,β+ 1 )/ π
@@ -213,9 +206,6 @@ function Cnαβ(n::Integer,α::Float64,β::Float64)
213
206
end
214
207
end
215
208
216
- Cnαβ {T<:Integer} (n:: AbstractVector{T} ,α:: Number ,β:: Number ) = [ Cnαβ (n[i],α,β) for i= 1 : length (n) ]
217
- Cnαβ {T<:Integer} (n:: AbstractMatrix{T} ,α:: Number ,β:: Number ) = [ Cnαβ (n[i,j],α,β) for i= 1 : size (n,1 ), j= 1 : size (n,2 ) ]
218
-
219
209
function Cnmαβ (n:: Integer ,m:: Integer ,α:: Number ,β:: Number )
220
210
if m == 0
221
211
Cnαβ (n,α,β)
@@ -224,15 +214,6 @@ function Cnmαβ(n::Integer,m::Integer,α::Number,β::Number)
224
214
end
225
215
end
226
216
227
- Cnmαβ {T<:Integer} (n:: AbstractVector{T} ,m:: Integer ,α:: Number ,β:: Number ) = [ Cnmαβ (n[i],m,α,β) for i= 1 : length (n) ]
228
- Cnmαβ {T<:Integer} (n:: AbstractMatrix{T} ,m:: Integer ,α:: Number ,β:: Number ) = [ Cnmαβ (n[i,j],m,α,β) for i= 1 : size (n,1 ), j= 1 : size (n,2 ) ]
229
-
230
- function Cnmαβ {T<:Number} (n:: Integer ,m:: Integer ,α:: AbstractArray{T} ,β:: AbstractArray{T} )
231
- shp = promote_shape (size (α),size (β))
232
- reshape ([ Cnmαβ (n,m,α[i],β[i]) for i in eachindex (α,β) ], shp)
233
- end
234
-
235
-
236
217
function absf (α:: Number ,β:: Number ,m:: Int ,θ:: Number )
237
218
ret = zero (θ)
238
219
for l= 0 : m
@@ -241,12 +222,7 @@ function absf(α::Number,β::Number,m::Int,θ::Number)
241
222
ret
242
223
end
243
224
244
- function absf {T<:Number} (α:: AbstractArray{T} ,β:: AbstractArray{T} ,m:: Int ,θ:: Number )
245
- shp = promote_shape (size (α),size (β))
246
- reshape ([ absf (α[i],β[i],m,θ) for i in eachindex (α,β) ], shp)
247
- end
248
-
249
- function absf {T<:Number} (α:: Number ,β:: Number ,m:: Int ,θ:: AbstractArray{T,1} )
225
+ function broadcast {T<:Number} (:: typeof (absf),α:: Number ,β:: Number ,m:: Int ,θ:: AbstractArray{T,1} )
250
226
ret = zero (θ)
251
227
cfs = zeros (T,m+ 1 )
252
228
for l= 0 : m
@@ -257,8 +233,6 @@ function absf{T<:Number}(α::Number,β::Number,m::Int,θ::AbstractArray{T,1})
257
233
end
258
234
ret
259
235
end
260
- absf {T<:Number} (α:: Number ,β:: Number ,m:: Int ,θ:: AbstractArray{T,2} ) = [ absf (α,β,m,θ[i,j]) for i= 1 : size (θ,1 ), j= 1 : size (θ,2 ) ]
261
- absf {T<:Number} (α:: Number ,β:: Number ,m:: Int ,θ:: AbstractArray{T} ) = reshape ([ absf (α,β,m,θ[i]) for i in eachindex (θ) ], size (θ))
262
236
263
237
function compute_absf! {T<:AbstractFloat} (ret:: Vector{T} ,cfs:: Matrix{T} ,α:: T ,β:: T ,tempcos:: Vector{T} ,tempsin:: Vector{T} ,tempcosβsinα:: Vector{T} ,m:: Int )
264
238
@inbounds for i= 1 : length (ret)
0 commit comments