Skip to content

Commit 80517c7

Browse files
committed
Struct design for PointParametricEst
1 parent 77e03f1 commit 80517c7

File tree

1 file changed

+20
-23
lines changed

1 file changed

+20
-23
lines changed

src/entities/DFGVariable.jl

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -63,26 +63,28 @@ mutable struct PackedVariableNodeData
6363
x15::Bool ) = new(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15)
6464
end
6565

66-
67-
abstract type AbstractVariableEstimate end
66+
# AbstractPointParametricEst interface
67+
abstract type AbstractPointParametricEst end
6868
"""
6969
$TYPEDEF
7070
71-
Data container to store Parameteric Point Estimate (PPE) from a variety of types.
72-
73-
Notes
74-
- `ppeType` is something like `:max/:mean/:modefit` etc.
75-
- `solveKey` is from super-solve concept, starting with `:default`,
76-
- `estimate` is the actual numerical estimate value,
77-
- Additional information such as how the data is represented (ie softtype) is stored alongside this data container in the `DFGVariableSummary` container.
71+
Data container to store Parameteric Point Estimate (PPE) for mean and max.
7872
"""
79-
struct VariableEstimate <: AbstractVariableEstimate
80-
solverKey::Symbol
81-
ppeType::Symbol
82-
estimate::Vector{Float64}
83-
lastUpdatedTimestamp::DateTime
73+
struct MeanMaxEst <: AbstractPointParametricEst
74+
solverKey::Symbol #repeated because of Sam's request
75+
max::Vector{Float64}
76+
mean::Vector{Float64}
77+
lastUpdatedTimestamp::DateTime
8478
end
85-
VariableEstimate(solverKey::Symbol, type::Symbol, estimate::Vector{Float64}) = VariableEstimate(solverKey, type, estimate, now())
79+
MeanMaxEst(solverKey::Symbol,max::Vector{Float64},mean::Vector{Float64}) = MeanMaxEst(solverKey, max, mean, now())
80+
81+
getMaxEstimate(est::AbstractPointParametricEst) = est.max
82+
getMeanEstimate(est::AbstractPointParametricEst) = est.mean
83+
getLastUpdatedTimestamp(est::AbstractPointParametricEst) = est.lastUpdatedTimestamp
84+
85+
86+
VariableEstimate(params...) = errror("VariableEstimate is depreciated, please use MeanMaxEst")
87+
8688

8789
"""
8890
$(TYPEDEF)
@@ -93,7 +95,7 @@ mutable struct DFGVariable <: AbstractDFGVariable
9395
label::Symbol
9496
timestamp::DateTime
9597
tags::Vector{Symbol}
96-
estimateDict::Dict{Symbol, Dict{Symbol, <: AbstractVariableEstimate}}
98+
estimateDict::Dict{Symbol, <: AbstractVariableEstimate}
9799
solverDataDict::Dict{Symbol, VariableNodeData}
98100
smallData::Dict{String, String}
99101
bigData::Dict{Symbol, AbstractBigDataEntry}
@@ -138,12 +140,7 @@ solverData(v::DFGVariable, key::Symbol=:default) = haskey(v.solverDataDict, key)
138140
Retrieve data structure stored in a variable.
139141
"""
140142
function getData(v::DFGVariable; solveKey::Symbol=:default)::VariableNodeData
141-
#FIXME but back in later, it just slows everything down
142-
if !(@isdefined getDataWarnOnce)
143-
@warn "getData is deprecated, please use solverData(), future warnings in getData is suppressed"
144-
global getDataWarnOnce = true
145-
end
146-
# @warn "getData is deprecated, please use solverData()"
143+
@warn "getData is deprecated, please use solverData()"
147144
return v.solverDataDict[solveKey]
148145
end
149146
"""
@@ -166,7 +163,7 @@ mutable struct DFGVariableSummary <: AbstractDFGVariable
166163
label::Symbol
167164
timestamp::DateTime
168165
tags::Vector{Symbol}
169-
estimateDict::Dict{Symbol, Dict{Symbol, <:AbstractVariableEstimate}}
166+
estimateDict::Dict{Symbol, <:AbstractVariableEstimate}
170167
softtypename::Symbol
171168
_internalId::Int64
172169
end

0 commit comments

Comments
 (0)