-
Notifications
You must be signed in to change notification settings - Fork 21
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
parametric sometimes fails on no method matching eigen! #1627
Labels
Milestone
Comments
Happened in RoME testing: [TEST 3] testPose3.jl =============================================================
[ Info: try doautoinit! of x0
[ Info: try doautoinit! of x0
[ Info: init with useinitfct [:x0f1]
[ Info: do init of x0
[ Info: try doautoinit! of x1
[ Info: try doautoinit! of x1
[ Info: init with useinitfct [:x0x1f1]
[ Info: do init of x1
[ Info: try doautoinit! of x2
[ Info: try doautoinit! of x2
[ Info: init with useinitfct [:x1x2f1]
[ Info: do init of x2
[ Info: try doautoinit! of x3
[ Info: try doautoinit! of x3
[ Info: init with useinitfct [:x2x3f1]
[ Info: do init of x3
[ Info: try doautoinit! of x4
[ Info: x4 is not initialized, and will do so now...
[ Info: try doautoinit! of x4
[ Info: init with useinitfct [:x3x4f1]
[ Info: do init of x4
WARNING: both ApproxManifoldProducts and TransformUtils export "R"; uses of it in module RoME must be qualified
WARNING: both LinearAlgebra and TransformUtils export "rotate!"; uses of it in module RoME must be qualified
Test Basic Pose3 :parametric and :default: Error During Test at /home/runner/work/RoME.jl/RoME.jl/test/testPose3.jl:4
Got exception outside of a @test
MethodError: no method matching eigen!(::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}; permute=true, scale=true, sortby=LinearAlgebra.eigsortby)
Closest candidates are:
eigen!(!Matched::SymTridiagonal{var"#s885", V} where {var"#s885"<:Union{Float32, Float64}, V<:AbstractVector{var"#s885"}}) at /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/LinearAlgebra/src/tridiag.jl:286 got unsupported keyword arguments "permute", "scale", "sortby"
eigen!(!Matched::SymTridiagonal{var"#s885", V} where {var"#s885"<:Union{Float32, Float64}, V<:AbstractVector{var"#s885"}}, !Matched::UnitRange) at /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/LinearAlgebra/src/tridiag.jl:289 got unsupported keyword arguments "permute", "scale", "sortby"
eigen!(!Matched::SymTridiagonal{var"#s885", V} where {var"#s885"<:Union{Float32, Float64}, V<:AbstractVector{var"#s885"}}, !Matched::Real, !Matched::Real) at /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/LinearAlgebra/src/tridiag.jl:294 got unsupported keyword arguments "permute", "scale", "sortby"
...
Stacktrace:
[1] eigen(A::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}; permute::Bool, scale::Bool, sortby::typeof(LinearAlgebra.eigsortby))
@ LinearAlgebra /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:238
[2] eigen
@ /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:235 [inlined]
[3] #eigen_safe#1
@ ~/.julia/packages/Manifolds/Dypjk/src/utils.jl:53 [inlined]
[4] eigen_safe
@ ~/.julia/packages/Manifolds/Dypjk/src/utils.jl:53 [inlined]
[5] log!(M::Rotations{3}, X::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, p::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, q::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}})
@ Manifolds ~/.julia/packages/Manifolds/Dypjk/src/manifolds/GeneralUnitaryMatrices.jl:560
[6] log
@ ~/.julia/packages/ManifoldsBase/YRaAP/src/exp_log_geo.jl:143 [inlined]
[7] log
@ ~/.julia/packages/ManifoldsBase/YRaAP/src/nested_trait.jl:308 [inlined]
[8] log (repeats 3 times)
@ ~/.julia/packages/ManifoldsBase/YRaAP/src/nested_trait.jl:282 [inlined]
[9] log
@ ~/.julia/packages/ManifoldsBase/YRaAP/src/nested_trait.jl:275 [inlined]
[10] log
@ ~/.julia/packages/ManifoldsBase/YRaAP/src/nested_trait.jl:291 [inlined]
[11] log(t::ManifoldsBase.TraitList{IsGroupManifold{MultiplicationOperation}, ManifoldsBase.TraitList{ManifoldsBase.IsExplicitDecorator, ManifoldsBase.EmptyTrait}}, M::SpecialOrthogonal{3}, p::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, q::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}})
@ ManifoldsBase ~/.julia/packages/ManifoldsBase/YRaAP/src/nested_trait.jl:282
[12] log
@ ~/.julia/packages/ManifoldsBase/YRaAP/src/nested_trait.jl:275 [inlined]
[13] map (repeats 2 times)
@ ./tuple.jl:266 [inlined]
[14] log(M::ProductManifold{ℝ, Tuple{TranslationGroup{Tuple{3}, ℝ}, SpecialOrthogonal{3}}}, p::ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}}}, q::ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}}})
@ Manifolds ~/.julia/packages/Manifolds/Dypjk/src/manifolds/ProductManifold.jl:792
[15] log
@ ~/.julia/packages/ManifoldsBase/YRaAP/src/nested_trait.jl:291 [inlined]
[16] log
@ ~/.julia/packages/ManifoldsBase/YRaAP/src/nested_trait.jl:282 [inlined]
[17] log
@ ~/.julia/packages/ManifoldsBase/YRaAP/src/nested_trait.jl:275 [inlined]
[18] (::CalcFactor{Pose3Pose3{FullNormal}, Nothing, Nothing, Nothing})(X::ArrayPartition{Float64, Tuple{Vector{Float64}, Matrix{Float64}}}, p::ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}}}, q::ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}}})
@ RoME ~/work/RoME.jl/RoME.jl/src/factors/Pose3Pose3.jl:23
[19] (::IncrementalInference.CalcFactorMahalanobis{1, 6, 36, Nothing})(::ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}}}, ::Vararg{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}}}})
@ IncrementalInference ~/.julia/packages/IncrementalInference/w4DYm/src/ParametricUtils.jl:197
[20] cost_cfp(cfp::IncrementalInference.CalcFactorMahalanobis, p::AbstractArray, vi::Tuple{Int64, Int64})
@ IncrementalInference ~/.julia/packages/IncrementalInference/w4DYm/src/ParametricUtils.jl:378
[21] (::IncrementalInference.var"#468#469"{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}}}}}}, OrderedCollections.OrderedDict{Symbol, Tuple{Int64, Vararg{Int64}}}})(::Pair{Symbol, IncrementalInference.CalcFactorMahalanobis{1, 6, 36, Nothing}})
@ IncrementalInference ~/.julia/packages/IncrementalInference/w4DYm/src/ParametricUtils.jl:424
[22] MappingRF
@ ./reduce.jl:95 [inlined]
[23] _foldl_impl(op::Base.MappingRF{IncrementalInference.var"#468#469"{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}}}}}}, OrderedCollections.OrderedDict{Symbol, Tuple{Int64, Vararg{Int64}}}}, Base.BottomRF{typeof(+)}}, init::Base._InitialValue, itr::OrderedCollections.OrderedDict{Symbol, IncrementalInference.CalcFactorMahalanobis})
@ Base ./reduce.jl:62
[24] foldl_impl
@ ./reduce.jl:48 [inlined]
[25] mapfoldl_impl(f::IncrementalInference.var"#468#469"{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}}}}}}, OrderedCollections.OrderedDict{Symbol, Tuple{Int64, Vararg{Int64}}}}, op::typeof(+), nt::Base._InitialValue, itr::OrderedCollections.OrderedDict{Symbol, IncrementalInference.CalcFactorMahalanobis})
@ Base ./reduce.jl:44
[26] mapfoldl(f::Function, op::Function, itr::OrderedCollections.OrderedDict{Symbol, IncrementalInference.CalcFactorMahalanobis}; init::Base._InitialValue)
@ Base ./reduce.jl:170
[27] mapfoldl
@ ./reduce.jl:170 [inlined]
[28] #mapreduce#263
@ ./reduce.jl:302 [inlined]
[29] mapreduce
@ ./reduce.jl:302 [inlined]
[30] (::IncrementalInference.GraphSolveContainer)(Xc::Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}})
@ IncrementalInference ~/.julia/packages/IncrementalInference/w4DYm/src/ParametricUtils.jl:421
[31] chunk_mode_gradient!(result::DiffResults.MutableDiffResult{1, Float64, Tuple{Vector{Float64}}}, f::IncrementalInference.GraphSolveContainer, x::Vector{Float64}, cfg::ForwardDiff.GradientConfig{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10, Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}})
@ ForwardDiff ~/.julia/packages/ForwardDiff/pDtsf/src/gradient.jl:150
[32] gradient!
@ ~/.julia/packages/ForwardDiff/pDtsf/src/gradient.jl:39 [inlined]
[33] gradient!
@ ~/.julia/packages/ForwardDiff/pDtsf/src/gradient.jl:35 [inlined]
[34] (::NLSolversBase.var"#42#48"{IncrementalInference.GraphSolveContainer, ForwardDiff.GradientConfig{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10, Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 10}}}})(out::Vector{Float64}, x::Vector{Float64})
@ NLSolversBase ~/.julia/packages/NLSolversBase/cfJrN/src/objective_types/twicedifferentiable.jl:132
[35] value_gradient!!(obj::NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}, x::Vector{Float64})
@ NLSolversBase ~/.julia/packages/NLSolversBase/cfJrN/src/interface.jl:82
[36] value_gradient!(obj::NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}, x::Vector{Float64})
@ NLSolversBase ~/.julia/packages/NLSolversBase/cfJrN/src/interface.jl:69
[37] value_gradient!(obj::Optim.ManifoldObjective{NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}}, x::Vector{Float64})
@ Optim ~/.julia/packages/Optim/Zq1jM/src/Manifolds.jl:50
[38] (::LineSearches.var"#ϕdϕ#6"{Optim.ManifoldObjective{NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}}, Vector{Float64}, Vector{Float64}, Vector{Float64}})(α::Float64)
@ LineSearches ~/.julia/packages/LineSearches/G1LRk/src/LineSearches.jl:84
[39] (::LineSearches.HagerZhang{Float64, Base.RefValue{Bool}})(ϕ::Function, ϕdϕ::LineSearches.var"#ϕdϕ#6"{Optim.ManifoldObjective{NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, c::Float64, phi_0::Float64, dphi_0::Float64)
@ LineSearches ~/.julia/packages/LineSearches/G1LRk/src/hagerzhang.jl:139
[40] HagerZhang
@ ~/.julia/packages/LineSearches/G1LRk/src/hagerzhang.jl:101 [inlined]
[41] perform_linesearch!(state::Optim.BFGSState{Vector{Float64}, Matrix{Float64}, Float64, Vector{Float64}}, method::Optim.BFGS{LineSearches.InitialStatic{Float64}, LineSearches.HagerZhang{Float64, Base.RefValue{Bool}}, Nothing, Nothing, Optim.Flat}, d::Optim.ManifoldObjective{NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}})
@ Optim ~/.julia/packages/Optim/Zq1jM/src/utilities/perform_linesearch.jl:59
[42] update_state!(d::NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}, state::Optim.BFGSState{Vector{Float64}, Matrix{Float64}, Float64, Vector{Float64}}, method::Optim.BFGS{LineSearches.InitialStatic{Float64}, LineSearches.HagerZhang{Float64, Base.RefValue{Bool}}, Nothing, Nothing, Optim.Flat})
@ Optim ~/.julia/packages/Optim/Zq1jM/src/multivariate/solvers/first_order/bfgs.jl:139
[43] optimize(d::NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}, initial_x::Vector{Float64}, method::Optim.BFGS{LineSearches.InitialStatic{Float64}, LineSearches.HagerZhang{Float64, Base.RefValue{Bool}}, Nothing, Nothing, Optim.Flat}, options::Optim.Options{Float64, Nothing}, state::Optim.BFGSState{Vector{Float64}, Matrix{Float64}, Float64, Vector{Float64}})
@ Optim ~/.julia/packages/Optim/Zq1jM/src/multivariate/optimize/optimize.jl:54
[44] optimize(d::NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}, initial_x::Vector{Float64}, method::Optim.BFGS{LineSearches.InitialStatic{Float64}, LineSearches.HagerZhang{Float64, Base.RefValue{Bool}}, Nothing, Nothing, Optim.Flat}, options::Optim.Options{Float64, Nothing})
@ Optim ~/.julia/packages/Optim/Zq1jM/src/multivariate/optimize/optimize.jl:36
[45] solveGraphParametric(fg::GraphsDFG{SolverParams, DFGVariable, DFGFactor}; computeCovariance::Bool, solveKey::Symbol, autodiff::Symbol, algorithm::Type{Optim.BFGS}, algorithmkwargs::Tuple{}, options::Optim.Options{Float64, Nothing})
@ IncrementalInference ~/.julia/packages/IncrementalInference/w4DYm/src/ParametricUtils.jl:547
[46] solveGraphParametric
@ ~/.julia/packages/IncrementalInference/w4DYm/src/ParametricUtils.jl:506 [inlined]
[47] #solveGraphParametric!#486
@ ~/.julia/packages/IncrementalInference/w4DYm/src/ParametricUtils.jl:801 [inlined]
[48] solveGraphParametric!
@ ~/.julia/packages/IncrementalInference/w4DYm/src/ParametricUtils.jl:794 [inlined]
[49] macro expansion
@ ./timing.jl:262 [inlined]
[50] macro expansion
@ ~/work/RoME.jl/RoME.jl/test/testPose3.jl:23 [inlined]
[51] macro expansion
@ /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/Test/src/Test.jl:1357 [inlined]
[52] top-level scope
@ ~/work/RoME.jl/RoME.jl/test/testPose3.jl:5
[53] include(fname::String)
@ Base.MainInclude ./client.jl:476
[54] top-level scope
@ ~/work/RoME.jl/RoME.jl/test/runtests.jl:78
[55] include(fname::String)
@ Base.MainInclude ./client.jl:476
[56] top-level scope
@ none:6
[57] eval
@ ./boot.jl:368 [inlined]
[58] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:276
Test Summary: | Error Total Time
Test Basic Pose3 :parametric and :default | 1 1 41.6s
ERROR: LoadError: Some tests did not pass: 0 passed, 0 failed, 1 errored, 0 broken.
in expression starting at /home/runner/work/RoME.jl/RoME.jl/test/testPose3.jl:4
in expression starting at /home/runner/work/RoME.jl/RoME.jl/test/runtests.jl:76
ERROR: Package RoME errored during testing
Stacktrace:
[1] pkgerror(msg::String)
@ Pkg.Types /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/Pkg/src/Types.jl:67
[2] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, julia_args::Cmd, test_args::Cmd, test_fn::Nothing, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool)
@ Pkg.Operations /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1813
[3] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, test_fn::Nothing, julia_args::Cmd, test_args::Cmd, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool, kwargs::Base.Pairs{Symbol, Base.PipeEndpoint, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.PipeEndpoint}}})
@ Pkg.API /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:431
[4] test(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.PipeEndpoint, kwargs::Base.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:coverage,), Tuple{Bool}}})
@ Pkg.API /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:156
[5] #test#87
@ /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:144 [inlined]
[6] #test#86
@ /opt/hostedtoolcache/julia/1.8.1/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:143 [inlined]
[7] top-level scope
@ none:1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The text was updated successfully, but these errors were encountered: