@@ -22,8 +22,9 @@ mutable struct VariableNodeData{T<:InferenceVariable}
22
22
ismargin:: Bool
23
23
dontmargin:: Bool
24
24
solveInProgress:: Int
25
+ solvedCount:: Int
25
26
VariableNodeData {T} () where {T <: InferenceVariable } =
26
- new {T} (zeros (1 ,1 ), zeros (1 ,1 ), Symbol[], Int[], 0 , false , :NOTHING , Symbol[], T (), false , 0.0 , false , false , 0 )
27
+ new {T} (zeros (1 ,1 ), zeros (1 ,1 ), Symbol[], Int[], 0 , false , :NOTHING , Symbol[], T (), false , 0.0 , false , false , 0 , 0 )
27
28
VariableNodeData {T} (val:: Array{Float64,2} ,
28
29
bw:: Array{Float64,2} ,
29
30
BayesNetOutVertIDs:: Array{Symbol,1} ,
@@ -36,11 +37,12 @@ mutable struct VariableNodeData{T<:InferenceVariable}
36
37
inferdim:: Float64 ,
37
38
ismargin:: Bool ,
38
39
dontmargin:: Bool ,
39
- solveInProgress:: Int = 0 ) where T <: InferenceVariable =
40
+ solveInProgress:: Int = 0 ,
41
+ solvedCount:: Int = 0 ) where T <: InferenceVariable =
40
42
new {T} (val,bw,BayesNetOutVertIDs,dimIDs,dims,
41
43
eliminated,BayesNetVertID,separator,
42
44
softtype:: T ,initialized,inferdim,ismargin,
43
- dontmargin, solveInProgress)
45
+ dontmargin, solveInProgress, solvedCount )
44
46
end
45
47
46
48
VariableNodeData (val:: Array{Float64,2} ,
@@ -55,20 +57,21 @@ VariableNodeData(val::Array{Float64,2},
55
57
inferdim:: Float64 ,
56
58
ismargin:: Bool ,
57
59
dontmargin:: Bool ,
58
- solveInProgress:: Int = 0 ) where T <: InferenceVariable =
60
+ solveInProgress:: Int = 0 ,
61
+ solvedCount:: Int = 0 ) where T <: InferenceVariable =
59
62
VariableNodeData {T} (val,bw,BayesNetOutVertIDs,dimIDs,dims,
60
63
eliminated,BayesNetVertID,separator,
61
64
softtype:: T ,initialized,inferdim,ismargin,
62
- dontmargin, solveInProgress)
65
+ dontmargin, solveInProgress, solvedCount )
63
66
#
64
67
VariableNodeData (softtype:: T ) where T <: InferenceVariable =
65
- VariableNodeData {T} (zeros (1 ,1 ), zeros (1 ,1 ), Symbol[], Int[], 0 , false , :NOTHING , Symbol[], softtype, false , 0.0 , false , false , 0 )
68
+ VariableNodeData {T} (zeros (1 ,1 ), zeros (1 ,1 ), Symbol[], Int[], 0 , false , :NOTHING , Symbol[], softtype, false , 0.0 , false , false , 0 , 0 )
66
69
67
70
function VariableNodeData ()
68
71
st = stacktrace ()
69
72
@warn " VariableNodeData() is deprecated please use VariableNodeData{T}() or VariableNodeData(softtype::T) where T <: InferenceVariable. Enable DEBUG logging for stack trace."
70
73
@debug st
71
- VariableNodeData {InferenceVariable} (zeros (1 ,1 ), zeros (1 ,1 ), Symbol[], Int[], 0 , false , :NOTHING , Symbol[], SingletonInferenceVariable (), false , 0.0 , false , false , 0 )
74
+ VariableNodeData {InferenceVariable} (zeros (1 ,1 ), zeros (1 ,1 ), Symbol[], Int[], 0 , false , :NOTHING , Symbol[], SingletonInferenceVariable (), false , 0.0 , false , false , 0 , 0 )
72
75
end
73
76
74
77
@@ -93,6 +96,7 @@ mutable struct PackedVariableNodeData
93
96
ismargin:: Bool
94
97
dontmargin:: Bool
95
98
solveInProgress:: Int
99
+ solvedCount:: Int
96
100
PackedVariableNodeData () = new ()
97
101
PackedVariableNodeData (x1:: Vector{Float64} ,
98
102
x2:: Int ,
@@ -109,7 +113,8 @@ mutable struct PackedVariableNodeData
109
113
x13:: Float64 ,
110
114
x14:: Bool ,
111
115
x15:: Bool ,
112
- x16:: Int ) = new (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16)
116
+ x16:: Int ,
117
+ solvedCount:: Int ) = new (x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,solvedCount)
113
118
end
114
119
115
120
# AbstractPointParametricEst interface
@@ -150,7 +155,6 @@ mutable struct DFGVariable <: AbstractDFGVariable
150
155
smallData:: Dict{String, String}
151
156
bigData:: Dict{Symbol, AbstractBigDataEntry}
152
157
solvable:: Int
153
- solveCount:: Ref{Int}
154
158
_internalId:: Int64
155
159
end
156
160
@@ -167,14 +171,14 @@ function DFGVariable(label::Symbol, _internalId::Int64 = 0) #where {T <:Inferenc
167
171
Dict {Symbol, MeanMaxPPE} (),
168
172
Dict {Symbol, VariableNodeData{T}} (:default => VariableNodeData ()),
169
173
Dict {String, String} (),
170
- Dict {Symbol,AbstractBigDataEntry} (), 0 , 0 , _internalId)
174
+ Dict {Symbol,AbstractBigDataEntry} (), 0 , _internalId)
171
175
end
172
176
DFGVariable (label:: Symbol , softtype:: T , _internalId:: Int64 = 0 ) where {T <: InferenceVariable } =
173
177
DFGVariable (label, now (), Symbol[],
174
178
Dict {Symbol, MeanMaxPPE} (),
175
179
Dict {Symbol, VariableNodeData{T}} (:default => VariableNodeData {T} ()),
176
180
Dict {String, String} (),
177
- Dict {Symbol,AbstractBigDataEntry} (), 0 , 0 , _internalId)
181
+ Dict {Symbol,AbstractBigDataEntry} (), 0 , _internalId)
178
182
179
183
"""
180
184
$(SIGNATURES)
@@ -277,13 +281,15 @@ getSofttype(v::DFGVariableSummary)::Symbol = v.softtypename
277
281
"""
278
282
$SIGNATURES
279
283
280
- Get the number of times a variable has been inferred -- i.e. `solveCount `.
284
+ Get the number of times a variable has been inferred -- i.e. `solvedCount `.
281
285
282
286
Related
283
287
284
288
isSolved, setSolved!
285
289
"""
286
- getSolved (v:: VariableDataLevel2 ) = v. solveCount[]
290
+ getSolved (v:: VariableNodeData ) = v. solveCount
291
+ getSolved (v:: VariableDataLevel2 , solveKey:: Symbol = :default ) = solverData (v, solveKey) |> getSolved
292
+ getSolved (dfg:: AbstractDFG , sym:: Symbol , solveKey:: Symbol = :default ) = getSolved (getVariable (dfg, sym), solveKey)
287
293
288
294
"""
289
295
$SIGNATURES
@@ -294,7 +300,10 @@ Related
294
300
295
301
getSolved, setSolved!
296
302
"""
297
- isSolved (v:: VariableDataLevel2 ):: Bool = 0 < getSolved (v)
303
+ isSolved (v:: VariableNodeData ) = v. solveCount
304
+ isSolved (v:: VariableDataLevel2 , solveKey:: Symbol = :default ) = solverData (v, solveKey) |> isSolved
305
+ isSolved (dfg:: AbstractDFG , sym:: Symbol , solveKey:: Symbol = :default ) = isSolved (getVariable (dfg, sym), solveKey)
306
+
298
307
299
308
"""
300
309
$SIGNATURES
@@ -305,7 +314,12 @@ Related
305
314
306
315
getSolved, isSolved
307
316
"""
308
- setSolved! (v:: VariableDataLevel2 , val:: Int ) = v. solveCount[] = val
317
+ # setSolved!(v::VariableDataLevel2, val::Int) = v.solveCount[] = val
318
+ # setSolved!(dfg::AbstractDFG, sym::Symbol, val::Int solveKey::Symbol=:default) = setSolved!(solverData(getVariable(dfg, sym), solveKey), val)
319
+
320
+ setSolved! (v:: VariableNodeData , val:: Int ) = v. solveCount = val
321
+ setSolved! (v:: VariableDataLevel2 , val:: Int , solveKey:: Symbol = :default ) = setSolved! (solverData (v, solveKey), val)
322
+ setSolved! (dfg:: AbstractDFG , sym:: Symbol , val:: Int , solveKey:: Symbol = :default ) = setSolved! (getVariable (dfg, sym), solveKey, val)
309
323
310
324
"""
311
325
$SIGNATURES
0 commit comments