@@ -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