Skip to content
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

Open
dehann opened this issue Sep 9, 2022 · 1 comment
Open

parametric sometimes fails on no method matching eigen! #1627

dehann opened this issue Sep 9, 2022 · 1 comment

Comments

@dehann
Copy link
Member

dehann commented Sep 9, 2022

julia> IIF.solveGraphParametric!(dfg; init=false, options)
ERROR: MethodError: no method matching eigen!(::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}; permute=true, scale=true, sortby=LinearAlgebra.eigsortby)
Closest candidates are:
  eigen!(::SymTridiagonal{var"#s884", V} where {var"#s884"<:Union{Float32, Float64}, V<:AbstractVector{var"#s884"}}) at /usr/local/share/julia-1.8.0/share/julia/stdlib/v1.8/LinearAlgebra/src/tridiag.jl:283 got unsupported keyword arguments "permute", "scale", "sortby"
  eigen!(::SymTridiagonal{var"#s884", V} where {var"#s884"<:Union{Float32, Float64}, V<:AbstractVector{var"#s884"}}, ::UnitRange) at /usr/local/share/julia-1.8.0/share/julia/stdlib/v1.8/LinearAlgebra/src/tridiag.jl:286 got unsupported keyword arguments "permute", "scale", "sortby"
  eigen!(::SymTridiagonal{var"#s884", V} where {var"#s884"<:Union{Float32, Float64}, V<:AbstractVector{var"#s884"}}, ::Real, ::Real) at /usr/local/share/julia-1.8.0/share/julia/stdlib/v1.8/LinearAlgebra/src/tridiag.jl:291 got unsupported keyword arguments "permute", "scale", "sortby"
  ...
Stacktrace:
  [1] eigen(A::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}; permute::Bool, scale::Bool, sortby::typeof(LinearAlgebra.eigsortby))
    @ LinearAlgebra /usr/local/share/julia-1.8.0/share/julia/stdlib/v1.8/LinearAlgebra/src/eigen.jl:238
  [2] eigen
    @ /usr/local/share/julia-1.8.0/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, 12}}, p::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}, q::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}})
    @ 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, 12}}, q::Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}})
    @ 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, 12}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}}}, q::ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}}})
    @ 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] WARNING: both Interpolations and Distributions export "scale"; uses of it in module IncrementalInference must be qualified
WARNING: both ApproxManifoldProducts and TransformUtils export "rotate!"; uses of it in module RoME must be qualified
WARNING: both Distributions and IncrementalInference export "scale"; uses of it in module RoME must be qualified
(::CalcFactor{Pose3Pose3{FullNormal}, Nothing, Nothing, Nothing, Nothing})(X::ArrayPartition{Float64, Tuple{Vector{Float64}, Matrix{Float64}}}, p::ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}}}, q::ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}}})
    @ RoME ~/.julia/packages/RoME/FrIRp/src/factors/Pose3Pose3.jl:23
 [19] (::IncrementalInference.CalcFactorMahalanobis{1, 6, 36, Nothing})(::ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}}}, ::Vararg{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}}}})
    @ IncrementalInference ~/.julia/packages/IncrementalInference/lIyVR/src/ParametricUtils.jl:183
 [20] cost_cfp(cfp::IncrementalInference.CalcFactorMahalanobis, p::AbstractArray, vi::Tuple{Int64, Int64})
    @ IncrementalInference ~/.julia/packages/IncrementalInference/lIyVR/src/ParametricUtils.jl:354
 [21] (::IncrementalInference.var"#474#475"{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}, Tuple{Vector{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}}}}}}, OrderedCollections.OrderedDict{Symbol, Tuple{Int64, Vararg{Int64}}}})(::Pair{Symbol, IncrementalInference.CalcFactorMahalanobis{1, 6, 36, Nothing}})
    @ IncrementalInference ~/.julia/packages/IncrementalInference/lIyVR/src/ParametricUtils.jl:396
 [22] MappingRF
    @ ./reduce.jl:95 [inlined]
 [23] _foldl_impl(op::Base.MappingRF{IncrementalInference.var"#474#475"{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}, Tuple{Vector{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}}}}}}, 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"#474#475"{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}, Tuple{Vector{ArrayPartition{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}, Matrix{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}}}}}}, 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:162
 [27] mapfoldl
    @ ./reduce.jl:162 [inlined]
 [28] #mapreduce#262
    @ ./reduce.jl:294 [inlined]
 [29] mapreduce
    @ ./reduce.jl:294 [inlined]
 [30] (::IncrementalInference.GraphSolveContainer)(Xc::Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}})
    @ IncrementalInference ~/.julia/packages/IncrementalInference/lIyVR/src/ParametricUtils.jl:392
 [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, 12, Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}})
    @ 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, 12, Vector{ForwardDiff.Dual{ForwardDiff.Tag{IncrementalInference.GraphSolveContainer, Float64}, Float64, 12}}}})(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/ocQqB/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] secant2!(ϕdϕ::LineSearches.var"#ϕdϕ#6"{Optim.ManifoldObjective{NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}}, Vector{Float64}, Vector{Float64}, Vector{Float64}}, alphas::Vector{Float64}, values::Vector{Float64}, slopes::Vector{Float64}, ia::Int64, ib::Int64, phi_lim::Float64, delta::Float64, sigma::Float64, display::Int64)
    @ LineSearches ~/.julia/packages/LineSearches/G1LRk/src/hagerzhang.jl:368
 [40] (::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:269
 [41] HagerZhang
    @ ~/.julia/packages/LineSearches/G1LRk/src/hagerzhang.jl:101 [inlined]
 [42] 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/ocQqB/src/utilities/perform_linesearch.jl:59
 [43] 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/ocQqB/src/multivariate/solvers/first_order/bfgs.jl:139
 [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}, state::Optim.BFGSState{Vector{Float64}, Matrix{Float64}, Float64, Vector{Float64}})
    @ Optim ~/.julia/packages/Optim/ocQqB/src/multivariate/optimize/optimize.jl:54
 [45] 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/ocQqB/src/multivariate/optimize/optimize.jl:36
 [46] 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/lIyVR/src/ParametricUtils.jl:518
 [47] #solveGraphParametric!#492
    @ ~/.julia/packages/IncrementalInference/lIyVR/src/ParametricUtils.jl:769 [inlined]
 [48] top-level scope
@dehann
Copy link
Member Author

dehann commented Sep 12, 2022

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 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
Projects
Status: No status
Development

No branches or pull requests

1 participant