Skip to content

Commit 37f4698

Browse files
committed
Inplace chebyshev transform
1 parent 1d3e065 commit 37f4698

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/Spaces/Chebyshev/Chebyshev.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ transform(::Chebyshev,vals::AbstractVector,plan) = plan*vals
7272
itransform(::Chebyshev,cfs::AbstractVector,plan) = plan*cfs
7373
plan_transform(::Chebyshev,vals::AbstractVector) = plan_chebyshevtransform(vals)
7474
plan_itransform(::Chebyshev,cfs::AbstractVector) = plan_ichebyshevtransform(cfs)
75+
plan_transform!(::Chebyshev, vals::AbstractVector) = plan_chebyshevtransform!(vals)
76+
plan_itransform!(::Chebyshev, cfs::AbstractVector) = plan_ichebyshevtransform!(cfs)
7577

7678
## Evaluation
7779

test/ChebyshevTest.jl

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using ApproxFunOrthogonalPolynomials, ApproxFunBase, LinearAlgebra, Test
2-
import ApproxFunBase: testspace, recA, recB, recC
3-
import ApproxFunOrthogonalPolynomials: forwardrecurrence
2+
import ApproxFunBase: testspace, recA, recB, recC, transform!, itransform!
3+
import ApproxFunOrthogonalPolynomials: forwardrecurrence
44

55
@testset "Chebyshev" begin
66
@testset "Forward recurrence" begin
@@ -208,4 +208,14 @@ using ApproxFunOrthogonalPolynomials, ApproxFunBase, LinearAlgebra, Test
208208
@test S.a==-0.5
209209
@test S.b==-0.5
210210
end
211+
212+
@testset "inplace transform" begin
213+
for v in Any[rand(10), rand(ComplexF64, 10)]
214+
v2 = copy(v)
215+
transform!(Chebyshev(), v)
216+
@test transform(Chebyshev(), v2) == v
217+
itransform!(Chebyshev(), v)
218+
@test v2 v
219+
end
220+
end
211221
end

0 commit comments

Comments
 (0)