@@ -119,51 +119,51 @@ end
119
119
120
120
121
121
# 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
+
167
167
168
168
169
169
# # Chebyshev U
0 commit comments