v0.25.4-rc1
Showing 8 of 9 files from the diff.
src/JunctionTree.jl
changed.
src/SolverUtilities.jl
changed.
src/FactorGraph.jl
changed.
src/ParametricUtils.jl
changed.
src/entities/OptionalDensities.jl
changed.
src/entities/SolverParams.jl
changed.
src/services/HeatmapSampler.jl
changed.
src/FGOSUtils.jl
changed.
Other files ignored by Codecov
Project.toml
has changed.
@@ -354,7 +354,7 @@
Loading
354 | 354 | firvert::DFGVariable, |
|
355 | 355 | Sj=getSolverData(firvert).separator)::DFGVariable |
|
356 | 356 | # |
|
357 | - | firstelim = 99999999999 |
|
357 | + | firstelim = (2^(Sys.WORD_SIZE-1)-1) |
|
358 | 358 | for s in Sj |
|
359 | 359 | temp = something(findfirst(isequal(s), elimorder), 0) # findfirst(p, s) |
|
360 | 360 | if (temp < firstelim) |
@@ -211,12 +211,13 @@
Loading
211 | 211 | destType::Type{<:InferenceVariable}, |
|
212 | 212 | factor::AbstractRelative; |
|
213 | 213 | srcType::Type{<:InferenceVariable} = getVariableType(fg, srcLabel) |> typeof, |
|
214 | + | doRef::Bool = true, |
|
214 | 215 | refKey::Symbol=:simulated, |
|
215 | - | prior = DFG._getPriorType(srcType)( MvNormal(getPPE(fg[srcLabel], refKey).suggested, diagm(ones(getDimension(srcType)))) ), |
|
216 | + | prior = !doRef ? nothing : DFG._getPriorType(srcType)( MvNormal(getPPE(fg[srcLabel], refKey).suggested, diagm(ones(getDimension(srcType)))) ), |
|
216 | 217 | atol::Real = 1e-2, |
|
217 | 218 | destPrefix::Symbol = match(r"[a-zA-Z_]+", destRegex.pattern).match |> Symbol, |
|
218 | 219 | srcNumber = match(r"\d+", string(srcLabel)).match |> x->parse(Int,x), |
|
219 | - | overridePPE=nothing ) |
|
220 | + | overridePPE = doRef ? nothing : zeros(getDimension(destType)) ) |
|
220 | 221 | # |
|
221 | 222 | ||
222 | 223 | refVal = if overridePPE !== nothing |
@@ -238,9 +239,13 @@
Loading
238 | 239 | ||
239 | 240 | # now check if we already have a landmark at this location |
|
240 | 241 | varLms = ls(fg, destRegex) |> sortDFG |
|
241 | - | ppeLms = getPPE.(getVariable.(fg, varLms), refKey) .|> x->x.suggested |
|
242 | - | errmask = ppeLms .|> ( x -> isapprox(x, refVal; atol=atol) ) |
|
243 | - | already = any(errmask) |
|
242 | + | already = if doRef |
|
243 | + | ppeLms = getPPE.(getVariable.(fg, varLms), refKey) .|> x->x.suggested |
|
244 | + | errmask = ppeLms .|> ( x -> isapprox(x, refVal; atol=atol) ) |
|
245 | + | any(errmask) |
|
246 | + | else |
|
247 | + | false |
|
248 | + | end |
|
244 | 249 | ||
245 | 250 | if already |
|
246 | 251 | # does exist, ppe, variableLabel |
@@ -260,12 +265,13 @@
Loading
260 | 265 | destType::Type{<:InferenceVariable}, |
|
261 | 266 | factor::AbstractPrior; |
|
262 | 267 | srcType::Type{<:InferenceVariable} = getVariableType(fg, srcLabel) |> typeof, |
|
268 | + | doRef::Bool = true, |
|
263 | 269 | refKey::Symbol=:simulated, |
|
264 | 270 | prior = typeof(factor)( MvNormal(getMeasurementParametric(factor)...) ), |
|
265 | 271 | atol::Real = 1e-3, |
|
266 | 272 | destPrefix::Symbol = match(r"[a-zA-Z_]+", destRegex.pattern).match |> Symbol, |
|
267 | 273 | srcNumber = match(r"\d+", string(srcLabel)).match |> x->parse(Int,x), |
|
268 | - | overridePPE=nothing ) |
|
274 | + | overridePPE = doRef ? nothing : zeros(getDimension(destType)) ) |
|
269 | 275 | # |
|
270 | 276 | ||
271 | 277 | refVal = if overridePPE !== nothing |
@@ -484,7 +484,7 @@
Loading
484 | 484 | if :ut in fieldnames(T) |
|
485 | 485 | Base.depwarn("Field `ut` (microseconds) for variable type ($T) has been deprecated please use DFGVariable.nstime, kwarg: nanosecondtime", :addVariable!) |
|
486 | 486 | if isnothing(nanosecondtime) |
|
487 | - | varType.ut == -9999999999 && error("please define a time for type $(T), use FGVariable.nstime, kwarg: nanosecondtime") |
|
487 | + | varType.ut == -(2^(Sys.WORD_SIZE-1)-1) && error("please define a time for type $(T), use FGVariable.nstime, kwarg: nanosecondtime") |
|
488 | 488 | nanosecondtime = Nanosecond(varType.ut*1000) |
|
489 | 489 | else |
|
490 | 490 | @warn "Nanosecond time has been specified as $nanosecondtime, ignoring `ut` field value: $(varType.ut)." |
@@ -88,7 +88,7 @@
Loading
88 | 88 | Z = s.z |
|
89 | 89 | @info "getMeasurementParametric falls back to using field `.z` by default. Extend it for more complex factors." maxlog=1 |
|
90 | 90 | else |
|
91 | - | error("$(typeof(s)) not supported, please use non-parametric or open an issue if it should be") |
|
91 | + | error("getMeasurementParametric(::$(typeof(s))) not defined, please add it, or use non-parametric, or open an issue for help.") |
|
92 | 92 | end |
|
93 | 93 | ||
94 | 94 | return getMeasurementParametric(Z) |
@@ -37,6 +37,7 @@
Loading
37 | 37 | DevNotes: |
|
38 | 38 | - Generalize to scalar fields on any Manifold. |
|
39 | 39 | - Generalize to vector fields if interpolation is sensible. |
|
40 | + | - TODO standardize with AliasingScalarSampler see IIF #1341 |
|
40 | 41 | """ |
|
41 | 42 | struct HeatmapGridDensity{T <: Real, H <: Union{<:Function, Nothing}, B <: Union{ManifoldKernelDensity, BallTreeDensity}} |
|
42 | 43 | """intensity data, on regular grid""" |
@@ -14,7 +14,7 @@
Loading
14 | 14 | dimID::Int = 0 |
|
15 | 15 | reference::NothingUnion{Dict{Symbol, Tuple{Symbol, Vector{Float64}}}} = nothing |
|
16 | 16 | stateless::Bool = false |
|
17 | - | qfl::Int = 99999999999 # Quasi fixed length |
|
17 | + | qfl::Int = (2^(Sys.WORD_SIZE-1)-1)# Quasi fixed length |
|
18 | 18 | isfixedlag::Bool = false # true when adhering to qfl window size for solves |
|
19 | 19 | limitfixeddown::Bool = false # if true, then fixed lag will also not update marginalized during down (default false) |
|
20 | 20 | incremental::Bool = true # use incremental tree updates, TODO consolidate with recycling |
@@ -21,7 +21,7 @@
Loading
21 | 21 | Get the grid positions at the specified height (within the provided spreads) |
|
22 | 22 | ||
23 | 23 | DevNotes |
|
24 | - | - TODO Should this be consolidated with AliasingScalarSampler? |
|
24 | + | - TODO Should this be consolidated with AliasingScalarSampler? See IIF #1341 |
|
25 | 25 | """ |
|
26 | 26 | function sampleHeatmap( roi::AbstractMatrix{<:Real}, |
|
27 | 27 | x_grid::AbstractVector{<:Real}, |
@@ -352,7 +352,7 @@
Loading
352 | 352 | """ |
|
353 | 353 | function dontMarginalizeVariablesAll!(fgl::AbstractDFG) |
|
354 | 354 | fgl.solverParams.isfixedlag = false |
|
355 | - | fgl.solverParams.qfl = 9999999999 |
|
355 | + | fgl.solverParams.qfl = (2^(Sys.WORD_SIZE-1)-1) |
|
356 | 356 | fgl.solverParams.limitfixeddown = false |
|
357 | 357 | for sym in ls(fgl) |
|
358 | 358 | setMarginalized!(fgl, sym, false) |
Files | Coverage |
---|---|
src | 77.20% |
Project Totals (67 files) | 77.20% |
1361027154
Sunburst
The inner-most circle is the entire project, moving away from the center are folders then, finally, a single file.
The size and color of each slice is representing the number of statements and the coverage, respectively.
Icicle
The top section represents the entire project. Proceeding with folders and finally individual files.
The size and color of each slice is representing the number of statements and the coverage, respectively.