Skip to content

Commit 355f481

Browse files
committed
setMani with partial and more tests
1 parent 6a613a4 commit 355f481

File tree

3 files changed

+29
-21
lines changed

3 files changed

+29
-21
lines changed

src/FGOSUtils.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,10 @@ function manikde!(pts::AbstractVector{P},
152152
vartype::Union{InstanceType{<:InferenceVariable}, InstanceType{<:AbstractFactor}}) where P
153153
#
154154
M = getManifold(vartype)
155-
infoPerCoord=ones(AMP.getNumberCoords(M, pts[1]))
155+
# @info "WHAT" vartype, M
156+
# @show pts[1]
157+
# @show manifold_dimension(M)
158+
infoPerCoord=ones(manifold_dimension(M))
156159
return AMP.manikde!(M, pts, infoPerCoord=infoPerCoord)
157160
end
158161

src/services/EvalFactor.jl

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -359,26 +359,30 @@ function evalPotentialSpecific( Xi::AbstractVector{<:DFGVariable},
359359
spreadDist = spreadNH*sqrt(calcCovarianceBasic(mani, addEntr))
360360
# partials are treated differently
361361
ipc = if !isPartial(ccwl) #ccwl.partial
362-
# TODO for now require measurements to be coordinates too
363-
# @show typeof(ccwl.measurement[1])
364-
for m in (1:length(addEntr))[ahmask]
365-
# FIXME, selection for all measurement::Tuple elements
366-
# @info "check broadcast" ccwl.usrfnc! addEntr[m] ccwl.measurement[1][m]
367-
_setPointsMani!(addEntr[m], ccwl.measurement[1][m])
368-
end
369-
# ongoing part of RoME.jl #244
370-
addEntropyOnManifold!(mani, addEntrNH, 1:getDimension(mani), spreadDist)
371-
# do info per coords
372-
ones(getDimension(Xi[sfidx]))
362+
# TODO for now require measurements to be coordinates too
363+
# @show typeof(ccwl.measurement[1])
364+
for m in (1:length(addEntr))[ahmask]
365+
# FIXME, selection for all measurement::Tuple elements
366+
# @info "check broadcast" ccwl.usrfnc! addEntr[m] ccwl.measurement[1][m]
367+
_setPointsMani!(addEntr[m], ccwl.measurement[1][m])
368+
end
369+
# ongoing part of RoME.jl #244
370+
addEntropyOnManifold!(mani, addEntrNH, 1:getDimension(mani), spreadDist)
371+
# do info per coords
372+
ones(getDimension(Xi[sfidx]))
373373
else
374374
# FIXME but how to add partial factor info only on affected dimensions fro general manifold points?
375375
pvec = [fnc.partial...]
376376
# active hypo that receives the regular measurement information
377377
for m in (1:length(addEntr))[ahmask]
378378
# addEntr is no longer in coordinates, these are now general manifold points!!
379-
for (i,dimnum) in enumerate(fnc.partial)
380-
addEntr[m][dimnum] = ccwl.measurement[1][m][i]
381-
end
379+
# for (i,dimnum) in enumerate(fnc.partial)
380+
# FIXME, need ability to replace partial points
381+
partialCoords = ccwl.partialDims
382+
Msrc, = getManifoldPartial(mani,partialCoords)
383+
_setPointsManiPartial!(mani, addEntr[m], Msrc, ccwl.measurement[1][m], partialCoords)
384+
# addEntr[m][dimnum] = ccwl.measurement[1][m][i]
385+
# end
382386
end
383387
# null hypo mask that needs to be perturbed by "noise"
384388
addEntrNHp = view(addEntr, nhmask)

test/testSpecialEuclidean2Mani.jl

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ vnd = getVariableSolverData(fg, :x1)
5959

6060
##
6161
smtasks = Task[]
62-
solveTree!(fg; smtasks, verbose=true, recordcliqs=ls(fg))
62+
solveTree!(fg; smtasks, verbose=true) #, recordcliqs=ls(fg))
6363
# hists = fetchCliqHistoryAll!(smtasks);
6464

6565
vnd = getVariableSolverData(fg, :x0)
@@ -92,11 +92,12 @@ p = addFactor!(fg, [:x0], mp, graphinit=false)
9292

9393
##
9494

95-
# try
9695
pbel_ = approxConvBelief(fg, :x0f1, :x0)
97-
# catch
98-
# @test_broken false
99-
# end
96+
97+
@test isPartial(pbel_)
98+
99+
@test pbel_._partial == [1;2]
100+
@test length(pbel_.infoPerCoord) == 3
100101

101102
##
102103
end
@@ -141,7 +142,7 @@ vnd = getVariableSolverData(fg, :x6)
141142
##
142143

143144
smtasks = Task[]
144-
solveTree!(fg; smtasks)
145+
solveTree!(fg; smtasks);
145146

146147
##
147148
end

0 commit comments

Comments
 (0)