diff --git a/Project.toml b/Project.toml index 355ae5f0b..28624107a 100644 --- a/Project.toml +++ b/Project.toml @@ -2,7 +2,7 @@ name = "IncrementalInference" uuid = "904591bb-b899-562f-9e6f-b8df64c7d480" keywords = ["mm-iSAM", "SLAM", "inference", "sum-product", "belief-propagation"] desc = "Implements the multimodal iSAM algorithm." -version = "0.10.0" +version = "0.10.1" [deps] ApproxManifoldProducts = "9bbbb610-88a1-53cd-9763-118ce10c1f89" @@ -36,7 +36,7 @@ SuiteSparse = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" [compat] ApproxManifoldProducts = "0.1, 0.2" Combinatorics = "1.0" -DistributedFactorGraphs = "0.7.0" +DistributedFactorGraphs = "0.7.1" Distributions = "0.18, 0.19, 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 1" DocStringExtensions = "0.8, 0.9, 0.10, 1" FileIO = "1.0.2, 1.1, 1.2" @@ -52,7 +52,7 @@ ProgressMeter = "0.6, 0.7, 0.8, 0.9, 1" Reexport = "0.2, 0.3, 0.4, 0.5, 1" Requires = "0.5, 0.6, 0.7, 0.8, 0.9, 0.10, 1" StatsBase = "0.25, 0.26, 0.26, 0.27, 0.28, 0.29, 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.40, 1" -julia = "1.2" +julia = "1.2, 1.3, 1.4, 1.5" [extras] Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/src/CliqStateMachineUtils.jl b/src/CliqStateMachineUtils.jl index 57eb7e784..31318d929 100644 --- a/src/CliqStateMachineUtils.jl +++ b/src/CliqStateMachineUtils.jl @@ -898,11 +898,16 @@ directPriorMsgIDs, directFrtlMsgIDs, directAssignmentIDs, mcmcIterationIDs function determineCliqVariableDownSequence(subfg::AbstractDFG, cliq::TreeClique; solvable::Int=1) frtl = getCliqFrontalVarIds(cliq) - #TODO don't use this getAdjacencyMatrixSymbols - adj = DFG.getAdjacencyMatrixSymbols(subfg, solvable=solvable) - mask = map(x->(x in frtl), adj[1,:]) - subAdj = adj[2:end,mask] .!= nothing - newFrtlOrder = Symbol.(adj[1,mask]) + adj, varLabels, FactorLabels = DFG.getBiadjacencyMatrix(subfg, solvable=solvable) + mask = (x-> x in frtl).(varLabels) + newFrtlOrder = varLabels[mask] + subAdj = adj[:,mask] + #TODO don't use this getAdjacencyMatrixSymbols, #604 + # adj = DFG.getAdjacencyMatrixSymbols(subfg, solvable=solvable) + # mask = map(x->(x in frtl), adj[1,:]) + # subAdj = adj[2:end,mask] .!= nothing + # newFrtlOrder = Symbol.(adj[1,mask]) + crossCheck = sum(Int.(subAdj), dims=2) .> 1 iterVars = Symbol[] for i in 1:length(crossCheck) diff --git a/src/FactorGraph.jl b/src/FactorGraph.jl index 0fe5c9401..bc3df235e 100644 --- a/src/FactorGraph.jl +++ b/src/FactorGraph.jl @@ -1050,7 +1050,8 @@ function getEliminationOrder(dfg::G; # @assert 0 == length(constraints) || ordering == :ccolamd "Must use ordering=:ccolamd when trying to use constraints" # Get the sparse adjacency matrix, variable, and factor labels - adjMat, permuteds, permutedsf = DFG.getAdjacencyMatrixSparse(dfg, solvable=solvable) + adjMat, permuteds, permutedsf = DFG.getBiadjacencyMatrix(dfg, solvable=solvable) + # adjMat, permuteds, permutedsf = DFG.getAdjacencyMatrixSparse(dfg, solvable=solvable) # Create dense adjacency matrix