JuliaMath / JuliaMath/AbstractFFTs.jl

Complex-float logic needs to be replicated by plans

Open
#87 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

The current design of `AbstractFFTs.jl` requires plan implementers to handle the complex-float promotion when doing `*(p::MyPlan, x)`, e.g. as done below in the test plans here:
https://github.com/JuliaMath/AbstractFFTs.jl/blob/79789f2250aed0d70d2e1766667cc4dde7b43896/test/testplans.jl#L89
This would ideally be taken care of `AbstractFFTs.jl` just like is done for `fft` etc.

Edit (July 29): possibly, the right way to solve problems like this (and other ones like having to manually compute `normalization` in `plan_inv`), would be a trait. The `AdjointStyle` trait was recently added, whose scope was limited to enabling adjoint functionality given that inverse functionality for the plan already exists. We could add additional traits for automatically getting other functionality that is the same for e.g. all FFTs (and even parent traits that specify all additional traits together) such that downstream implementers have to implement the minimum possible functionality when the right trait exists

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.