@@ -323,28 +323,28 @@ function varnames(model::Model{typeof(demo_assume_dot_observe)})
323
323
return [@varname (s), @varname (m)]
324
324
end
325
325
326
- @model function demo_assume_observe_literal ()
327
- # `assume` and literal `observe`
326
+ @model function demo_assume_multivariate_observe_literal ()
327
+ # multivariate `assume` and literal `observe`
328
328
s ~ product_distribution ([InverseGamma (2 , 3 ), InverseGamma (2 , 3 )])
329
329
m ~ MvNormal (zeros (2 ), Diagonal (s))
330
330
[1.5 , 2.0 ] ~ MvNormal (m, Diagonal (s))
331
331
332
332
return (; s= s, m= m, x= [1.5 , 2.0 ], logp= getlogp (__varinfo__))
333
333
end
334
- function logprior_true (model:: Model{typeof(demo_assume_observe_literal )} , s, m)
334
+ function logprior_true (model:: Model{typeof(demo_assume_multivariate_observe_literal )} , s, m)
335
335
s_dist = product_distribution ([InverseGamma (2 , 3 ), InverseGamma (2 , 3 )])
336
336
m_dist = MvNormal (zeros (2 ), Diagonal (s))
337
337
return logpdf (s_dist, s) + logpdf (m_dist, m)
338
338
end
339
- function loglikelihood_true (model:: Model{typeof(demo_assume_observe_literal )} , s, m)
339
+ function loglikelihood_true (model:: Model{typeof(demo_assume_multivariate_observe_literal )} , s, m)
340
340
return logpdf (MvNormal (m, Diagonal (s)), [1.5 , 2.0 ])
341
341
end
342
342
function logprior_true_with_logabsdet_jacobian (
343
- model:: Model{typeof(demo_assume_observe_literal )} , s, m
343
+ model:: Model{typeof(demo_assume_multivariate_observe_literal )} , s, m
344
344
)
345
345
return _demo_logprior_true_with_logabsdet_jacobian (model, s, m)
346
346
end
347
- function varnames (model:: Model{typeof(demo_assume_observe_literal )} )
347
+ function varnames (model:: Model{typeof(demo_assume_multivariate_observe_literal )} )
348
348
return [@varname (s), @varname (m)]
349
349
end
350
350
@@ -377,6 +377,30 @@ function varnames(model::Model{typeof(demo_dot_assume_observe_index_literal)})
377
377
return [@varname (s[1 ]), @varname (s[2 ]), @varname (m[1 ]), @varname (m[2 ])]
378
378
end
379
379
380
+ @model function demo_assume_literal_observe ()
381
+ # univariate `assume` and literal `observe`
382
+ s ~ InverseGamma (2 , 3 )
383
+ m ~ Normal (0 , sqrt (s))
384
+ 1.5 ~ Normal (m, sqrt (s))
385
+ 2.0 ~ Normal (m, sqrt (s))
386
+
387
+ return (; s= s, m= m, x= [1.5 , 2.0 ], logp= getlogp (__varinfo__))
388
+ end
389
+ function logprior_true (model:: Model{typeof(demo_assume_literal_observe)} , s, m)
390
+ return logpdf (InverseGamma (2 , 3 ), s) + logpdf (Normal (0 , sqrt (s)), m)
391
+ end
392
+ function loglikelihood_true (model:: Model{typeof(demo_assume_literal_observe)} , s, m)
393
+ return logpdf (Normal (m, sqrt (s)), 1.5 ) + logpdf (Normal (m, sqrt (s)), 2.0 )
394
+ end
395
+ function logprior_true_with_logabsdet_jacobian (
396
+ model:: Model{typeof(demo_assume_literal_observe)} , s, m
397
+ )
398
+ return _demo_logprior_true_with_logabsdet_jacobian (model, s, m)
399
+ end
400
+ function varnames (model:: Model{typeof(demo_assume_literal_observe)} )
401
+ return [@varname (s), @varname (m)]
402
+ end
403
+
380
404
@model function demo_assume_literal_dot_observe ()
381
405
# `assume` and literal `dot_observe`
382
406
s ~ InverseGamma (2 , 3 )
@@ -575,7 +599,8 @@ const DemoModels = Union{
575
599
Model{typeof (demo_dot_assume_observe_index)},
576
600
Model{typeof (demo_assume_dot_observe)},
577
601
Model{typeof (demo_assume_literal_dot_observe)},
578
- Model{typeof (demo_assume_observe_literal)},
602
+ Model{typeof (demo_assume_literal_observe)},
603
+ Model{typeof (demo_assume_multivariate_observe_literal)},
579
604
Model{typeof (demo_dot_assume_observe_index_literal)},
580
605
Model{typeof (demo_assume_submodel_observe_index_literal)},
581
606
Model{typeof (demo_dot_assume_observe_submodel)},
@@ -585,7 +610,9 @@ const DemoModels = Union{
585
610
}
586
611
587
612
const UnivariateAssumeDemoModels = Union{
588
- Model{typeof (demo_assume_dot_observe)},Model{typeof (demo_assume_literal_dot_observe)}
613
+ Model{typeof (demo_assume_dot_observe)},
614
+ Model{typeof (demo_assume_literal_dot_observe)}
615
+ Model{typeof (demo_assume_literal_observe)}
589
616
}
590
617
function posterior_mean (model:: UnivariateAssumeDemoModels )
591
618
return (s= 49 / 24 , m= 7 / 6 )
@@ -609,7 +636,7 @@ const MultivariateAssumeDemoModels = Union{
609
636
Model{typeof (demo_assume_index_observe)},
610
637
Model{typeof (demo_assume_multivariate_observe)},
611
638
Model{typeof (demo_dot_assume_observe_index)},
612
- Model{typeof (demo_assume_observe_literal )},
639
+ Model{typeof (demo_assume_multivariate_observe_literal )},
613
640
Model{typeof (demo_dot_assume_observe_index_literal)},
614
641
Model{typeof (demo_assume_submodel_observe_index_literal)},
615
642
Model{typeof (demo_dot_assume_observe_submodel)},
@@ -759,9 +786,10 @@ const DEMO_MODELS = (
759
786
demo_assume_multivariate_observe (),
760
787
demo_dot_assume_observe_index (),
761
788
demo_assume_dot_observe (),
762
- demo_assume_observe_literal (),
789
+ demo_assume_multivariate_observe_literal (),
763
790
demo_dot_assume_observe_index_literal (),
764
791
demo_assume_literal_dot_observe (),
792
+ demo_assume_literal_observe (),
765
793
demo_assume_submodel_observe_index_literal (),
766
794
demo_dot_assume_observe_submodel (),
767
795
demo_dot_assume_dot_observe_matrix (),
0 commit comments