@@ -13,13 +13,18 @@ const ReturnAssigned = Union{ReturnAssignedSparse,ReturnAssignedDense}
1313allocate_gridgraph_output(problem:: ConScapeProblem , args... ) =
1414 allocate_gridgraph_output(measures(problem), args... )
1515allocate_gridgraph_output(measures:: Union{Tuple,NamedTuple} , args... ) =
16- map(m -> allocate_gridgraph_output(m, args... ):: MeasureOutput , measures)
17- allocate_gridgraph_output(m:: Measure , args... ) =
18- allocate_gridgraph_output(returntrait(m), m, args... )
16+ map(m -> _allocate_gridgraph_output(m, args... ):: MeasureOutput , measures)
17+ # Single Measure: wrap in NamedTuple for consistent internal handling
18+ function allocate_gridgraph_output(m:: Measure , args... )
19+ mo = _allocate_gridgraph_output(m, args... )
20+ return NamedTuple{(Symbol(m),)}((mo,))
21+ end
1922
20- allocate_gridgraph_output(rt:: ReturnTrait , m:: Measure , ggi:: GridGraphInit ) =
21- allocate_gridgraph_output(rt, m, gridgraph(ggi), connectedgraphs(ggi))
22- function allocate_gridgraph_output(
23+ _allocate_gridgraph_output(m:: Measure , args... ) =
24+ _allocate_gridgraph_output(returntrait(m), m, args... )
25+ _allocate_gridgraph_output(rt:: ReturnTrait , m:: Measure , ggi:: GridGraphInit ) =
26+ _allocate_gridgraph_output(rt, m, gridgraph(ggi), connectedgraphs(ggi))
27+ function _allocate_gridgraph_output(
2328 :: ReturnScalarSum ,
2429 m:: Measure ,
2530 :: GridGraph ,
@@ -28,7 +33,7 @@ function allocate_gridgraph_output(
2833 return MeasureOutput(m, zeros(Float64, length(connectedgraphs)))
2934end
3035# We need to zero out all connected subgraphs
31- function allocate_gridgraph_output (
36+ function _allocate_gridgraph_output (
3237 :: ReturnSpatial ,
3338 m:: Measure ,
3439 gridgraph:: GridGraph ,
@@ -37,7 +42,7 @@ function allocate_gridgraph_output(
3742 o = fill(NaN , size(gridgraph))
3843 return MeasureOutput(m, o)
3944end
40- function allocate_gridgraph_output (
45+ function _allocate_gridgraph_output (
4146 :: ReturnAssignedDense ,
4247 m:: Measure ,
4348 gridgraph:: GridGraph ,
@@ -46,7 +51,7 @@ function allocate_gridgraph_output(
4651 o = Vector{Matrix{Float64}}(undef, length(connectedgraphs))
4752 return MeasureOutput(m, o)
4853end
49- function allocate_gridgraph_output (
54+ function _allocate_gridgraph_output (
5055 :: ReturnSparseGraph ,
5156 m:: Measure ,
5257 gridgraph:: GridGraph ,
5964allocate_connectedgraph_output(l:: Level , problem:: ConScapeProblem , args... ) =
6065 allocate_connectedgraph_output(l, measures(problem), args... )
6166allocate_connectedgraph_output(l:: Level , measures:: Union{Tuple,NamedTuple} , args... ) =
62- map(m -> allocate_connectedgraph_output(l, m, args... ):: MeasureOutput , measures)
63- allocate_connectedgraph_output(l:: Level , m:: Measure , args... ):: MeasureOutput =
64- allocate_connectedgraph_output(l, returntrait(m), m, args... )
65- allocate_connectedgraph_output(l:: Level , m:: Measure , cgi:: ConnectedGraphInit ):: MeasureOutput =
66- allocate_connectedgraph_output(l, returntrait(m), m, gridgraph(cgi), connectedgraph(cgi))
67- function allocate_connectedgraph_output(
67+ map(m -> _allocate_connectedgraph_output(l, m, args... ):: MeasureOutput , measures)
68+ # Single Measure: wrap in NamedTuple for consistent internal handling
69+ function allocate_connectedgraph_output(l:: Level , m:: Measure , args... )
70+ mo = _allocate_connectedgraph_output(l, m, args... )
71+ return NamedTuple{(Symbol(m),)}((mo,))
72+ end
73+
74+ _allocate_connectedgraph_output(l:: Level , m:: Measure , args... ):: MeasureOutput =
75+ _allocate_connectedgraph_output(l, returntrait(m), m, args... )
76+ _allocate_connectedgraph_output(l:: Level , m:: Measure , cgi:: ConnectedGraphInit ):: MeasureOutput =
77+ _allocate_connectedgraph_output(l, returntrait(m), m, gridgraph(cgi), connectedgraph(cgi))
78+ function _allocate_connectedgraph_output(
6879 l:: Union{ConnectedGraphLevel,TargetLevel} ,
6980 :: ReturnSpatial ,
7081 m:: Measure ,
@@ -76,7 +87,7 @@ function allocate_connectedgraph_output(
7687 o[sourceids(connectedgraph)] .= 0.0
7788 return MeasureOutput(m, o)
7889end
79- function allocate_connectedgraph_output (
90+ function _allocate_connectedgraph_output (
8091 l:: Union{ConnectedGraphLevel,TargetLevel} ,
8192 :: ReturnScalarSum ,
8293 m:: Measure ,
@@ -87,7 +98,7 @@ function allocate_connectedgraph_output(
8798 return MeasureOutput(m, o)
8899end
89100# Return a sparse matrix for ReturnAssignedSparse at ConnectedGraphLevel
90- function allocate_connectedgraph_output (
101+ function _allocate_connectedgraph_output (
91102 l:: ConnectedGraphLevel ,
92103 :: ReturnAssignedSparse ,
93104 m:: Measure ,
@@ -98,7 +109,7 @@ function allocate_connectedgraph_output(
98109 return MeasureOutput(m, o)
99110end
100111# Return a sparse vector for ReturnAssignedSparse at TargetLevel
101- function allocate_connectedgraph_output (
112+ function _allocate_connectedgraph_output (
102113 l:: TargetLevel ,
103114 :: ReturnAssignedSparse ,
104115 m:: Measure ,
@@ -109,7 +120,7 @@ function allocate_connectedgraph_output(
109120 return MeasureOutput(m, o)
110121end
111122# Return a dense matrix for ReturnAssignedDense at ConnectedGraphLevel
112- function allocate_connectedgraph_output (
123+ function _allocate_connectedgraph_output (
113124 l:: ConnectedGraphLevel ,
114125 :: ReturnAssignedDense ,
115126 m:: Measure ,
@@ -120,7 +131,7 @@ function allocate_connectedgraph_output(
120131 return MeasureOutput(m, o)
121132end
122133# Return a dense vector for ReturnAssignedDense at TargetLevel
123- function allocate_connectedgraph_output (
134+ function _allocate_connectedgraph_output (
124135 l:: TargetLevel ,
125136 :: ReturnAssignedDense ,
126137 m:: Measure ,
0 commit comments