JuliaMath / JuliaMath/AbstractFFTs.jl

Inverse plans

Open
#20 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
134
Forks
40
PR merge metrics
No merged PRs in 30d

Description

To me it seems a bit unintuitive that `AbstractFFT` assumes that plans have a field `pinv` which is populated when calling `inv`. When computing the inverse via `inv` I don't expect the provided element to be mutated.

I would suggest to replace `plan_inv` with `inv` such that calling `inv` returns the inverse plan but does not mutate the given plan. Similar to `ScaledPlan` a wrapper type could be provided that contains a plan and its inverse (e.g. as fields `p` and `pinv`). In my opinion, this would make computing and caching of inverse plans more transparent. Additionally, it would allow plans to be immutable and strictly typed (and hence maybe improve performance?).

What do you think?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing AbstractFFT's plan_inv and inv behavior, then compare the existing ScaledPlan API. Determine how inverse-plan computation and caching should avoid mutating the supplied plan, and consider the proposed wrapper with p and pinv fields. Done means the API design is settled and its effects on immutable, strictly typed plans are evaluated.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
backend-api-design
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.