Skip to content

Commit 0168d84

Browse files
committed
Simplify MH heuristics
1 parent f401bd7 commit 0168d84

File tree

1 file changed

+25
-23
lines changed

1 file changed

+25
-23
lines changed

src/inference/mh.jl

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -77,33 +77,35 @@ Places the values of a `NamedTuple` into the relevant places of a `VarInfo`.
7777
function set_namedtuple!(vi::VarInfo, nt::NamedTuple)
7878
for (n, vals) in pairs(nt)
7979
vns = vi.metadata[n].vns
80-
81-
n_vns = length(vns)
82-
n_vals = length(vals)
83-
v_isarr = vals isa AbstractArray
84-
85-
if v_isarr && n_vals == 1 && n_vns > 1
86-
for (vn, val) in zip(vns, vals[1])
87-
vi[vn] = val isa AbstractArray ? val : [val]
80+
nvns = length(vns)
81+
82+
# if there is a single variable only
83+
if nvns == 1
84+
# assign the unpacked values
85+
if length(vals) == 1
86+
vi[vns[1]] = [vals[1];]
87+
# otherwise just assign the values
88+
else
89+
vi[vns[1]] = [vals;]
8890
end
89-
elseif v_isarr && n_vals > 1 && n_vns == 1
90-
vi[vns[1]] = vals
91-
elseif v_isarr && n_vals == n_vns > 1
92-
for (vn, val) in zip(vns, vals)
93-
if val isa AbstractArray
94-
vi[vn] = val
95-
else
96-
vi[vn] = [val]
91+
# if there are multiple variables
92+
elseif vals isa AbstractArray
93+
nvals = length(vals)
94+
# if values are provided as an array with a single element
95+
if nvals == 1
96+
# iterate over variables and unpacked values
97+
for (vn, val) in zip(vns, vals[1])
98+
vi[vn] = [val;]
99+
end
100+
# otherwise number of variables and number of values have to be equal
101+
elseif nvals == nvns
102+
# iterate over variables and values
103+
for (vn, val) in zip(vns, vals)
104+
vi[vn] = [val;]
97105
end
98-
end
99-
elseif v_isarr && n_vals == 1 && n_vns == 1
100-
if vals[1] isa AbstractArray
101-
vi[vns[1]] = vals[1]
102106
else
103-
vi[vns[1]] = [vals[1]]
107+
error("Cannot assign `NamedTuple` to `VarInfo`")
104108
end
105-
elseif !(v_isarr)
106-
vi[vns[1]] = [vals]
107109
else
108110
error("Cannot assign `NamedTuple` to `VarInfo`")
109111
end

0 commit comments

Comments
 (0)