@@ -323,28 +323,30 @@ 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 (
340
+ model:: Model{typeof(demo_assume_multivariate_observe_literal)} , s, m
341
+ )
340
342
return logpdf (MvNormal (m, Diagonal (s)), [1.5 , 2.0 ])
341
343
end
342
344
function logprior_true_with_logabsdet_jacobian (
343
- model:: Model{typeof(demo_assume_observe_literal )} , s, m
345
+ model:: Model{typeof(demo_assume_multivariate_observe_literal )} , s, m
344
346
)
345
347
return _demo_logprior_true_with_logabsdet_jacobian (model, s, m)
346
348
end
347
- function varnames (model:: Model{typeof(demo_assume_observe_literal )} )
349
+ function varnames (model:: Model{typeof(demo_assume_multivariate_observe_literal )} )
348
350
return [@varname (s), @varname (m)]
349
351
end
350
352
@@ -377,6 +379,30 @@ function varnames(model::Model{typeof(demo_dot_assume_observe_index_literal)})
377
379
return [@varname (s[1 ]), @varname (s[2 ]), @varname (m[1 ]), @varname (m[2 ])]
378
380
end
379
381
382
+ @model function demo_assume_literal_observe ()
383
+ # univariate `assume` and literal `observe`
384
+ s ~ InverseGamma (2 , 3 )
385
+ m ~ Normal (0 , sqrt (s))
386
+ 1.5 ~ Normal (m, sqrt (s))
387
+ 2.0 ~ Normal (m, sqrt (s))
388
+
389
+ return (; s= s, m= m, x= [1.5 , 2.0 ], logp= getlogp (__varinfo__))
390
+ end
391
+ function logprior_true (model:: Model{typeof(demo_assume_literal_observe)} , s, m)
392
+ return logpdf (InverseGamma (2 , 3 ), s) + logpdf (Normal (0 , sqrt (s)), m)
393
+ end
394
+ function loglikelihood_true (model:: Model{typeof(demo_assume_literal_observe)} , s, m)
395
+ return logpdf (Normal (m, sqrt (s)), 1.5 ) + logpdf (Normal (m, sqrt (s)), 2.0 )
396
+ end
397
+ function logprior_true_with_logabsdet_jacobian (
398
+ model:: Model{typeof(demo_assume_literal_observe)} , s, m
399
+ )
400
+ return _demo_logprior_true_with_logabsdet_jacobian (model, s, m)
401
+ end
402
+ function varnames (model:: Model{typeof(demo_assume_literal_observe)} )
403
+ return [@varname (s), @varname (m)]
404
+ end
405
+
380
406
@model function demo_assume_literal_dot_observe ()
381
407
# `assume` and literal `dot_observe`
382
408
s ~ InverseGamma (2 , 3 )
@@ -575,7 +601,8 @@ const DemoModels = Union{
575
601
Model{typeof (demo_dot_assume_observe_index)},
576
602
Model{typeof (demo_assume_dot_observe)},
577
603
Model{typeof (demo_assume_literal_dot_observe)},
578
- Model{typeof (demo_assume_observe_literal)},
604
+ Model{typeof (demo_assume_literal_observe)},
605
+ Model{typeof (demo_assume_multivariate_observe_literal)},
579
606
Model{typeof (demo_dot_assume_observe_index_literal)},
580
607
Model{typeof (demo_assume_submodel_observe_index_literal)},
581
608
Model{typeof (demo_dot_assume_observe_submodel)},
@@ -585,7 +612,9 @@ const DemoModels = Union{
585
612
}
586
613
587
614
const UnivariateAssumeDemoModels = Union{
588
- Model{typeof (demo_assume_dot_observe)},Model{typeof (demo_assume_literal_dot_observe)}
615
+ Model{typeof (demo_assume_dot_observe)},
616
+ Model{typeof (demo_assume_literal_dot_observe)}
617
+ Model{typeof (demo_assume_literal_observe)}
589
618
}
590
619
function posterior_mean (model:: UnivariateAssumeDemoModels )
591
620
return (s= 49 / 24 , m= 7 / 6 )
@@ -609,7 +638,7 @@ const MultivariateAssumeDemoModels = Union{
609
638
Model{typeof (demo_assume_index_observe)},
610
639
Model{typeof (demo_assume_multivariate_observe)},
611
640
Model{typeof (demo_dot_assume_observe_index)},
612
- Model{typeof (demo_assume_observe_literal )},
641
+ Model{typeof (demo_assume_multivariate_observe_literal )},
613
642
Model{typeof (demo_dot_assume_observe_index_literal)},
614
643
Model{typeof (demo_assume_submodel_observe_index_literal)},
615
644
Model{typeof (demo_dot_assume_observe_submodel)},
@@ -759,9 +788,10 @@ const DEMO_MODELS = (
759
788
demo_assume_multivariate_observe (),
760
789
demo_dot_assume_observe_index (),
761
790
demo_assume_dot_observe (),
762
- demo_assume_observe_literal (),
791
+ demo_assume_multivariate_observe_literal (),
763
792
demo_dot_assume_observe_index_literal (),
764
793
demo_assume_literal_dot_observe (),
794
+ demo_assume_literal_observe (),
765
795
demo_assume_submodel_observe_index_literal (),
766
796
demo_dot_assume_observe_submodel (),
767
797
demo_dot_assume_dot_observe_matrix (),
0 commit comments