I see that it's not really a new issue but the others are closed.
An example on FFTA.jl's main branch:
julia> using FFTA, Cthulhu
julia> x = ones(ComplexF64, 412);
julia> p = plan_fft(x);
julia> @descend p * x # then after hitting [T] [h] [o]
fft!(out::AbstractVector{T}, in::AbstractVector{T}, start_out::Int64, start_in::Int64, d::FFTA.Direction, t::FFTA.FFTEnum, g::FFTA.CallGraph{T}, idx::Int64) where T @ FFTA Q:\FFTA.jl\src\algos.jl:7
∘ ── %0 = invoke fft!(::Vector{ComplexF64},::Vector{ComplexF64},::Int64,::Int64,::FFTA.Direction,::FFTA.FFTEnum,::FFTA.CallGraph{ComplexF64},::Int64)::…
Select a call to descend into or ↩ to ascend.
Toggles: [w]arn, [h]ide type-stable statements, [o]ptimize, [d]ebuginfo, [r]emarks, [e]ffects, e[x]ception_types, [i]nlining costs, [t]ype_annotations, [s]yntax highlight for Source/LLVM/Native, [j]ump to source always.
Show: [S]ource, [A]ST, [T]yped, [L]LVM, [N]ative.
Actions: [q]uit, ⟵ ascend, [b]ookmark, [E]dit source code, [R]evise and redisplay, dum[P] params cache.
• %18 = invoke throw_boundserror(::Vector{FFTA.CallGraphNode{ComplexF64}},::Tuple{Int64})::Union{}
%37 = invoke fft_dft!(::Vector{ComplexF64},::Vector{ComplexF64},::Int64,::Int64,::Int64,::Int64,::Int64,::ComplexF64)::Core.Const(nothing)
%53 = invoke fft_pow2_radix4!(::Vector{ComplexF64},::Vector{ComplexF64},::Int64,::Int64,::Int64,::Int64,::Int64,::ComplexF64)::Core.Const(nothing)
%73 = invoke fft_pow3!(::Vector{ComplexF64},::Vector{ComplexF64},::Int64,::Int64,::Int64,::Int64,::Int64,::ComplexF64,::ComplexF64,::ComplexF64)::…
%75 = < concrete eval > ArgumentError(::Core.Const(ArgumentError),::Core.Const("kernel not implemented"))::…
↩
I see that it's not really a new issue but the others are closed.
An example on FFTA.jl's main branch:
If you un
[h]ide then you'll see there's a missing call toFFTA.fft_composite!(which is type-stable).