Skip to content

Commit fa62130

Browse files
committed
@Assert -> error
1 parent 9f7ddd8 commit fa62130

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/PaduaTransform.jl

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,17 @@ immutable IPaduaTransformPlan{IDCTPLAN,T}
77
idctplan::IDCTPLAN
88
end
99

10-
function plan_ipaduatransform{T}(v::AbstractVector{T})
11-
N=length(v)
10+
function plan_ipaduatransform{T}(::Type{T},N::Integer)
1211
n=Int(cld(-3+sqrt(1+8N),2))
13-
@assert N==div((n+1)*(n+2),2)
12+
if N div((n+1)*(n+2),2)
13+
error("Padua transforms can only be applied to vectors of length (n+1)*(n+2)/2.")
14+
end
1415
IPaduaTransformPlan(Array{T}(n+2,n+1),Array{T}(N),
1516
FFTW.plan_r2r!(Array{T}(n+2,n+1),FFTW.REDFT00))
1617
end
1718

19+
plan_ipaduatransform{T}(v::AbstractVector{T}) = plan_ipaduatransform(eltype(v),length(v))
20+
1821
"""
1922
Inverse Padua Transform maps the 2D Chebyshev coefficients to the values of the interpolation polynomial at the Padua points.
2023
"""
@@ -80,14 +83,17 @@ immutable PaduaTransformPlan{DCTPLAN,T}
8083
dctplan::DCTPLAN
8184
end
8285

83-
function plan_paduatransform{T}(v::AbstractVector{T})
84-
N=length(v)
86+
function plan_paduatransform{T}(::Type{T},N::Integer)
8587
n=Int(cld(-3+sqrt(1+8N),2))
86-
@assert N==div((n+1)*(n+2),2)
88+
if N  ((n+1)*(n+2))÷2
89+
error("Padua transforms can only be applied to vectors of length (n+1)*(n+2)/2.")
90+
end
8791
PaduaTransformPlan(Array{T}(n+2,n+1),Array{T}(N),
8892
FFTW.plan_r2r!(Array{T}(n+2,n+1),FFTW.REDFT00))
8993
end
9094

95+
plan_paduatransform{T}(v::AbstractVector{T}) = plan_paduatransform(eltype(v),length(v))
96+
9197
"""
9298
Padua Transform maps from interpolant values at the Padua points to the 2D Chebyshev coefficients.
9399
"""
@@ -169,3 +175,5 @@ function paduapoints{T}(::Type{T},n::Integer)
169175
end
170176
return MM
171177
end
178+
179+
paduapoints(n::Integer) = paduapoints(Float64,n)

0 commit comments

Comments
 (0)