-
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 |
dehann
changed the title
parametric fails but works on rerun
parametric sometimes fails on no method matching eigen!
Sep 16, 2023
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: