@@ -14,7 +14,7 @@ function getVarIntLabelMap(vartypeslist::OrderedDict{DataType, Vector{Symbol}})
1414 return varIntLabel, varlabelsAP
1515end
1616
17- function CalcFactorResidual (fg, fct:: DFGFactor , varIntLabel, points :: Union{Nothing,ArrayPartition} = nothing )
17+ function CalcFactorResidual (fg, fct:: DFGFactor , varIntLabel)
1818 fac_func = getFactorType (fct)
1919 varOrder = getVariableOrder (fct)
2020
@@ -29,22 +29,14 @@ function CalcFactorResidual(fg, fct::DFGFactor, varIntLabel, points::Union{Nothi
2929 sqrt_iΣ = convert (SMatrix{dims, dims}, sqrt (iΣ))
3030 cache = preambleCache (fg, getVariable .(fg, varOrder), getFactorType (fct))
3131
32- if isnothing (points)
33- points_view = nothing
34- else
35- points_view = @view points[varOrderIdxs]
36- end
37-
3832 return CalcFactorResidual (
3933 fct. label,
4034 getFactorMechanics (fac_func),
41- cache,
4235 tuple (varOrder... ),
4336 tuple (varOrderIdxs... ),
44- points_view,
4537 meas,
46- iΣ,
4738 sqrt_iΣ,
39+ cache,
4840 )
4941end
5042
5345 CalcFactorResidualAP
5446Create an `ArrayPartition` of `CalcFactorResidual`s.
5547"""
56- function CalcFactorResidualAP (fg:: GraphsDFG , factorLabels:: Vector{Symbol} , varIntLabel:: OrderedDict{Symbol, Int64} , points )
48+ function CalcFactorResidualAP (fg:: GraphsDFG , factorLabels:: Vector{Symbol} , varIntLabel:: OrderedDict{Symbol, Int64} )
5749 factypes, typedict, alltypes = getFactorTypesCount (getFactor .(fg, factorLabels))
5850
5951 # skip non-numeric prior (MetaPrior)
@@ -63,7 +55,7 @@ function CalcFactorResidualAP(fg::GraphsDFG, factorLabels::Vector{Symbol}, varIn
6355
6456 parts = map (values (alltypes)) do labels
6557 map (getFactor .(fg, labels)) do fct
66- CalcFactorResidual (fg, fct, varIntLabel, points )
58+ CalcFactorResidual (fg, fct, varIntLabel)
6759 end
6860 end
6961 parts_tuple = (parts... ,)
@@ -76,10 +68,6 @@ function (cfm::CalcFactorResidual)(p)
7668 return cfm. sqrt_iΣ * cfm (meas, points... )
7769end
7870
79- function (cfm:: CalcFactorResidual{T} )() where T
80- return cfm. sqrt_iΣ * cfm (cfm. meas, cfm. points... )
81- end
82-
8371# cost function f: M->ℝᵈ for Riemannian Levenberg-Marquardt
8472struct CostFres_cond!{PT, CFT}
8573 points:: PT
@@ -112,14 +100,13 @@ end
112100
113101function calcFactorResVec! (
114102 x:: Vector{T} ,
115- cfm_part:: Vector{<:CalcFactorResidual{FT}} ,
103+ cfm_part:: Vector{<:CalcFactorResidual{FT, N, D }} ,
116104 p:: AbstractArray{T} ,
117105 st:: Int
118- ) where {T,FT}
119- l = getDimension (cfm_part[1 ]) # all should be the same
106+ ) where {T, FT, N, D}
120107 for cfm in cfm_part
121- x[st: st + l - 1 ] = cfm (p) # NOTE looks like do not broadcast here
122- st += l
108+ x[st: st + D - 1 ] = cfm (p) # NOTE looks like do not broadcast here
109+ st += D
123110 end
124111 return st
125112end
@@ -329,7 +316,7 @@ function solve_RLM(
329316 end
330317
331318 # create an ArrayPartition{CalcFactorResidual} for faclabels
332- calcfacs = CalcFactorResidualAP (fg, faclabels, varIntLabel, p0 )
319+ calcfacs = CalcFactorResidualAP (fg, faclabels, varIntLabel)
333320
334321 # cost and jacobian functions
335322 # cost function f: M->ℝᵈ for Riemannian Levenberg-Marquardt
@@ -446,7 +433,7 @@ function solve_RLM_conditional(
446433 # varIntLabel_frontals = filter(p->first(p) in frontals, varIntLabel)
447434 # varIntLabel_separators = filter(p->first(p) in separators, varIntLabel)
448435
449- calcfacs = CalcFactorResidualAP (fg, faclabels, all_varIntLabel, all_points )
436+ calcfacs = CalcFactorResidualAP (fg, faclabels, all_varIntLabel)
450437
451438 # get the manifold and variable types
452439
0 commit comments