Skip to content

Commit 57500ae

Browse files
committed
FastTransform 0.7 compatibility
1 parent ed97e58 commit 57500ae

File tree

2 files changed

+63
-47
lines changed

2 files changed

+63
-47
lines changed

src/FastTransforms.jl

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ include("hermite.jl")
9292
#cheb2leg(x...)=th_cheb2leg(x...)
9393
leg2chebu(x...) = th_leg2chebu(x...)
9494
ultra2ultra(x...) = th_ultra2ultra(x...)
95-
jac2jac(x...) = th_jac2jac(x...)
96-
plan_jac2jac(x...) = th_jac2jacplan(x...)
95+
jac2jac(x...) = jjt(x...)
96+
plan_jac2jac(x...) = plan_jjt(x...)
9797
plan_ultra2ultra(x...) = th_ultra2ultraplan(x...)
9898

9999
include("hierarchical.jl")
@@ -106,4 +106,20 @@ include("gaunt.jl")
106106
include("precompile.jl")
107107
_precompile_()
108108

109+
110+
##
111+
# FastTransform v0.7 compatibility
112+
##
113+
114+
export plan_cheb2jac, plan_jac2cheb, cheb2jac, jac2cheb
115+
116+
plan_cheb2jac(v...) = plan_icjt(v...)
117+
plan_jac2cheb(v...) = plan_cjt(v...)
118+
cheb2jac(v...) = icjt(v...)
119+
jac2cheb(v...) = cjt(v...)
120+
121+
plan_cheb2leg(::Type{T}, n::Int) where T = th_cheb2legplan(T, n)
122+
plan_leg2cheb(::Type{T}, n::Int) where T = th_leg2chebplan(T, n)
123+
124+
109125
end # module

src/chebyshevtransform.jl

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -119,51 +119,51 @@ end
119119

120120

121121
# Matrix inputs
122-
#
123-
#
124-
# function chebyshevtransform!(X::AbstractMatrix{T}; kind::Integer=1) where T<:fftwNumber
125-
# if kind == 1
126-
# if size(X) == (1,1)
127-
# X
128-
# else
129-
# X=r2r!(X,REDFT10)
130-
# X[:,1]/=2;X[1,:]/=2;
131-
# lmul!(1/(size(X,1)*size(X,2)),X)
132-
# end
133-
# elseif kind == 2
134-
# if size(X) == (1,1)
135-
# X
136-
# else
137-
# X=r2r!(X,REDFT00)
138-
# lmul!(1/((size(X,1)-1)*(size(X,2)-1)),X)
139-
# X[:,1]/=2;X[:,end]/=2
140-
# X[1,:]/=2;X[end,:]/=2
141-
# X
142-
# end
143-
# end
144-
# end
145-
#
146-
# function ichebyshevtransform!(X::AbstractMatrix{T}; kind::Integer=1) where T<:fftwNumber
147-
# if kind == 1
148-
# if size(X) == (1,1)
149-
# X
150-
# else
151-
# X[1,:]*=2;X[:,1]*=2
152-
# X = r2r(X,REDFT01)
153-
# lmul!(0.25, X)
154-
# end
155-
# elseif kind == 2
156-
# if size(X) == (1,1)
157-
# X
158-
# else
159-
# X[1,:]*=2;X[end,:]*=2;X[:,1]*=2;X[:,end]*=2
160-
# X=chebyshevtransform!(X;kind=kind)
161-
# X[1,:]*=2;X[end,:]*=2;X[:,1]*=2;X[:,end]*=2
162-
# lmul!((size(X,1)-1)*(size(X,2)-1)/4,X)
163-
# end
164-
# end
165-
# end
166-
#
122+
123+
124+
function chebyshevtransform!(X::AbstractMatrix{T}; kind::Integer=1) where T<:fftwNumber
125+
if kind == 1
126+
if size(X) == (1,1)
127+
X
128+
else
129+
X= FFTW.r2r!(X,REDFT10)
130+
X[:,1]/=2;X[1,:]/=2;
131+
lmul!(1/(size(X,1)*size(X,2)),X)
132+
end
133+
elseif kind == 2
134+
if size(X) == (1,1)
135+
X
136+
else
137+
X= FFTW.r2r!(X,REDFT00)
138+
lmul!(1/((size(X,1)-1)*(size(X,2)-1)),X)
139+
X[:,1]/=2;X[:,end]/=2
140+
X[1,:]/=2;X[end,:]/=2
141+
X
142+
end
143+
end
144+
end
145+
146+
function ichebyshevtransform!(X::AbstractMatrix{T}; kind::Integer=1) where T<:fftwNumber
147+
if kind == 1
148+
if size(X) == (1,1)
149+
X
150+
else
151+
X[1,:]*=2;X[:,1]*=2
152+
X = FFTW.r2r(X,REDFT01)
153+
lmul!(0.25, X)
154+
end
155+
elseif kind == 2
156+
if size(X) == (1,1)
157+
X
158+
else
159+
X[1,:]*=2;X[end,:]*=2;X[:,1]*=2;X[:,end]*=2
160+
X=chebyshevtransform!(X;kind=kind)
161+
X[1,:]*=2;X[end,:]*=2;X[:,1]*=2;X[:,end]*=2
162+
lmul!((size(X,1)-1)*(size(X,2)-1)/4,X)
163+
end
164+
end
165+
end
166+
167167

168168

169169
## Chebyshev U

0 commit comments

Comments
 (0)