From 66bf39a20ce0126c954d1bcb2cd53a072492597a Mon Sep 17 00:00:00 2001 From: Sheehan Olver Date: Fri, 13 Nov 2026 16:36:40 +0000 Subject: [PATCH 1/2] inv of synthesis --- src/libfasttransforms.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libfasttransforms.jl b/src/libfasttransforms.jl index fc3fdef5..c42dabcd 100644 --- a/src/libfasttransforms.jl +++ b/src/libfasttransforms.jl @@ -1294,4 +1294,5 @@ function modified_jacobi_matrix(R, XP) return XQ end -inv(P::FTPlan{T,2,DISKANALYSIS}) where T = plan_disk_synthesis(T, P.n, P.m) \ No newline at end of file +inv(P::FTPlan{T,2,DISKANALYSIS}) where T = plan_disk_synthesis(T, P.n, P.m) +inv(P::FTPlan{T,2,DISKSYNTHESIS}) where T = plan_disk_analysis(T, P.n, P.m) \ No newline at end of file From 940474e6e36257290476e9417d87590412805838 Mon Sep 17 00:00:00 2001 From: Sheehan Olver Date: Fri, 13 Nov 2026 16:59:20 +0000 Subject: [PATCH 2/2] add tests --- Project.toml | 2 +- test/libfasttransformstests.jl | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 96aaa00c..d185f63f 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "FastTransforms" uuid = "057dd010-8810-581a-b7be-e3fc3b93f78c" -version = "0.17.4" +version = "0.17.5" [deps] diff --git a/test/libfasttransformstests.jl b/test/libfasttransformstests.jl index 7828ab0c..3fa5dcae 100644 --- a/test/libfasttransformstests.jl +++ b/test/libfasttransformstests.jl @@ -174,11 +174,18 @@ FastTransforms.ft_set_num_threads(ceil(Int, Base.Sys.CPU_THREADS/2)) @test inv(pa) isa typeof(ps) @test inv(pa)*(p*A) ≈ ps*(p*A) @test p\(pa*(inv(pa)*(p*A))) ≈ A + @test inv(ps) isa typeof(pa) + @test inv(ps)*(ps*(p*A)) ≈ pa*(ps*(p*A)) ≈ p*A + @test p\(inv(ps)*(ps*(p*A))) ≈ A + @test inv(inv(ps)) isa typeof(ps) + @test inv(inv(pa)) isa typeof(pa) A = diskones(Float64, n, 4n-3) + im*diskones(Float64, n, 4n-3) p = plan_disk2cxf(A, α, β) ps = plan_disk_synthesis(A) pa = plan_disk_analysis(A) test_nd_plans(p, ps, pa, A) + @test inv(pa)*(p*A) ≈ ps*(p*A) + @test inv(ps)*(ps*(p*A)) ≈ p*A A = diskones(Float64, n, 4n-3) p = plan_ann2cxf(A, α, β, 0, ρ)