Skip to content

Commit e7077ba

Browse files
committed
Allow missing LogPriorAccumulator when linking
1 parent 1f1ec85 commit e7077ba

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

src/simple_varinfo.jl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -606,7 +606,9 @@ function link!!(
606606
x = vi.values
607607
y, logjac = with_logabsdet_jacobian(b, x)
608608
vi_new = Accessors.@set(vi.values = y)
609-
vi_new = acclogprior!!(vi_new, -logjac)
609+
if hasacc(vi_new, Val(:LogPrior))
610+
vi_new = acclogprior!!(vi_new, -logjac)
611+
end
610612
return settrans!!(vi_new, t)
611613
end
612614

@@ -619,7 +621,9 @@ function invlink!!(
619621
y = vi.values
620622
x, logjac = with_logabsdet_jacobian(b, y)
621623
vi_new = Accessors.@set(vi.values = x)
622-
vi_new = acclogprior!!(vi_new, logjac)
624+
if hasacc(vi_new, Val(:LogPrior))
625+
vi_new = acclogprior!!(vi_new, logjac)
626+
end
623627
return settrans!!(vi_new, NoTransformation())
624628
end
625629

src/varinfo.jl

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1241,7 +1241,9 @@ function _inner_transform!(md::Metadata, vi::VarInfo, vn::VarName, f)
12411241
setrange!(md, vn, start:(start + length(yvec) - 1))
12421242
# Set the new value.
12431243
setval!(md, yvec, vn)
1244-
vi = acclogprior!!(vi, -logjac)
1244+
if hasacc(vi, Val(:LogPrior))
1245+
vi = acclogprior!!(vi, -logjac)
1246+
end
12451247
return vi
12461248
end
12471249

@@ -1278,7 +1280,9 @@ function _link(model::Model, varinfo::VarInfo, vns)
12781280
varinfo = deepcopy(varinfo)
12791281
md, logjac = _link_metadata!!(model, varinfo, varinfo.metadata, vns)
12801282
new_varinfo = VarInfo(md, varinfo.accs)
1281-
new_varinfo = acclogprior!!(new_varinfo, -logjac)
1283+
if hasacc(new_varinfo, Val(:LogPrior))
1284+
new_varinfo = acclogprior!!(new_varinfo, -logjac)
1285+
end
12821286
return new_varinfo
12831287
end
12841288

@@ -1292,7 +1296,9 @@ function _link(model::Model, varinfo::NTVarInfo, vns::NamedTuple)
12921296
varinfo = deepcopy(varinfo)
12931297
md, logjac = _link_metadata!(model, varinfo, varinfo.metadata, vns)
12941298
new_varinfo = VarInfo(md, varinfo.accs)
1295-
new_varinfo = acclogprior!!(new_varinfo, -logjac)
1299+
if hasacc(new_varinfo, Val(:LogPrior))
1300+
new_varinfo = acclogprior!!(new_varinfo, -logjac)
1301+
end
12961302
return new_varinfo
12971303
end
12981304

@@ -1441,7 +1447,9 @@ function _invlink(model::Model, varinfo::VarInfo, vns)
14411447
varinfo = deepcopy(varinfo)
14421448
md, logjac = _invlink_metadata!!(model, varinfo, varinfo.metadata, vns)
14431449
new_varinfo = VarInfo(md, varinfo.accs)
1444-
new_varinfo = acclogprior!!(new_varinfo, -logjac)
1450+
if hasacc(new_varinfo, Val(:LogPrior))
1451+
new_varinfo = acclogprior!!(new_varinfo, -logjac)
1452+
end
14451453
return new_varinfo
14461454
end
14471455

@@ -1455,7 +1463,9 @@ function _invlink(model::Model, varinfo::NTVarInfo, vns::NamedTuple)
14551463
varinfo = deepcopy(varinfo)
14561464
md, logjac = _invlink_metadata!(model, varinfo, varinfo.metadata, vns)
14571465
new_varinfo = VarInfo(md, varinfo.accs)
1458-
new_varinfo = acclogprior!!(new_varinfo, -logjac)
1466+
if hasacc(new_varinfo, Val(:LogPrior))
1467+
new_varinfo = acclogprior!!(new_varinfo, -logjac)
1468+
end
14591469
return new_varinfo
14601470
end
14611471

0 commit comments

Comments
 (0)