-
Notifications
You must be signed in to change notification settings - Fork 82
Try to extend map_fields_recursive for MixedDuplicated #2777
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Benchmark Results
Benchmark PlotsA plot of the benchmark results has been uploaded as an artifact at https://github.com/EnzymeAD/Enzyme.jl/actions/runs/19358856206/artifacts/4566096215. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2777 +/- ##
==========================================
- Coverage 69.00% 68.99% -0.02%
==========================================
Files 58 58
Lines 19996 19999 +3
==========================================
Hits 13799 13799
- Misses 6197 6200 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
#2780 should improve the error messages to give more actionable feedback |
|
On eig_trunc reverse: RT EnzymeCore.MixedDuplicated, TA EnzymeCore.Duplicated: Error During Test at /Users/khyatt/.julia/dev/MatrixAlgebraKit/test/enzyme.jl:183
Got exception outside of a @test
MethodError: no method matching (::Enzyme.Compiler.AdjointThunk{Ptr{Nothing}, EnzymeCore.Const{typeof(EnzymeTestUtils.call_with_kwargs)}, EnzymeCore.MixedDuplicated{Tuple{LinearAlgebra.Diagonal{ComplexF64, Vector{ComplexF64}}, Matrix{ComplexF64}, Float64}}, Tuple{EnzymeCore.Const{@NamedTuple{alg::MatrixAlgebraKit.TruncatedAlgorithm{MatrixAlgebraKit.LAPACK_Simple{@NamedTuple{}}, MatrixAlgebraKit.TruncationByOrder{typeof(abs)}}}}, EnzymeCore.Const{typeof(MatrixAlgebraKit.eig_trunc)}, EnzymeCore.Duplicated{Matrix{Float64}}}, 1, @NamedTuple{1::@NamedTuple{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11::@NamedTuple{1, 2::Tuple{Core.LLVMPtr{UInt8, 0}, Core.LLVMPtr{UInt8, 0}, @NamedTuple{1::@NamedTuple{1, 2, 3, 4::@NamedTuple{1, 2, 3, 4::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 5::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 6::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 7::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 10::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 11::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 12::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 13::UInt64, 14::Float64, 15::Float64, 16::Float64, 17::Float64, 18::Core.LLVMPtr{Float64, 0}, 19::Float64, 20::Float64, 21::Float64, 22::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 23::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 24::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 25::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 26::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 27::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 28::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 29::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 30::Core.LLVMPtr{Float64, 0}, 31::Core.LLVMPtr{Float64, 0}}, 5::Float64, 6::Float64, 7::Core.LLVMPtr{Float64, 0}, 8::UInt64, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Float64, 12::Float64, 13::Float64, 14::Float64, 15::Float64, 16::Core.LLVMPtr{Float64, 0}, 17::Core.LLVMPtr{Float64, 0}}, 2::Float64, 3, 4::Float64, 5, 6::Core.LLVMPtr{Float64, 0}, 7::UInt64, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Core.LLVMPtr{Float64, 0}, 12::Core.LLVMPtr{Float64, 0}, 13::Core.LLVMPtr{Bool, 0}, 14::Float64, 15::Float64, 16::Float64}, Tuple{Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Float64, Float64}, Core.LLVMPtr{UInt8, 0}, UInt64, UInt64}, 3::Bool, 4::Bool, 5, 6::Core.LLVMPtr{Any, 0}, 7::UInt64, 8::UInt64, 9, 10::Bool, 11::Bool, 12::Core.LLVMPtr{UInt64, 0}}, 12::@NamedTuple{1, 2, 3::Core.LLVMPtr{UInt8, 0}, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14::Core.LLVMPtr{UInt8, 0}, 15, 16::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 17, 18::@NamedTuple{1, 2, 3, 4, 5, 6::UInt64, 7::Core.LLVMPtr{UInt64, 0}, 8::Core.LLVMPtr{UInt64, 0}}, 19, 20, 21, 22::Bool, 23::Bool, 24::UInt64, 25::UInt64, 26::Core.LLVMPtr{UInt8, 0}, 27, 28::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 29, 30::UInt64, 31::UInt64, 32::Core.LLVMPtr{UInt64, 0}}, 13::@NamedTuple{1}, 14, 15, 16::UInt64}, 2, 3, 4, 5}})(::EnzymeCore.Const{typeof(EnzymeTestUtils.call_with_kwargs)}, ::EnzymeCore.Const{@NamedTuple{alg::MatrixAlgebraKit.TruncatedAlgorithm{MatrixAlgebraKit.LAPACK_Simple{@NamedTuple{}}, MatrixAlgebraKit.TruncationByOrder{typeof(abs)}}}}, ::EnzymeCore.Const{typeof(MatrixAlgebraKit.eig_trunc)}, ::EnzymeCore.Duplicated{Matrix{Float64}}, ::@NamedTuple{1::@NamedTuple{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11::@NamedTuple{1, 2::Tuple{Core.LLVMPtr{UInt8, 0}, Core.LLVMPtr{UInt8, 0}, @NamedTuple{1::@NamedTuple{1, 2, 3, 4::@NamedTuple{1, 2, 3, 4::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 5::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 6::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 7::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 10::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 11::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 12::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 13::UInt64, 14::Float64, 15::Float64, 16::Float64, 17::Float64, 18::Core.LLVMPtr{Float64, 0}, 19::Float64, 20::Float64, 21::Float64, 22::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 23::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 24::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 25::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 26::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 27::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 28::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 29::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 30::Core.LLVMPtr{Float64, 0}, 31::Core.LLVMPtr{Float64, 0}}, 5::Float64, 6::Float64, 7::Core.LLVMPtr{Float64, 0}, 8::UInt64, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Float64, 12::Float64, 13::Float64, 14::Float64, 15::Float64, 16::Core.LLVMPtr{Float64, 0}, 17::Core.LLVMPtr{Float64, 0}}, 2::Float64, 3, 4::Float64, 5, 6::Core.LLVMPtr{Float64, 0}, 7::UInt64, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Core.LLVMPtr{Float64, 0}, 12::Core.LLVMPtr{Float64, 0}, 13::Core.LLVMPtr{Bool, 0}, 14::Float64, 15::Float64, 16::Float64}, Tuple{Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Float64, Float64}, Core.LLVMPtr{UInt8, 0}, UInt64, UInt64}, 3::Bool, 4::Bool, 5, 6::Core.LLVMPtr{Any, 0}, 7::UInt64, 8::UInt64, 9, 10::Bool, 11::Bool, 12::Core.LLVMPtr{UInt64, 0}}, 12::@NamedTuple{1, 2, 3::Core.LLVMPtr{UInt8, 0}, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14::Core.LLVMPtr{UInt8, 0}, 15, 16::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 17, 18::@NamedTuple{1, 2, 3, 4, 5, 6::UInt64, 7::Core.LLVMPtr{UInt64, 0}, 8::Core.LLVMPtr{UInt64, 0}}, 19, 20, 21, 22::Bool, 23::Bool, 24::UInt64, 25::UInt64, 26::Core.LLVMPtr{UInt8, 0}, 27, 28::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 29, 30::UInt64, 31::UInt64, 32::Core.LLVMPtr{UInt64, 0}}, 13::@NamedTuple{1}, 14, 15, 16::UInt64}, 2, 3, 4, 5})
This error has been manually thrown, explicitly, so the method may exist but be intentionally marked as unimplemented.
Closest candidates are:
(::Enzyme.Compiler.AdjointThunk{PT, FA, RT, TT, Width, TapeT})(::FA, ::Any...) where {PT, FA, Width, RT, TT, TapeT}
@ Enzyme ~/.julia/packages/Enzyme/EITgk/src/compiler.jl:5372
Stacktrace:
[1] macro expansion
@ ~/.julia/packages/Enzyme/EITgk/src/compiler.jl:5498 [inlined]
[2] enzyme_call(::Val{false}, ::Ptr{Nothing}, ::Type{Enzyme.Compiler.AdjointThunk{Ptr{Nothing}, EnzymeCore.Const{typeof(EnzymeTestUtils.call_with_kwargs)}, EnzymeCore.MixedDuplicated{Tuple{LinearAlgebra.Diagonal{ComplexF64, Vector{ComplexF64}}, Matrix{ComplexF64}, Float64}}, Tuple{EnzymeCore.Const{@NamedTuple{alg::MatrixAlgebraKit.TruncatedAlgorithm{MatrixAlgebraKit.LAPACK_Simple{@NamedTuple{}}, MatrixAlgebraKit.TruncationByOrder{typeof(abs)}}}}, EnzymeCore.Const{typeof(MatrixAlgebraKit.eig_trunc)}, EnzymeCore.Duplicated{Matrix{Float64}}}, 1, @NamedTuple{1::@NamedTuple{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11::@NamedTuple{1, 2::Tuple{Core.LLVMPtr{UInt8, 0}, Core.LLVMPtr{UInt8, 0}, @NamedTuple{1::@NamedTuple{1, 2, 3, 4::@NamedTuple{1, 2, 3, 4::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 5::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 6::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 7::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 10::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 11::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 12::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 13::UInt64, 14::Float64, 15::Float64, 16::Float64, 17::Float64, 18::Core.LLVMPtr{Float64, 0}, 19::Float64, 20::Float64, 21::Float64, 22::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 23::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 24::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 25::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 26::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 27::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 28::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 29::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 30::Core.LLVMPtr{Float64, 0}, 31::Core.LLVMPtr{Float64, 0}}, 5::Float64, 6::Float64, 7::Core.LLVMPtr{Float64, 0}, 8::UInt64, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Float64, 12::Float64, 13::Float64, 14::Float64, 15::Float64, 16::Core.LLVMPtr{Float64, 0}, 17::Core.LLVMPtr{Float64, 0}}, 2::Float64, 3, 4::Float64, 5, 6::Core.LLVMPtr{Float64, 0}, 7::UInt64, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Core.LLVMPtr{Float64, 0}, 12::Core.LLVMPtr{Float64, 0}, 13::Core.LLVMPtr{Bool, 0}, 14::Float64, 15::Float64, 16::Float64}, Tuple{Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Float64, Float64}, Core.LLVMPtr{UInt8, 0}, UInt64, UInt64}, 3::Bool, 4::Bool, 5, 6::Core.LLVMPtr{Any, 0}, 7::UInt64, 8::UInt64, 9, 10::Bool, 11::Bool, 12::Core.LLVMPtr{UInt64, 0}}, 12::@NamedTuple{1, 2, 3::Core.LLVMPtr{UInt8, 0}, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14::Core.LLVMPtr{UInt8, 0}, 15, 16::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 17, 18::@NamedTuple{1, 2, 3, 4, 5, 6::UInt64, 7::Core.LLVMPtr{UInt64, 0}, 8::Core.LLVMPtr{UInt64, 0}}, 19, 20, 21, 22::Bool, 23::Bool, 24::UInt64, 25::UInt64, 26::Core.LLVMPtr{UInt8, 0}, 27, 28::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 29, 30::UInt64, 31::UInt64, 32::Core.LLVMPtr{UInt64, 0}}, 13::@NamedTuple{1}, 14, 15, 16::UInt64}, 2, 3, 4, 5}}}, ::Val{1}, ::Val{false}, ::Type{Tuple{EnzymeCore.Const{@NamedTuple{alg::MatrixAlgebraKit.TruncatedAlgorithm{MatrixAlgebraKit.LAPACK_Simple{@NamedTuple{}}, MatrixAlgebraKit.TruncationByOrder{typeof(abs)}}}}, EnzymeCore.Const{typeof(MatrixAlgebraKit.eig_trunc)}, EnzymeCore.Duplicated{Matrix{Float64}}}}, ::Type{EnzymeCore.MixedDuplicated{Tuple{LinearAlgebra.Diagonal{ComplexF64, Vector{ComplexF64}}, Matrix{ComplexF64}, Float64}}}, ::EnzymeCore.Const{typeof(EnzymeTestUtils.call_with_kwargs)}, ::Type{@NamedTuple{1::@NamedTuple{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11::@NamedTuple{1, 2::Tuple{Core.LLVMPtr{UInt8, 0}, Core.LLVMPtr{UInt8, 0}, @NamedTuple{1::@NamedTuple{1, 2, 3, 4::@NamedTuple{1, 2, 3, 4::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 5::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 6::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 7::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 10::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 11::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 12::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 13::UInt64, 14::Float64, 15::Float64, 16::Float64, 17::Float64, 18::Core.LLVMPtr{Float64, 0}, 19::Float64, 20::Float64, 21::Float64, 22::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 23::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 24::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 25::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 26::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 27::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 28::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 29::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 30::Core.LLVMPtr{Float64, 0}, 31::Core.LLVMPtr{Float64, 0}}, 5::Float64, 6::Float64, 7::Core.LLVMPtr{Float64, 0}, 8::UInt64, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Float64, 12::Float64, 13::Float64, 14::Float64, 15::Float64, 16::Core.LLVMPtr{Float64, 0}, 17::Core.LLVMPtr{Float64, 0}}, 2::Float64, 3, 4::Float64, 5, 6::Core.LLVMPtr{Float64, 0}, 7::UInt64, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Core.LLVMPtr{Float64, 0}, 12::Core.LLVMPtr{Float64, 0}, 13::Core.LLVMPtr{Bool, 0}, 14::Float64, 15::Float64, 16::Float64}, Tuple{Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Float64, Float64}, Core.LLVMPtr{UInt8, 0}, UInt64, UInt64}, 3::Bool, 4::Bool, 5, 6::Core.LLVMPtr{Any, 0}, 7::UInt64, 8::UInt64, 9, 10::Bool, 11::Bool, 12::Core.LLVMPtr{UInt64, 0}}, 12::@NamedTuple{1, 2, 3::Core.LLVMPtr{UInt8, 0}, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14::Core.LLVMPtr{UInt8, 0}, 15, 16::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 17, 18::@NamedTuple{1, 2, 3, 4, 5, 6::UInt64, 7::Core.LLVMPtr{UInt64, 0}, 8::Core.LLVMPtr{UInt64, 0}}, 19, 20, 21, 22::Bool, 23::Bool, 24::UInt64, 25::UInt64, 26::Core.LLVMPtr{UInt8, 0}, 27, 28::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 29, 30::UInt64, 31::UInt64, 32::Core.LLVMPtr{UInt64, 0}}, 13::@NamedTuple{1}, 14, 15, 16::UInt64}, 2, 3, 4, 5}}, ::EnzymeCore.Const{@NamedTuple{alg::MatrixAlgebraKit.TruncatedAlgorithm{MatrixAlgebraKit.LAPACK_Simple{@NamedTuple{}}, MatrixAlgebraKit.TruncationByOrder{typeof(abs)}}}}, ::EnzymeCore.Const{typeof(MatrixAlgebraKit.eig_trunc)}, ::EnzymeCore.Duplicated{Matrix{Float64}}, ::@NamedTuple{1::@NamedTuple{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11::@NamedTuple{1, 2::Tuple{Core.LLVMPtr{UInt8, 0}, Core.LLVMPtr{UInt8, 0}, @NamedTuple{1::@NamedTuple{1, 2, 3, 4::@NamedTuple{1, 2, 3, 4::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 5::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 6::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 7::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 10::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 11::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 12::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 13::UInt64, 14::Float64, 15::Float64, 16::Float64, 17::Float64, 18::Core.LLVMPtr{Float64, 0}, 19::Float64, 20::Float64, 21::Float64, 22::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 23::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 24::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 25::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 26::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 27::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 28::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 29::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 30::Core.LLVMPtr{Float64, 0}, 31::Core.LLVMPtr{Float64, 0}}, 5::Float64, 6::Float64, 7::Core.LLVMPtr{Float64, 0}, 8::UInt64, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Float64, 12::Float64, 13::Float64, 14::Float64, 15::Float64, 16::Core.LLVMPtr{Float64, 0}, 17::Core.LLVMPtr{Float64, 0}}, 2::Float64, 3, 4::Float64, 5, 6::Core.LLVMPtr{Float64, 0}, 7::UInt64, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Core.LLVMPtr{Float64, 0}, 12::Core.LLVMPtr{Float64, 0}, 13::Core.LLVMPtr{Bool, 0}, 14::Float64, 15::Float64, 16::Float64}, Tuple{Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Float64, Float64}, Core.LLVMPtr{UInt8, 0}, UInt64, UInt64}, 3::Bool, 4::Bool, 5, 6::Core.LLVMPtr{Any, 0}, 7::UInt64, 8::UInt64, 9, 10::Bool, 11::Bool, 12::Core.LLVMPtr{UInt64, 0}}, 12::@NamedTuple{1, 2, 3::Core.LLVMPtr{UInt8, 0}, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14::Core.LLVMPtr{UInt8, 0}, 15, 16::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 17, 18::@NamedTuple{1, 2, 3, 4, 5, 6::UInt64, 7::Core.LLVMPtr{UInt64, 0}, 8::Core.LLVMPtr{UInt64, 0}}, 19, 20, 21, 22::Bool, 23::Bool, 24::UInt64, 25::UInt64, 26::Core.LLVMPtr{UInt8, 0}, 27, 28::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 29, 30::UInt64, 31::UInt64, 32::Core.LLVMPtr{UInt64, 0}}, 13::@NamedTuple{1}, 14, 15, 16::UInt64}, 2, 3, 4, 5})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/EITgk/src/compiler.jl:5454
[3] (::Enzyme.Compiler.AdjointThunk{Ptr{Nothing}, EnzymeCore.Const{typeof(EnzymeTestUtils.call_with_kwargs)}, EnzymeCore.MixedDuplicated{Tuple{LinearAlgebra.Diagonal{ComplexF64, Vector{ComplexF64}}, Matrix{ComplexF64}, Float64}}, Tuple{EnzymeCore.Const{@NamedTuple{alg::MatrixAlgebraKit.TruncatedAlgorithm{MatrixAlgebraKit.LAPACK_Simple{@NamedTuple{}}, MatrixAlgebraKit.TruncationByOrder{typeof(abs)}}}}, EnzymeCore.Const{typeof(MatrixAlgebraKit.eig_trunc)}, EnzymeCore.Duplicated{Matrix{Float64}}}, 1, @NamedTuple{1::@NamedTuple{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11::@NamedTuple{1, 2::Tuple{Core.LLVMPtr{UInt8, 0}, Core.LLVMPtr{UInt8, 0}, @NamedTuple{1::@NamedTuple{1, 2, 3, 4::@NamedTuple{1, 2, 3, 4::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 5::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 6::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 7::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 10::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 11::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 12::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 13::UInt64, 14::Float64, 15::Float64, 16::Float64, 17::Float64, 18::Core.LLVMPtr{Float64, 0}, 19::Float64, 20::Float64, 21::Float64, 22::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 23::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 24::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 25::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 26::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 27::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 28::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 29::Core.LLVMPtr{Core.LLVMPtr{Float64, 0}, 0}, 30::Core.LLVMPtr{Float64, 0}, 31::Core.LLVMPtr{Float64, 0}}, 5::Float64, 6::Float64, 7::Core.LLVMPtr{Float64, 0}, 8::UInt64, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Float64, 12::Float64, 13::Float64, 14::Float64, 15::Float64, 16::Core.LLVMPtr{Float64, 0}, 17::Core.LLVMPtr{Float64, 0}}, 2::Float64, 3, 4::Float64, 5, 6::Core.LLVMPtr{Float64, 0}, 7::UInt64, 8::Core.LLVMPtr{Float64, 0}, 9::Core.LLVMPtr{Float64, 0}, 10::Float64, 11::Core.LLVMPtr{Float64, 0}, 12::Core.LLVMPtr{Float64, 0}, 13::Core.LLVMPtr{Bool, 0}, 14::Float64, 15::Float64, 16::Float64}, Tuple{Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Core.LLVMPtr{Float64, 0}, Float64, Float64}, Core.LLVMPtr{UInt8, 0}, UInt64, UInt64}, 3::Bool, 4::Bool, 5, 6::Core.LLVMPtr{Any, 0}, 7::UInt64, 8::UInt64, 9, 10::Bool, 11::Bool, 12::Core.LLVMPtr{UInt64, 0}}, 12::@NamedTuple{1, 2, 3::Core.LLVMPtr{UInt8, 0}, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14::Core.LLVMPtr{UInt8, 0}, 15, 16::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 17, 18::@NamedTuple{1, 2, 3, 4, 5, 6::UInt64, 7::Core.LLVMPtr{UInt64, 0}, 8::Core.LLVMPtr{UInt64, 0}}, 19, 20, 21, 22::Bool, 23::Bool, 24::UInt64, 25::UInt64, 26::Core.LLVMPtr{UInt8, 0}, 27, 28::Core.LLVMPtr{Core.LLVMPtr{UInt8, 0}, 0}, 29, 30::UInt64, 31::UInt64, 32::Core.LLVMPtr{UInt64, 0}}, 13::@NamedTuple{1}, 14, 15, 16::UInt64}, 2, 3, 4, 5}})(::EnzymeCore.Const{typeof(EnzymeTestUtils.call_with_kwargs)}, ::EnzymeCore.Const{@NamedTuple{alg::MatrixAlgebraKit.TruncatedAlgorithm{MatrixAlgebraKit.LAPACK_Simple{@NamedTuple{}}, MatrixAlgebraKit.TruncationByOrder{typeof(abs)}}}}, ::Vararg{Any})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/EITgk/src/compiler.jl:5372
[4] test_reverse(f::typeof(MatrixAlgebraKit.eig_trunc), ret_activity::Type, args::Tuple{Matrix{Float64}, UnionAll}; rng::Random.TaskLocalRNG, fdm::FiniteDifferences.AdaptedFiniteDifferenceMethod{5, 1, FiniteDifferences.UnadaptedFiniteDifferenceMethod{7, 5}}, fkwargs::@NamedTuple{alg::MatrixAlgebraKit.TruncatedAlgorithm{MatrixAlgebraKit.LAPACK_Simple{@NamedTuple{}}, MatrixAlgebraKit.TruncationByOrder{typeof(abs)}}}, rtol::Float64, atol::Float64, testset_name::Nothing, runtime_activity::Bool, output_tangent::Tuple{LinearAlgebra.Diagonal{ComplexF64, Vector{ComplexF64}}, Matrix{ComplexF64}, Float64})
@ EnzymeTestUtils ~/.julia/dev/Enzyme/lib/EnzymeTestUtils/src/test_reverse.jl:143 |
|
the pr was merged but not released, if you want to try via main |
No idea if this is the correct approach, I'm getting errors when I try to use it like: