You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/implementations.md
+3-4Lines changed: 3 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -20,10 +20,9 @@ To define a new FFT implementation in your own module, you should
20
20
* Define a new method `AbstractFFTs.plan_fft(x, region; kws...)` that returns a `MyPlan` for at least some types of
21
21
`x` and some set of dimensions `region`. The `region` (or a copy thereof) should be accessible via `fftdims(p::MyPlan)` (which defaults to `p.region`).
22
22
23
-
* Define a method of `LinearAlgebra.mul!(y, p::MyPlan, x)` (or `A_mul_B!(y, p::MyPlan, x)` on Julia prior to
24
-
0.7.0-DEV.3204) that computes the transform `p` of `x` and stores the result in `y`.
23
+
* Define a method of `LinearAlgebra.mul!(y, p::MyPlan, x)` that computes the transform `p` of `x` and stores the result in `y`.
25
24
26
-
* Define a method of `*(p::MyPlan, x)`, which can simply call your `mul!`(or `A_mul_B!`) method.
25
+
* Define a method of `*(p::MyPlan, x)`, which can simply call your `mul!` method.
27
26
This is not defined generically in this package due to subtleties that arise for in-place and real-input FFTs.
28
27
29
28
* If the inverse transform is implemented, you should also define `plan_inv(p::MyPlan)`, which should construct the
@@ -33,7 +32,7 @@ To define a new FFT implementation in your own module, you should
33
32
34
33
* You can also define similar methods of `plan_rfft` and `plan_brfft` for real-input FFTs.
35
34
36
-
* To enable automatic computation of adjoint plans via [`Base.adjoint`](@ref) (used in rules for reverse differentiation), define the trait `AbstractFFTs.ProjectionStyle(::MyPlan)`, which can take values:
35
+
* To enable automatic computation of adjoint plans via [`Base.adjoint`](@ref) (used in rules for reverse-mode differentiation), define the trait `AbstractFFTs.ProjectionStyle(::MyPlan)`, which can take values:
37
36
*`AbstractFFTs.NoProjectionStyle()`,
38
37
*`AbstractFFTs.RealProjectionStyle()`, for plans which halve one of the output's dimensions analogously to [`rfft`](@ref),
39
38
*`AbstractFFTs.RealInverseProjectionStyle(d::Int)`, for plans which expect an input with a halved dimension analogously to [`irfft`](@ref), where `d` is the original length of the dimension.
0 commit comments