Skip to content

Commit 1824fad

Browse files
authored
Improved varname_and_value_leaves for Cholesky (#531)
* varname_and_value_leaves now return x.L or x.U as varnames for cholesky * updated docstring for varname_and_value_leaves * bumped patch version
1 parent ba16e3b commit 1824fad

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "DynamicPPL"
22
uuid = "366bfd00-2699-11ea-058f-f148b4cae6d8"
3-
version = "0.23.15"
3+
version = "0.23.16"
44

55
[deps]
66
AbstractMCMC = "80f14c24-f653-4e6a-9b94-39d6b0f70001"

src/utils.jl

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -936,15 +936,15 @@ julia> # `UpperTriangular`
936936
937937
julia> # `Cholesky` with lower-triangular
938938
foreach(println, varname_and_value_leaves(@varname(x), Cholesky([1.0 0.0; 0.0 1.0], 'L', 0)))
939-
(x[1,1], 1.0)
940-
(x[2,1], 0.0)
941-
(x[2,2], 1.0)
939+
(x.L[1,1], 1.0)
940+
(x.L[2,1], 0.0)
941+
(x.L[2,2], 1.0)
942942
943943
julia> # `Cholesky` with upper-triangular
944944
foreach(println, varname_and_value_leaves(@varname(x), Cholesky([1.0 0.0; 0.0 1.0], 'U', 0)))
945-
(x[1,1], 1.0)
946-
(x[1,2], 0.0)
947-
(x[2,2], 1.0)
945+
(x.U[1,1], 1.0)
946+
(x.U[1,2], 0.0)
947+
(x.U[2,2], 1.0)
948948
```
949949
"""
950950
function varname_and_value_leaves(vn::VarName, x)
@@ -1019,7 +1019,11 @@ end
10191019
# Special types.
10201020
function varname_and_value_leaves_inner(vn::VarName, x::Cholesky)
10211021
# TODO: Or do we use `PDMat` here?
1022-
return varname_and_value_leaves_inner(vn, x.UL)
1022+
return if x.uplo == 'L'
1023+
varname_and_value_leaves_inner(vn Setfield.PropertyLens{:L}(), x.L)
1024+
else
1025+
varname_and_value_leaves_inner(vn Setfield.PropertyLens{:U}(), x.U)
1026+
end
10231027
end
10241028
function varname_and_value_leaves_inner(vn::VarName, x::LinearAlgebra.LowerTriangular)
10251029
return (

0 commit comments

Comments
 (0)