@@ -18,36 +18,6 @@ abstract type FactorSolverCache end
1818# we can add to IIF or have IIF.CommonConvWrapper <: FactorSolverCache directly
1919# abstract type ConvolutionObject <: FactorSolverCache end
2020
21- # #==============================================================================
22- # # GenericFunctionNodeData
23- # #==============================================================================
24-
25- """
26- $(TYPEDEF)
27-
28- Notes
29- - S::Symbol
30-
31- Designing (WIP)
32- - T <: Union{FactorSolverCache, AbstractPackedFactorObservation}
33- - in IIF.CCW{T <: DFG.AbstractFactorObservation}
34- - in DFG.AbstractRelativeMinimize <: AbstractFactorObservation
35- - in Main.SomeFactor <: AbstractRelativeMinimize
36- """
37- Base. @kwdef mutable struct GenericFunctionNodeData{
38- T <: Union{<:AbstractPackedFactorObservation, <:AbstractFactorObservation, <:FactorSolverCache} ,
39- }
40- eliminated:: Bool = false
41- potentialused:: Bool = false
42- edgeIDs:: Vector{Int} = Int[]
43- fnc:: T
44- multihypo:: Vector{Float64} = Float64[] # TODO re-evaluate after refactoring w #477
45- certainhypo:: Vector{Int} = Int[]
46- nullhypo:: Float64 = 0.0
47- solveInProgress:: Int = 0
48- inflation:: Float64 = 0.0
49- end
50-
5121# TODO is this mutable
5222@kwdef mutable struct FactorState
5323 eliminated:: Bool = false
6636
6737# # Constructors
6838
69- # #------------------------------------------------------------------------------
70- # # PackedFunctionNodeData and FunctionNodeData
71-
72- const PackedFunctionNodeData{T} =
73- GenericFunctionNodeData{T} where {T <: AbstractPackedFactorObservation }
74- function PackedFunctionNodeData (args... ; kw... )
75- return PackedFunctionNodeData {typeof(args[4])} (args... ; kw... )
76- end
77-
78- const FunctionNodeData{T} = GenericFunctionNodeData{
79- T,
80- } where {T <: Union{<:AbstractFactorObservation, <:FactorSolverCache} }
81- FunctionNodeData (args... ; kw... ) = FunctionNodeData {typeof(args[4])} (args... ; kw... )
82-
83- # PackedFunctionNodeData(x2, x3, x4, x6::T, multihypo::Vector{Float64}=[], certainhypo::Vector{Int}=Int[], x9::Int=0) where T <: AbstractPackedFactorObservation =
84- # GenericFunctionNodeData{T}(x2, x3, x4, x6, multihypo, certainhypo, x9)
85- # FunctionNodeData(x2, x3, x4, x6::T, multihypo::Vector{Float64}=[], certainhypo::Vector{Int}=Int[], x9::Int=0) where T <: Union{AbstractFactorObservation, FactorSolverCache} =
86- # GenericFunctionNodeData{T}(x2, x3, x4, x6, multihypo, certainhypo, x9)
87-
8839# #==============================================================================
8940# # Factors
9041# #==============================================================================
@@ -114,7 +65,7 @@ Base.@kwdef struct FactorDFG <: AbstractDFGFactor
11465 nstime:: String
11566 fnctype:: String
11667 solvable:: Int
117- data:: Union{Nothing, String} # TODO deprecate data completely, left as a bridge to old serialization structure
68+ data:: Union{Nothing, String} = nothing # TODO deprecate data completely, left as a bridge to old serialization structure
11869 metadata:: String
11970 _version:: String = string (_getDFGVersion ())
12071 state:: FactorState
12980
13081StructTypes. StructType (:: Type{FactorDFG} ) = StructTypes. UnorderedStruct ()
13182StructTypes. idproperty (:: Type{FactorDFG} ) = :id
132- StructTypes. omitempties (:: Type{FactorDFG} ) = (:id ,)
83+ StructTypes. omitempties (:: Type{FactorDFG} ) = (:id , :data )
13384
13485# TODO deprecate, added in v0.27 as a bridge to new serialization structure
13586function FactorDFG (
@@ -189,10 +140,6 @@ abstract type InferenceType <: AbstractPackedFactorObservation end
189140
190141# TODO deprecate InferenceType in favor of AbstractPackedFactorObservation v0.26
191142
192- # this is the GenericFunctionNodeData for packed types
193- # TODO deprecate FactorData in favor of FactorState (with no more distinction between packed and compute)
194- const FactorData = PackedFunctionNodeData{AbstractPackedFactorObservation}
195-
196143# Packed Factor constructor
197144function assembleFactorName (xisyms:: Union{Vector{String}, Vector{Symbol}} )
198145 return Symbol (xisyms... , " _f" , randstring (4 ))
@@ -331,57 +278,11 @@ function FactorCompute(
331278 )
332279end
333280
334- function FactorCompute (
335- label:: Symbol ,
336- variableOrder:: Union{Vector{Symbol}, Tuple} ,
337- solverData:: GenericFunctionNodeData ;
338- tags:: Set{Symbol} = Set {Symbol} (),
339- timestamp:: Union{DateTime, ZonedDateTime} = now (localzone ()),
340- solvable:: Int = 1 ,
341- nstime:: Nanosecond = Nanosecond (0 ),
342- id:: Union{UUID, Nothing} = nothing ,
343- smallData:: Dict{Symbol, SmallDataTypes} = Dict {Symbol, SmallDataTypes} (),
344- )
345- Base. depwarn (
346- " `FactorCompute` constructor with `GenericFunctionNodeData` is deprecated. observation, state, and solvercache should be provided explicitly." ,
347- :FactorCompute ,
348- )
349- observation = getFactorType (solverData)
350- state = FactorState (
351- solverData. eliminated,
352- solverData. potentialused,
353- solverData. multihypo,
354- solverData. certainhypo,
355- solverData. nullhypo,
356- solverData. solveInProgress,
357- solverData. inflation,
358- )
359-
360- if solverData. fnc isa FactorSolverCache
361- solvercache = solverData. fnc
362- else
363- solvercache = nothing
364- end
365-
366- return FactorCompute (
367- label,
368- Tuple (variableOrder),
369- observation,
370- state,
371- solvercache;
372- id,
373- timestamp,
374- nstime,
375- tags,
376- smallData,
377- solvable,
378- )
379- end
380-
381281function Base. getproperty (x:: FactorCompute , f:: Symbol )
382282 if f == :solvable
383283 getfield (x, f)[]
384284 elseif f == :solverData
285+ # TODO remove, deprecated in v0.27
385286 error (
386287 " `solverData` is obsolete in `FactorCompute`. Use `getObservation`, `getState` or `getCache` instead." ,
387288 )
0 commit comments