@@ -84,7 +84,7 @@ function test_fft_backend(array_constructor; test_real=true, test_inplace=true)
84
84
plans_to_test = [plan_fft (x, dims), inv (plan_ifft (x, dims)),
85
85
AbstractFFTs. plan_inv (plan_ifft (x, dims))]
86
86
for P in plans_to_test
87
- @test mul! (similar (y), P, x_complex) ≈ fftw_fft
87
+ @test mul! (similar (y), P, copy ( x_complex) ) ≈ fftw_fft
88
88
end
89
89
test_inplace && (plans_to_test = vcat (plans_to_test, plan_fft! (similar (x_complex), dims)))
90
90
for P in plans_to_test
@@ -100,7 +100,7 @@ function test_fft_backend(array_constructor; test_real=true, test_inplace=true)
100
100
test_inplace && (@test AbstractFFTs. bfft! (copy (y), dims) ≈ fftw_bfft)
101
101
plans_to_test = [plan_bfft (similar (y), dims)]
102
102
for P in plans_to_test
103
- @test mul! (similar (x_complex), P, y ) ≈ fftw_bfft
103
+ @test mul! (similar (x_complex), P, copy (y) ) ≈ fftw_bfft
104
104
end
105
105
test_inplace && (plans_to_test = vcat (plans_to_test, plan_bfft! (similar (y), dims)))
106
106
for P in plans_to_test
@@ -117,7 +117,7 @@ function test_fft_backend(array_constructor; test_real=true, test_inplace=true)
117
117
plans_to_test = [plan_ifft (x, dims), inv (plan_fft (x, dims)),
118
118
AbstractFFTs. plan_inv (plan_fft (x, dims))]
119
119
for P in plans_to_test
120
- @test mul! (similar (x_complex), P, y ) ≈ fftw_ifft
120
+ @test mul! (similar (x_complex), P, copy (y) ) ≈ fftw_ifft
121
121
end
122
122
test_inplace && (plan_to_test = vcat (plans_to_test, plan_ifft! (similar (x_complex), dims)))
123
123
for P in plans_to_test
@@ -137,31 +137,31 @@ function test_fft_backend(array_constructor; test_real=true, test_inplace=true)
137
137
]
138
138
ry = AbstractFFTs. rfft (x_real, dims)
139
139
@test ry ≈ fftw_rfft
140
- for P in [plan_rfft (x_real, dims), inv (plan_irfft (ry , size (x, first (dims)), dims)),
141
- AbstractFFTs. plan_inv (plan_irfft (ry , size (x, first (dims)), dims))]
140
+ for P in [plan_rfft (similar ( x_real) , dims), inv (plan_irfft (similar (ry) , size (x, first (dims)), dims)),
141
+ AbstractFFTs. plan_inv (plan_irfft (similar (ry) , size (x, first (dims)), dims))]
142
142
@test eltype (P) <: Real
143
143
@test P * x_real ≈ fftw_rfft
144
- @test mul! (similar (ry), P, x_real) ≈ fftw_rfft
144
+ @test mul! (similar (ry), P, copy ( x_real) ) ≈ fftw_rfft
145
145
@test P \ (P * x_real) ≈ x_real
146
146
@test fftdims (P) == dims
147
147
end
148
148
149
149
# BRFFT
150
150
fftw_brfft = prod (size (x_real, d) for d in dims) .* x_real
151
151
@test AbstractFFTs. brfft (ry, size (x_real, first (dims)), dims) ≈ fftw_brfft
152
- P = plan_brfft (ry , size (x_real, first (dims)), dims)
152
+ P = plan_brfft (similar (ry) , size (x_real, first (dims)), dims)
153
153
@test P * ry ≈ fftw_brfft
154
- @test mul! (similar (x_real), P, ry ) ≈ fftw_brfft
154
+ @test mul! (similar (x_real), P, copy (ry) ) ≈ fftw_brfft
155
155
@test P \ (P * ry) ≈ ry
156
156
@test fftdims (P) == dims
157
157
158
158
# IRFFT
159
- fftw_irfft = x_complex
159
+ fftw_irfft = x_real
160
160
@test AbstractFFTs. irfft (ry, size (x, first (dims)), dims) ≈ fftw_irfft
161
- for P in [plan_irfft (ry , size (x, first (dims)), dims), inv (plan_rfft (x_real, dims)),
162
- AbstractFFTs. plan_inv (plan_rfft (x_real, dims))]
161
+ for P in [plan_irfft (similar (ry) , size (x, first (dims)), dims), inv (plan_rfft (similar ( x_real) , dims)),
162
+ AbstractFFTs. plan_inv (plan_rfft (similar ( x_real) , dims))]
163
163
@test P * ry ≈ fftw_irfft
164
- @test mul! (similar (x_real), P, ry ) ≈ fftw_irfft
164
+ @test mul! (similar (x_real), P, copy (ry) ) ≈ fftw_irfft
165
165
@test P \ (P * ry) ≈ ry
166
166
@test fftdims (P) == dims
167
167
end
0 commit comments