redo HomotopyDensityDFG, creep change serialization approach#1231
redo HomotopyDensityDFG, creep change serialization approach#1231
Conversation
| @@ -0,0 +1,163 @@ | |||
|
|
|||
|
|
|||
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #1231 +/- ##
===========================================
- Coverage 80.85% 80.69% -0.17%
===========================================
Files 49 50 +1
Lines 2648 2657 +9
===========================================
+ Hits 2141 2144 +3
- Misses 507 513 +6 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Co-authored-by: Johannes Terblanche <Affie@users.noreply.github.com>
|
|
||
|
|
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| refBandwidths(state::State) = values(state.belief.trailing_details) # FIXME, unordered will be a problem | ||
| getTopologyKind(state::State) = state.belief.topologykind | ||
|
|
||
|
|
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| showerr = true | ||
| ret = if f === :means | ||
| getfield(obj, :principal_elements) | ||
| elseif f === :shapes | ||
| getfield(obj, :principal_details) | ||
| elseif f === :bandwidths | ||
| getfield(obj, :trailing_details) | ||
| else | ||
| showerr = false | ||
| getfield(obj, f) | ||
| end | ||
|
|
||
| showerr && @error("HomotopyDensityDFG field access with $(f) is deprecated") | ||
| return ret |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| showerr = true | |
| ret = if f === :means | |
| getfield(obj, :principal_elements) | |
| elseif f === :shapes | |
| getfield(obj, :principal_details) | |
| elseif f === :bandwidths | |
| getfield(obj, :trailing_details) | |
| else | |
| showerr = false | |
| getfield(obj, f) | |
| end | |
| showerr && @error("HomotopyDensityDFG field access with $(f) is deprecated") | |
| return ret | |
| showerr = true | |
| ret = if f === :means | |
| getfield(obj, :principal_elements) | |
| elseif f === :shapes | |
| getfield(obj, :principal_details) | |
| elseif f === :bandwidths | |
| getfield(obj, :trailing_details) | |
| else | |
| showerr = false | |
| getfield(obj, f) | |
| end | |
| showerr && @error("HomotopyDensityDFG field access with $(f) is deprecated") | |
| return ret |
| showerr = true | ||
| ret = if f === :means | ||
| setfield!(obj, :principal_elements, val) | ||
| elseif f === :shapes | ||
| setfield!(obj, :principal_details, val) | ||
| elseif f === :bandwidths | ||
| setfield!(obj, :trailing_details, val) | ||
| else | ||
| showerr = false | ||
| setfield!(obj, f, val) | ||
| end |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| showerr = true | |
| ret = if f === :means | |
| setfield!(obj, :principal_elements, val) | |
| elseif f === :shapes | |
| setfield!(obj, :principal_details, val) | |
| elseif f === :bandwidths | |
| setfield!(obj, :trailing_details, val) | |
| else | |
| showerr = false | |
| setfield!(obj, f, val) | |
| end | |
| showerr = true | |
| ret = if f === :means | |
| setfield!(obj, :principal_elements, val) | |
| elseif f === :shapes | |
| setfield!(obj, :principal_details, val) | |
| elseif f === :bandwidths | |
| setfield!(obj, :trailing_details, val) | |
| else | |
| showerr = false | |
| setfield!(obj, f, val) | |
| end |
| showerr && @error("HomotopyDensityDFG field access with $(f) is deprecated") | ||
| return ret |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| showerr && @error("HomotopyDensityDFG field access with $(f) is deprecated") | |
| return ret | |
| showerr && @error("HomotopyDensityDFG field access with $(f) is deprecated") | |
| return ret |
| end | ||
|
|
||
| @choosetype HomotopyDensityDFG resolveHomotopyDensityDFGType | ||
|
|
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| refBandwidth(state::State) = state.belief.bandwidths[1] | ||
| refBandwidths(state::State) = state.belief.bandwidths | ||
| getTopologyKind(state::State) = state.belief.topologykind | ||
|
|
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| ) | ||
| return dfg.solverParams | ||
| end | ||
|
|
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| refPoints(a) != refPoints(b) && @debug("val is not equal") === nothing && return false | ||
| refBandwidths(a) != refBandwidths(b) && | ||
| TP = true | ||
| for (k,v) in refBandwidths(a) |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| for (k,v) in refBandwidths(a) | |
| for (k, v) in refBandwidths(a) |
| !TP && | ||
| @debug("bw is not equal") === nothing && | ||
| return false |
There was a problem hiding this comment.
[JuliaFormatter] reported by reviewdog 🐶
| !TP && | |
| @debug("bw is not equal") === nothing && | |
| return false | |
| !TP && @debug("bw is not equal") === nothing && return false |
Alternative redo of -- creep change implementation of serialization:
At the time of writing, 1230 is good enough for AMP v0.15.0-alpha tests to pass. This redo is easiest path to make sure DFG serialization also works for new HomotopyDensityDFG (replaces StoredHomotopyBelief). Some detail on abstracts in new HomotopyRepr