diff --git a/dev/.doctrees/api.doctree b/dev/.doctrees/api.doctree index 15df26cde..7060a7e32 100644 Binary files a/dev/.doctrees/api.doctree and b/dev/.doctrees/api.doctree differ diff --git a/dev/.doctrees/environment.pickle b/dev/.doctrees/environment.pickle index 0e133dd93..19bb1a95f 100644 Binary files a/dev/.doctrees/environment.pickle and b/dev/.doctrees/environment.pickle differ diff --git a/dev/.doctrees/generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution.doctree b/dev/.doctrees/generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution.doctree index 4a4c55379..6e398ae7f 100644 Binary files a/dev/.doctrees/generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution.doctree and b/dev/.doctrees/generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution.doctree differ diff --git a/dev/.doctrees/generated/pyhgf.model/pyhgf.model.Network.doctree b/dev/.doctrees/generated/pyhgf.model/pyhgf.model.Network.doctree new file mode 100644 index 000000000..c20ce2585 Binary files /dev/null and b/dev/.doctrees/generated/pyhgf.model/pyhgf.model.Network.doctree differ diff --git a/dev/.doctrees/learn.doctree b/dev/.doctrees/learn.doctree index 995dc2a5c..fd9c51654 100644 Binary files a/dev/.doctrees/learn.doctree and b/dev/.doctrees/learn.doctree differ diff --git a/dev/.doctrees/notebooks/0.1-Theory.doctree b/dev/.doctrees/notebooks/0.1-Theory.doctree index c2121905e..bcf33c728 100644 Binary files a/dev/.doctrees/notebooks/0.1-Theory.doctree and b/dev/.doctrees/notebooks/0.1-Theory.doctree differ diff --git a/dev/.doctrees/notebooks/0.2-Creating_networks.doctree b/dev/.doctrees/notebooks/0.2-Creating_networks.doctree index 5e813011f..86e72e823 100644 Binary files a/dev/.doctrees/notebooks/0.2-Creating_networks.doctree and b/dev/.doctrees/notebooks/0.2-Creating_networks.doctree differ diff --git a/dev/.doctrees/notebooks/0.3-Generalised_filtering.doctree b/dev/.doctrees/notebooks/0.3-Generalised_filtering.doctree index 6105005a2..d9c2bbd21 100644 Binary files a/dev/.doctrees/notebooks/0.3-Generalised_filtering.doctree and b/dev/.doctrees/notebooks/0.3-Generalised_filtering.doctree differ diff --git a/dev/.doctrees/notebooks/1.1-Binary_HGF.doctree b/dev/.doctrees/notebooks/1.1-Binary_HGF.doctree index 19bd8710e..64c0e1d7b 100644 Binary files a/dev/.doctrees/notebooks/1.1-Binary_HGF.doctree and b/dev/.doctrees/notebooks/1.1-Binary_HGF.doctree differ diff --git a/dev/.doctrees/notebooks/1.2-Categorical_HGF.doctree b/dev/.doctrees/notebooks/1.2-Categorical_HGF.doctree index 0648dc9b3..77e9402b5 100644 Binary files a/dev/.doctrees/notebooks/1.2-Categorical_HGF.doctree and b/dev/.doctrees/notebooks/1.2-Categorical_HGF.doctree differ diff --git a/dev/.doctrees/notebooks/1.3-Continuous_HGF.doctree b/dev/.doctrees/notebooks/1.3-Continuous_HGF.doctree index dec48fa50..97473aaf7 100644 Binary files a/dev/.doctrees/notebooks/1.3-Continuous_HGF.doctree and b/dev/.doctrees/notebooks/1.3-Continuous_HGF.doctree differ diff --git a/dev/.doctrees/notebooks/2-Using_custom_response_functions.doctree b/dev/.doctrees/notebooks/2-Using_custom_response_functions.doctree index 8e833354f..4cb34770d 100644 Binary files a/dev/.doctrees/notebooks/2-Using_custom_response_functions.doctree and b/dev/.doctrees/notebooks/2-Using_custom_response_functions.doctree differ diff --git a/dev/.doctrees/notebooks/3-Multilevel_HGF.doctree b/dev/.doctrees/notebooks/3-Multilevel_HGF.doctree index 4fc1cfab1..b44714ce9 100644 Binary files a/dev/.doctrees/notebooks/3-Multilevel_HGF.doctree and b/dev/.doctrees/notebooks/3-Multilevel_HGF.doctree differ diff --git a/dev/.doctrees/notebooks/4-Parameter_recovery.doctree b/dev/.doctrees/notebooks/4-Parameter_recovery.doctree index e6c7a2a64..721a20ffc 100644 Binary files a/dev/.doctrees/notebooks/4-Parameter_recovery.doctree and b/dev/.doctrees/notebooks/4-Parameter_recovery.doctree differ diff --git a/dev/.doctrees/notebooks/5-Non_linear_value_coupling.doctree b/dev/.doctrees/notebooks/5-Non_linear_value_coupling.doctree index f381b43b6..a402c0710 100644 Binary files a/dev/.doctrees/notebooks/5-Non_linear_value_coupling.doctree and b/dev/.doctrees/notebooks/5-Non_linear_value_coupling.doctree differ diff --git a/dev/.doctrees/notebooks/Example_1_Heart_rate_variability.doctree b/dev/.doctrees/notebooks/Example_1_Heart_rate_variability.doctree index aeb5fab08..05c0e2062 100644 Binary files a/dev/.doctrees/notebooks/Example_1_Heart_rate_variability.doctree and b/dev/.doctrees/notebooks/Example_1_Heart_rate_variability.doctree differ diff --git a/dev/.doctrees/notebooks/Example_2_Input_node_volatility_coupling.doctree b/dev/.doctrees/notebooks/Example_2_Input_node_volatility_coupling.doctree index d59a8a6fe..49a0f4c73 100644 Binary files a/dev/.doctrees/notebooks/Example_2_Input_node_volatility_coupling.doctree and b/dev/.doctrees/notebooks/Example_2_Input_node_volatility_coupling.doctree differ diff --git a/dev/.doctrees/notebooks/Example_3_Multi_armed_bandit.doctree b/dev/.doctrees/notebooks/Example_3_Multi_armed_bandit.doctree index 681639947..3fa7ba335 100644 Binary files a/dev/.doctrees/notebooks/Example_3_Multi_armed_bandit.doctree and b/dev/.doctrees/notebooks/Example_3_Multi_armed_bandit.doctree differ diff --git a/dev/.doctrees/notebooks/Exercise_1_Introduction_to_the_generalised_hierarchical_gaussian_filter.doctree b/dev/.doctrees/notebooks/Exercise_1_Introduction_to_the_generalised_hierarchical_gaussian_filter.doctree index 5b4a0f140..ddd2d5a72 100644 Binary files a/dev/.doctrees/notebooks/Exercise_1_Introduction_to_the_generalised_hierarchical_gaussian_filter.doctree and b/dev/.doctrees/notebooks/Exercise_1_Introduction_to_the_generalised_hierarchical_gaussian_filter.doctree differ diff --git a/dev/.doctrees/notebooks/Exercise_2_Bayesian_reinforcement_learning.doctree b/dev/.doctrees/notebooks/Exercise_2_Bayesian_reinforcement_learning.doctree index 9473d45e0..3fe1e3127 100644 Binary files a/dev/.doctrees/notebooks/Exercise_2_Bayesian_reinforcement_learning.doctree and b/dev/.doctrees/notebooks/Exercise_2_Bayesian_reinforcement_learning.doctree differ diff --git a/dev/_images/01c0d3236134005a6c066f043e20c6c0a3206f9253b548e265a521bfa4f76a9c.png b/dev/_images/01c0d3236134005a6c066f043e20c6c0a3206f9253b548e265a521bfa4f76a9c.png new file mode 100644 index 000000000..eeb775bfd Binary files /dev/null and b/dev/_images/01c0d3236134005a6c066f043e20c6c0a3206f9253b548e265a521bfa4f76a9c.png differ diff --git a/dev/_images/04464c9720c3b245104d7ab82301be47e42110ba2b0dca2c7de4991f6054b95c.png b/dev/_images/04464c9720c3b245104d7ab82301be47e42110ba2b0dca2c7de4991f6054b95c.png deleted file mode 100644 index 78bc7a2c9..000000000 Binary files a/dev/_images/04464c9720c3b245104d7ab82301be47e42110ba2b0dca2c7de4991f6054b95c.png and /dev/null differ diff --git a/dev/_images/04800461fa8e48e3576559542f4111c2207d663e6fce49ae0f4925582ce02bf2.png b/dev/_images/04800461fa8e48e3576559542f4111c2207d663e6fce49ae0f4925582ce02bf2.png deleted file mode 100644 index 1075843ae..000000000 Binary files a/dev/_images/04800461fa8e48e3576559542f4111c2207d663e6fce49ae0f4925582ce02bf2.png and /dev/null differ diff --git a/dev/_images/1025bdbc7479f333efb39b8e51c94655e99c2872608ec517812c1bbd3cebb0b0.png b/dev/_images/1025bdbc7479f333efb39b8e51c94655e99c2872608ec517812c1bbd3cebb0b0.png new file mode 100644 index 000000000..e497cd003 Binary files /dev/null and b/dev/_images/1025bdbc7479f333efb39b8e51c94655e99c2872608ec517812c1bbd3cebb0b0.png differ diff --git a/dev/_images/11f05589c8504386ac65d08bfd7f0dcf3bf8334737b53bc0941e94af156bf1a6.png b/dev/_images/11f05589c8504386ac65d08bfd7f0dcf3bf8334737b53bc0941e94af156bf1a6.png new file mode 100644 index 000000000..ab2c2860c Binary files /dev/null and b/dev/_images/11f05589c8504386ac65d08bfd7f0dcf3bf8334737b53bc0941e94af156bf1a6.png differ diff --git a/dev/_images/173b623042e8d6dc4a0a5dbe7e2bacac0152a6f46a0849238cd199e7792479f0.png b/dev/_images/173b623042e8d6dc4a0a5dbe7e2bacac0152a6f46a0849238cd199e7792479f0.png new file mode 100644 index 000000000..bbcec1ef2 Binary files /dev/null and b/dev/_images/173b623042e8d6dc4a0a5dbe7e2bacac0152a6f46a0849238cd199e7792479f0.png differ diff --git a/dev/_images/17598dc55156a8ce0d444d2a8f7aaa9dea32604d125204185379535c20c246b9.png b/dev/_images/17598dc55156a8ce0d444d2a8f7aaa9dea32604d125204185379535c20c246b9.png new file mode 100644 index 000000000..1137835b1 Binary files /dev/null and b/dev/_images/17598dc55156a8ce0d444d2a8f7aaa9dea32604d125204185379535c20c246b9.png differ diff --git a/dev/_images/1e60d6a08ed4ed956bafa287e21493d4bd9aafef53ec5cd3e8eec134b49b0a5b.png b/dev/_images/1e60d6a08ed4ed956bafa287e21493d4bd9aafef53ec5cd3e8eec134b49b0a5b.png deleted file mode 100644 index 00db97aa1..000000000 Binary files a/dev/_images/1e60d6a08ed4ed956bafa287e21493d4bd9aafef53ec5cd3e8eec134b49b0a5b.png and /dev/null differ diff --git a/dev/_images/23a947492740a4387ade6fb6412ab3c996fff3f3ee9c4626ded56992baa4024a.png b/dev/_images/23a947492740a4387ade6fb6412ab3c996fff3f3ee9c4626ded56992baa4024a.png deleted file mode 100644 index 005170c91..000000000 Binary files a/dev/_images/23a947492740a4387ade6fb6412ab3c996fff3f3ee9c4626ded56992baa4024a.png and /dev/null differ diff --git a/dev/_images/273a1aabcc14f043f102eb2cea8cdb4c19de3758731ccd9e0e21a5c681c2ec23.png b/dev/_images/273a1aabcc14f043f102eb2cea8cdb4c19de3758731ccd9e0e21a5c681c2ec23.png deleted file mode 100644 index 105dcf8e0..000000000 Binary files a/dev/_images/273a1aabcc14f043f102eb2cea8cdb4c19de3758731ccd9e0e21a5c681c2ec23.png and /dev/null differ diff --git a/dev/_images/29f3e265299de19e11e1ea53f57659f9b72fee472f344b9ae7baa6399813fc34.png b/dev/_images/29f3e265299de19e11e1ea53f57659f9b72fee472f344b9ae7baa6399813fc34.png new file mode 100644 index 000000000..1463e17f1 Binary files /dev/null and b/dev/_images/29f3e265299de19e11e1ea53f57659f9b72fee472f344b9ae7baa6399813fc34.png differ diff --git a/dev/_images/2ea0005916d19b8c03e2441b06262f48e55d68ef057e911a246c3216add17974.png b/dev/_images/2ea0005916d19b8c03e2441b06262f48e55d68ef057e911a246c3216add17974.png deleted file mode 100644 index 697a5ff20..000000000 Binary files a/dev/_images/2ea0005916d19b8c03e2441b06262f48e55d68ef057e911a246c3216add17974.png and /dev/null differ diff --git a/dev/_images/329bbdfcf8b4f35edc9a41ea51d5b7a4c75497b02494279ffbdcb19a72109bcd.png b/dev/_images/329bbdfcf8b4f35edc9a41ea51d5b7a4c75497b02494279ffbdcb19a72109bcd.png new file mode 100644 index 000000000..5404df43a Binary files /dev/null and b/dev/_images/329bbdfcf8b4f35edc9a41ea51d5b7a4c75497b02494279ffbdcb19a72109bcd.png differ diff --git a/dev/_images/32d045486763a6af1c2257e08d2b670161e1fe8d836c0cdea6424b9a9f402c07.png b/dev/_images/32d045486763a6af1c2257e08d2b670161e1fe8d836c0cdea6424b9a9f402c07.png new file mode 100644 index 000000000..250036f44 Binary files /dev/null and b/dev/_images/32d045486763a6af1c2257e08d2b670161e1fe8d836c0cdea6424b9a9f402c07.png differ diff --git a/dev/_images/32e4f31c6b48129c9795c05e3205c1f49aa52e20238b5ce47abe26f4d6653456.png b/dev/_images/32e4f31c6b48129c9795c05e3205c1f49aa52e20238b5ce47abe26f4d6653456.png deleted file mode 100644 index f3a274d40..000000000 Binary files a/dev/_images/32e4f31c6b48129c9795c05e3205c1f49aa52e20238b5ce47abe26f4d6653456.png and /dev/null differ diff --git a/dev/_images/3a03de8525a649622dc7ab6fc05d6e4beebe25c932aa150c22363e177ecc630a.png b/dev/_images/3a03de8525a649622dc7ab6fc05d6e4beebe25c932aa150c22363e177ecc630a.png new file mode 100644 index 000000000..6292689b8 Binary files /dev/null and b/dev/_images/3a03de8525a649622dc7ab6fc05d6e4beebe25c932aa150c22363e177ecc630a.png differ diff --git a/dev/_images/412470ec90c19f83d1990416d922775c0ff02b86acd0c0b9804ef9074e1baa2a.png b/dev/_images/412470ec90c19f83d1990416d922775c0ff02b86acd0c0b9804ef9074e1baa2a.png deleted file mode 100644 index 89986f11a..000000000 Binary files a/dev/_images/412470ec90c19f83d1990416d922775c0ff02b86acd0c0b9804ef9074e1baa2a.png and /dev/null differ diff --git a/dev/_images/498e9dac4c6e972b4e607090053c41c2627d095020624bfbe6054340645b7eeb.png b/dev/_images/498e9dac4c6e972b4e607090053c41c2627d095020624bfbe6054340645b7eeb.png deleted file mode 100644 index 0690b7f0c..000000000 Binary files a/dev/_images/498e9dac4c6e972b4e607090053c41c2627d095020624bfbe6054340645b7eeb.png and /dev/null differ diff --git a/dev/_images/57fa808836f096e5a9db306649aced891ec5826cf62a770fa629a058d525495d.png b/dev/_images/57fa808836f096e5a9db306649aced891ec5826cf62a770fa629a058d525495d.png new file mode 100644 index 000000000..588e707b5 Binary files /dev/null and b/dev/_images/57fa808836f096e5a9db306649aced891ec5826cf62a770fa629a058d525495d.png differ diff --git a/dev/_images/5f64a9c2eb4ad6634edfa6b2e97b2946d38e830798d92a75c5199494f50b3f20.png b/dev/_images/5f64a9c2eb4ad6634edfa6b2e97b2946d38e830798d92a75c5199494f50b3f20.png new file mode 100644 index 000000000..eb592f4ec Binary files /dev/null and b/dev/_images/5f64a9c2eb4ad6634edfa6b2e97b2946d38e830798d92a75c5199494f50b3f20.png differ diff --git a/dev/_images/646be6aed89af26c7d6879a60cf3d4ae988f935a42c5ac46830ce33a23a8a1ec.png b/dev/_images/646be6aed89af26c7d6879a60cf3d4ae988f935a42c5ac46830ce33a23a8a1ec.png deleted file mode 100644 index 96c13238d..000000000 Binary files a/dev/_images/646be6aed89af26c7d6879a60cf3d4ae988f935a42c5ac46830ce33a23a8a1ec.png and /dev/null differ diff --git a/dev/_images/65080aaca9cb8b52c7b0e789e7c6674c31790d070c51c3e6fca17d3c6029cd37.svg b/dev/_images/65080aaca9cb8b52c7b0e789e7c6674c31790d070c51c3e6fca17d3c6029cd37.svg new file mode 100644 index 000000000..b73ee4575 --- /dev/null +++ b/dev/_images/65080aaca9cb8b52c7b0e789e7c6674c31790d070c51c3e6fca17d3c6029cd37.svg @@ -0,0 +1,135 @@ + + + + + + +%3 + + +cluster10 + +10 + + +cluster10 x 320 + +10 x 320 + + + +mu_volatility + +mu_volatility +~ +Normal + + + +volatility + +volatility +~ +Normal + + + +mu_volatility->volatility + + + + + +mu_temperature + +mu_temperature +~ +Normal + + + +inverse_temperature + +inverse_temperature +~ +LogNormal + + + +mu_temperature->inverse_temperature + + + + + +sigma_volatility + +sigma_volatility +~ +HalfNormal + + + +sigma_volatility->volatility + + + + + +sigma_temperature + +sigma_temperature +~ +HalfNormal + + + +sigma_temperature->inverse_temperature + + + + + +log_likelihood + +log_likelihood +~ +CustomDist_log_likelihood + + + +volatility->log_likelihood + + + + + +pointwise_loglikelihood + +pointwise_loglikelihood +~ +Deterministic + + + +volatility->pointwise_loglikelihood + + + + + +inverse_temperature->log_likelihood + + + + + +inverse_temperature->pointwise_loglikelihood + + + + + \ No newline at end of file diff --git a/dev/_images/65ebb718ef626c907be9668eb0c71e4ec56d42d74b7e7b74a3d613c5e6795727.png b/dev/_images/65ebb718ef626c907be9668eb0c71e4ec56d42d74b7e7b74a3d613c5e6795727.png deleted file mode 100644 index bd48ec388..000000000 Binary files a/dev/_images/65ebb718ef626c907be9668eb0c71e4ec56d42d74b7e7b74a3d613c5e6795727.png and /dev/null differ diff --git a/dev/_images/706f25997f0afcff0c8e82caafc475feb22b366127275d5a89fac9901934a466.png b/dev/_images/706f25997f0afcff0c8e82caafc475feb22b366127275d5a89fac9901934a466.png new file mode 100644 index 000000000..4a2d00295 Binary files /dev/null and b/dev/_images/706f25997f0afcff0c8e82caafc475feb22b366127275d5a89fac9901934a466.png differ diff --git a/dev/_images/7684f781393fddcb5b12fb0266f447c0d53da287bfc7f6bcdd77f1ce716e86b0.png b/dev/_images/7684f781393fddcb5b12fb0266f447c0d53da287bfc7f6bcdd77f1ce716e86b0.png deleted file mode 100644 index b718337a8..000000000 Binary files a/dev/_images/7684f781393fddcb5b12fb0266f447c0d53da287bfc7f6bcdd77f1ce716e86b0.png and /dev/null differ diff --git a/dev/_images/7bc8e8923009bbd35cfaa57a4245bdbe40e2c5a87d9305e27c7fdb715dd920f8.png b/dev/_images/7bc8e8923009bbd35cfaa57a4245bdbe40e2c5a87d9305e27c7fdb715dd920f8.png deleted file mode 100644 index 1cbac9918..000000000 Binary files a/dev/_images/7bc8e8923009bbd35cfaa57a4245bdbe40e2c5a87d9305e27c7fdb715dd920f8.png and /dev/null differ diff --git a/dev/_images/7da46b4ab110367e829e77adc2db4f2de202a52d8ea9a0ab01caefe6f18def86.png b/dev/_images/7da46b4ab110367e829e77adc2db4f2de202a52d8ea9a0ab01caefe6f18def86.png deleted file mode 100644 index 83a562ace..000000000 Binary files a/dev/_images/7da46b4ab110367e829e77adc2db4f2de202a52d8ea9a0ab01caefe6f18def86.png and /dev/null differ diff --git a/dev/_images/801246fe9ea7b5afccdf6aed41c1d1818b31b3060546e38084c3ea92240aed48.png b/dev/_images/801246fe9ea7b5afccdf6aed41c1d1818b31b3060546e38084c3ea92240aed48.png deleted file mode 100644 index e7cdeb5c5..000000000 Binary files a/dev/_images/801246fe9ea7b5afccdf6aed41c1d1818b31b3060546e38084c3ea92240aed48.png and /dev/null differ diff --git a/dev/_images/847cac0fe8c5b4c566330729302d641e30ba7543d68f973fe30434788001414a.png b/dev/_images/847cac0fe8c5b4c566330729302d641e30ba7543d68f973fe30434788001414a.png deleted file mode 100644 index 4da1613cb..000000000 Binary files a/dev/_images/847cac0fe8c5b4c566330729302d641e30ba7543d68f973fe30434788001414a.png and /dev/null differ diff --git a/dev/_images/8b9bd9d5bbb94d936f34aeaf9513a0b0202682a7934ca517c73f6bd785442ba4.png b/dev/_images/8b9bd9d5bbb94d936f34aeaf9513a0b0202682a7934ca517c73f6bd785442ba4.png new file mode 100644 index 000000000..f92dfc377 Binary files /dev/null and b/dev/_images/8b9bd9d5bbb94d936f34aeaf9513a0b0202682a7934ca517c73f6bd785442ba4.png differ diff --git a/dev/_images/913d5f7555ecaf8aa5af9f2d84c7ed54af55f44ffcc5196ee9734a1a60e5e4ef.png b/dev/_images/913d5f7555ecaf8aa5af9f2d84c7ed54af55f44ffcc5196ee9734a1a60e5e4ef.png new file mode 100644 index 000000000..e9d95ce03 Binary files /dev/null and b/dev/_images/913d5f7555ecaf8aa5af9f2d84c7ed54af55f44ffcc5196ee9734a1a60e5e4ef.png differ diff --git a/dev/_images/9584fd70af63dad6f50f0944d9b4517250aee4584b0f5d8c40c73f2c3678faa8.png b/dev/_images/9584fd70af63dad6f50f0944d9b4517250aee4584b0f5d8c40c73f2c3678faa8.png new file mode 100644 index 000000000..6a60d642e Binary files /dev/null and b/dev/_images/9584fd70af63dad6f50f0944d9b4517250aee4584b0f5d8c40c73f2c3678faa8.png differ diff --git a/dev/_images/a08fba24e7383f6639e82a4025421e77679caec1f5e6f7c675169beca6dca405.png b/dev/_images/a08fba24e7383f6639e82a4025421e77679caec1f5e6f7c675169beca6dca405.png deleted file mode 100644 index 3831be18e..000000000 Binary files a/dev/_images/a08fba24e7383f6639e82a4025421e77679caec1f5e6f7c675169beca6dca405.png and /dev/null differ diff --git a/dev/_images/ab4e34532f0f80e1cbadfa017f728d9e80f31def6d674d0dd3cdcb4bb00b017b.png b/dev/_images/ab4e34532f0f80e1cbadfa017f728d9e80f31def6d674d0dd3cdcb4bb00b017b.png new file mode 100644 index 000000000..002bc10d1 Binary files /dev/null and b/dev/_images/ab4e34532f0f80e1cbadfa017f728d9e80f31def6d674d0dd3cdcb4bb00b017b.png differ diff --git a/dev/_images/bc36edcaef7d49fcaf90a31db56c7146586ff64ad013b043663b09a239db803e.png b/dev/_images/bc36edcaef7d49fcaf90a31db56c7146586ff64ad013b043663b09a239db803e.png deleted file mode 100644 index 978fdc55d..000000000 Binary files a/dev/_images/bc36edcaef7d49fcaf90a31db56c7146586ff64ad013b043663b09a239db803e.png and /dev/null differ diff --git a/dev/_images/c0548c1593129791eadcdeaab49a72208a0b1c53afaded766502a4f257440da9.png b/dev/_images/c0548c1593129791eadcdeaab49a72208a0b1c53afaded766502a4f257440da9.png deleted file mode 100644 index a7c9fa405..000000000 Binary files a/dev/_images/c0548c1593129791eadcdeaab49a72208a0b1c53afaded766502a4f257440da9.png and /dev/null differ diff --git a/dev/_images/e23b939a310486df3afa5ada7aac1a37266da7c16855b27f94e2ecf820ea7441.svg b/dev/_images/c220766790f0ac4c23d169d2a6b8286c1b66ca2bf50f19e9b1c2b87730c5efa1.svg similarity index 100% rename from dev/_images/e23b939a310486df3afa5ada7aac1a37266da7c16855b27f94e2ecf820ea7441.svg rename to dev/_images/c220766790f0ac4c23d169d2a6b8286c1b66ca2bf50f19e9b1c2b87730c5efa1.svg index 4dfa88bea..ed17b147f 100644 --- a/dev/_images/e23b939a310486df3afa5ada7aac1a37266da7c16855b27f94e2ecf820ea7441.svg +++ b/dev/_images/c220766790f0ac4c23d169d2a6b8286c1b66ca2bf50f19e9b1c2b87730c5efa1.svg @@ -9,22 +9,22 @@ %3 - - -tonic_volatility_2 - -tonic_volatility_2 -~ -Uniform - - + hgf_loglike hgf_loglike ~ Potential + + +tonic_volatility_2 + +tonic_volatility_2 +~ +Uniform + tonic_volatility_2->hgf_loglike diff --git a/dev/_images/c2923450c77f6c6ef719766a4bc10533412be15579ef49cc29d0f0a3e35eb331.svg b/dev/_images/c2923450c77f6c6ef719766a4bc10533412be15579ef49cc29d0f0a3e35eb331.svg deleted file mode 100644 index e0bdc9012..000000000 --- a/dev/_images/c2923450c77f6c6ef719766a4bc10533412be15579ef49cc29d0f0a3e35eb331.svg +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - -%3 - - -cluster10 - -10 - - -cluster10 x 320 - -10 x 320 - - - -mu_temperature - -mu_temperature -~ -Normal - - - -inverse_temperature - -inverse_temperature -~ -LogNormal - - - -mu_temperature->inverse_temperature - - - - - -sigma_volatility - -sigma_volatility -~ -HalfNormal - - - -volatility - -volatility -~ -Normal - - - -sigma_volatility->volatility - - - - - -sigma_temperature - -sigma_temperature -~ -HalfNormal - - - -sigma_temperature->inverse_temperature - - - - - -mu_volatility - -mu_volatility -~ -Normal - - - -mu_volatility->volatility - - - - - -pointwise_loglikelihood - -pointwise_loglikelihood -~ -Deterministic - - - -inverse_temperature->pointwise_loglikelihood - - - - - -log_likelihood - -log_likelihood -~ -CustomDist_log_likelihood - - - -inverse_temperature->log_likelihood - - - - - -volatility->pointwise_loglikelihood - - - - - -volatility->log_likelihood - - - - - \ No newline at end of file diff --git a/dev/_images/c3df66a57b7c73b8e6b145d5088eff8a52a2e085257a618a86dc53627f78d4e6.png b/dev/_images/c3df66a57b7c73b8e6b145d5088eff8a52a2e085257a618a86dc53627f78d4e6.png new file mode 100644 index 000000000..5b466e5a2 Binary files /dev/null and b/dev/_images/c3df66a57b7c73b8e6b145d5088eff8a52a2e085257a618a86dc53627f78d4e6.png differ diff --git a/dev/_images/c96d5341c765949f9f12b3866315d97fe265d54af89e98c2390816535895d067.png b/dev/_images/c96d5341c765949f9f12b3866315d97fe265d54af89e98c2390816535895d067.png deleted file mode 100644 index d41d20ef2..000000000 Binary files a/dev/_images/c96d5341c765949f9f12b3866315d97fe265d54af89e98c2390816535895d067.png and /dev/null differ diff --git a/dev/_images/c9ca417ae8c8ae7b57dbd103f2b1587a4c6ba41c1c8be4c83319b75538de0707.png b/dev/_images/c9ca417ae8c8ae7b57dbd103f2b1587a4c6ba41c1c8be4c83319b75538de0707.png new file mode 100644 index 000000000..6d74e51e6 Binary files /dev/null and b/dev/_images/c9ca417ae8c8ae7b57dbd103f2b1587a4c6ba41c1c8be4c83319b75538de0707.png differ diff --git a/dev/_images/categorical.png b/dev/_images/categorical.png deleted file mode 100644 index 133042fb2..000000000 Binary files a/dev/_images/categorical.png and /dev/null differ diff --git a/dev/_images/cc7aaa48d9ee186c6e4552c09169131fff54b8910dab1521a9aed75b271446fe.png b/dev/_images/cc7aaa48d9ee186c6e4552c09169131fff54b8910dab1521a9aed75b271446fe.png new file mode 100644 index 000000000..6eb6ac618 Binary files /dev/null and b/dev/_images/cc7aaa48d9ee186c6e4552c09169131fff54b8910dab1521a9aed75b271446fe.png differ diff --git a/dev/_images/ce4e64e1d28a1fcc95d9ab400827454a2f4ac1d11d24c1571616a585bdaec4a9.png b/dev/_images/ce4e64e1d28a1fcc95d9ab400827454a2f4ac1d11d24c1571616a585bdaec4a9.png new file mode 100644 index 000000000..a963ee3a6 Binary files /dev/null and b/dev/_images/ce4e64e1d28a1fcc95d9ab400827454a2f4ac1d11d24c1571616a585bdaec4a9.png differ diff --git a/dev/_images/cpc_tutorial_1.png b/dev/_images/cpc_tutorial_1.png deleted file mode 100644 index a754aa635..000000000 Binary files a/dev/_images/cpc_tutorial_1.png and /dev/null differ diff --git a/dev/_images/cpc_tutorial_2.png b/dev/_images/cpc_tutorial_2.png deleted file mode 100644 index ccd73919e..000000000 Binary files a/dev/_images/cpc_tutorial_2.png and /dev/null differ diff --git a/dev/_images/d976b93af7bf12b1517046b96de7e43ee0ef0473e3e7888654e502f60d986e90.png b/dev/_images/d976b93af7bf12b1517046b96de7e43ee0ef0473e3e7888654e502f60d986e90.png deleted file mode 100644 index 99aa5fb99..000000000 Binary files a/dev/_images/d976b93af7bf12b1517046b96de7e43ee0ef0473e3e7888654e502f60d986e90.png and /dev/null differ diff --git a/dev/_images/da6f314215d30d0b43ca2d0f3edddc1436f8b448b4c108e35cf59ddde58d75f6.png b/dev/_images/da6f314215d30d0b43ca2d0f3edddc1436f8b448b4c108e35cf59ddde58d75f6.png deleted file mode 100644 index 36b86f8dc..000000000 Binary files a/dev/_images/da6f314215d30d0b43ca2d0f3edddc1436f8b448b4c108e35cf59ddde58d75f6.png and /dev/null differ diff --git a/dev/_images/dd343d8574010f5c687350702e110acdab63565118b70d982185829c4d951fe6.png b/dev/_images/dd343d8574010f5c687350702e110acdab63565118b70d982185829c4d951fe6.png new file mode 100644 index 000000000..dd88b5703 Binary files /dev/null and b/dev/_images/dd343d8574010f5c687350702e110acdab63565118b70d982185829c4d951fe6.png differ diff --git a/dev/_images/ddaed825bd1224c2dae259d386e13934e8296bdc789e47fbd039bcaaf2308775.png b/dev/_images/ddaed825bd1224c2dae259d386e13934e8296bdc789e47fbd039bcaaf2308775.png deleted file mode 100644 index befaf8d3c..000000000 Binary files a/dev/_images/ddaed825bd1224c2dae259d386e13934e8296bdc789e47fbd039bcaaf2308775.png and /dev/null differ diff --git a/dev/_images/e18489acd32766262d03ef6326cf5e5808238c904d3eb33a01ced38a9676a7e1.png b/dev/_images/e18489acd32766262d03ef6326cf5e5808238c904d3eb33a01ced38a9676a7e1.png new file mode 100644 index 000000000..6c0767aaf Binary files /dev/null and b/dev/_images/e18489acd32766262d03ef6326cf5e5808238c904d3eb33a01ced38a9676a7e1.png differ diff --git a/dev/_images/ea4dcb24bf97d505b47ece9ff8adbaef33e7f877318a29bffa54c12f33d2cbbb.png b/dev/_images/ea4dcb24bf97d505b47ece9ff8adbaef33e7f877318a29bffa54c12f33d2cbbb.png new file mode 100644 index 000000000..a97c90e62 Binary files /dev/null and b/dev/_images/ea4dcb24bf97d505b47ece9ff8adbaef33e7f877318a29bffa54c12f33d2cbbb.png differ diff --git a/dev/_images/7d29572ae423fb4c8d4ea736f01dab651bf0ee09a3d53b5838bcf639ba2eaf01.svg b/dev/_images/ecd192b619fcda3b40cdb5f737d2b936691486677eb7a4f82b5cbc7f55367e9e.svg similarity index 100% rename from dev/_images/7d29572ae423fb4c8d4ea736f01dab651bf0ee09a3d53b5838bcf639ba2eaf01.svg rename to dev/_images/ecd192b619fcda3b40cdb5f737d2b936691486677eb7a4f82b5cbc7f55367e9e.svg index 2e49b7129..0a0877fe9 100644 --- a/dev/_images/7d29572ae423fb4c8d4ea736f01dab651bf0ee09a3d53b5838bcf639ba2eaf01.svg +++ b/dev/_images/ecd192b619fcda3b40cdb5f737d2b936691486677eb7a4f82b5cbc7f55367e9e.svg @@ -9,22 +9,22 @@ %3 - - -tonic_volatility_2 - -tonic_volatility_2 -~ -Uniform - - + hgf_loglike hgf_loglike ~ Potential + + +tonic_volatility_2 + +tonic_volatility_2 +~ +Uniform + tonic_volatility_2->hgf_loglike diff --git a/dev/_images/fcc839c923456dc5194b1282e849ceb22dde9cfbd8a11b43edff24a8bec505e8.png b/dev/_images/fcc839c923456dc5194b1282e849ceb22dde9cfbd8a11b43edff24a8bec505e8.png deleted file mode 100644 index 8eb9e96ae..000000000 Binary files a/dev/_images/fcc839c923456dc5194b1282e849ceb22dde9cfbd8a11b43edff24a8bec505e8.png and /dev/null differ diff --git a/dev/_images/fe1330dec6f2c12f77cb2802927ec7212661fbaca80810a04d4217ca96dab2fe.png b/dev/_images/fe1330dec6f2c12f77cb2802927ec7212661fbaca80810a04d4217ca96dab2fe.png new file mode 100644 index 000000000..16b4944c6 Binary files /dev/null and b/dev/_images/fe1330dec6f2c12f77cb2802927ec7212661fbaca80810a04d4217ca96dab2fe.png differ diff --git a/dev/_images/input_mean_precision.png b/dev/_images/input_mean_precision.png deleted file mode 100644 index 4cb55b259..000000000 Binary files a/dev/_images/input_mean_precision.png and /dev/null differ diff --git a/dev/_images/multiarmedbandittask.png b/dev/_images/multiarmedbandittask.png deleted file mode 100644 index 9fa4ed9e6..000000000 Binary files a/dev/_images/multiarmedbandittask.png and /dev/null differ diff --git a/dev/_images/multilevel-hgf.png b/dev/_images/multilevel-hgf.png deleted file mode 100644 index 31a891d26..000000000 Binary files a/dev/_images/multilevel-hgf.png and /dev/null differ diff --git a/dev/_images/non_linear_coupling.png b/dev/_images/non_linear_coupling.png deleted file mode 100644 index 1e0e73a6d..000000000 Binary files a/dev/_images/non_linear_coupling.png and /dev/null differ diff --git a/dev/_images/parameter_recovery.png b/dev/_images/parameter_recovery.png deleted file mode 100644 index fbb3447fb..000000000 Binary files a/dev/_images/parameter_recovery.png and /dev/null differ diff --git a/dev/_images/trajectories.png b/dev/_images/trajectories.png deleted file mode 100644 index 7df45a2ff..000000000 Binary files a/dev/_images/trajectories.png and /dev/null differ diff --git a/dev/_modules/index.html b/dev/_modules/index.html index 0e34abe7a..e773ac49e 100644 --- a/dev/_modules/index.html +++ b/dev/_modules/index.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - @@ -445,6 +443,7 @@

All modules for which code is available

  • pyhgf.distribution
  • pyhgf.math
  • pyhgf.model.hgf
  • +
  • pyhgf.model.network
  • pyhgf.plots
  • pyhgf.response
  • pyhgf.updates.posterior.binary
  • diff --git a/dev/_modules/pyhgf/distribution.html b/dev/_modules/pyhgf/distribution.html index a8f8e7dd5..f0bc53dae 100644 --- a/dev/_modules/pyhgf/distribution.html +++ b/dev/_modules/pyhgf/distribution.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - @@ -1021,6 +1019,7 @@

    Source code for pyhgf.distribution

         Print a summary of the results using Arviz
     
         >>> az.summary(idata, var_names="ω_2")
    +
         ===  =======  =====  =======  =======  =========  =======  ========  ========  =====
         ..      mean     sd   hdi_3%  hdi_97%  mcse_mean  mcse_sd  ess_bulk  ess_tail  r_hat
         ===  =======  =====  =======  =======  =========  =======  ========  ========  =====
    diff --git a/dev/_modules/pyhgf/math.html b/dev/_modules/pyhgf/math.html
    index 7bad7d927..162a97c2e 100644
    --- a/dev/_modules/pyhgf/math.html
    +++ b/dev/_modules/pyhgf/math.html
    @@ -32,7 +32,6 @@
         
         
         
    -    
       
       
       
    @@ -47,7 +46,6 @@
         
         
         
    -    
         
         
         
    diff --git a/dev/_modules/pyhgf/model/hgf.html b/dev/_modules/pyhgf/model/hgf.html
    index 77c62f438..2cf9eb91d 100644
    --- a/dev/_modules/pyhgf/model/hgf.html
    +++ b/dev/_modules/pyhgf/model/hgf.html
    @@ -32,7 +32,6 @@
         
         
         
    -    
       
       
       
    @@ -47,7 +46,6 @@
         
         
         
    -    
         
         
         
    diff --git a/dev/_modules/pyhgf/model/network.html b/dev/_modules/pyhgf/model/network.html
    new file mode 100644
    index 000000000..10600e531
    --- /dev/null
    +++ b/dev/_modules/pyhgf/model/network.html
    @@ -0,0 +1,1361 @@
    +
    +
    +
    +
    +
    +
    +  
    +    
    +    
    +    pyhgf.model.network — pyhgf 0.1.5 documentation
    +  
    +  
    +  
    +  
    +  
    +  
    +  
    +
    +
    +
    +  
    +  
    +  
    +
    +
    +
    +    
    +    
    +    
    +    
    +    
    +  
    +  
    +  
    +
    +  
    +
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +    
    +  
    +  
    +  
    +  
    +  
    +  
    +
    +  
    +  
    +  
    +  
    +  
    + + + + + + + + + + +
    +
    +
    +
    +
    + +
    + +
    + + + + + +
    +
    + + + + + +
    + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +

    Source code for pyhgf.model.network

    +# Author: Nicolas Legrand <nicolas.legrand@cas.au.dk>
    +
    +from copy import deepcopy
    +from typing import Callable, Dict, List, Optional, Tuple, Union
    +
    +import jax.numpy as jnp
    +import numpy as np
    +import pandas as pd
    +from jax.lax import scan, switch
    +from jax.tree_util import Partial
    +from jax.typing import ArrayLike
    +
    +from pyhgf.plots import plot_correlations, plot_network, plot_nodes, plot_trajectories
    +from pyhgf.typing import (
    +    AdjacencyLists,
    +    Attributes,
    +    Edges,
    +    Inputs,
    +    NetworkParameters,
    +    UpdateSequence,
    +    input_types,
    +)
    +from pyhgf.utils import (
    +    add_edges,
    +    beliefs_propagation,
    +    fill_categorical_state_node,
    +    get_update_sequence,
    +    to_pandas,
    +)
    +
    +
    +
    +[docs] +class Network: + """A predictive coding neural network. + + This is the core class to define and manipulate neural networks, that consists in + 1. attributes, 2. structure and 3. update sequences. + + Attributes + ---------- + attributes : + The attributes of the probabilistic nodes. + edges : + The edges of the probabilistic nodes as a tuple of + :py:class:`pyhgf.typing.AdjacencyLists`. The tuple has the same length as the + node number. For each node, the index lists the value/volatility + parents/children. + inputs : + Information on the input nodes. + node_trajectories : + The dynamic of the node's beliefs after updating. + update_sequence : + The sequence of update functions that are applied during the belief propagation + step. + scan_fn : + The function that is passed to :py:func:`jax.lax.scan`. This is a pre- + parametrized version of :py:func:`pyhgf.networks.beliefs_propagation`. + + """ + +
    +[docs] + def __init__(self) -> None: + """Initialize an empty neural network.""" + self.edges: Edges = () + self.node_trajectories: Dict = {} + self.attributes: Attributes = {} + self.update_sequence: Optional[UpdateSequence] = None + self.scan_fn: Optional[Callable] = None + self.inputs: Inputs
    + + + def create_belief_propagation_fn(self, overwrite: bool = True) -> "Network": + """Create the belief propagation function. + + .. note: + This step is called by default when using py:meth:`input_data`. + + Parameters + ---------- + overwrite : + If `True` (default), create a new belief propagation function and ignore + preexisting values. Otherwise, do not create a new function if the attribute + `scan_fn` is already defined. + + """ + # create the network structure from edges and inputs + self.inputs = Inputs(self.inputs.idx, self.inputs.kind) + self.structure = (self.inputs, self.edges) + + # create the update sequence if it does not already exist + if self.update_sequence is None: + self.set_update_sequence() + + # create the belief propagation function + # this function is used by scan to loop over observations + if self.scan_fn is None: + self.scan_fn = Partial( + beliefs_propagation, + update_sequence=self.update_sequence, + structure=self.structure, + ) + else: + if overwrite: + self.scan_fn = Partial( + beliefs_propagation, + update_sequence=self.update_sequence, + structure=self.structure, + ) + + return self + + def cache_belief_propagation_fn(self) -> "Network": + """Blank call to the belief propagation function. + + .. note: + This step is called by default when using py:meth:`input_data`. It can + sometimes be convenient to call this step independently to chache the JITed + function before fitting the model. + + """ + if self.scan_fn is None: + self = self.create_belief_propagation_fn() + + # blanck call to cache the JIT-ed functions + _ = scan( + self.scan_fn, + self.attributes, + ( + jnp.ones((1, len(self.inputs.idx))), + jnp.ones((1, 1)), + jnp.ones((1, 1)), + ), + ) + + return self + + def input_data( + self, + input_data: np.ndarray, + time_steps: Optional[np.ndarray] = None, + observed: Optional[np.ndarray] = None, + ): + """Add new observations. + + Parameters + ---------- + input_data : + 2d array of new observations (time x features). + time_steps : + Time vector (optional). If `None`, the time vector will default to + `np.ones(len(input_data))`. This vector is automatically transformed + into a time steps vector. + observed : + A 2d boolean array masking `input_data`. In case of missing inputs, (i.e. + `observed` is `0`), the input node will have value and volatility set to + `0.0`. If the parent(s) of this input receive prediction error from other + children, they simply ignore this one. If they are not receiving other + prediction errors, they are updated by keeping the same mean by decreasing + the precision as a function of time to reflect the evolution of the + underlying Gaussian Random Walk. + .. warning:: + Missing inputs are missing observations from the agent's perspective and + should not be used to handle missing data points that were observed (e.g. + missing in the event log, or rejected trials). + + """ + if self.scan_fn is None: + self = self.create_belief_propagation_fn() + if time_steps is None: + time_steps = np.ones((len(input_data), 1)) # time steps vector + else: + time_steps = time_steps[..., jnp.newaxis] + if input_data.ndim == 1: + input_data = input_data[..., jnp.newaxis] + + # is it observation or missing inputs + if observed is None: + observed = np.ones(input_data.shape, dtype=int) + + # this is where the model loops over the whole input time series + # at each time point, the node structure is traversed and beliefs are updated + # using precision-weighted prediction errors + last_attributes, node_trajectories = scan( + self.scan_fn, self.attributes, (input_data, time_steps, observed) + ) + + # trajectories of the network attributes a each time point + self.node_trajectories = node_trajectories + self.last_attributes = last_attributes + + return self + + def input_custom_sequence( + self, + update_branches: Tuple[UpdateSequence], + branches_idx: np.array, + input_data: np.ndarray, + time_steps: Optional[np.ndarray] = None, + observed: Optional[np.ndarray] = None, + ): + """Add new observations with custom update sequences. + + This method should be used when the update sequence should be adapted to the + input data. (e.g. in the case of missing/null observations that should not + trigger node update). + + .. note:: + When the dynamic adaptation of the update sequence is not required, it is + recommended to use :py:meth:`pyhgf.model.HGF.input_data` instead as this + might result in performance improvement. + + Parameters + ---------- + update_branches : + A tuple of UpdateSequence listing the possible update sequences. + branches_idx : + The branches indexes (integers). Should have the same length as the input + data. + input_data : + 2d array of new observations (time x features). + time_steps : + Time vector (optional). If `None`, the time vector will default to + `np.ones(len(input_data))`. This vector is automatically transformed + into a time steps vector. + observed : + A 2d boolean array masking `input_data`. In case of missing inputs, (i.e. + `observed` is `0`), the input node will have value and volatility set to + `0.0`. If the parent(s) of this input receive prediction error from other + children, they simply ignore this one. If they are not receiving other + prediction errors, they are updated by keeping the same mean be decreasing + the precision as a function of time to reflect the evolution of the + underlying Gaussian Random Walk. + .. warning:: + Missing inputs are missing observations from the agent's perspective and + should not be used to handle missing data points that were observed (e.g. + missing in the event log, or rejected trials). + + """ + if time_steps is None: + time_steps = np.ones(len(input_data)) # time steps vector + + # concatenate data and time + if time_steps is None: + time_steps = np.ones((len(input_data), 1)) # time steps vector + else: + time_steps = time_steps[..., jnp.newaxis] + if input_data.ndim == 1: + input_data = input_data[..., jnp.newaxis] + + # is it observation or missing inputs + if observed is None: + observed = np.ones(input_data.shape, dtype=int) + + # create the update functions that will be scanned + branches_fn = [ + Partial( + beliefs_propagation, + update_sequence=seq, + structure=self.structure, + ) + for seq in update_branches + ] + + # create the function that will be scanned + def switching_propagation(attributes, scan_input): + data, idx = scan_input + return switch(idx, branches_fn, attributes, data) + + # wrap the inputs + scan_input = (input_data, time_steps, observed), branches_idx + + # scan over the input data and apply the switching belief propagation functions + _, node_trajectories = scan(switching_propagation, self.attributes, scan_input) + + # the node structure at each value updates + self.node_trajectories = node_trajectories + + # because some of the input nodes might not have been updated, here we manually + # insert the input data to the input node (without triggering updates) + for idx, inp in zip(self.inputs.idx, range(input_data.shape[1])): + self.node_trajectories[idx]["values"] = input_data[inp] + + return self + + def get_network(self) -> NetworkParameters: + """Return the attributes, structure and update sequence defining the network.""" + if self.scan_fn is None: + self = self.create_belief_propagation_fn() + + assert self.update_sequence is not None + + return self.attributes, self.structure, self.update_sequence + + def set_update_sequence(self, update_type: str = "eHGF") -> "Network": + """Generate an update sequence from the network's structure. + + See :py:func:`pyhgf.networks.get_update_sequence` for more details. + + Parameters + ---------- + update_type : + The type of update to perform for volatility coupling. Can be `"eHGF"` + (defaults) or `"standard"`. The eHGF update step was proposed as an + alternative to the original definition in that it starts by updating the + mean and then the precision of the parent node, which generally reduces the + errors associated with impossible parameter space and improves sampling. + + """ + self.update_sequence = tuple( + get_update_sequence(network=self, update_type=update_type) + ) + + return self + + def add_nodes( + self, + kind: str = "continuous-state", + n_nodes: int = 1, + node_parameters: Dict = {}, + value_children: Optional[Union[List, Tuple, int]] = None, + value_parents: Optional[Union[List, Tuple, int]] = None, + volatility_children: Optional[Union[List, Tuple, int]] = None, + volatility_parents: Optional[Union[List, Tuple, int]] = None, + coupling_fn: Tuple[Optional[Callable], ...] = (None,), + **additional_parameters, + ): + """Add new input/state node(s) to the neural network. + + Parameters + ---------- + kind : + The kind of node to create. If `"continuous-state"` (default), the node will + be a regular state node that can have value and/or volatility + parents/children. If `"binary-state"`, the node should be the + value parent of a binary input. State nodes filtering distribution from the + exponential family can be created using the `"ef-"` prefix (e.g. + `"ef-normal"` for a univariate normal distribution). Note that only a few + distributions are implemented at the moment. + + In addition to state nodes, four types of input nodes are supported: + - `generic-input`: receive a value or an array and pass it to the parent + nodes. + - `continuous-input`: receive a continuous observation as input. + - `binary-input` receives a single boolean as observation. The parameters + provided to the binary input node contain: 1. `binary_precision`, the binary + input precision, which defaults to `jnp.inf`. 2. `eta0`, the lower bound of + the binary process, which defaults to `0.0`. 3. `eta1`, the higher bound of + the binary process, which defaults to `1.0`. + - `categorical-input` receives a boolean array as observation. The + parameters provided to the categorical input node contain: 1. + `n_categories`, the number of categories implied by the categorical state. + + .. note:: + When using a categorical state node, the `binary_parameters` can be used to + parametrize the implied collection of binary HGFs. + + .. note: + When using `categorical-input`, the implied `n` binary HGFs are + automatically created with a shared volatility parent at the third level, + resulting in a network with `3n + 2` nodes in total. + + n_nodes : + The number of nodes to create (defaults to `1`). + node_parameters : + Dictionary of parameters. The default values are automatically inferred + from the node type. Different values can be provided by passing them in the + dictionary, which will overwrite the defaults. + value_children : + Indexes to the node's value children. The index can be passed as an integer + or a list of integers, in case of multiple children. The coupling strength + can be controlled by passing a tuple, where the first item is the list of + indexes, and the second item is the list of coupling strengths. + value_parents : + Indexes to the node's value parents. The index can be passed as an integer + or a list of integers, in case of multiple children. The coupling strength + can be controlled by passing a tuple, where the first item is the list of + indexes, and the second item is the list of coupling strengths. + volatility_children : + Indexes to the node's volatility children. The index can be passed as an + integer or a list of integers, in case of multiple children. The coupling + strength can be controlled by passing a tuple, where the first item is the + list of indexes, and the second item is the list of coupling strengths. + volatility_parents : + Indexes to the node's volatility parents. The index can be passed as an + integer or a list of integers, in case of multiple children. The coupling + strength can be controlled by passing a tuple, where the first item is the + list of indexes, and the second item is the list of coupling strengths. + coupling_fn : + Coupling function(s) between the current node and its value children. + It has to be provided as a tuple. If multiple value children are specified, + the coupling functions must be stated in the same order of the children. + Note: if a node has multiple parents nodes with different coupling + functions, a coupling function should be indicated for all the parent nodes. + If no coupling function is stated, the relationship between nodes is assumed + linear. + **kwargs : + Additional keyword parameters will be passed and overwrite the node + attributes. + + """ + if kind not in [ + "continuous-input", + "binary-input", + "categorical-input", + "DP-state", + "ef-normal", + "generic-input", + "continuous-state", + "binary-state", + ]: + raise ValueError( + ( + "Invalid node type. Should be one of the following: " + "'continuous-input', 'binary-input', 'categorical-input', " + "'DP-state', 'continuous-state', 'binary-state', 'ef-normal'." + ) + ) + + # assess children number + # this is required to ensure the coupling functions match + children_number = 1 + if value_children is None: + children_number = 0 + elif isinstance(value_children, int): + children_number = 1 + elif isinstance(value_children, list): + children_number = len(value_children) + + # transform coupling parameter into tuple of indexes and strenghts + couplings = [] + for indexes in [ + value_parents, + volatility_parents, + value_children, + volatility_children, + ]: + if indexes is not None: + if isinstance(indexes, int): + coupling_idxs = tuple([indexes]) + coupling_strengths = tuple([1.0]) + elif isinstance(indexes, list): + coupling_idxs = tuple(indexes) + coupling_strengths = tuple([1.0] * len(coupling_idxs)) + elif isinstance(indexes, tuple): + coupling_idxs = tuple(indexes[0]) + coupling_strengths = tuple(indexes[1]) + else: + coupling_idxs, coupling_strengths = None, None + couplings.append((coupling_idxs, coupling_strengths)) + value_parents, volatility_parents, value_children, volatility_children = ( + couplings + ) + + # create the default parameters set according to the node type + if kind == "continuous-state": + default_parameters = { + "mean": 0.0, + "expected_mean": 0.0, + "precision": 1.0, + "expected_precision": 1.0, + "volatility_coupling_children": volatility_children[1], + "volatility_coupling_parents": volatility_parents[1], + "value_coupling_children": value_children[1], + "value_coupling_parents": value_parents[1], + "tonic_volatility": -4.0, + "tonic_drift": 0.0, + "autoconnection_strength": 1.0, + "observed": 1, + "temp": { + "effective_precision": 0.0, + "value_prediction_error": 0.0, + "volatility_prediction_error": 0.0, + "expected_precision_children": 0.0, + }, + } + elif kind == "binary-state": + default_parameters = { + "mean": 0.0, + "expected_mean": 0.0, + "precision": 1.0, + "expected_precision": 1.0, + "volatility_coupling_children": volatility_children[1], + "volatility_coupling_parents": volatility_parents[1], + "value_coupling_children": value_children[1], + "value_coupling_parents": value_parents[1], + "tonic_volatility": 0.0, + "tonic_drift": 0.0, + "autoconnection_strength": 1.0, + "observed": 1, + "binary_expected_precision": 0.0, + "temp": { + "effective_precision": 0.0, + "value_prediction_error": 0.0, + "volatility_prediction_error": 0.0, + "expected_precision_children": 0.0, + }, + } + elif kind == "generic-input": + default_parameters = { + "values": 0.0, + "time_step": 0.0, + "observed": 0, + } + elif kind == "continuous-input": + default_parameters = { + "volatility_coupling_parents": None, + "value_coupling_parents": None, + "input_precision": 1e4, + "expected_precision": 1e4, + "time_step": 0.0, + "values": 0.0, + "surprise": 0.0, + "observed": 0, + "temp": { + "effective_precision": 1.0, # should be fixed to 1 for input nodes + "value_prediction_error": 0.0, + "volatility_prediction_error": 0.0, + }, + } + elif kind == "binary-input": + default_parameters = { + "expected_precision": jnp.inf, + "eta0": 0.0, + "eta1": 1.0, + "time_step": 0.0, + "values": 0.0, + "observed": 0, + "surprise": 0.0, + } + elif kind == "categorical-input": + if "n_categories" in node_parameters: + n_categories = node_parameters["n_categories"] + elif "n_categories" in additional_parameters: + n_categories = additional_parameters["n_categories"] + else: + n_categories = 4 + binary_parameters = { + "eta0": 0.0, + "eta1": 1.0, + "binary_precision": jnp.inf, + "n_categories": n_categories, + "precision_1": 1.0, + "precision_2": 1.0, + "precision_3": 1.0, + "mean_1": 0.0, + "mean_2": -jnp.log(n_categories - 1), + "mean_3": 0.0, + "tonic_volatility_2": -4.0, + "tonic_volatility_3": -4.0, + } + binary_idxs: List[int] = [ + 1 + i + len(self.edges) for i in range(n_categories) + ] + default_parameters = { + "binary_idxs": binary_idxs, # type: ignore + "n_categories": n_categories, + "surprise": 0.0, + "kl_divergence": 0.0, + "time_step": jnp.nan, + "alpha": jnp.ones(n_categories), + "pe": jnp.zeros(n_categories), + "xi": jnp.array([1.0 / n_categories] * n_categories), + "mean": jnp.array([1.0 / n_categories] * n_categories), + "values": jnp.zeros(n_categories), + "binary_parameters": binary_parameters, + } + elif "ef-normal" in kind: + default_parameters = { + "nus": 3.0, + "xis": jnp.array([0.0, 1.0]), + "values": 0.0, + "observed": 1.0, + } + elif kind == "DP-state": + + if "batch_size" in additional_parameters.keys(): + batch_size = additional_parameters["batch_size"] + elif "batch_size" in node_parameters.keys(): + batch_size = node_parameters["batch_size"] + else: + batch_size = 10 + + default_parameters = { + "batch_size": batch_size, # number of branches available in the network + "n": jnp.zeros(batch_size), # number of observation in each cluster + "n_total": 0, # the total number of observations in the node + "alpha": 1.0, # concentration parameter for the implied Dirichlet dist. + "expected_means": jnp.zeros(batch_size), + "expected_sigmas": jnp.ones(batch_size), + "sensory_precision": 1.0, + "activated": jnp.zeros(batch_size), + "value_coupling_children": (1.0,), + "values": 0.0, + "n_active_cluster": 0, + } + + # Update the default node parameters using keywords args and dictonary + if bool(additional_parameters): + # ensure that all passed values are valid keys + invalid_keys = [ + key + for key in additional_parameters.keys() + if key not in default_parameters.keys() + ] + + if invalid_keys: + raise ValueError( + ( + "Some parameter(s) passed as keyword arguments were not found " + f"in the default key list for this node (i.e. {invalid_keys})." + " If you want to create a new key in the node attributes, " + "please use the node_parameters argument instead." + ) + ) + + # if keyword parameters were provided, update the default_parameters dict + default_parameters.update(additional_parameters) + + # update the defaults using the dict parameters + default_parameters.update(node_parameters) + node_parameters = default_parameters + + if "input" in kind: + # "continuous": 0, "binary": 1, "categorical": 2, "generic": 3 + input_type = input_types[kind.split("-")[0]] + else: + input_type = None + + # define the type of node that is created + if "input" in kind: + node_type = 0 + elif "binary-state" in kind: + node_type = 1 + elif "continuous-state" in kind: + node_type = 2 + elif "ef-normal" in kind: + node_type = 3 + elif "DP-state" in kind: + node_type = 4 + + for _ in range(n_nodes): + # convert the structure to a list to modify it + edges_as_list: List = list(self.edges) + + node_idx = len(self.attributes) # the index of the new node + + # for mutiple value children, set a default tuple with corresponding length + if children_number != len(coupling_fn): + if coupling_fn == (None,): + coupling_fn = children_number * coupling_fn + else: + raise ValueError( + "The number of coupling fn and value children do not match" + ) + + # add a new edge + edges_as_list.append( + AdjacencyLists( + node_type, None, None, None, None, coupling_fn=coupling_fn + ) + ) + + # convert the list back to a tuple + self.edges = tuple(edges_as_list) + + if node_idx == 0: + # this is the first node, create the node structure + self.attributes = {node_idx: deepcopy(node_parameters)} + if input_type is not None: + self.inputs = Inputs((node_idx,), (input_type,)) + else: + # update the node structure + self.attributes[node_idx] = deepcopy(node_parameters) + + if input_type is not None: + # add information about the new input node in the indexes + new_idx = self.inputs.idx + new_idx += (node_idx,) + new_kind = self.inputs.kind + new_kind += (input_type,) + self.inputs = Inputs(new_idx, new_kind) + + # Update the edges of the parents and children accordingly + # -------------------------------------------------------- + if value_parents[0] is not None: + self.add_edges( + kind="value", + parent_idxs=value_parents[0], + children_idxs=node_idx, + coupling_strengths=value_parents[1], # type: ignore + ) + if value_children[0] is not None: + self.add_edges( + kind="value", + parent_idxs=node_idx, + children_idxs=value_children[0], + coupling_strengths=value_children[1], # type: ignore + coupling_fn=coupling_fn, + ) + if volatility_children[0] is not None: + self.add_edges( + kind="volatility", + parent_idxs=node_idx, + children_idxs=volatility_children[0], + coupling_strengths=volatility_children[1], # type: ignore + ) + if volatility_parents[0] is not None: + self.add_edges( + kind="volatility", + parent_idxs=volatility_parents[0], + children_idxs=node_idx, + coupling_strengths=volatility_parents[1], # type: ignore + ) + + if kind == "categorical-input": + # if we are creating a categorical state or state-transition node + # we have to generate the implied binary network(s) here + self = fill_categorical_state_node( + self, + node_idx=node_idx, + binary_input_idxs=node_parameters["binary_idxs"], # type: ignore + binary_parameters=binary_parameters, + ) + + return self + + def plot_nodes(self, node_idxs: Union[int, List[int]], **kwargs): + """Plot the node(s) beliefs trajectories.""" + return plot_nodes(network=self, node_idxs=node_idxs, **kwargs) + + def plot_trajectories(self, **kwargs): + """Plot the parameters trajectories.""" + return plot_trajectories(network=self, **kwargs) + + def plot_correlations(self): + """Plot the heatmap of cross-trajectories correlation.""" + return plot_correlations(network=self) + + def plot_network(self): + """Visualization of node network using GraphViz.""" + return plot_network(network=self) + + def to_pandas(self) -> pd.DataFrame: + """Export the nodes trajectories and surprise as a Pandas data frame. + + Returns + ------- + structure_df : + Pandas data frame with the time series of sufficient statistics and + the surprise of each node in the structure. + + """ + return to_pandas(self) + + def surprise( + self, + response_function: Callable, + response_function_inputs: Tuple = (), + response_function_parameters: Optional[ + Union[np.ndarray, ArrayLike, float] + ] = None, + ) -> float: + """Surprise of the model conditioned by the response function. + + The surprise (negative log probability) depends on the input data, the model + parameters, the response function, its inputs and its additional parameters + (optional). + + Parameters + ---------- + response_function : + The response function to use to compute the model surprise. If `None` + (default), return the sum of Gaussian surprise if `model_type=="continuous"` + or the sum of the binary surprise if `model_type=="binary"`. + response_function_inputs : + A list of tuples with the same length as the number of models. Each tuple + contains additional data and parameters that can be accessible to the + response functions. + response_function_parameters : + A list of additional parameters that will be passed to the response + function. This can include values over which inferece is performed in a + PyMC model (e.g. the inverse temperature of a binary softmax). + + Returns + ------- + surprise : + The model's surprise given the input data and the response function. + + """ + return response_function( + hgf=self, + response_function_inputs=response_function_inputs, + response_function_parameters=response_function_parameters, + ) + return self + + def add_edges( + self, + kind="value", + parent_idxs=Union[int, List[int]], + children_idxs=Union[int, List[int]], + coupling_strengths: Union[float, List[float], Tuple[float]] = 1.0, + coupling_fn: Tuple[Optional[Callable], ...] = (None,), + ) -> "Network": + """Add a value or volatility coupling link between a set of nodes. + + Parameters + ---------- + kind : + The kind of coupling, can be `"value"` or `"volatility"`. + parent_idxs : + The index(es) of the parent node(s). + children_idxs : + The index(es) of the children node(s). + coupling_strengths : + The coupling strength betwen the parents and children. + coupling_fn : + Coupling function(s) between the current node and its value children. + It has to be provided as a tuple. If multiple value children are specified, + the coupling functions must be stated in the same order of the children. + Note: if a node has multiple parents nodes with different coupling + functions, a coupling function should be indicated for all the parent nodes. + If no coupling function is stated, the relationship between nodes is assumed + linear. + + """ + attributes, edges = add_edges( + attributes=self.attributes, + edges=self.edges, + kind=kind, + parent_idxs=parent_idxs, + children_idxs=children_idxs, + coupling_strengths=coupling_strengths, + coupling_fn=coupling_fn, + ) + + self.attributes = attributes + self.edges = edges + + return self
    + +
    + +
    + + + + + +
    + +
    +
    +
    + +
    + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/dev/_modules/pyhgf/plots.html b/dev/_modules/pyhgf/plots.html index 3f20835c6..74b28db08 100644 --- a/dev/_modules/pyhgf/plots.html +++ b/dev/_modules/pyhgf/plots.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/response.html b/dev/_modules/pyhgf/response.html index 1bd861059..6cd3d0522 100644 --- a/dev/_modules/pyhgf/response.html +++ b/dev/_modules/pyhgf/response.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/posterior/binary.html b/dev/_modules/pyhgf/updates/posterior/binary.html index ccd9373de..73fae2fef 100644 --- a/dev/_modules/pyhgf/updates/posterior/binary.html +++ b/dev/_modules/pyhgf/updates/posterior/binary.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/posterior/categorical.html b/dev/_modules/pyhgf/updates/posterior/categorical.html index 0c40aa385..349e6399e 100644 --- a/dev/_modules/pyhgf/updates/posterior/categorical.html +++ b/dev/_modules/pyhgf/updates/posterior/categorical.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/posterior/continuous.html b/dev/_modules/pyhgf/updates/posterior/continuous.html index 75141adf3..4d29d0e61 100644 --- a/dev/_modules/pyhgf/updates/posterior/continuous.html +++ b/dev/_modules/pyhgf/updates/posterior/continuous.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/posterior/exponential.html b/dev/_modules/pyhgf/updates/posterior/exponential.html index ab891db19..7b1c59083 100644 --- a/dev/_modules/pyhgf/updates/posterior/exponential.html +++ b/dev/_modules/pyhgf/updates/posterior/exponential.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/prediction/binary.html b/dev/_modules/pyhgf/updates/prediction/binary.html index 5367a15c6..b8e31fc22 100644 --- a/dev/_modules/pyhgf/updates/prediction/binary.html +++ b/dev/_modules/pyhgf/updates/prediction/binary.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/prediction/continuous.html b/dev/_modules/pyhgf/updates/prediction/continuous.html index e7a36c30b..95e597dbe 100644 --- a/dev/_modules/pyhgf/updates/prediction/continuous.html +++ b/dev/_modules/pyhgf/updates/prediction/continuous.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/prediction/dirichlet.html b/dev/_modules/pyhgf/updates/prediction/dirichlet.html index cc828f80e..c9e5ca7df 100644 --- a/dev/_modules/pyhgf/updates/prediction/dirichlet.html +++ b/dev/_modules/pyhgf/updates/prediction/dirichlet.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/prediction_error/inputs/binary.html b/dev/_modules/pyhgf/updates/prediction_error/inputs/binary.html index 221b4c9e7..d9496428f 100644 --- a/dev/_modules/pyhgf/updates/prediction_error/inputs/binary.html +++ b/dev/_modules/pyhgf/updates/prediction_error/inputs/binary.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/prediction_error/inputs/continuous.html b/dev/_modules/pyhgf/updates/prediction_error/inputs/continuous.html index 0905e64d4..d8b556bb6 100644 --- a/dev/_modules/pyhgf/updates/prediction_error/inputs/continuous.html +++ b/dev/_modules/pyhgf/updates/prediction_error/inputs/continuous.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/prediction_error/inputs/generic.html b/dev/_modules/pyhgf/updates/prediction_error/inputs/generic.html index 237bc2802..978583bcf 100644 --- a/dev/_modules/pyhgf/updates/prediction_error/inputs/generic.html +++ b/dev/_modules/pyhgf/updates/prediction_error/inputs/generic.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/prediction_error/nodes/binary.html b/dev/_modules/pyhgf/updates/prediction_error/nodes/binary.html index 5f3946a12..8f6388e2f 100644 --- a/dev/_modules/pyhgf/updates/prediction_error/nodes/binary.html +++ b/dev/_modules/pyhgf/updates/prediction_error/nodes/binary.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/prediction_error/nodes/continuous.html b/dev/_modules/pyhgf/updates/prediction_error/nodes/continuous.html index 508322688..bbc208de0 100644 --- a/dev/_modules/pyhgf/updates/prediction_error/nodes/continuous.html +++ b/dev/_modules/pyhgf/updates/prediction_error/nodes/continuous.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/updates/prediction_error/nodes/dirichlet.html b/dev/_modules/pyhgf/updates/prediction_error/nodes/dirichlet.html index 19fd7c299..8d9ed3b89 100644 --- a/dev/_modules/pyhgf/updates/prediction_error/nodes/dirichlet.html +++ b/dev/_modules/pyhgf/updates/prediction_error/nodes/dirichlet.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_modules/pyhgf/utils.html b/dev/_modules/pyhgf/utils.html index 5087a85f1..aa27478e3 100644 --- a/dev/_modules/pyhgf/utils.html +++ b/dev/_modules/pyhgf/utils.html @@ -32,7 +32,6 @@ - @@ -47,7 +46,6 @@ - diff --git a/dev/_sources/api.rst.txt b/dev/_sources/api.rst.txt index b92d5f69e..405d12944 100644 --- a/dev/_sources/api.rst.txt +++ b/dev/_sources/api.rst.txt @@ -196,6 +196,7 @@ embedded in models using PyMC>=5.0.0. .. autosummary:: :toctree: generated/pyhgf.distribution + :nosignatures: logp hgf_logp @@ -214,8 +215,10 @@ and creates a standard node structure for these models. .. autosummary:: :toctree: generated/pyhgf.model + :nosignatures: HGF + Network Plots ***** diff --git a/dev/_sources/generated/pyhgf.model/pyhgf.model.Network.rst.txt b/dev/_sources/generated/pyhgf.model/pyhgf.model.Network.rst.txt new file mode 100644 index 000000000..9dfbda4a7 --- /dev/null +++ b/dev/_sources/generated/pyhgf.model/pyhgf.model.Network.rst.txt @@ -0,0 +1,36 @@ +pyhgf.model.Network +=================== + +.. currentmodule:: pyhgf.model + +.. autoclass:: Network + + + .. automethod:: __init__ + + + .. rubric:: Methods + + .. autosummary:: + + ~Network.__init__ + ~Network.add_edges + ~Network.add_nodes + ~Network.cache_belief_propagation_fn + ~Network.create_belief_propagation_fn + ~Network.get_network + ~Network.input_custom_sequence + ~Network.input_data + ~Network.plot_correlations + ~Network.plot_network + ~Network.plot_nodes + ~Network.plot_trajectories + ~Network.set_update_sequence + ~Network.surprise + ~Network.to_pandas + + + + + + \ No newline at end of file diff --git a/dev/_sphinx_design_static/design-tabs.js b/dev/_sphinx_design_static/design-tabs.js deleted file mode 100644 index b25bd6a4f..000000000 --- a/dev/_sphinx_design_static/design-tabs.js +++ /dev/null @@ -1,101 +0,0 @@ -// @ts-check - -// Extra JS capability for selected tabs to be synced -// The selection is stored in local storage so that it persists across page loads. - -/** - * @type {Record} - */ -let sd_id_to_elements = {}; -const storageKeyPrefix = "sphinx-design-tab-id-"; - -/** - * Create a key for a tab element. - * @param {HTMLElement} el - The tab element. - * @returns {[string, string, string] | null} - The key. - * - */ -function create_key(el) { - let syncId = el.getAttribute("data-sync-id"); - let syncGroup = el.getAttribute("data-sync-group"); - if (!syncId || !syncGroup) return null; - return [syncGroup, syncId, syncGroup + "--" + syncId]; -} - -/** - * Initialize the tab selection. - * - */ -function ready() { - // Find all tabs with sync data - - /** @type {string[]} */ - let groups = []; - - document.querySelectorAll(".sd-tab-label").forEach((label) => { - if (label instanceof HTMLElement) { - let data = create_key(label); - if (data) { - let [group, id, key] = data; - - // add click event listener - // @ts-ignore - label.onclick = onSDLabelClick; - - // store map of key to elements - if (!sd_id_to_elements[key]) { - sd_id_to_elements[key] = []; - } - sd_id_to_elements[key].push(label); - - if (groups.indexOf(group) === -1) { - groups.push(group); - // Check if a specific tab has been selected via URL parameter - const tabParam = new URLSearchParams(window.location.search).get( - group - ); - if (tabParam) { - console.log( - "sphinx-design: Selecting tab id for group '" + - group + - "' from URL parameter: " + - tabParam - ); - window.sessionStorage.setItem(storageKeyPrefix + group, tabParam); - } - } - - // Check is a specific tab has been selected previously - let previousId = window.sessionStorage.getItem( - storageKeyPrefix + group - ); - if (previousId === id) { - // console.log( - // "sphinx-design: Selecting tab from session storage: " + id - // ); - // @ts-ignore - label.previousElementSibling.checked = true; - } - } - } - }); -} - -/** - * Activate other tabs with the same sync id. - * - * @this {HTMLElement} - The element that was clicked. - */ -function onSDLabelClick() { - let data = create_key(this); - if (!data) return; - let [group, id, key] = data; - for (const label of sd_id_to_elements[key]) { - if (label === this) continue; - // @ts-ignore - label.previousElementSibling.checked = true; - } - window.sessionStorage.setItem(storageKeyPrefix + group, id); -} - -document.addEventListener("DOMContentLoaded", ready, false); diff --git a/dev/_sphinx_design_static/sphinx-design.min.css b/dev/_sphinx_design_static/sphinx-design.min.css deleted file mode 100644 index 860c36da0..000000000 --- a/dev/_sphinx_design_static/sphinx-design.min.css +++ /dev/null @@ -1 +0,0 @@ -.sd-bg-primary{background-color:var(--sd-color-primary) !important}.sd-bg-text-primary{color:var(--sd-color-primary-text) !important}button.sd-bg-primary:focus,button.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}a.sd-bg-primary:focus,a.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}.sd-bg-secondary{background-color:var(--sd-color-secondary) !important}.sd-bg-text-secondary{color:var(--sd-color-secondary-text) !important}button.sd-bg-secondary:focus,button.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}a.sd-bg-secondary:focus,a.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}.sd-bg-success{background-color:var(--sd-color-success) !important}.sd-bg-text-success{color:var(--sd-color-success-text) !important}button.sd-bg-success:focus,button.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}a.sd-bg-success:focus,a.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}.sd-bg-info{background-color:var(--sd-color-info) !important}.sd-bg-text-info{color:var(--sd-color-info-text) !important}button.sd-bg-info:focus,button.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}a.sd-bg-info:focus,a.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}.sd-bg-warning{background-color:var(--sd-color-warning) !important}.sd-bg-text-warning{color:var(--sd-color-warning-text) !important}button.sd-bg-warning:focus,button.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}a.sd-bg-warning:focus,a.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}.sd-bg-danger{background-color:var(--sd-color-danger) !important}.sd-bg-text-danger{color:var(--sd-color-danger-text) !important}button.sd-bg-danger:focus,button.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}a.sd-bg-danger:focus,a.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}.sd-bg-light{background-color:var(--sd-color-light) !important}.sd-bg-text-light{color:var(--sd-color-light-text) !important}button.sd-bg-light:focus,button.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}a.sd-bg-light:focus,a.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}.sd-bg-muted{background-color:var(--sd-color-muted) !important}.sd-bg-text-muted{color:var(--sd-color-muted-text) !important}button.sd-bg-muted:focus,button.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}a.sd-bg-muted:focus,a.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}.sd-bg-dark{background-color:var(--sd-color-dark) !important}.sd-bg-text-dark{color:var(--sd-color-dark-text) !important}button.sd-bg-dark:focus,button.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}a.sd-bg-dark:focus,a.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}.sd-bg-black{background-color:var(--sd-color-black) !important}.sd-bg-text-black{color:var(--sd-color-black-text) !important}button.sd-bg-black:focus,button.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}a.sd-bg-black:focus,a.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}.sd-bg-white{background-color:var(--sd-color-white) !important}.sd-bg-text-white{color:var(--sd-color-white-text) !important}button.sd-bg-white:focus,button.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}a.sd-bg-white:focus,a.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}.sd-text-primary,.sd-text-primary>p{color:var(--sd-color-primary) !important}a.sd-text-primary:focus,a.sd-text-primary:hover{color:var(--sd-color-primary-highlight) !important}.sd-text-secondary,.sd-text-secondary>p{color:var(--sd-color-secondary) !important}a.sd-text-secondary:focus,a.sd-text-secondary:hover{color:var(--sd-color-secondary-highlight) !important}.sd-text-success,.sd-text-success>p{color:var(--sd-color-success) !important}a.sd-text-success:focus,a.sd-text-success:hover{color:var(--sd-color-success-highlight) !important}.sd-text-info,.sd-text-info>p{color:var(--sd-color-info) !important}a.sd-text-info:focus,a.sd-text-info:hover{color:var(--sd-color-info-highlight) !important}.sd-text-warning,.sd-text-warning>p{color:var(--sd-color-warning) !important}a.sd-text-warning:focus,a.sd-text-warning:hover{color:var(--sd-color-warning-highlight) !important}.sd-text-danger,.sd-text-danger>p{color:var(--sd-color-danger) !important}a.sd-text-danger:focus,a.sd-text-danger:hover{color:var(--sd-color-danger-highlight) !important}.sd-text-light,.sd-text-light>p{color:var(--sd-color-light) !important}a.sd-text-light:focus,a.sd-text-light:hover{color:var(--sd-color-light-highlight) !important}.sd-text-muted,.sd-text-muted>p{color:var(--sd-color-muted) !important}a.sd-text-muted:focus,a.sd-text-muted:hover{color:var(--sd-color-muted-highlight) !important}.sd-text-dark,.sd-text-dark>p{color:var(--sd-color-dark) !important}a.sd-text-dark:focus,a.sd-text-dark:hover{color:var(--sd-color-dark-highlight) !important}.sd-text-black,.sd-text-black>p{color:var(--sd-color-black) !important}a.sd-text-black:focus,a.sd-text-black:hover{color:var(--sd-color-black-highlight) !important}.sd-text-white,.sd-text-white>p{color:var(--sd-color-white) !important}a.sd-text-white:focus,a.sd-text-white:hover{color:var(--sd-color-white-highlight) !important}.sd-outline-primary{border-color:var(--sd-color-primary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-primary:focus,a.sd-outline-primary:hover{border-color:var(--sd-color-primary-highlight) !important}.sd-outline-secondary{border-color:var(--sd-color-secondary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-secondary:focus,a.sd-outline-secondary:hover{border-color:var(--sd-color-secondary-highlight) !important}.sd-outline-success{border-color:var(--sd-color-success) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-success:focus,a.sd-outline-success:hover{border-color:var(--sd-color-success-highlight) !important}.sd-outline-info{border-color:var(--sd-color-info) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-info:focus,a.sd-outline-info:hover{border-color:var(--sd-color-info-highlight) !important}.sd-outline-warning{border-color:var(--sd-color-warning) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-warning:focus,a.sd-outline-warning:hover{border-color:var(--sd-color-warning-highlight) !important}.sd-outline-danger{border-color:var(--sd-color-danger) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-danger:focus,a.sd-outline-danger:hover{border-color:var(--sd-color-danger-highlight) !important}.sd-outline-light{border-color:var(--sd-color-light) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-light:focus,a.sd-outline-light:hover{border-color:var(--sd-color-light-highlight) !important}.sd-outline-muted{border-color:var(--sd-color-muted) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-muted:focus,a.sd-outline-muted:hover{border-color:var(--sd-color-muted-highlight) !important}.sd-outline-dark{border-color:var(--sd-color-dark) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-dark:focus,a.sd-outline-dark:hover{border-color:var(--sd-color-dark-highlight) !important}.sd-outline-black{border-color:var(--sd-color-black) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-black:focus,a.sd-outline-black:hover{border-color:var(--sd-color-black-highlight) !important}.sd-outline-white{border-color:var(--sd-color-white) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-white:focus,a.sd-outline-white:hover{border-color:var(--sd-color-white-highlight) !important}.sd-bg-transparent{background-color:transparent !important}.sd-outline-transparent{border-color:transparent !important}.sd-text-transparent{color:transparent !important}.sd-p-0{padding:0 !important}.sd-pt-0,.sd-py-0{padding-top:0 !important}.sd-pr-0,.sd-px-0{padding-right:0 !important}.sd-pb-0,.sd-py-0{padding-bottom:0 !important}.sd-pl-0,.sd-px-0{padding-left:0 !important}.sd-p-1{padding:.25rem !important}.sd-pt-1,.sd-py-1{padding-top:.25rem !important}.sd-pr-1,.sd-px-1{padding-right:.25rem !important}.sd-pb-1,.sd-py-1{padding-bottom:.25rem !important}.sd-pl-1,.sd-px-1{padding-left:.25rem !important}.sd-p-2{padding:.5rem !important}.sd-pt-2,.sd-py-2{padding-top:.5rem !important}.sd-pr-2,.sd-px-2{padding-right:.5rem !important}.sd-pb-2,.sd-py-2{padding-bottom:.5rem !important}.sd-pl-2,.sd-px-2{padding-left:.5rem !important}.sd-p-3{padding:1rem !important}.sd-pt-3,.sd-py-3{padding-top:1rem !important}.sd-pr-3,.sd-px-3{padding-right:1rem !important}.sd-pb-3,.sd-py-3{padding-bottom:1rem !important}.sd-pl-3,.sd-px-3{padding-left:1rem !important}.sd-p-4{padding:1.5rem !important}.sd-pt-4,.sd-py-4{padding-top:1.5rem !important}.sd-pr-4,.sd-px-4{padding-right:1.5rem !important}.sd-pb-4,.sd-py-4{padding-bottom:1.5rem !important}.sd-pl-4,.sd-px-4{padding-left:1.5rem !important}.sd-p-5{padding:3rem !important}.sd-pt-5,.sd-py-5{padding-top:3rem !important}.sd-pr-5,.sd-px-5{padding-right:3rem !important}.sd-pb-5,.sd-py-5{padding-bottom:3rem !important}.sd-pl-5,.sd-px-5{padding-left:3rem !important}.sd-m-auto{margin:auto !important}.sd-mt-auto,.sd-my-auto{margin-top:auto !important}.sd-mr-auto,.sd-mx-auto{margin-right:auto !important}.sd-mb-auto,.sd-my-auto{margin-bottom:auto !important}.sd-ml-auto,.sd-mx-auto{margin-left:auto !important}.sd-m-0{margin:0 !important}.sd-mt-0,.sd-my-0{margin-top:0 !important}.sd-mr-0,.sd-mx-0{margin-right:0 !important}.sd-mb-0,.sd-my-0{margin-bottom:0 !important}.sd-ml-0,.sd-mx-0{margin-left:0 !important}.sd-m-1{margin:.25rem !important}.sd-mt-1,.sd-my-1{margin-top:.25rem !important}.sd-mr-1,.sd-mx-1{margin-right:.25rem !important}.sd-mb-1,.sd-my-1{margin-bottom:.25rem !important}.sd-ml-1,.sd-mx-1{margin-left:.25rem !important}.sd-m-2{margin:.5rem !important}.sd-mt-2,.sd-my-2{margin-top:.5rem !important}.sd-mr-2,.sd-mx-2{margin-right:.5rem !important}.sd-mb-2,.sd-my-2{margin-bottom:.5rem !important}.sd-ml-2,.sd-mx-2{margin-left:.5rem !important}.sd-m-3{margin:1rem !important}.sd-mt-3,.sd-my-3{margin-top:1rem !important}.sd-mr-3,.sd-mx-3{margin-right:1rem !important}.sd-mb-3,.sd-my-3{margin-bottom:1rem !important}.sd-ml-3,.sd-mx-3{margin-left:1rem !important}.sd-m-4{margin:1.5rem !important}.sd-mt-4,.sd-my-4{margin-top:1.5rem !important}.sd-mr-4,.sd-mx-4{margin-right:1.5rem !important}.sd-mb-4,.sd-my-4{margin-bottom:1.5rem !important}.sd-ml-4,.sd-mx-4{margin-left:1.5rem !important}.sd-m-5{margin:3rem !important}.sd-mt-5,.sd-my-5{margin-top:3rem !important}.sd-mr-5,.sd-mx-5{margin-right:3rem !important}.sd-mb-5,.sd-my-5{margin-bottom:3rem !important}.sd-ml-5,.sd-mx-5{margin-left:3rem !important}.sd-w-25{width:25% !important}.sd-w-50{width:50% !important}.sd-w-75{width:75% !important}.sd-w-100{width:100% !important}.sd-w-auto{width:auto !important}.sd-h-25{height:25% !important}.sd-h-50{height:50% !important}.sd-h-75{height:75% !important}.sd-h-100{height:100% !important}.sd-h-auto{height:auto !important}.sd-d-none{display:none !important}.sd-d-inline{display:inline !important}.sd-d-inline-block{display:inline-block !important}.sd-d-block{display:block !important}.sd-d-grid{display:grid !important}.sd-d-flex-row{display:-ms-flexbox !important;display:flex !important;flex-direction:row !important}.sd-d-flex-column{display:-ms-flexbox !important;display:flex !important;flex-direction:column !important}.sd-d-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}@media(min-width: 576px){.sd-d-sm-none{display:none !important}.sd-d-sm-inline{display:inline !important}.sd-d-sm-inline-block{display:inline-block !important}.sd-d-sm-block{display:block !important}.sd-d-sm-grid{display:grid !important}.sd-d-sm-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-sm-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 768px){.sd-d-md-none{display:none !important}.sd-d-md-inline{display:inline !important}.sd-d-md-inline-block{display:inline-block !important}.sd-d-md-block{display:block !important}.sd-d-md-grid{display:grid !important}.sd-d-md-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-md-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 992px){.sd-d-lg-none{display:none !important}.sd-d-lg-inline{display:inline !important}.sd-d-lg-inline-block{display:inline-block !important}.sd-d-lg-block{display:block !important}.sd-d-lg-grid{display:grid !important}.sd-d-lg-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-lg-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 1200px){.sd-d-xl-none{display:none !important}.sd-d-xl-inline{display:inline !important}.sd-d-xl-inline-block{display:inline-block !important}.sd-d-xl-block{display:block !important}.sd-d-xl-grid{display:grid !important}.sd-d-xl-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-xl-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}.sd-align-major-start{justify-content:flex-start !important}.sd-align-major-end{justify-content:flex-end !important}.sd-align-major-center{justify-content:center !important}.sd-align-major-justify{justify-content:space-between !important}.sd-align-major-spaced{justify-content:space-evenly !important}.sd-align-minor-start{align-items:flex-start !important}.sd-align-minor-end{align-items:flex-end !important}.sd-align-minor-center{align-items:center !important}.sd-align-minor-stretch{align-items:stretch !important}.sd-text-justify{text-align:justify !important}.sd-text-left{text-align:left !important}.sd-text-right{text-align:right !important}.sd-text-center{text-align:center !important}.sd-font-weight-light{font-weight:300 !important}.sd-font-weight-lighter{font-weight:lighter !important}.sd-font-weight-normal{font-weight:400 !important}.sd-font-weight-bold{font-weight:700 !important}.sd-font-weight-bolder{font-weight:bolder !important}.sd-font-italic{font-style:italic !important}.sd-text-decoration-none{text-decoration:none !important}.sd-text-lowercase{text-transform:lowercase !important}.sd-text-uppercase{text-transform:uppercase !important}.sd-text-capitalize{text-transform:capitalize !important}.sd-text-wrap{white-space:normal !important}.sd-text-nowrap{white-space:nowrap !important}.sd-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-fs-1,.sd-fs-1>p{font-size:calc(1.375rem + 1.5vw) !important;line-height:unset !important}.sd-fs-2,.sd-fs-2>p{font-size:calc(1.325rem + 0.9vw) !important;line-height:unset !important}.sd-fs-3,.sd-fs-3>p{font-size:calc(1.3rem + 0.6vw) !important;line-height:unset !important}.sd-fs-4,.sd-fs-4>p{font-size:calc(1.275rem + 0.3vw) !important;line-height:unset !important}.sd-fs-5,.sd-fs-5>p{font-size:1.25rem !important;line-height:unset !important}.sd-fs-6,.sd-fs-6>p{font-size:1rem !important;line-height:unset !important}.sd-border-0{border:0 solid !important}.sd-border-top-0{border-top:0 solid !important}.sd-border-bottom-0{border-bottom:0 solid !important}.sd-border-right-0{border-right:0 solid !important}.sd-border-left-0{border-left:0 solid !important}.sd-border-1{border:1px solid !important}.sd-border-top-1{border-top:1px solid !important}.sd-border-bottom-1{border-bottom:1px solid !important}.sd-border-right-1{border-right:1px solid !important}.sd-border-left-1{border-left:1px solid !important}.sd-border-2{border:2px solid !important}.sd-border-top-2{border-top:2px solid !important}.sd-border-bottom-2{border-bottom:2px solid !important}.sd-border-right-2{border-right:2px solid !important}.sd-border-left-2{border-left:2px solid !important}.sd-border-3{border:3px solid !important}.sd-border-top-3{border-top:3px solid !important}.sd-border-bottom-3{border-bottom:3px solid !important}.sd-border-right-3{border-right:3px solid !important}.sd-border-left-3{border-left:3px solid !important}.sd-border-4{border:4px solid !important}.sd-border-top-4{border-top:4px solid !important}.sd-border-bottom-4{border-bottom:4px solid !important}.sd-border-right-4{border-right:4px solid !important}.sd-border-left-4{border-left:4px solid !important}.sd-border-5{border:5px solid !important}.sd-border-top-5{border-top:5px solid !important}.sd-border-bottom-5{border-bottom:5px solid !important}.sd-border-right-5{border-right:5px solid !important}.sd-border-left-5{border-left:5px solid !important}.sd-rounded-0{border-radius:0 !important}.sd-rounded-1{border-radius:.2rem !important}.sd-rounded-2{border-radius:.3rem !important}.sd-rounded-3{border-radius:.5rem !important}.sd-rounded-pill{border-radius:50rem !important}.sd-rounded-circle{border-radius:50% !important}.shadow-none{box-shadow:none !important}.sd-shadow-sm{box-shadow:0 .125rem .25rem var(--sd-color-shadow) !important}.sd-shadow-md{box-shadow:0 .5rem 1rem var(--sd-color-shadow) !important}.sd-shadow-lg{box-shadow:0 1rem 3rem var(--sd-color-shadow) !important}@keyframes sd-slide-from-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@keyframes sd-slide-from-right{0%{transform:translateX(200%)}100%{transform:translateX(0)}}@keyframes sd-grow100{0%{transform:scale(0);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50{0%{transform:scale(0.5);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50-rot20{0%{transform:scale(0.5) rotateZ(-20deg);opacity:.5}75%{transform:scale(1) rotateZ(5deg);opacity:1}95%{transform:scale(1) rotateZ(-1deg);opacity:1}100%{transform:scale(1) rotateZ(0);opacity:1}}.sd-animate-slide-from-left{animation:1s ease-out 0s 1 normal none running sd-slide-from-left}.sd-animate-slide-from-right{animation:1s ease-out 0s 1 normal none running sd-slide-from-right}.sd-animate-grow100{animation:1s ease-out 0s 1 normal none running sd-grow100}.sd-animate-grow50{animation:1s ease-out 0s 1 normal none running sd-grow50}.sd-animate-grow50-rot20{animation:1s ease-out 0s 1 normal none running sd-grow50-rot20}.sd-badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.sd-badge:empty{display:none}a.sd-badge{text-decoration:none}.sd-btn .sd-badge{position:relative;top:-1px}.sd-btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer;display:inline-block;font-weight:400;font-size:1rem;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:middle;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none}.sd-btn:hover{text-decoration:none}@media(prefers-reduced-motion: reduce){.sd-btn{transition:none}}.sd-btn-primary,.sd-btn-outline-primary:hover,.sd-btn-outline-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-primary:hover,.sd-btn-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary-highlight) !important;border-color:var(--sd-color-primary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-primary{color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary,.sd-btn-outline-secondary:hover,.sd-btn-outline-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary:hover,.sd-btn-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary-highlight) !important;border-color:var(--sd-color-secondary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-secondary{color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success,.sd-btn-outline-success:hover,.sd-btn-outline-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success:hover,.sd-btn-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success-highlight) !important;border-color:var(--sd-color-success-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-success{color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info,.sd-btn-outline-info:hover,.sd-btn-outline-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info:hover,.sd-btn-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info-highlight) !important;border-color:var(--sd-color-info-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-info{color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning,.sd-btn-outline-warning:hover,.sd-btn-outline-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning:hover,.sd-btn-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning-highlight) !important;border-color:var(--sd-color-warning-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-warning{color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger,.sd-btn-outline-danger:hover,.sd-btn-outline-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger:hover,.sd-btn-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger-highlight) !important;border-color:var(--sd-color-danger-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-danger{color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light,.sd-btn-outline-light:hover,.sd-btn-outline-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light:hover,.sd-btn-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light-highlight) !important;border-color:var(--sd-color-light-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-light{color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted,.sd-btn-outline-muted:hover,.sd-btn-outline-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted:hover,.sd-btn-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted-highlight) !important;border-color:var(--sd-color-muted-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-muted{color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark,.sd-btn-outline-dark:hover,.sd-btn-outline-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark:hover,.sd-btn-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark-highlight) !important;border-color:var(--sd-color-dark-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-dark{color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black,.sd-btn-outline-black:hover,.sd-btn-outline-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black:hover,.sd-btn-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black-highlight) !important;border-color:var(--sd-color-black-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-black{color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white,.sd-btn-outline-white:hover,.sd-btn-outline-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white:hover,.sd-btn-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white-highlight) !important;border-color:var(--sd-color-white-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-white{color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.sd-hide-link-text{font-size:0}.sd-octicon,.sd-material-icon{display:inline-block;fill:currentColor;vertical-align:middle}.sd-avatar-xs{border-radius:50%;object-fit:cover;object-position:center;width:1rem;height:1rem}.sd-avatar-sm{border-radius:50%;object-fit:cover;object-position:center;width:3rem;height:3rem}.sd-avatar-md{border-radius:50%;object-fit:cover;object-position:center;width:5rem;height:5rem}.sd-avatar-lg{border-radius:50%;object-fit:cover;object-position:center;width:7rem;height:7rem}.sd-avatar-xl{border-radius:50%;object-fit:cover;object-position:center;width:10rem;height:10rem}.sd-avatar-inherit{border-radius:50%;object-fit:cover;object-position:center;width:inherit;height:inherit}.sd-avatar-initial{border-radius:50%;object-fit:cover;object-position:center;width:initial;height:initial}.sd-card{background-clip:border-box;background-color:var(--sd-color-card-background);border:1px solid var(--sd-color-card-border);border-radius:.25rem;color:var(--sd-color-card-text);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word}.sd-card>hr{margin-left:0;margin-right:0}.sd-card-hover:hover{border-color:var(--sd-color-card-border-hover);transform:scale(1.01)}.sd-card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem 1rem}.sd-card-title{margin-bottom:.5rem}.sd-card-subtitle{margin-top:-0.25rem;margin-bottom:0}.sd-card-text:last-child{margin-bottom:0}.sd-card-link:hover{text-decoration:none}.sd-card-link+.card-link{margin-left:1rem}.sd-card-header{padding:.5rem 1rem;margin-bottom:0;background-color:var(--sd-color-card-header);border-bottom:1px solid var(--sd-color-card-border)}.sd-card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.sd-card-footer{padding:.5rem 1rem;background-color:var(--sd-color-card-footer);border-top:1px solid var(--sd-color-card-border)}.sd-card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.sd-card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.sd-card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.sd-card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom,.sd-card-img-top{width:100%}.sd-card-img,.sd-card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom{border-bottom-left-radius:calc(0.25rem - 1px);border-bottom-right-radius:calc(0.25rem - 1px)}.sd-cards-carousel{width:100%;display:flex;flex-wrap:nowrap;-ms-flex-direction:row;flex-direction:row;overflow-x:hidden;scroll-snap-type:x mandatory}.sd-cards-carousel.sd-show-scrollbar{overflow-x:auto}.sd-cards-carousel:hover,.sd-cards-carousel:focus{overflow-x:auto}.sd-cards-carousel>.sd-card{flex-shrink:0;scroll-snap-align:start}.sd-cards-carousel>.sd-card:not(:last-child){margin-right:3px}.sd-card-cols-1>.sd-card{width:90%}.sd-card-cols-2>.sd-card{width:45%}.sd-card-cols-3>.sd-card{width:30%}.sd-card-cols-4>.sd-card{width:22.5%}.sd-card-cols-5>.sd-card{width:18%}.sd-card-cols-6>.sd-card{width:15%}.sd-card-cols-7>.sd-card{width:12.8571428571%}.sd-card-cols-8>.sd-card{width:11.25%}.sd-card-cols-9>.sd-card{width:10%}.sd-card-cols-10>.sd-card{width:9%}.sd-card-cols-11>.sd-card{width:8.1818181818%}.sd-card-cols-12>.sd-card{width:7.5%}.sd-container,.sd-container-fluid,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container-xl{margin-left:auto;margin-right:auto;padding-left:var(--sd-gutter-x, 0.75rem);padding-right:var(--sd-gutter-x, 0.75rem);width:100%}@media(min-width: 576px){.sd-container-sm,.sd-container{max-width:540px}}@media(min-width: 768px){.sd-container-md,.sd-container-sm,.sd-container{max-width:720px}}@media(min-width: 992px){.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:960px}}@media(min-width: 1200px){.sd-container-xl,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:1140px}}.sd-row{--sd-gutter-x: 1.5rem;--sd-gutter-y: 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(var(--sd-gutter-y) * -1);margin-right:calc(var(--sd-gutter-x) * -0.5);margin-left:calc(var(--sd-gutter-x) * -0.5)}.sd-row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--sd-gutter-x) * 0.5);padding-left:calc(var(--sd-gutter-x) * 0.5);margin-top:var(--sd-gutter-y)}.sd-col{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-auto>*{flex:0 0 auto;width:auto}.sd-row-cols-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}@media(min-width: 576px){.sd-col-sm{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-sm-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-sm-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-sm-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-sm-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-sm-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-sm-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-sm-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-sm-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-sm-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-sm-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-sm-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-sm-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-sm-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 768px){.sd-col-md{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-md-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-md-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-md-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-md-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-md-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-md-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-md-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-md-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-md-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-md-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-md-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-md-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-md-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 992px){.sd-col-lg{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-lg-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-lg-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-lg-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-lg-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-lg-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-lg-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-lg-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-lg-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-lg-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-lg-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-lg-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-lg-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-lg-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 1200px){.sd-col-xl{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-xl-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-xl-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-xl-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-xl-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-xl-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-xl-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-xl-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-xl-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-xl-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-xl-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-xl-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-xl-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-xl-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}.sd-col-auto{flex:0 0 auto;-ms-flex:0 0 auto;width:auto}.sd-col-1{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}.sd-col-2{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-col-3{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-col-4{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-col-5{flex:0 0 auto;-ms-flex:0 0 auto;width:41.6666666667%}.sd-col-6{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-col-7{flex:0 0 auto;-ms-flex:0 0 auto;width:58.3333333333%}.sd-col-8{flex:0 0 auto;-ms-flex:0 0 auto;width:66.6666666667%}.sd-col-9{flex:0 0 auto;-ms-flex:0 0 auto;width:75%}.sd-col-10{flex:0 0 auto;-ms-flex:0 0 auto;width:83.3333333333%}.sd-col-11{flex:0 0 auto;-ms-flex:0 0 auto;width:91.6666666667%}.sd-col-12{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-g-0,.sd-gy-0{--sd-gutter-y: 0}.sd-g-0,.sd-gx-0{--sd-gutter-x: 0}.sd-g-1,.sd-gy-1{--sd-gutter-y: 0.25rem}.sd-g-1,.sd-gx-1{--sd-gutter-x: 0.25rem}.sd-g-2,.sd-gy-2{--sd-gutter-y: 0.5rem}.sd-g-2,.sd-gx-2{--sd-gutter-x: 0.5rem}.sd-g-3,.sd-gy-3{--sd-gutter-y: 1rem}.sd-g-3,.sd-gx-3{--sd-gutter-x: 1rem}.sd-g-4,.sd-gy-4{--sd-gutter-y: 1.5rem}.sd-g-4,.sd-gx-4{--sd-gutter-x: 1.5rem}.sd-g-5,.sd-gy-5{--sd-gutter-y: 3rem}.sd-g-5,.sd-gx-5{--sd-gutter-x: 3rem}@media(min-width: 576px){.sd-col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-sm-0,.sd-gy-sm-0{--sd-gutter-y: 0}.sd-g-sm-0,.sd-gx-sm-0{--sd-gutter-x: 0}.sd-g-sm-1,.sd-gy-sm-1{--sd-gutter-y: 0.25rem}.sd-g-sm-1,.sd-gx-sm-1{--sd-gutter-x: 0.25rem}.sd-g-sm-2,.sd-gy-sm-2{--sd-gutter-y: 0.5rem}.sd-g-sm-2,.sd-gx-sm-2{--sd-gutter-x: 0.5rem}.sd-g-sm-3,.sd-gy-sm-3{--sd-gutter-y: 1rem}.sd-g-sm-3,.sd-gx-sm-3{--sd-gutter-x: 1rem}.sd-g-sm-4,.sd-gy-sm-4{--sd-gutter-y: 1.5rem}.sd-g-sm-4,.sd-gx-sm-4{--sd-gutter-x: 1.5rem}.sd-g-sm-5,.sd-gy-sm-5{--sd-gutter-y: 3rem}.sd-g-sm-5,.sd-gx-sm-5{--sd-gutter-x: 3rem}}@media(min-width: 768px){.sd-col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-md-0,.sd-gy-md-0{--sd-gutter-y: 0}.sd-g-md-0,.sd-gx-md-0{--sd-gutter-x: 0}.sd-g-md-1,.sd-gy-md-1{--sd-gutter-y: 0.25rem}.sd-g-md-1,.sd-gx-md-1{--sd-gutter-x: 0.25rem}.sd-g-md-2,.sd-gy-md-2{--sd-gutter-y: 0.5rem}.sd-g-md-2,.sd-gx-md-2{--sd-gutter-x: 0.5rem}.sd-g-md-3,.sd-gy-md-3{--sd-gutter-y: 1rem}.sd-g-md-3,.sd-gx-md-3{--sd-gutter-x: 1rem}.sd-g-md-4,.sd-gy-md-4{--sd-gutter-y: 1.5rem}.sd-g-md-4,.sd-gx-md-4{--sd-gutter-x: 1.5rem}.sd-g-md-5,.sd-gy-md-5{--sd-gutter-y: 3rem}.sd-g-md-5,.sd-gx-md-5{--sd-gutter-x: 3rem}}@media(min-width: 992px){.sd-col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-lg-0,.sd-gy-lg-0{--sd-gutter-y: 0}.sd-g-lg-0,.sd-gx-lg-0{--sd-gutter-x: 0}.sd-g-lg-1,.sd-gy-lg-1{--sd-gutter-y: 0.25rem}.sd-g-lg-1,.sd-gx-lg-1{--sd-gutter-x: 0.25rem}.sd-g-lg-2,.sd-gy-lg-2{--sd-gutter-y: 0.5rem}.sd-g-lg-2,.sd-gx-lg-2{--sd-gutter-x: 0.5rem}.sd-g-lg-3,.sd-gy-lg-3{--sd-gutter-y: 1rem}.sd-g-lg-3,.sd-gx-lg-3{--sd-gutter-x: 1rem}.sd-g-lg-4,.sd-gy-lg-4{--sd-gutter-y: 1.5rem}.sd-g-lg-4,.sd-gx-lg-4{--sd-gutter-x: 1.5rem}.sd-g-lg-5,.sd-gy-lg-5{--sd-gutter-y: 3rem}.sd-g-lg-5,.sd-gx-lg-5{--sd-gutter-x: 3rem}}@media(min-width: 1200px){.sd-col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-xl-0,.sd-gy-xl-0{--sd-gutter-y: 0}.sd-g-xl-0,.sd-gx-xl-0{--sd-gutter-x: 0}.sd-g-xl-1,.sd-gy-xl-1{--sd-gutter-y: 0.25rem}.sd-g-xl-1,.sd-gx-xl-1{--sd-gutter-x: 0.25rem}.sd-g-xl-2,.sd-gy-xl-2{--sd-gutter-y: 0.5rem}.sd-g-xl-2,.sd-gx-xl-2{--sd-gutter-x: 0.5rem}.sd-g-xl-3,.sd-gy-xl-3{--sd-gutter-y: 1rem}.sd-g-xl-3,.sd-gx-xl-3{--sd-gutter-x: 1rem}.sd-g-xl-4,.sd-gy-xl-4{--sd-gutter-y: 1.5rem}.sd-g-xl-4,.sd-gx-xl-4{--sd-gutter-x: 1.5rem}.sd-g-xl-5,.sd-gy-xl-5{--sd-gutter-y: 3rem}.sd-g-xl-5,.sd-gx-xl-5{--sd-gutter-x: 3rem}}.sd-flex-row-reverse{flex-direction:row-reverse !important}details.sd-dropdown{position:relative;font-size:var(--sd-fontsize-dropdown)}details.sd-dropdown:hover{cursor:pointer}details.sd-dropdown .sd-summary-content{cursor:default}details.sd-dropdown summary.sd-summary-title{padding:.5em .6em .5em 1em;font-size:var(--sd-fontsize-dropdown-title);font-weight:var(--sd-fontweight-dropdown-title);user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;list-style:none;display:inline-flex;justify-content:space-between}details.sd-dropdown summary.sd-summary-title::-webkit-details-marker{display:none}details.sd-dropdown summary.sd-summary-title:focus{outline:none}details.sd-dropdown summary.sd-summary-title .sd-summary-icon{margin-right:.6em;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-icon svg{opacity:.8}details.sd-dropdown summary.sd-summary-title .sd-summary-text{flex-grow:1;line-height:1.5;padding-right:.5rem}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker{pointer-events:none;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker svg{opacity:.6}details.sd-dropdown summary.sd-summary-title:hover .sd-summary-state-marker svg{opacity:1;transform:scale(1.1)}details.sd-dropdown[open] summary .sd-octicon.no-title{visibility:hidden}details.sd-dropdown .sd-summary-chevron-right{transition:.25s}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-right{transform:rotate(90deg)}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-down{transform:rotate(180deg)}details.sd-dropdown:not([open]).sd-card{border:none}details.sd-dropdown:not([open])>.sd-card-header{border:1px solid var(--sd-color-card-border);border-radius:.25rem}details.sd-dropdown.sd-fade-in[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out;animation:sd-fade-in .5s ease-in-out}details.sd-dropdown.sd-fade-in-slide-down[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out}.sd-col>.sd-dropdown{width:100%}.sd-summary-content>.sd-tab-set:first-child{margin-top:0}@keyframes sd-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes sd-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.sd-tab-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.sd-tab-set>input{opacity:0;position:absolute}.sd-tab-set>input:checked+label{border-color:var(--sd-color-tabs-underline-active);color:var(--sd-color-tabs-label-active)}.sd-tab-set>input:checked+label+.sd-tab-content{display:block}.sd-tab-set>input:not(:checked)+label:hover{color:var(--sd-color-tabs-label-hover);border-color:var(--sd-color-tabs-underline-hover)}.sd-tab-set>input:focus+label{outline-style:auto}.sd-tab-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.sd-tab-set>label{border-bottom:.125rem solid transparent;margin-bottom:0;color:var(--sd-color-tabs-label-inactive);border-color:var(--sd-color-tabs-underline-inactive);cursor:pointer;font-size:var(--sd-fontsize-tabs-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .sd-tab-set>label:hover{color:var(--sd-color-tabs-label-active)}.sd-col>.sd-tab-set{width:100%}.sd-tab-content{box-shadow:0 -0.0625rem var(--sd-color-tabs-overline),0 .0625rem var(--sd-color-tabs-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.sd-tab-content>:first-child{margin-top:0 !important}.sd-tab-content>:last-child{margin-bottom:0 !important}.sd-tab-content>.sd-tab-set{margin:0}.sd-sphinx-override,.sd-sphinx-override *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sd-sphinx-override p{margin-top:0}:root{--sd-color-primary: #0071bc;--sd-color-secondary: #6c757d;--sd-color-success: #28a745;--sd-color-info: #17a2b8;--sd-color-warning: #f0b37e;--sd-color-danger: #dc3545;--sd-color-light: #f8f9fa;--sd-color-muted: #6c757d;--sd-color-dark: #212529;--sd-color-black: black;--sd-color-white: white;--sd-color-primary-highlight: #0060a0;--sd-color-secondary-highlight: #5c636a;--sd-color-success-highlight: #228e3b;--sd-color-info-highlight: #148a9c;--sd-color-warning-highlight: #cc986b;--sd-color-danger-highlight: #bb2d3b;--sd-color-light-highlight: #d3d4d5;--sd-color-muted-highlight: #5c636a;--sd-color-dark-highlight: #1c1f23;--sd-color-black-highlight: black;--sd-color-white-highlight: #d9d9d9;--sd-color-primary-bg: rgba(0, 113, 188, 0.2);--sd-color-secondary-bg: rgba(108, 117, 125, 0.2);--sd-color-success-bg: rgba(40, 167, 69, 0.2);--sd-color-info-bg: rgba(23, 162, 184, 0.2);--sd-color-warning-bg: rgba(240, 179, 126, 0.2);--sd-color-danger-bg: rgba(220, 53, 69, 0.2);--sd-color-light-bg: rgba(248, 249, 250, 0.2);--sd-color-muted-bg: rgba(108, 117, 125, 0.2);--sd-color-dark-bg: rgba(33, 37, 41, 0.2);--sd-color-black-bg: rgba(0, 0, 0, 0.2);--sd-color-white-bg: rgba(255, 255, 255, 0.2);--sd-color-primary-text: #fff;--sd-color-secondary-text: #fff;--sd-color-success-text: #fff;--sd-color-info-text: #fff;--sd-color-warning-text: #212529;--sd-color-danger-text: #fff;--sd-color-light-text: #212529;--sd-color-muted-text: #fff;--sd-color-dark-text: #fff;--sd-color-black-text: #fff;--sd-color-white-text: #212529;--sd-color-shadow: rgba(0, 0, 0, 0.15);--sd-color-card-border: rgba(0, 0, 0, 0.125);--sd-color-card-border-hover: hsla(231, 99%, 66%, 1);--sd-color-card-background: transparent;--sd-color-card-text: inherit;--sd-color-card-header: transparent;--sd-color-card-footer: transparent;--sd-color-tabs-label-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-hover: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-inactive: hsl(0, 0%, 66%);--sd-color-tabs-underline-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-underline-hover: rgba(178, 206, 245, 0.62);--sd-color-tabs-underline-inactive: transparent;--sd-color-tabs-overline: rgb(222, 222, 222);--sd-color-tabs-underline: rgb(222, 222, 222);--sd-fontsize-tabs-label: 1rem;--sd-fontsize-dropdown: inherit;--sd-fontsize-dropdown-title: 1rem;--sd-fontweight-dropdown-title: 700} diff --git a/dev/_static/design-tabs.js b/dev/_static/design-tabs.js deleted file mode 100644 index b25bd6a4f..000000000 --- a/dev/_static/design-tabs.js +++ /dev/null @@ -1,101 +0,0 @@ -// @ts-check - -// Extra JS capability for selected tabs to be synced -// The selection is stored in local storage so that it persists across page loads. - -/** - * @type {Record} - */ -let sd_id_to_elements = {}; -const storageKeyPrefix = "sphinx-design-tab-id-"; - -/** - * Create a key for a tab element. - * @param {HTMLElement} el - The tab element. - * @returns {[string, string, string] | null} - The key. - * - */ -function create_key(el) { - let syncId = el.getAttribute("data-sync-id"); - let syncGroup = el.getAttribute("data-sync-group"); - if (!syncId || !syncGroup) return null; - return [syncGroup, syncId, syncGroup + "--" + syncId]; -} - -/** - * Initialize the tab selection. - * - */ -function ready() { - // Find all tabs with sync data - - /** @type {string[]} */ - let groups = []; - - document.querySelectorAll(".sd-tab-label").forEach((label) => { - if (label instanceof HTMLElement) { - let data = create_key(label); - if (data) { - let [group, id, key] = data; - - // add click event listener - // @ts-ignore - label.onclick = onSDLabelClick; - - // store map of key to elements - if (!sd_id_to_elements[key]) { - sd_id_to_elements[key] = []; - } - sd_id_to_elements[key].push(label); - - if (groups.indexOf(group) === -1) { - groups.push(group); - // Check if a specific tab has been selected via URL parameter - const tabParam = new URLSearchParams(window.location.search).get( - group - ); - if (tabParam) { - console.log( - "sphinx-design: Selecting tab id for group '" + - group + - "' from URL parameter: " + - tabParam - ); - window.sessionStorage.setItem(storageKeyPrefix + group, tabParam); - } - } - - // Check is a specific tab has been selected previously - let previousId = window.sessionStorage.getItem( - storageKeyPrefix + group - ); - if (previousId === id) { - // console.log( - // "sphinx-design: Selecting tab from session storage: " + id - // ); - // @ts-ignore - label.previousElementSibling.checked = true; - } - } - } - }); -} - -/** - * Activate other tabs with the same sync id. - * - * @this {HTMLElement} - The element that was clicked. - */ -function onSDLabelClick() { - let data = create_key(this); - if (!data) return; - let [group, id, key] = data; - for (const label of sd_id_to_elements[key]) { - if (label === this) continue; - // @ts-ignore - label.previousElementSibling.checked = true; - } - window.sessionStorage.setItem(storageKeyPrefix + group, id); -} - -document.addEventListener("DOMContentLoaded", ready, false); diff --git a/dev/_static/sphinx-design.min.css b/dev/_static/sphinx-design.min.css deleted file mode 100644 index 860c36da0..000000000 --- a/dev/_static/sphinx-design.min.css +++ /dev/null @@ -1 +0,0 @@ -.sd-bg-primary{background-color:var(--sd-color-primary) !important}.sd-bg-text-primary{color:var(--sd-color-primary-text) !important}button.sd-bg-primary:focus,button.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}a.sd-bg-primary:focus,a.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}.sd-bg-secondary{background-color:var(--sd-color-secondary) !important}.sd-bg-text-secondary{color:var(--sd-color-secondary-text) !important}button.sd-bg-secondary:focus,button.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}a.sd-bg-secondary:focus,a.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}.sd-bg-success{background-color:var(--sd-color-success) !important}.sd-bg-text-success{color:var(--sd-color-success-text) !important}button.sd-bg-success:focus,button.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}a.sd-bg-success:focus,a.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}.sd-bg-info{background-color:var(--sd-color-info) !important}.sd-bg-text-info{color:var(--sd-color-info-text) !important}button.sd-bg-info:focus,button.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}a.sd-bg-info:focus,a.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}.sd-bg-warning{background-color:var(--sd-color-warning) !important}.sd-bg-text-warning{color:var(--sd-color-warning-text) !important}button.sd-bg-warning:focus,button.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}a.sd-bg-warning:focus,a.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}.sd-bg-danger{background-color:var(--sd-color-danger) !important}.sd-bg-text-danger{color:var(--sd-color-danger-text) !important}button.sd-bg-danger:focus,button.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}a.sd-bg-danger:focus,a.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}.sd-bg-light{background-color:var(--sd-color-light) !important}.sd-bg-text-light{color:var(--sd-color-light-text) !important}button.sd-bg-light:focus,button.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}a.sd-bg-light:focus,a.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}.sd-bg-muted{background-color:var(--sd-color-muted) !important}.sd-bg-text-muted{color:var(--sd-color-muted-text) !important}button.sd-bg-muted:focus,button.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}a.sd-bg-muted:focus,a.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}.sd-bg-dark{background-color:var(--sd-color-dark) !important}.sd-bg-text-dark{color:var(--sd-color-dark-text) !important}button.sd-bg-dark:focus,button.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}a.sd-bg-dark:focus,a.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}.sd-bg-black{background-color:var(--sd-color-black) !important}.sd-bg-text-black{color:var(--sd-color-black-text) !important}button.sd-bg-black:focus,button.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}a.sd-bg-black:focus,a.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}.sd-bg-white{background-color:var(--sd-color-white) !important}.sd-bg-text-white{color:var(--sd-color-white-text) !important}button.sd-bg-white:focus,button.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}a.sd-bg-white:focus,a.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}.sd-text-primary,.sd-text-primary>p{color:var(--sd-color-primary) !important}a.sd-text-primary:focus,a.sd-text-primary:hover{color:var(--sd-color-primary-highlight) !important}.sd-text-secondary,.sd-text-secondary>p{color:var(--sd-color-secondary) !important}a.sd-text-secondary:focus,a.sd-text-secondary:hover{color:var(--sd-color-secondary-highlight) !important}.sd-text-success,.sd-text-success>p{color:var(--sd-color-success) !important}a.sd-text-success:focus,a.sd-text-success:hover{color:var(--sd-color-success-highlight) !important}.sd-text-info,.sd-text-info>p{color:var(--sd-color-info) !important}a.sd-text-info:focus,a.sd-text-info:hover{color:var(--sd-color-info-highlight) !important}.sd-text-warning,.sd-text-warning>p{color:var(--sd-color-warning) !important}a.sd-text-warning:focus,a.sd-text-warning:hover{color:var(--sd-color-warning-highlight) !important}.sd-text-danger,.sd-text-danger>p{color:var(--sd-color-danger) !important}a.sd-text-danger:focus,a.sd-text-danger:hover{color:var(--sd-color-danger-highlight) !important}.sd-text-light,.sd-text-light>p{color:var(--sd-color-light) !important}a.sd-text-light:focus,a.sd-text-light:hover{color:var(--sd-color-light-highlight) !important}.sd-text-muted,.sd-text-muted>p{color:var(--sd-color-muted) !important}a.sd-text-muted:focus,a.sd-text-muted:hover{color:var(--sd-color-muted-highlight) !important}.sd-text-dark,.sd-text-dark>p{color:var(--sd-color-dark) !important}a.sd-text-dark:focus,a.sd-text-dark:hover{color:var(--sd-color-dark-highlight) !important}.sd-text-black,.sd-text-black>p{color:var(--sd-color-black) !important}a.sd-text-black:focus,a.sd-text-black:hover{color:var(--sd-color-black-highlight) !important}.sd-text-white,.sd-text-white>p{color:var(--sd-color-white) !important}a.sd-text-white:focus,a.sd-text-white:hover{color:var(--sd-color-white-highlight) !important}.sd-outline-primary{border-color:var(--sd-color-primary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-primary:focus,a.sd-outline-primary:hover{border-color:var(--sd-color-primary-highlight) !important}.sd-outline-secondary{border-color:var(--sd-color-secondary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-secondary:focus,a.sd-outline-secondary:hover{border-color:var(--sd-color-secondary-highlight) !important}.sd-outline-success{border-color:var(--sd-color-success) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-success:focus,a.sd-outline-success:hover{border-color:var(--sd-color-success-highlight) !important}.sd-outline-info{border-color:var(--sd-color-info) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-info:focus,a.sd-outline-info:hover{border-color:var(--sd-color-info-highlight) !important}.sd-outline-warning{border-color:var(--sd-color-warning) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-warning:focus,a.sd-outline-warning:hover{border-color:var(--sd-color-warning-highlight) !important}.sd-outline-danger{border-color:var(--sd-color-danger) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-danger:focus,a.sd-outline-danger:hover{border-color:var(--sd-color-danger-highlight) !important}.sd-outline-light{border-color:var(--sd-color-light) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-light:focus,a.sd-outline-light:hover{border-color:var(--sd-color-light-highlight) !important}.sd-outline-muted{border-color:var(--sd-color-muted) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-muted:focus,a.sd-outline-muted:hover{border-color:var(--sd-color-muted-highlight) !important}.sd-outline-dark{border-color:var(--sd-color-dark) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-dark:focus,a.sd-outline-dark:hover{border-color:var(--sd-color-dark-highlight) !important}.sd-outline-black{border-color:var(--sd-color-black) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-black:focus,a.sd-outline-black:hover{border-color:var(--sd-color-black-highlight) !important}.sd-outline-white{border-color:var(--sd-color-white) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-white:focus,a.sd-outline-white:hover{border-color:var(--sd-color-white-highlight) !important}.sd-bg-transparent{background-color:transparent !important}.sd-outline-transparent{border-color:transparent !important}.sd-text-transparent{color:transparent !important}.sd-p-0{padding:0 !important}.sd-pt-0,.sd-py-0{padding-top:0 !important}.sd-pr-0,.sd-px-0{padding-right:0 !important}.sd-pb-0,.sd-py-0{padding-bottom:0 !important}.sd-pl-0,.sd-px-0{padding-left:0 !important}.sd-p-1{padding:.25rem !important}.sd-pt-1,.sd-py-1{padding-top:.25rem !important}.sd-pr-1,.sd-px-1{padding-right:.25rem !important}.sd-pb-1,.sd-py-1{padding-bottom:.25rem !important}.sd-pl-1,.sd-px-1{padding-left:.25rem !important}.sd-p-2{padding:.5rem !important}.sd-pt-2,.sd-py-2{padding-top:.5rem !important}.sd-pr-2,.sd-px-2{padding-right:.5rem !important}.sd-pb-2,.sd-py-2{padding-bottom:.5rem !important}.sd-pl-2,.sd-px-2{padding-left:.5rem !important}.sd-p-3{padding:1rem !important}.sd-pt-3,.sd-py-3{padding-top:1rem !important}.sd-pr-3,.sd-px-3{padding-right:1rem !important}.sd-pb-3,.sd-py-3{padding-bottom:1rem !important}.sd-pl-3,.sd-px-3{padding-left:1rem !important}.sd-p-4{padding:1.5rem !important}.sd-pt-4,.sd-py-4{padding-top:1.5rem !important}.sd-pr-4,.sd-px-4{padding-right:1.5rem !important}.sd-pb-4,.sd-py-4{padding-bottom:1.5rem !important}.sd-pl-4,.sd-px-4{padding-left:1.5rem !important}.sd-p-5{padding:3rem !important}.sd-pt-5,.sd-py-5{padding-top:3rem !important}.sd-pr-5,.sd-px-5{padding-right:3rem !important}.sd-pb-5,.sd-py-5{padding-bottom:3rem !important}.sd-pl-5,.sd-px-5{padding-left:3rem !important}.sd-m-auto{margin:auto !important}.sd-mt-auto,.sd-my-auto{margin-top:auto !important}.sd-mr-auto,.sd-mx-auto{margin-right:auto !important}.sd-mb-auto,.sd-my-auto{margin-bottom:auto !important}.sd-ml-auto,.sd-mx-auto{margin-left:auto !important}.sd-m-0{margin:0 !important}.sd-mt-0,.sd-my-0{margin-top:0 !important}.sd-mr-0,.sd-mx-0{margin-right:0 !important}.sd-mb-0,.sd-my-0{margin-bottom:0 !important}.sd-ml-0,.sd-mx-0{margin-left:0 !important}.sd-m-1{margin:.25rem !important}.sd-mt-1,.sd-my-1{margin-top:.25rem !important}.sd-mr-1,.sd-mx-1{margin-right:.25rem !important}.sd-mb-1,.sd-my-1{margin-bottom:.25rem !important}.sd-ml-1,.sd-mx-1{margin-left:.25rem !important}.sd-m-2{margin:.5rem !important}.sd-mt-2,.sd-my-2{margin-top:.5rem !important}.sd-mr-2,.sd-mx-2{margin-right:.5rem !important}.sd-mb-2,.sd-my-2{margin-bottom:.5rem !important}.sd-ml-2,.sd-mx-2{margin-left:.5rem !important}.sd-m-3{margin:1rem !important}.sd-mt-3,.sd-my-3{margin-top:1rem !important}.sd-mr-3,.sd-mx-3{margin-right:1rem !important}.sd-mb-3,.sd-my-3{margin-bottom:1rem !important}.sd-ml-3,.sd-mx-3{margin-left:1rem !important}.sd-m-4{margin:1.5rem !important}.sd-mt-4,.sd-my-4{margin-top:1.5rem !important}.sd-mr-4,.sd-mx-4{margin-right:1.5rem !important}.sd-mb-4,.sd-my-4{margin-bottom:1.5rem !important}.sd-ml-4,.sd-mx-4{margin-left:1.5rem !important}.sd-m-5{margin:3rem !important}.sd-mt-5,.sd-my-5{margin-top:3rem !important}.sd-mr-5,.sd-mx-5{margin-right:3rem !important}.sd-mb-5,.sd-my-5{margin-bottom:3rem !important}.sd-ml-5,.sd-mx-5{margin-left:3rem !important}.sd-w-25{width:25% !important}.sd-w-50{width:50% !important}.sd-w-75{width:75% !important}.sd-w-100{width:100% !important}.sd-w-auto{width:auto !important}.sd-h-25{height:25% !important}.sd-h-50{height:50% !important}.sd-h-75{height:75% !important}.sd-h-100{height:100% !important}.sd-h-auto{height:auto !important}.sd-d-none{display:none !important}.sd-d-inline{display:inline !important}.sd-d-inline-block{display:inline-block !important}.sd-d-block{display:block !important}.sd-d-grid{display:grid !important}.sd-d-flex-row{display:-ms-flexbox !important;display:flex !important;flex-direction:row !important}.sd-d-flex-column{display:-ms-flexbox !important;display:flex !important;flex-direction:column !important}.sd-d-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}@media(min-width: 576px){.sd-d-sm-none{display:none !important}.sd-d-sm-inline{display:inline !important}.sd-d-sm-inline-block{display:inline-block !important}.sd-d-sm-block{display:block !important}.sd-d-sm-grid{display:grid !important}.sd-d-sm-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-sm-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 768px){.sd-d-md-none{display:none !important}.sd-d-md-inline{display:inline !important}.sd-d-md-inline-block{display:inline-block !important}.sd-d-md-block{display:block !important}.sd-d-md-grid{display:grid !important}.sd-d-md-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-md-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 992px){.sd-d-lg-none{display:none !important}.sd-d-lg-inline{display:inline !important}.sd-d-lg-inline-block{display:inline-block !important}.sd-d-lg-block{display:block !important}.sd-d-lg-grid{display:grid !important}.sd-d-lg-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-lg-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 1200px){.sd-d-xl-none{display:none !important}.sd-d-xl-inline{display:inline !important}.sd-d-xl-inline-block{display:inline-block !important}.sd-d-xl-block{display:block !important}.sd-d-xl-grid{display:grid !important}.sd-d-xl-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-xl-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}.sd-align-major-start{justify-content:flex-start !important}.sd-align-major-end{justify-content:flex-end !important}.sd-align-major-center{justify-content:center !important}.sd-align-major-justify{justify-content:space-between !important}.sd-align-major-spaced{justify-content:space-evenly !important}.sd-align-minor-start{align-items:flex-start !important}.sd-align-minor-end{align-items:flex-end !important}.sd-align-minor-center{align-items:center !important}.sd-align-minor-stretch{align-items:stretch !important}.sd-text-justify{text-align:justify !important}.sd-text-left{text-align:left !important}.sd-text-right{text-align:right !important}.sd-text-center{text-align:center !important}.sd-font-weight-light{font-weight:300 !important}.sd-font-weight-lighter{font-weight:lighter !important}.sd-font-weight-normal{font-weight:400 !important}.sd-font-weight-bold{font-weight:700 !important}.sd-font-weight-bolder{font-weight:bolder !important}.sd-font-italic{font-style:italic !important}.sd-text-decoration-none{text-decoration:none !important}.sd-text-lowercase{text-transform:lowercase !important}.sd-text-uppercase{text-transform:uppercase !important}.sd-text-capitalize{text-transform:capitalize !important}.sd-text-wrap{white-space:normal !important}.sd-text-nowrap{white-space:nowrap !important}.sd-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-fs-1,.sd-fs-1>p{font-size:calc(1.375rem + 1.5vw) !important;line-height:unset !important}.sd-fs-2,.sd-fs-2>p{font-size:calc(1.325rem + 0.9vw) !important;line-height:unset !important}.sd-fs-3,.sd-fs-3>p{font-size:calc(1.3rem + 0.6vw) !important;line-height:unset !important}.sd-fs-4,.sd-fs-4>p{font-size:calc(1.275rem + 0.3vw) !important;line-height:unset !important}.sd-fs-5,.sd-fs-5>p{font-size:1.25rem !important;line-height:unset !important}.sd-fs-6,.sd-fs-6>p{font-size:1rem !important;line-height:unset !important}.sd-border-0{border:0 solid !important}.sd-border-top-0{border-top:0 solid !important}.sd-border-bottom-0{border-bottom:0 solid !important}.sd-border-right-0{border-right:0 solid !important}.sd-border-left-0{border-left:0 solid !important}.sd-border-1{border:1px solid !important}.sd-border-top-1{border-top:1px solid !important}.sd-border-bottom-1{border-bottom:1px solid !important}.sd-border-right-1{border-right:1px solid !important}.sd-border-left-1{border-left:1px solid !important}.sd-border-2{border:2px solid !important}.sd-border-top-2{border-top:2px solid !important}.sd-border-bottom-2{border-bottom:2px solid !important}.sd-border-right-2{border-right:2px solid !important}.sd-border-left-2{border-left:2px solid !important}.sd-border-3{border:3px solid !important}.sd-border-top-3{border-top:3px solid !important}.sd-border-bottom-3{border-bottom:3px solid !important}.sd-border-right-3{border-right:3px solid !important}.sd-border-left-3{border-left:3px solid !important}.sd-border-4{border:4px solid !important}.sd-border-top-4{border-top:4px solid !important}.sd-border-bottom-4{border-bottom:4px solid !important}.sd-border-right-4{border-right:4px solid !important}.sd-border-left-4{border-left:4px solid !important}.sd-border-5{border:5px solid !important}.sd-border-top-5{border-top:5px solid !important}.sd-border-bottom-5{border-bottom:5px solid !important}.sd-border-right-5{border-right:5px solid !important}.sd-border-left-5{border-left:5px solid !important}.sd-rounded-0{border-radius:0 !important}.sd-rounded-1{border-radius:.2rem !important}.sd-rounded-2{border-radius:.3rem !important}.sd-rounded-3{border-radius:.5rem !important}.sd-rounded-pill{border-radius:50rem !important}.sd-rounded-circle{border-radius:50% !important}.shadow-none{box-shadow:none !important}.sd-shadow-sm{box-shadow:0 .125rem .25rem var(--sd-color-shadow) !important}.sd-shadow-md{box-shadow:0 .5rem 1rem var(--sd-color-shadow) !important}.sd-shadow-lg{box-shadow:0 1rem 3rem var(--sd-color-shadow) !important}@keyframes sd-slide-from-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@keyframes sd-slide-from-right{0%{transform:translateX(200%)}100%{transform:translateX(0)}}@keyframes sd-grow100{0%{transform:scale(0);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50{0%{transform:scale(0.5);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50-rot20{0%{transform:scale(0.5) rotateZ(-20deg);opacity:.5}75%{transform:scale(1) rotateZ(5deg);opacity:1}95%{transform:scale(1) rotateZ(-1deg);opacity:1}100%{transform:scale(1) rotateZ(0);opacity:1}}.sd-animate-slide-from-left{animation:1s ease-out 0s 1 normal none running sd-slide-from-left}.sd-animate-slide-from-right{animation:1s ease-out 0s 1 normal none running sd-slide-from-right}.sd-animate-grow100{animation:1s ease-out 0s 1 normal none running sd-grow100}.sd-animate-grow50{animation:1s ease-out 0s 1 normal none running sd-grow50}.sd-animate-grow50-rot20{animation:1s ease-out 0s 1 normal none running sd-grow50-rot20}.sd-badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.sd-badge:empty{display:none}a.sd-badge{text-decoration:none}.sd-btn .sd-badge{position:relative;top:-1px}.sd-btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer;display:inline-block;font-weight:400;font-size:1rem;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:middle;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none}.sd-btn:hover{text-decoration:none}@media(prefers-reduced-motion: reduce){.sd-btn{transition:none}}.sd-btn-primary,.sd-btn-outline-primary:hover,.sd-btn-outline-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-primary:hover,.sd-btn-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary-highlight) !important;border-color:var(--sd-color-primary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-primary{color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary,.sd-btn-outline-secondary:hover,.sd-btn-outline-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary:hover,.sd-btn-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary-highlight) !important;border-color:var(--sd-color-secondary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-secondary{color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success,.sd-btn-outline-success:hover,.sd-btn-outline-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success:hover,.sd-btn-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success-highlight) !important;border-color:var(--sd-color-success-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-success{color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info,.sd-btn-outline-info:hover,.sd-btn-outline-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info:hover,.sd-btn-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info-highlight) !important;border-color:var(--sd-color-info-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-info{color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning,.sd-btn-outline-warning:hover,.sd-btn-outline-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning:hover,.sd-btn-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning-highlight) !important;border-color:var(--sd-color-warning-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-warning{color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger,.sd-btn-outline-danger:hover,.sd-btn-outline-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger:hover,.sd-btn-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger-highlight) !important;border-color:var(--sd-color-danger-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-danger{color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light,.sd-btn-outline-light:hover,.sd-btn-outline-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light:hover,.sd-btn-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light-highlight) !important;border-color:var(--sd-color-light-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-light{color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted,.sd-btn-outline-muted:hover,.sd-btn-outline-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted:hover,.sd-btn-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted-highlight) !important;border-color:var(--sd-color-muted-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-muted{color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark,.sd-btn-outline-dark:hover,.sd-btn-outline-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark:hover,.sd-btn-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark-highlight) !important;border-color:var(--sd-color-dark-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-dark{color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black,.sd-btn-outline-black:hover,.sd-btn-outline-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black:hover,.sd-btn-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black-highlight) !important;border-color:var(--sd-color-black-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-black{color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white,.sd-btn-outline-white:hover,.sd-btn-outline-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white:hover,.sd-btn-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white-highlight) !important;border-color:var(--sd-color-white-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-white{color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.sd-hide-link-text{font-size:0}.sd-octicon,.sd-material-icon{display:inline-block;fill:currentColor;vertical-align:middle}.sd-avatar-xs{border-radius:50%;object-fit:cover;object-position:center;width:1rem;height:1rem}.sd-avatar-sm{border-radius:50%;object-fit:cover;object-position:center;width:3rem;height:3rem}.sd-avatar-md{border-radius:50%;object-fit:cover;object-position:center;width:5rem;height:5rem}.sd-avatar-lg{border-radius:50%;object-fit:cover;object-position:center;width:7rem;height:7rem}.sd-avatar-xl{border-radius:50%;object-fit:cover;object-position:center;width:10rem;height:10rem}.sd-avatar-inherit{border-radius:50%;object-fit:cover;object-position:center;width:inherit;height:inherit}.sd-avatar-initial{border-radius:50%;object-fit:cover;object-position:center;width:initial;height:initial}.sd-card{background-clip:border-box;background-color:var(--sd-color-card-background);border:1px solid var(--sd-color-card-border);border-radius:.25rem;color:var(--sd-color-card-text);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word}.sd-card>hr{margin-left:0;margin-right:0}.sd-card-hover:hover{border-color:var(--sd-color-card-border-hover);transform:scale(1.01)}.sd-card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem 1rem}.sd-card-title{margin-bottom:.5rem}.sd-card-subtitle{margin-top:-0.25rem;margin-bottom:0}.sd-card-text:last-child{margin-bottom:0}.sd-card-link:hover{text-decoration:none}.sd-card-link+.card-link{margin-left:1rem}.sd-card-header{padding:.5rem 1rem;margin-bottom:0;background-color:var(--sd-color-card-header);border-bottom:1px solid var(--sd-color-card-border)}.sd-card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.sd-card-footer{padding:.5rem 1rem;background-color:var(--sd-color-card-footer);border-top:1px solid var(--sd-color-card-border)}.sd-card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.sd-card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.sd-card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.sd-card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom,.sd-card-img-top{width:100%}.sd-card-img,.sd-card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom{border-bottom-left-radius:calc(0.25rem - 1px);border-bottom-right-radius:calc(0.25rem - 1px)}.sd-cards-carousel{width:100%;display:flex;flex-wrap:nowrap;-ms-flex-direction:row;flex-direction:row;overflow-x:hidden;scroll-snap-type:x mandatory}.sd-cards-carousel.sd-show-scrollbar{overflow-x:auto}.sd-cards-carousel:hover,.sd-cards-carousel:focus{overflow-x:auto}.sd-cards-carousel>.sd-card{flex-shrink:0;scroll-snap-align:start}.sd-cards-carousel>.sd-card:not(:last-child){margin-right:3px}.sd-card-cols-1>.sd-card{width:90%}.sd-card-cols-2>.sd-card{width:45%}.sd-card-cols-3>.sd-card{width:30%}.sd-card-cols-4>.sd-card{width:22.5%}.sd-card-cols-5>.sd-card{width:18%}.sd-card-cols-6>.sd-card{width:15%}.sd-card-cols-7>.sd-card{width:12.8571428571%}.sd-card-cols-8>.sd-card{width:11.25%}.sd-card-cols-9>.sd-card{width:10%}.sd-card-cols-10>.sd-card{width:9%}.sd-card-cols-11>.sd-card{width:8.1818181818%}.sd-card-cols-12>.sd-card{width:7.5%}.sd-container,.sd-container-fluid,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container-xl{margin-left:auto;margin-right:auto;padding-left:var(--sd-gutter-x, 0.75rem);padding-right:var(--sd-gutter-x, 0.75rem);width:100%}@media(min-width: 576px){.sd-container-sm,.sd-container{max-width:540px}}@media(min-width: 768px){.sd-container-md,.sd-container-sm,.sd-container{max-width:720px}}@media(min-width: 992px){.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:960px}}@media(min-width: 1200px){.sd-container-xl,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:1140px}}.sd-row{--sd-gutter-x: 1.5rem;--sd-gutter-y: 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(var(--sd-gutter-y) * -1);margin-right:calc(var(--sd-gutter-x) * -0.5);margin-left:calc(var(--sd-gutter-x) * -0.5)}.sd-row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--sd-gutter-x) * 0.5);padding-left:calc(var(--sd-gutter-x) * 0.5);margin-top:var(--sd-gutter-y)}.sd-col{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-auto>*{flex:0 0 auto;width:auto}.sd-row-cols-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}@media(min-width: 576px){.sd-col-sm{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-sm-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-sm-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-sm-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-sm-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-sm-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-sm-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-sm-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-sm-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-sm-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-sm-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-sm-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-sm-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-sm-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 768px){.sd-col-md{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-md-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-md-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-md-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-md-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-md-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-md-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-md-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-md-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-md-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-md-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-md-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-md-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-md-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 992px){.sd-col-lg{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-lg-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-lg-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-lg-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-lg-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-lg-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-lg-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-lg-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-lg-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-lg-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-lg-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-lg-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-lg-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-lg-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 1200px){.sd-col-xl{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-xl-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-xl-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-xl-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-xl-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-xl-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-xl-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-xl-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-xl-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-xl-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-xl-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-xl-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-xl-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-xl-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}.sd-col-auto{flex:0 0 auto;-ms-flex:0 0 auto;width:auto}.sd-col-1{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}.sd-col-2{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-col-3{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-col-4{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-col-5{flex:0 0 auto;-ms-flex:0 0 auto;width:41.6666666667%}.sd-col-6{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-col-7{flex:0 0 auto;-ms-flex:0 0 auto;width:58.3333333333%}.sd-col-8{flex:0 0 auto;-ms-flex:0 0 auto;width:66.6666666667%}.sd-col-9{flex:0 0 auto;-ms-flex:0 0 auto;width:75%}.sd-col-10{flex:0 0 auto;-ms-flex:0 0 auto;width:83.3333333333%}.sd-col-11{flex:0 0 auto;-ms-flex:0 0 auto;width:91.6666666667%}.sd-col-12{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-g-0,.sd-gy-0{--sd-gutter-y: 0}.sd-g-0,.sd-gx-0{--sd-gutter-x: 0}.sd-g-1,.sd-gy-1{--sd-gutter-y: 0.25rem}.sd-g-1,.sd-gx-1{--sd-gutter-x: 0.25rem}.sd-g-2,.sd-gy-2{--sd-gutter-y: 0.5rem}.sd-g-2,.sd-gx-2{--sd-gutter-x: 0.5rem}.sd-g-3,.sd-gy-3{--sd-gutter-y: 1rem}.sd-g-3,.sd-gx-3{--sd-gutter-x: 1rem}.sd-g-4,.sd-gy-4{--sd-gutter-y: 1.5rem}.sd-g-4,.sd-gx-4{--sd-gutter-x: 1.5rem}.sd-g-5,.sd-gy-5{--sd-gutter-y: 3rem}.sd-g-5,.sd-gx-5{--sd-gutter-x: 3rem}@media(min-width: 576px){.sd-col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-sm-0,.sd-gy-sm-0{--sd-gutter-y: 0}.sd-g-sm-0,.sd-gx-sm-0{--sd-gutter-x: 0}.sd-g-sm-1,.sd-gy-sm-1{--sd-gutter-y: 0.25rem}.sd-g-sm-1,.sd-gx-sm-1{--sd-gutter-x: 0.25rem}.sd-g-sm-2,.sd-gy-sm-2{--sd-gutter-y: 0.5rem}.sd-g-sm-2,.sd-gx-sm-2{--sd-gutter-x: 0.5rem}.sd-g-sm-3,.sd-gy-sm-3{--sd-gutter-y: 1rem}.sd-g-sm-3,.sd-gx-sm-3{--sd-gutter-x: 1rem}.sd-g-sm-4,.sd-gy-sm-4{--sd-gutter-y: 1.5rem}.sd-g-sm-4,.sd-gx-sm-4{--sd-gutter-x: 1.5rem}.sd-g-sm-5,.sd-gy-sm-5{--sd-gutter-y: 3rem}.sd-g-sm-5,.sd-gx-sm-5{--sd-gutter-x: 3rem}}@media(min-width: 768px){.sd-col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-md-0,.sd-gy-md-0{--sd-gutter-y: 0}.sd-g-md-0,.sd-gx-md-0{--sd-gutter-x: 0}.sd-g-md-1,.sd-gy-md-1{--sd-gutter-y: 0.25rem}.sd-g-md-1,.sd-gx-md-1{--sd-gutter-x: 0.25rem}.sd-g-md-2,.sd-gy-md-2{--sd-gutter-y: 0.5rem}.sd-g-md-2,.sd-gx-md-2{--sd-gutter-x: 0.5rem}.sd-g-md-3,.sd-gy-md-3{--sd-gutter-y: 1rem}.sd-g-md-3,.sd-gx-md-3{--sd-gutter-x: 1rem}.sd-g-md-4,.sd-gy-md-4{--sd-gutter-y: 1.5rem}.sd-g-md-4,.sd-gx-md-4{--sd-gutter-x: 1.5rem}.sd-g-md-5,.sd-gy-md-5{--sd-gutter-y: 3rem}.sd-g-md-5,.sd-gx-md-5{--sd-gutter-x: 3rem}}@media(min-width: 992px){.sd-col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-lg-0,.sd-gy-lg-0{--sd-gutter-y: 0}.sd-g-lg-0,.sd-gx-lg-0{--sd-gutter-x: 0}.sd-g-lg-1,.sd-gy-lg-1{--sd-gutter-y: 0.25rem}.sd-g-lg-1,.sd-gx-lg-1{--sd-gutter-x: 0.25rem}.sd-g-lg-2,.sd-gy-lg-2{--sd-gutter-y: 0.5rem}.sd-g-lg-2,.sd-gx-lg-2{--sd-gutter-x: 0.5rem}.sd-g-lg-3,.sd-gy-lg-3{--sd-gutter-y: 1rem}.sd-g-lg-3,.sd-gx-lg-3{--sd-gutter-x: 1rem}.sd-g-lg-4,.sd-gy-lg-4{--sd-gutter-y: 1.5rem}.sd-g-lg-4,.sd-gx-lg-4{--sd-gutter-x: 1.5rem}.sd-g-lg-5,.sd-gy-lg-5{--sd-gutter-y: 3rem}.sd-g-lg-5,.sd-gx-lg-5{--sd-gutter-x: 3rem}}@media(min-width: 1200px){.sd-col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-xl-0,.sd-gy-xl-0{--sd-gutter-y: 0}.sd-g-xl-0,.sd-gx-xl-0{--sd-gutter-x: 0}.sd-g-xl-1,.sd-gy-xl-1{--sd-gutter-y: 0.25rem}.sd-g-xl-1,.sd-gx-xl-1{--sd-gutter-x: 0.25rem}.sd-g-xl-2,.sd-gy-xl-2{--sd-gutter-y: 0.5rem}.sd-g-xl-2,.sd-gx-xl-2{--sd-gutter-x: 0.5rem}.sd-g-xl-3,.sd-gy-xl-3{--sd-gutter-y: 1rem}.sd-g-xl-3,.sd-gx-xl-3{--sd-gutter-x: 1rem}.sd-g-xl-4,.sd-gy-xl-4{--sd-gutter-y: 1.5rem}.sd-g-xl-4,.sd-gx-xl-4{--sd-gutter-x: 1.5rem}.sd-g-xl-5,.sd-gy-xl-5{--sd-gutter-y: 3rem}.sd-g-xl-5,.sd-gx-xl-5{--sd-gutter-x: 3rem}}.sd-flex-row-reverse{flex-direction:row-reverse !important}details.sd-dropdown{position:relative;font-size:var(--sd-fontsize-dropdown)}details.sd-dropdown:hover{cursor:pointer}details.sd-dropdown .sd-summary-content{cursor:default}details.sd-dropdown summary.sd-summary-title{padding:.5em .6em .5em 1em;font-size:var(--sd-fontsize-dropdown-title);font-weight:var(--sd-fontweight-dropdown-title);user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;list-style:none;display:inline-flex;justify-content:space-between}details.sd-dropdown summary.sd-summary-title::-webkit-details-marker{display:none}details.sd-dropdown summary.sd-summary-title:focus{outline:none}details.sd-dropdown summary.sd-summary-title .sd-summary-icon{margin-right:.6em;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-icon svg{opacity:.8}details.sd-dropdown summary.sd-summary-title .sd-summary-text{flex-grow:1;line-height:1.5;padding-right:.5rem}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker{pointer-events:none;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker svg{opacity:.6}details.sd-dropdown summary.sd-summary-title:hover .sd-summary-state-marker svg{opacity:1;transform:scale(1.1)}details.sd-dropdown[open] summary .sd-octicon.no-title{visibility:hidden}details.sd-dropdown .sd-summary-chevron-right{transition:.25s}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-right{transform:rotate(90deg)}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-down{transform:rotate(180deg)}details.sd-dropdown:not([open]).sd-card{border:none}details.sd-dropdown:not([open])>.sd-card-header{border:1px solid var(--sd-color-card-border);border-radius:.25rem}details.sd-dropdown.sd-fade-in[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out;animation:sd-fade-in .5s ease-in-out}details.sd-dropdown.sd-fade-in-slide-down[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out}.sd-col>.sd-dropdown{width:100%}.sd-summary-content>.sd-tab-set:first-child{margin-top:0}@keyframes sd-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes sd-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.sd-tab-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.sd-tab-set>input{opacity:0;position:absolute}.sd-tab-set>input:checked+label{border-color:var(--sd-color-tabs-underline-active);color:var(--sd-color-tabs-label-active)}.sd-tab-set>input:checked+label+.sd-tab-content{display:block}.sd-tab-set>input:not(:checked)+label:hover{color:var(--sd-color-tabs-label-hover);border-color:var(--sd-color-tabs-underline-hover)}.sd-tab-set>input:focus+label{outline-style:auto}.sd-tab-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.sd-tab-set>label{border-bottom:.125rem solid transparent;margin-bottom:0;color:var(--sd-color-tabs-label-inactive);border-color:var(--sd-color-tabs-underline-inactive);cursor:pointer;font-size:var(--sd-fontsize-tabs-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .sd-tab-set>label:hover{color:var(--sd-color-tabs-label-active)}.sd-col>.sd-tab-set{width:100%}.sd-tab-content{box-shadow:0 -0.0625rem var(--sd-color-tabs-overline),0 .0625rem var(--sd-color-tabs-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.sd-tab-content>:first-child{margin-top:0 !important}.sd-tab-content>:last-child{margin-bottom:0 !important}.sd-tab-content>.sd-tab-set{margin:0}.sd-sphinx-override,.sd-sphinx-override *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sd-sphinx-override p{margin-top:0}:root{--sd-color-primary: #0071bc;--sd-color-secondary: #6c757d;--sd-color-success: #28a745;--sd-color-info: #17a2b8;--sd-color-warning: #f0b37e;--sd-color-danger: #dc3545;--sd-color-light: #f8f9fa;--sd-color-muted: #6c757d;--sd-color-dark: #212529;--sd-color-black: black;--sd-color-white: white;--sd-color-primary-highlight: #0060a0;--sd-color-secondary-highlight: #5c636a;--sd-color-success-highlight: #228e3b;--sd-color-info-highlight: #148a9c;--sd-color-warning-highlight: #cc986b;--sd-color-danger-highlight: #bb2d3b;--sd-color-light-highlight: #d3d4d5;--sd-color-muted-highlight: #5c636a;--sd-color-dark-highlight: #1c1f23;--sd-color-black-highlight: black;--sd-color-white-highlight: #d9d9d9;--sd-color-primary-bg: rgba(0, 113, 188, 0.2);--sd-color-secondary-bg: rgba(108, 117, 125, 0.2);--sd-color-success-bg: rgba(40, 167, 69, 0.2);--sd-color-info-bg: rgba(23, 162, 184, 0.2);--sd-color-warning-bg: rgba(240, 179, 126, 0.2);--sd-color-danger-bg: rgba(220, 53, 69, 0.2);--sd-color-light-bg: rgba(248, 249, 250, 0.2);--sd-color-muted-bg: rgba(108, 117, 125, 0.2);--sd-color-dark-bg: rgba(33, 37, 41, 0.2);--sd-color-black-bg: rgba(0, 0, 0, 0.2);--sd-color-white-bg: rgba(255, 255, 255, 0.2);--sd-color-primary-text: #fff;--sd-color-secondary-text: #fff;--sd-color-success-text: #fff;--sd-color-info-text: #fff;--sd-color-warning-text: #212529;--sd-color-danger-text: #fff;--sd-color-light-text: #212529;--sd-color-muted-text: #fff;--sd-color-dark-text: #fff;--sd-color-black-text: #fff;--sd-color-white-text: #212529;--sd-color-shadow: rgba(0, 0, 0, 0.15);--sd-color-card-border: rgba(0, 0, 0, 0.125);--sd-color-card-border-hover: hsla(231, 99%, 66%, 1);--sd-color-card-background: transparent;--sd-color-card-text: inherit;--sd-color-card-header: transparent;--sd-color-card-footer: transparent;--sd-color-tabs-label-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-hover: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-inactive: hsl(0, 0%, 66%);--sd-color-tabs-underline-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-underline-hover: rgba(178, 206, 245, 0.62);--sd-color-tabs-underline-inactive: transparent;--sd-color-tabs-overline: rgb(222, 222, 222);--sd-color-tabs-underline: rgb(222, 222, 222);--sd-fontsize-tabs-label: 1rem;--sd-fontsize-dropdown: inherit;--sd-fontsize-dropdown-title: 1rem;--sd-fontweight-dropdown-title: 700} diff --git a/dev/api.html b/dev/api.html index 1b0167c78..44160743e 100644 --- a/dev/api.html +++ b/dev/api.html @@ -33,7 +33,6 @@ - @@ -48,7 +47,6 @@ - @@ -722,19 +720,19 @@

    Distribution
    - + - + - + - + - + @@ -748,9 +746,12 @@

    Model

    logp(mean_1, mean_2, mean_3, precision_1, ...)

    logp

    Compute the log-probability of a decision model under belief trajectories.

    hgf_logp([mean_1, mean_2, mean_3, ...])

    hgf_logp

    Compute log-probabilities of a batch of Hierarchical Gaussian Filters.

    HGFLogpGradOp([input_data, time_steps, ...])

    HGFLogpGradOp

    Gradient Op for the HGF distribution.

    HGFDistribution([input_data, time_steps, ...])

    HGFDistribution

    The HGF distribution PyMC >= 5.0 compatible.

    HGFPointwise([input_data, time_steps, ...])

    HGFPointwise

    The HGF distribution returning pointwise log probability.

    - + + + +

    HGF([n_levels, model_type, initial_mean, ...])

    HGF

    The two-level and three-level Hierarchical Gaussian Filters (HGF).

    Network

    A predictive coding neural network.

    diff --git a/dev/cite.html b/dev/cite.html index 5904221d1..30aa47f49 100644 --- a/dev/cite.html +++ b/dev/cite.html @@ -33,7 +33,6 @@ - @@ -48,7 +47,6 @@ - diff --git a/dev/generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution.html b/dev/generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution.html index 1d6220481..00945be13 100644 --- a/dev/generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution.html +++ b/dev/generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution.html @@ -33,7 +33,6 @@ - @@ -48,7 +47,6 @@ - @@ -468,6 +466,7 @@

@@ -623,10 +623,12 @@

M

N

diff --git a/dev/index.html b/dev/index.html index 8983cd638..e61b1fca0 100644 --- a/dev/index.html +++ b/dev/index.html @@ -33,7 +33,6 @@ - @@ -48,7 +47,6 @@ - diff --git a/dev/learn.html b/dev/learn.html index cbd4094b0..f423165b6 100644 --- a/dev/learn.html +++ b/dev/learn.html @@ -33,7 +33,6 @@ - @@ -48,7 +47,6 @@ - @@ -514,190 +512,21 @@

Learn#<

In this section, you can find tutorial notebooks that describe the internals of pyhgf, the theory behind the Hierarchical Gaussian filter, and step-by-step application and use cases of the model. At the beginning of every tutorial, you will find a badge Open In Colab to run the notebook interactively in a Google Colab session.

Theory#

-
-
-
-
- -
-
-An introduction to the Hierarchical Gaussian Filter
-

How the generative model of the Hierarchical Gaussian filter can be turned into update functions that update nodes through value and volatility coupling?

-
-Introduction to the Generalised Hierarchical Gaussian Filter
-
-
-
- -
-
-Creating and manipulating networks of probabilistic nodes
-

How to create and manipulate a network of probabilistic nodes for reinforcement learning? Working at the intersection of graphs, neural networks and probabilistic frameworks.

-
-Creating and manipulating networks of probabilistic nodes
-
-
-
- -
-
-Generalised Bayesian filtering
-

Predict, filter and smooth any distribution from the exponential family using generalisations of the Hierarchical Gaussian Filter.

-
-From Reinforcement Learning to Generalised Bayesian Filtering
-
-
-

The Hierarchical Gaussian Filter#

-
-
-
-
- -
-
-The binary Hierarchical Gaussian Filter
-

Introducing with example the binary Hierarchical Gaussian filter and its applications to reinforcement learning.

-
-The binary Hierarchical Gaussian Filter
-
-
-
- -
-
-The categorical Hierarchical Gaussian Filter
-

The categorical Hierarchical Gaussian Filter is a generalisation of the binary HGF to handle categorical distribution with and without transition probabilities.

-
-The categorical Hierarchical Gaussian Filter
-
-
-
- -
-
-The continuous Hierarchical Gaussian Filter
-

Introducing with example the continuous Hierarchical Gaussian filter and its applications to signal processing.

-
-The continuous Hierarchical Gaussian Filter
-
-
-

Tutorials#

Advanced customisation of predictive coding neural networks and Bayesian modelling for group studies.

-
-
-
-
- -
-
-Using custom response functions
-

How to adapt any model to specific behaviours and experimental design by using custom response functions.

-
-Using custom response models
-
-
-
- -
-
-Embedding the Hierarchical Gaussian Filter in a Bayesian network for multilevel inference
-

How to use any model as a distribution to perform hierarchical inference at the group level.

-
-Hierarchical Bayesian modelling with probabilistic neural networks
-
-
-
- -
-
-Parameter recovery, prior and posterior predictive sampling
-

Recovering parameters from the generative model and using the sampling functionalities to estimate prior and posterior uncertainties.

-
-Recovering computational parameters from observed behaviours
-
-
-
- -
-
-Non-linear value coupling
-

Recovering parameters from the generative model and using the sampling functionalities to estimate prior and posterior uncertainties.

-
-Non-linear value coupling
-
-
-

Use cases#

Examples of possible applications and extensions of the standards Hierarchical Gaussian Filters to more complex experimental designs

-
-
-
-
-
-
-Inferring cardiac beliefs using Bayesian filtering
-

Application of continuous Bayesian filtering to cardiac physiological recordings to infer interoceptive beliefs and their volatility.

-
-Example 1: Bayesian filtering of cardiac volatility
-
-
-
- -
-
-Value and volatility coupling with an input node
-

Dynamic inference over both the mean and variance of a normal distribution.

-
-Example 2: Estimating the mean and precision of an input node
-
-
-
- -
-
-Multi-armed bandit task with independent reward and punishments
-

A generalisation of the binary Hierarchical Gaussian Filter to multiarmed bandit where the probabilities of the outcomes are evolving independently.

-
-Example 3: A multi-armed bandit task with independent rewards and punishments
-
-
-

Exercises#

Hand-on exercises for theComputational Psychiatry Course (Zurich) to build intuition around the generalised Hierarchical Gaussian Filter, how to create and manipulate probabilistic networks, design an agent to perform a reinforcement learning task and use MCMC sampling for parameter inference and model comparison—about 4 hours.

-
-
-
-
- -
-
-Introduction to the Generalised Hierarchical Gaussian Filter
-

Theoretical introduction to the generative model of the generalised Hierarchical Gaussian Filter and presentation of the update functions (i.e. the first inversion of the model).

-
-Introduction to the generalised Hierarchical Gaussian Filter
-
-
-
- -
-
-Applying the Hierarchical Gaussian Filter to reinforcement learning
-

Practical application of the generalised Hierarchical Gaussian Filter to reinforcement learning problems and estimation of parameters through MCMC sampling (i.e. the second inversion of the model).

-
-Application to reinforcement learning
-
-
-
diff --git a/dev/notebooks/0.1-Theory.html b/dev/notebooks/0.1-Theory.html index 92b9a9a27..ee78f3587 100644 --- a/dev/notebooks/0.1-Theory.html +++ b/dev/notebooks/0.1-Theory.html @@ -33,7 +33,6 @@ - @@ -48,7 +47,6 @@ - @@ -925,10 +923,10 @@

System configuration diff --git a/dev/notebooks/0.2-Creating_networks.html b/dev/notebooks/0.2-Creating_networks.html index e188827a0..ced192002 100644 --- a/dev/notebooks/0.2-Creating_networks.html +++ b/dev/notebooks/0.2-Creating_networks.html @@ -33,7 +33,6 @@ - @@ -48,7 +47,6 @@ - @@ -753,7 +751,7 @@
Continuous value coupling -../_images/a08fba24e7383f6639e82a4025421e77679caec1f5e6f7c675169beca6dca405.png +../_images/c9ca417ae8c8ae7b57dbd103f2b1587a4c6ba41c1c8be4c83319b75538de0707.png
@@ -966,7 +964,7 @@

Value coupling - diff --git a/dev/notebooks/1.1-Binary_HGF.html b/dev/notebooks/1.1-Binary_HGF.html index 28ca3f911..6cc49c90c 100644 --- a/dev/notebooks/1.1-Binary_HGF.html +++ b/dev/notebooks/1.1-Binary_HGF.html @@ -33,7 +33,6 @@ - @@ -48,13 +47,9 @@ - - - - @@ -778,7 +773,7 @@

Visualizing the model

-../_images/7d29572ae423fb4c8d4ea736f01dab651bf0ee09a3d53b5838bcf639ba2eaf01.svg +../_images/ecd192b619fcda3b40cdb5f737d2b936691486677eb7a4f82b5cbc7f55367e9e.svg
@@ -804,11 +799,27 @@

Sampling
NUTS: [tonic_volatility_2]
 
-

-

-

-

-
-../_images/847cac0fe8c5b4c566330729302d641e30ba7543d68f973fe30434788001414a.png +../_images/5f64a9c2eb4ad6634edfa6b2e97b2946d38e830798d92a75c5199494f50b3f20.png
@@ -857,7 +868,7 @@

Using the learned parameters -../_images/65ebb718ef626c907be9668eb0c71e4ec56d42d74b7e7b74a3d613c5e6795727.png +../_images/e18489acd32766262d03ef6326cf5e5808238c904d3eb33a01ced38a9676a7e1.png @@ -945,11 +956,35 @@

Sampling#
NUTS: [tonic_volatility_2, tonic_volatility_3]
 
-

-

-

-

-
Sampling 4 chains for 1_000 tune and 1_000 draw iterations (4_000 + 4_000 draws total) took 17 seconds.
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+

+

+

+

+
Sampling 4 chains for 1_000 tune and 1_000 draw iterations (4_000 + 4_000 draws total) took 15 seconds.
 
@@ -963,7 +998,7 @@

Sampling#

-../_images/646be6aed89af26c7d6879a60cf3d4ae988f935a42c5ac46830ce33a23a8a1ec.png +../_images/29f3e265299de19e11e1ea53f57659f9b72fee472f344b9ae7baa6399813fc34.png
@@ -1001,7 +1036,7 @@

Using the learned parameters -../_images/c96d5341c765949f9f12b3866315d97fe265d54af89e98c2390816535895d067.png +../_images/173b623042e8d6dc4a0a5dbe7e2bacac0152a6f46a0849238cd199e7792479f0.png
-../_images/04800461fa8e48e3576559542f4111c2207d663e6fce49ae0f4925582ce02bf2.png +../_images/17598dc55156a8ce0d444d2a8f7aaa9dea32604d125204185379535c20c246b9.png
@@ -855,12 +853,12 @@

System configuration diff --git a/dev/notebooks/1.3-Continuous_HGF.html b/dev/notebooks/1.3-Continuous_HGF.html index 58483c4ea..23d4ee529 100644 --- a/dev/notebooks/1.3-Continuous_HGF.html +++ b/dev/notebooks/1.3-Continuous_HGF.html @@ -33,7 +33,6 @@ - @@ -48,13 +47,9 @@ - - - - @@ -858,11 +853,31 @@

Sampling
NUTS: [tonic_volatility_1]
 
-

-

-

-

-
@@ -924,7 +939,7 @@

Using the learned parameters -
Array(-1106.0792, dtype=float32)
+
Array(-1106.1028, dtype=float32)
 
@@ -1000,14 +1015,31 @@

Sampling#
NUTS: [tonic_volatility_1]
 
-

-

-

-

-
Sampling 4 chains for 1_000 tune and 1_000 draw iterations (4_000 + 4_000 draws total) took 16 seconds.
-
-
-
There were 1 divergences after tuning. Increase `target_accept` or reparameterize.
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+

+

+

+

+
Sampling 4 chains for 1_000 tune and 1_000 draw iterations (4_000 + 4_000 draws total) took 15 seconds.
 
@@ -1019,7 +1051,7 @@

Sampling#

-../_images/da6f314215d30d0b43ca2d0f3edddc1436f8b448b4c108e35cf59ddde58d75f6.png +../_images/9584fd70af63dad6f50f0944d9b4517250aee4584b0f5d8c40c73f2c3678faa8.png

@@ -1053,7 +1085,7 @@

Using the learned parameters -../_images/412470ec90c19f83d1990416d922775c0ff02b86acd0c0b9804ef9074e1baa2a.png +../_images/cc7aaa48d9ee186c6e4552c09169131fff54b8910dab1521a9aed75b271446fe.png
@@ -1063,7 +1095,7 @@

Using the learned parameters - diff --git a/dev/notebooks/2-Using_custom_response_functions.html b/dev/notebooks/2-Using_custom_response_functions.html index 978e27a89..1af18e54d 100644 --- a/dev/notebooks/2-Using_custom_response_functions.html +++ b/dev/notebooks/2-Using_custom_response_functions.html @@ -33,7 +33,6 @@ - @@ -48,13 +47,9 @@ - - - - @@ -902,10 +897,26 @@

Recovering HGF parameters from the observed behaviors
NUTS: [tonic_volatility_2]
 

-

-

-

-

- - - - + + + + - - - + + +
tonic_volatility_2-3.9510.502-4.888-3.021-3.9520.495-4.942-3.078 0.0120.0091732.02071.00.0081843.02374.0 1.0
-../_images/ddaed825bd1224c2dae259d386e13934e8296bdc789e47fbd039bcaaf2308775.png +../_images/ea4dcb24bf97d505b47ece9ff8adbaef33e7f877318a29bffa54c12f33d2cbbb.png

The results above indicate that given the responses provided by the participant, the most likely values for the parameter \(\omega_2\) are between -4.9 and -3.1, with a mean at -3.9 (you can find slightly different values if you sample different actions from the decisions function). We can consider this as an excellent estimate given the sparsity of the data, and the complexity of the model.

@@ -1001,12 +1012,12 @@

System configuration diff --git a/dev/notebooks/3-Multilevel_HGF.html b/dev/notebooks/3-Multilevel_HGF.html index d8b4a31da..80ed4327e 100644 --- a/dev/notebooks/3-Multilevel_HGF.html +++ b/dev/notebooks/3-Multilevel_HGF.html @@ -33,7 +33,6 @@ - @@ -48,13 +47,9 @@ - - - - @@ -787,7 +782,7 @@

Plot the computational graph -../_images/c2923450c77f6c6ef719766a4bc10533412be15579ef49cc29d0f0a3e35eb331.svg +../_images/65080aaca9cb8b52c7b0e789e7c6674c31790d070c51c3e6fca17d3c6029cd37.svg @@ -813,12 +808,32 @@

Sampling
NUTS: [mu_volatility, sigma_volatility, volatility, mu_temperature, sigma_temperature, inverse_temperature]
 
-

-

-
Sampling 2 chains for 1_000 tune and 1_000 draw iterations (2_000 + 2_000 draws total) took 48 seconds.
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+

+

+
Sampling 2 chains for 1_000 tune and 1_000 draw iterations (2_000 + 2_000 draws total) took 47 seconds.
 
-
@@ -914,14 +929,14 @@

System configuration

diff --git a/dev/notebooks/4-Parameter_recovery.html b/dev/notebooks/4-Parameter_recovery.html index ce6730557..eee0c0737 100644 --- a/dev/notebooks/4-Parameter_recovery.html +++ b/dev/notebooks/4-Parameter_recovery.html @@ -33,7 +33,6 @@ - @@ -48,11 +47,7 @@ - - - - @@ -671,12 +666,28 @@

Inference from the simulated behaviours
NUTS: [censored_volatility, inverse_temperature]
 

-

-

+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+

+

 
Sampling 2 chains for 1_000 tune and 1_000 draw iterations (2_000 + 2_000 draws total) took 60 seconds.
 
-
diff --git a/dev/notebooks/5-Non_linear_value_coupling.html b/dev/notebooks/5-Non_linear_value_coupling.html index 564cfb8bd..9e07ccd59 100644 --- a/dev/notebooks/5-Non_linear_value_coupling.html +++ b/dev/notebooks/5-Non_linear_value_coupling.html @@ -33,7 +33,6 @@ - @@ -48,7 +47,6 @@ - diff --git a/dev/notebooks/Example_1_Heart_rate_variability.html b/dev/notebooks/Example_1_Heart_rate_variability.html index 818eb675b..bb05a493d 100644 --- a/dev/notebooks/Example_1_Heart_rate_variability.html +++ b/dev/notebooks/Example_1_Heart_rate_variability.html @@ -33,7 +33,6 @@ - @@ -48,11 +47,7 @@ - - - - @@ -568,16 +563,16 @@

Loading and preprocessing physiological recording
Downloading ECG channel:   0%|          | 0/2 [00:00<?, ?it/s]
 

-
Downloading ECG channel:  50%|█████     | 1/2 [00:00<00:00,  1.95it/s]
+
Downloading ECG channel:  50%|█████     | 1/2 [00:00<00:00,  2.75it/s]
 
-
Downloading Respiration channel:  50%|█████     | 1/2 [00:00<00:00,  1.95it/s]
+
Downloading Respiration channel:  50%|█████     | 1/2 [00:00<00:00,  2.75it/s]
 
-
Downloading Respiration channel: 100%|██████████| 2/2 [00:01<00:00,  1.78it/s]
+
Downloading Respiration channel: 100%|██████████| 2/2 [00:00<00:00,  2.68it/s]
 
-
Downloading Respiration channel: 100%|██████████| 2/2 [00:01<00:00,  1.80it/s]
+
Downloading Respiration channel: 100%|██████████| 2/2 [00:00<00:00,  2.69it/s]
 
-../_images/bc36edcaef7d49fcaf90a31db56c7146586ff64ad013b043663b09a239db803e.png +../_images/01c0d3236134005a6c066f043e20c6c0a3206f9253b548e265a521bfa4f76a9c.png
@@ -748,11 +763,11 @@

System configuration

diff --git a/dev/notebooks/Example_2_Input_node_volatility_coupling.html b/dev/notebooks/Example_2_Input_node_volatility_coupling.html index b23085613..5ac252fd8 100644 --- a/dev/notebooks/Example_2_Input_node_volatility_coupling.html +++ b/dev/notebooks/Example_2_Input_node_volatility_coupling.html @@ -33,7 +33,6 @@ - @@ -48,7 +47,6 @@ - @@ -696,9 +694,9 @@

System configuration - @@ -48,13 +47,9 @@ - - - - @@ -1087,12 +1082,40 @@

Bayesian inference
NUTS: [omega]
 

-

-

+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+
/opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/rich/live.py:231: UserWarning: install 
+"ipywidgets" for Jupyter support
+  warnings.warn('install "ipywidgets" for Jupyter support')
+
+

+

 
Sampling 2 chains for 1_000 tune and 1_000 draw iterations (2_000 + 2_000 draws total) took 8 seconds.
 
-
diff --git a/dev/notebooks/Exercise_2_Bayesian_reinforcement_learning.html b/dev/notebooks/Exercise_2_Bayesian_reinforcement_learning.html index 3711a57ff..1ea14c308 100644 --- a/dev/notebooks/Exercise_2_Bayesian_reinforcement_learning.html +++ b/dev/notebooks/Exercise_2_Bayesian_reinforcement_learning.html @@ -33,7 +33,6 @@ - @@ -48,13 +47,9 @@ - - - - @@ -675,7 +670,7 @@

Parameters optimization

-../_images/7d29572ae423fb4c8d4ea736f01dab651bf0ee09a3d53b5838bcf639ba2eaf01.svg +../_images/ecd192b619fcda3b40cdb5f737d2b936691486677eb7a4f82b5cbc7f55367e9e.svg
-

-

-

-
-../_images/23a947492740a4387ade6fb6412ab3c996fff3f3ee9c4626ded56992baa4024a.png +../_images/3a03de8525a649622dc7ab6fc05d6e4beebe25c932aa150c22363e177ecc630a.png
-

-

-

-

Assess model fitting, here using leave-one-out cross-validation from the Arviz library.

@@ -895,12 +910,16 @@

Rescorla-Wagner{"version_major": 2, "version_minor": 0, "model_id": "73daae94d419474480beb7a379c12a43"} @@ -1003,11 +1022,26 @@

Two-level HGF
NUTS: [tonic_volatility_2]
 

-

-

-

-

-

We have saved the pointwise log probabilities as a variable, here we simply move this variable to the log_likelihoo field of the idata object, so Arviz knows that this can be used later for model comparison.

@@ -1113,14 +1147,34 @@

Three-level HGF
NUTS: [tonic_volatility_2]
 
-

-

-

-

Move pointwise estimate into the likelihood field.

@@ -1205,11 +1259,11 @@

Model comparison -../_images/fcc839c923456dc5194b1282e849ceb22dde9cfbd8a11b43edff24a8bec505e8.png +../_images/32d045486763a6af1c2257e08d2b670161e1fe8d836c0cdea6424b9a9f402c07.png

Looking at the final result, we can see that the three-level HGF had the best predictive performance on the participant decision, suggesting that higher-level uncertainty is important here to understand the agent’s behaviour.

@@ -1378,7 +1432,7 @@

Beliefs trajectories
-../_images/1e60d6a08ed4ed956bafa287e21493d4bd9aafef53ec5cd3e8eec134b49b0a5b.png +../_images/57fa808836f096e5a9db306649aced891ec5826cf62a770fa629a058d525495d.png

The resulting samples show belief trajectories for 10 samples for each model (we are not depicting the biased random here for clarity). The trajectories are highly similar, but we can see that the two and three-level HGF are slightly adjusting their learning rates in a way that was more consistent with the observed behaviours.

@@ -1423,12 +1477,12 @@

System configuration diff --git a/dev/objects.inv b/dev/objects.inv index 83002d70e..17c0af80a 100644 Binary files a/dev/objects.inv and b/dev/objects.inv differ diff --git a/dev/references.html b/dev/references.html index 6ca19ae67..280ce851b 100644 --- a/dev/references.html +++ b/dev/references.html @@ -33,7 +33,6 @@ - @@ -48,7 +47,6 @@ - diff --git a/dev/search.html b/dev/search.html index d00217001..7ae528a81 100644 --- a/dev/search.html +++ b/dev/search.html @@ -31,7 +31,6 @@ - @@ -46,7 +45,6 @@ - diff --git a/dev/searchindex.js b/dev/searchindex.js index 1a131bd61..f5f71110f 100644 --- a/dev/searchindex.js +++ b/dev/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"": [[76, "exercise1"], [76, "exercise2"], [76, "exercise3"], [76, "exercise4"], [76, "exercise5"]], "API": [[0, "api"]], "Acknowledgments": [[61, "acknowledgments"]], "Add data": [[66, "add-data"], [66, "id4"], [68, "add-data"], [68, "id3"]], "Adding a drift to the random walk": [[63, "adding-a-drift-to-the-random-walk"]], "Application to reinforcement learning": [[77, null]], "Autoregressive processes": [[63, "autoregressive-processes"]], "Bayesian inference": [[75, "bayesian-inference"]], "Beliefs trajectories": [[77, "beliefs-trajectories"]], "Biased random": [[77, "biased-random"]], "Binary inputs": [[0, "binary-inputs"]], "Binary nodes": [[0, "binary-nodes"], [0, "id1"]], "Binary state nodes": [[0, "binary-state-nodes"]], "Bivariate normal distribution": [[65, "bivariate-normal-distribution"]], "Categorical nodes": [[0, "categorical-nodes"]], "Continuous inputs": [[0, "continuous-inputs"]], "Continuous nodes": [[0, "continuous-nodes"], [0, "id2"]], "Continuous state nodes": [[0, "continuous-state-nodes"]], "Continuous value coupling": [[64, "continuous-value-coupling"]], "Continuous volatility coupling": [[64, "continuous-volatility-coupling"]], "Coupling with binary nodes": [[64, "coupling-with-binary-nodes"]], "Create the model": [[66, "create-the-model"], [66, "id3"], [68, "create-the-model"], [68, "id2"]], "Creating a new response function": [[69, "creating-a-new-response-function"]], "Creating a new response function: the binary surprise": [[69, "creating-a-new-response-function-the-binary-surprise"]], "Creating and manipulating networks of probabilistic nodes": [[64, null]], "Creating custom update functions": [[64, "creating-custom-update-functions"]], "Creating custom update sequences": [[64, "creating-custom-update-sequences"]], "Creating probabilistic nodes": [[64, "creating-probabilistic-nodes"]], "Creating the decision rule": [[69, "creating-the-decision-rule"]], "Creating the model": [[66, "creating-the-model"], [66, "id7"], [68, "creating-the-model"], [68, "id5"]], "Creating the probabilistic network": [[67, "creating-the-probabilistic-network"]], "Decision rule": [[75, "decision-rule"]], "Dirichlet processes": [[0, "dirichlet-processes"], [0, "id3"]], "Distribution": [[0, "distribution"]], "Dynamic assignation of update sequences": [[64, "dynamic-assignation-of-update-sequences"]], "Dynamic beliefs updating": [[63, "dynamic-beliefs-updating"]], "Example 1: Bayesian filtering of cardiac volatility": [[73, null]], "Example 2: Estimating the mean and precision of an input node": [[74, null]], "Example 3: A multi-armed bandit task with independent rewards and punishments": [[75, null]], "Exercises": [[62, "exercises"]], "Exponential family": [[0, "exponential-family"]], "Filtering the Sufficient Statistics of a Non-Stationary Distribution": [[65, "filtering-the-sufficient-statistics-of-a-non-stationary-distribution"]], "Filtering the Sufficient Statistics of a Stationary Distribution": [[65, "filtering-the-sufficient-statistics-of-a-stationary-distribution"]], "Fitting behaviours to different RL models": [[77, "fitting-behaviours-to-different-rl-models"]], "Fitting the binary HGF with fixed parameters": [[66, "fitting-the-binary-hgf-with-fixed-parameters"]], "Fitting the continuous HGF with fixed parameters": [[68, "fitting-the-continuous-hgf-with-fixed-parameters"]], "Fitting the model forwards": [[67, "fitting-the-model-forwards"]], "Frequency tracking": [[72, "frequency-tracking"]], "From Reinforcement Learning to Generalised Bayesian Filtering": [[65, null]], "Gaussian Random Walks": [[63, "gaussian-random-walks"], [76, "gaussian-random-walks"]], "Generic input": [[0, "generic-input"]], "Getting started": [[61, "getting-started"]], "Glossary": [[63, "glossary"], [69, "glossary"]], "Group-level inference": [[70, "group-level-inference"]], "Hierarchical Bayesian modelling with probabilistic neural networks": [[70, null]], "How does it work?": [[61, "how-does-it-work"]], "How to cite?": [[1, null]], "Imports": [[66, "imports"]], "Inference from the simulated behaviours": [[71, "inference-from-the-simulated-behaviours"]], "Inference using MCMC sampling": [[67, "inference-using-mcmc-sampling"]], "Inputs": [[0, "inputs"]], "Installation": [[61, "installation"]], "Introduction to the Generalised Hierarchical Gaussian Filter": [[63, null]], "Introduction to the generalised Hierarchical Gaussian Filter": [[76, null]], "Kown mean, unknown precision": [[74, "kown-mean-unknown-precision"]], "Learn": [[62, null]], "Learning parameters with MCMC sampling": [[66, "learning-parameters-with-mcmc-sampling"], [68, "learning-parameters-with-mcmc-sampling"]], "Loading and preprocessing physiological recording": [[73, "loading-and-preprocessing-physiological-recording"]], "Math": [[0, "math"]], "Model": [[0, "model"], [73, "model"]], "Model comparison": [[70, "model-comparison"], [77, "model-comparison"]], "Model fitting": [[61, "model-fitting"]], "Model inversion: the generalized Hierarchical Gaussian Filter": [[76, "model-inversion-the-generalized-hierarchical-gaussian-filter"]], "Modifying the attributes": [[64, "modifying-the-attributes"]], "Modifying the edges": [[64, "modifying-the-edges"]], "Multivariate coupling": [[64, "multivariate-coupling"]], "Non-linear predictions": [[72, "non-linear-predictions"]], "Non-linear value coupling": [[72, null]], "Parameter recovery": [[75, "parameter-recovery"]], "Parameters optimization": [[77, "parameters-optimization"]], "Plot correlation": [[68, "plot-correlation"]], "Plot the computational graph": [[70, "plot-the-computational-graph"]], "Plot the signal with instantaneous heart rate derivations": [[73, "plot-the-signal-with-instantaneous-heart-rate-derivations"]], "Plot trajectories": [[66, "plot-trajectories"], [66, "id5"], [68, "plot-trajectories"], [68, "id4"]], "Plots": [[0, "plots"]], "Posterior predictive sampling": [[77, "posterior-predictive-sampling"]], "Posterior updates": [[0, "posterior-updates"]], "Practice: Filtering the worlds weather": [[76, "practice-filtering-the-worlds-weather"]], "Prediction error steps": [[0, "prediction-error-steps"]], "Prediction steps": [[0, "prediction-steps"]], "Preprocessing": [[73, "preprocessing"]], "Probabilistic coupling between nodes": [[76, "probabilistic-coupling-between-nodes"]], "PyHGF: A Neural Network Library for Predictive Coding": [[61, null]], "ReLU (rectified linear unit) activation function": [[72, "relu-rectified-linear-unit-activation-function"]], "Real-time decision and belief updating": [[75, "real-time-decision-and-belief-updating"]], "Recovering HGF parameters from the observed behaviors": [[69, "recovering-hgf-parameters-from-the-observed-behaviors"]], "Recovering computational parameters from observed behaviours": [[71, null]], "References": [[61, "references"], [78, null]], "Rescorla-Wagner": [[77, "rescorla-wagner"]], "Response": [[0, "response"]], "Sampling": [[66, "sampling"], [66, "id9"], [68, "sampling"], [68, "id7"], [70, "sampling"]], "Simulate a dataset": [[70, "simulate-a-dataset"], [75, "simulate-a-dataset"]], "Simulate behaviours from a one-armed bandit task": [[71, "simulate-behaviours-from-a-one-armed-bandit-task"]], "Simulate responses from a participant": [[75, "simulate-responses-from-a-participant"]], "Simulating a dataset": [[67, "simulating-a-dataset"]], "Solution to Exercise 1": [[76, "solution-exercise1"]], "Solution to Exercise 2": [[76, "solution-exercise2"]], "Solution to Exercise 3": [[76, "solution-exercise3"]], "Solution to Exercise 4": [[76, "solution-exercise4"]], "Solutions": [[76, "solutions"], [77, "solutions"]], "State nodes": [[0, "state-nodes"]], "Static assignation of update sequences": [[64, "static-assignation-of-update-sequences"]], "Surprise": [[66, "surprise"], [66, "id6"], [68, "surprise"]], "System configuration": [[63, "system-configuration"], [64, "system-configuration"], [65, "system-configuration"], [66, "system-configuration"], [67, "system-configuration"], [68, "system-configuration"], [69, "system-configuration"], [70, "system-configuration"], [71, "system-configuration"], [72, "system-configuration"], [73, "system-configuration"], [74, "system-configuration"], [75, "system-configuration"], [76, "system-configuration"], [77, "system-configuration"]], "Table of Contents": [[0, null]], "Task structure": [[75, "task-structure"]], "The Generalized Hierarchical Gaussian Filter": [[61, "the-generalized-hierarchical-gaussian-filter"]], "The Hierarchical Gaussian Filter": [[62, "the-hierarchical-gaussian-filter"]], "The Hierarchical Gaussian Filter in a network of predictive nodes": [[63, "the-hierarchical-gaussian-filter-in-a-network-of-predictive-nodes"]], "The binary HGF": [[77, "the-binary-hgf"]], "The binary Hierarchical Gaussian Filter": [[66, null]], "The case of multivariate ascendency": [[64, "the-case-of-multivariate-ascendency"]], "The case of multivariate descendency": [[64, "the-case-of-multivariate-descendency"]], "The categorical Hierarchical Gaussian Filter": [[67, null]], "The categorical state node": [[67, "the-categorical-state-node"]], "The categorical state-transition node": [[67, "the-categorical-state-transition-node"]], "The continuous Hierarchical Gaussian Filter": [[68, null]], "The generative model": [[63, "the-generative-model"], [76, "the-generative-model"]], "The propagation of prediction and prediction errors": [[63, "the-propagation-of-prediction-and-prediction-errors"]], "The three-level binary Hierarchical Gaussian Filter": [[66, "the-three-level-binary-hierarchical-gaussian-filter"]], "The three-level continuous Hierarchical Gaussian Filter": [[68, "the-three-level-continuous-hierarchical-gaussian-filter"]], "The two-level binary Hierarchical Gaussian Filter": [[66, "the-two-level-binary-hierarchical-gaussian-filter"]], "The two-level continuous Hierarchical Gaussian Filter": [[68, "the-two-level-continuous-hierarchical-gaussian-filter"]], "Theory": [[62, "theory"]], "Theory and implementation details": [[64, "theory-and-implementation-details"]], "Three-level HGF": [[77, "three-level-hgf"]], "Three-level model": [[66, "three-level-model"], [68, "three-level-model"]], "Time-varying update sequences": [[64, "time-varying-update-sequences"]], "Tutorials": [[62, "tutorials"]], "Two-level HGF": [[77, "two-level-hgf"]], "Two-level model": [[66, "two-level-model"], [68, "two-level-model"]], "Univariate normal distribution": [[65, "univariate-normal-distribution"]], "Unkown mean, known precision": [[74, "unkown-mean-known-precision"]], "Unkown mean, unknown precision": [[74, "unkown-mean-unknown-precision"]], "Update functions": [[64, "update-functions"]], "Updates functions": [[0, "updates-functions"]], "Use cases": [[62, "use-cases"]], "Using a dynamically adapted \\nu through a collection of Hierarchical Gaussian Filters": [[65, "using-a-dynamically-adapted-nu-through-a-collection-of-hierarchical-gaussian-filters"]], "Using a fixed \\nu": [[65, "using-a-fixed-nu"]], "Using custom response models": [[69, null]], "Using the learned parameters": [[66, "using-the-learned-parameters"], [66, "id10"], [68, "using-the-learned-parameters"], [68, "id8"]], "Utils": [[0, "utils"]], "Value coupling": [[63, "value-coupling"], [64, "value-coupling"], [76, "value-coupling"]], "Visualization of the posterior distributions": [[70, "visualization-of-the-posterior-distributions"]], "Visualizing parameters recovery": [[71, "visualizing-parameters-recovery"]], "Visualizing probabilistic networks": [[64, "visualizing-probabilistic-networks"]], "Visualizing the model": [[66, "visualizing-the-model"], [66, "id8"], [68, "visualizing-the-model"], [68, "id6"]], "Volatility coupling": [[63, "volatility-coupling"], [64, "volatility-coupling"], [76, "volatility-coupling"]], "Where to go next?": [[77, "where-to-go-next"]], "Working with missing or unobserved input sequences": [[64, "working-with-missing-or-unobserved-input-sequences"]], "pyhgf.distribution.HGFDistribution": [[2, null]], "pyhgf.distribution.HGFLogpGradOp": [[3, null]], "pyhgf.distribution.HGFPointwise": [[4, null]], "pyhgf.distribution.hgf_logp": [[5, null]], "pyhgf.distribution.logp": [[6, null]], "pyhgf.math.MultivariateNormal": [[7, null]], "pyhgf.math.Normal": [[8, null]], "pyhgf.math.binary_surprise": [[9, null]], "pyhgf.math.binary_surprise_finite_precision": [[10, null]], "pyhgf.math.dirichlet_kullback_leibler": [[11, null]], "pyhgf.math.gaussian_density": [[12, null]], "pyhgf.math.gaussian_predictive_distribution": [[13, null]], "pyhgf.math.gaussian_surprise": [[14, null]], "pyhgf.math.sigmoid": [[15, null]], "pyhgf.model.HGF": [[16, null]], "pyhgf.plots.plot_correlations": [[17, null]], "pyhgf.plots.plot_network": [[18, null]], "pyhgf.plots.plot_nodes": [[19, null]], "pyhgf.plots.plot_trajectories": [[20, null]], "pyhgf.response.binary_softmax": [[21, null]], "pyhgf.response.binary_softmax_inverse_temperature": [[22, null]], "pyhgf.response.first_level_binary_surprise": [[23, null]], "pyhgf.response.first_level_gaussian_surprise": [[24, null]], "pyhgf.response.total_gaussian_surprise": [[25, null]], "pyhgf.updates.posterior.binary.binary_node_update_finite": [[26, null]], "pyhgf.updates.posterior.binary.binary_node_update_infinite": [[27, null]], "pyhgf.updates.posterior.categorical.categorical_input_update": [[28, null]], "pyhgf.updates.posterior.continuous.continuous_node_update": [[29, null]], "pyhgf.updates.posterior.continuous.continuous_node_update_ehgf": [[30, null]], "pyhgf.updates.posterior.continuous.posterior_update_mean_continuous_node": [[31, null]], "pyhgf.updates.posterior.continuous.posterior_update_precision_continuous_node": [[32, null]], "pyhgf.updates.posterior.exponential.posterior_update_exponential_family": [[33, null]], "pyhgf.updates.prediction.binary.binary_state_node_prediction": [[34, null]], "pyhgf.updates.prediction.continuous.continuous_node_prediction": [[35, null]], "pyhgf.updates.prediction.continuous.predict_mean": [[36, null]], "pyhgf.updates.prediction.continuous.predict_precision": [[37, null]], "pyhgf.updates.prediction.dirichlet.dirichlet_node_prediction": [[38, null]], "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_finite_precision": [[39, null]], "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_infinite_precision": [[40, null]], "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_prediction_error": [[41, null]], "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_value_prediction_error": [[42, null]], "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_volatility_prediction_error": [[43, null]], "pyhgf.updates.prediction_error.inputs.generic.generic_input_prediction_error": [[44, null]], "pyhgf.updates.prediction_error.nodes.binary.binary_state_node_prediction_error": [[45, null]], "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_prediction_error": [[46, null]], "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_value_prediction_error": [[47, null]], "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_volatility_prediction_error": [[48, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.clusters_likelihood": [[49, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.create_cluster": [[50, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.dirichlet_node_prediction_error": [[51, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.get_candidate": [[52, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.likely_cluster_proposal": [[53, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.update_cluster": [[54, null]], "pyhgf.utils.add_edges": [[55, null]], "pyhgf.utils.beliefs_propagation": [[56, null]], "pyhgf.utils.fill_categorical_state_node": [[57, null]], "pyhgf.utils.get_update_sequence": [[58, null]], "pyhgf.utils.list_branches": [[59, null]], "pyhgf.utils.to_pandas": [[60, null]]}, "docnames": ["api", "cite", "generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution", "generated/pyhgf.distribution/pyhgf.distribution.HGFLogpGradOp", "generated/pyhgf.distribution/pyhgf.distribution.HGFPointwise", "generated/pyhgf.distribution/pyhgf.distribution.hgf_logp", "generated/pyhgf.distribution/pyhgf.distribution.logp", "generated/pyhgf.math/pyhgf.math.MultivariateNormal", "generated/pyhgf.math/pyhgf.math.Normal", "generated/pyhgf.math/pyhgf.math.binary_surprise", "generated/pyhgf.math/pyhgf.math.binary_surprise_finite_precision", "generated/pyhgf.math/pyhgf.math.dirichlet_kullback_leibler", "generated/pyhgf.math/pyhgf.math.gaussian_density", "generated/pyhgf.math/pyhgf.math.gaussian_predictive_distribution", "generated/pyhgf.math/pyhgf.math.gaussian_surprise", "generated/pyhgf.math/pyhgf.math.sigmoid", "generated/pyhgf.model/pyhgf.model.HGF", "generated/pyhgf.plots/pyhgf.plots.plot_correlations", "generated/pyhgf.plots/pyhgf.plots.plot_network", "generated/pyhgf.plots/pyhgf.plots.plot_nodes", "generated/pyhgf.plots/pyhgf.plots.plot_trajectories", "generated/pyhgf.response/pyhgf.response.binary_softmax", "generated/pyhgf.response/pyhgf.response.binary_softmax_inverse_temperature", "generated/pyhgf.response/pyhgf.response.first_level_binary_surprise", "generated/pyhgf.response/pyhgf.response.first_level_gaussian_surprise", "generated/pyhgf.response/pyhgf.response.total_gaussian_surprise", "generated/pyhgf.updates.posterior.binary/pyhgf.updates.posterior.binary.binary_node_update_finite", "generated/pyhgf.updates.posterior.binary/pyhgf.updates.posterior.binary.binary_node_update_infinite", "generated/pyhgf.updates.posterior.categorical/pyhgf.updates.posterior.categorical.categorical_input_update", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.continuous_node_update", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.continuous_node_update_ehgf", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.posterior_update_mean_continuous_node", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.posterior_update_precision_continuous_node", "generated/pyhgf.updates.posterior.exponential/pyhgf.updates.posterior.exponential.posterior_update_exponential_family", "generated/pyhgf.updates.prediction.binary/pyhgf.updates.prediction.binary.binary_state_node_prediction", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.continuous_node_prediction", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.predict_mean", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.predict_precision", "generated/pyhgf.updates.prediction.dirichlet/pyhgf.updates.prediction.dirichlet.dirichlet_node_prediction", "generated/pyhgf.updates.prediction_error.inputs.binary/pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_finite_precision", "generated/pyhgf.updates.prediction_error.inputs.binary/pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_infinite_precision", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_prediction_error", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_value_prediction_error", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_volatility_prediction_error", "generated/pyhgf.updates.prediction_error.inputs.generic/pyhgf.updates.prediction_error.inputs.generic.generic_input_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.binary/pyhgf.updates.prediction_error.nodes.binary.binary_state_node_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_value_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_volatility_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.clusters_likelihood", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.create_cluster", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.dirichlet_node_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.get_candidate", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.likely_cluster_proposal", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.update_cluster", "generated/pyhgf.utils/pyhgf.utils.add_edges", "generated/pyhgf.utils/pyhgf.utils.beliefs_propagation", "generated/pyhgf.utils/pyhgf.utils.fill_categorical_state_node", "generated/pyhgf.utils/pyhgf.utils.get_update_sequence", "generated/pyhgf.utils/pyhgf.utils.list_branches", "generated/pyhgf.utils/pyhgf.utils.to_pandas", "index", "learn", "notebooks/0.1-Theory", "notebooks/0.2-Creating_networks", "notebooks/0.3-Generalised_filtering", "notebooks/1.1-Binary_HGF", "notebooks/1.2-Categorical_HGF", "notebooks/1.3-Continuous_HGF", "notebooks/2-Using_custom_response_functions", "notebooks/3-Multilevel_HGF", "notebooks/4-Parameter_recovery", "notebooks/5-Non_linear_value_coupling", "notebooks/Example_1_Heart_rate_variability", "notebooks/Example_2_Input_node_volatility_coupling", "notebooks/Example_3_Multi_armed_bandit", "notebooks/Exercise_1_Introduction_to_the_generalised_hierarchical_gaussian_filter", "notebooks/Exercise_2_Bayesian_reinforcement_learning", "references"], "envversion": {"sphinx": 63, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinxcontrib.bibtex": 9}, "filenames": ["api.rst", "cite.md", "generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution.rst", "generated/pyhgf.distribution/pyhgf.distribution.HGFLogpGradOp.rst", "generated/pyhgf.distribution/pyhgf.distribution.HGFPointwise.rst", "generated/pyhgf.distribution/pyhgf.distribution.hgf_logp.rst", "generated/pyhgf.distribution/pyhgf.distribution.logp.rst", "generated/pyhgf.math/pyhgf.math.MultivariateNormal.rst", "generated/pyhgf.math/pyhgf.math.Normal.rst", "generated/pyhgf.math/pyhgf.math.binary_surprise.rst", "generated/pyhgf.math/pyhgf.math.binary_surprise_finite_precision.rst", "generated/pyhgf.math/pyhgf.math.dirichlet_kullback_leibler.rst", "generated/pyhgf.math/pyhgf.math.gaussian_density.rst", "generated/pyhgf.math/pyhgf.math.gaussian_predictive_distribution.rst", "generated/pyhgf.math/pyhgf.math.gaussian_surprise.rst", "generated/pyhgf.math/pyhgf.math.sigmoid.rst", "generated/pyhgf.model/pyhgf.model.HGF.rst", "generated/pyhgf.plots/pyhgf.plots.plot_correlations.rst", "generated/pyhgf.plots/pyhgf.plots.plot_network.rst", "generated/pyhgf.plots/pyhgf.plots.plot_nodes.rst", "generated/pyhgf.plots/pyhgf.plots.plot_trajectories.rst", "generated/pyhgf.response/pyhgf.response.binary_softmax.rst", "generated/pyhgf.response/pyhgf.response.binary_softmax_inverse_temperature.rst", "generated/pyhgf.response/pyhgf.response.first_level_binary_surprise.rst", "generated/pyhgf.response/pyhgf.response.first_level_gaussian_surprise.rst", "generated/pyhgf.response/pyhgf.response.total_gaussian_surprise.rst", "generated/pyhgf.updates.posterior.binary/pyhgf.updates.posterior.binary.binary_node_update_finite.rst", "generated/pyhgf.updates.posterior.binary/pyhgf.updates.posterior.binary.binary_node_update_infinite.rst", "generated/pyhgf.updates.posterior.categorical/pyhgf.updates.posterior.categorical.categorical_input_update.rst", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.continuous_node_update.rst", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.continuous_node_update_ehgf.rst", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.posterior_update_mean_continuous_node.rst", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.posterior_update_precision_continuous_node.rst", "generated/pyhgf.updates.posterior.exponential/pyhgf.updates.posterior.exponential.posterior_update_exponential_family.rst", "generated/pyhgf.updates.prediction.binary/pyhgf.updates.prediction.binary.binary_state_node_prediction.rst", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.continuous_node_prediction.rst", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.predict_mean.rst", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.predict_precision.rst", "generated/pyhgf.updates.prediction.dirichlet/pyhgf.updates.prediction.dirichlet.dirichlet_node_prediction.rst", "generated/pyhgf.updates.prediction_error.inputs.binary/pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_finite_precision.rst", "generated/pyhgf.updates.prediction_error.inputs.binary/pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_infinite_precision.rst", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_prediction_error.rst", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_value_prediction_error.rst", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_volatility_prediction_error.rst", "generated/pyhgf.updates.prediction_error.inputs.generic/pyhgf.updates.prediction_error.inputs.generic.generic_input_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.binary/pyhgf.updates.prediction_error.nodes.binary.binary_state_node_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_value_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_volatility_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.clusters_likelihood.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.create_cluster.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.dirichlet_node_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.get_candidate.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.likely_cluster_proposal.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.update_cluster.rst", "generated/pyhgf.utils/pyhgf.utils.add_edges.rst", "generated/pyhgf.utils/pyhgf.utils.beliefs_propagation.rst", "generated/pyhgf.utils/pyhgf.utils.fill_categorical_state_node.rst", "generated/pyhgf.utils/pyhgf.utils.get_update_sequence.rst", "generated/pyhgf.utils/pyhgf.utils.list_branches.rst", "generated/pyhgf.utils/pyhgf.utils.to_pandas.rst", "index.md", "learn.md", "notebooks/0.1-Theory.ipynb", "notebooks/0.2-Creating_networks.ipynb", "notebooks/0.3-Generalised_filtering.ipynb", "notebooks/1.1-Binary_HGF.ipynb", "notebooks/1.2-Categorical_HGF.ipynb", "notebooks/1.3-Continuous_HGF.ipynb", "notebooks/2-Using_custom_response_functions.ipynb", "notebooks/3-Multilevel_HGF.ipynb", "notebooks/4-Parameter_recovery.ipynb", "notebooks/5-Non_linear_value_coupling.ipynb", "notebooks/Example_1_Heart_rate_variability.ipynb", "notebooks/Example_2_Input_node_volatility_coupling.ipynb", "notebooks/Example_3_Multi_armed_bandit.ipynb", "notebooks/Exercise_1_Introduction_to_the_generalised_hierarchical_gaussian_filter.ipynb", "notebooks/Exercise_2_Bayesian_reinforcement_learning.ipynb", "references.md"], "indexentries": {"__init__() (pyhgf.distribution.hgfdistribution method)": [[2, "pyhgf.distribution.HGFDistribution.__init__", false]], "__init__() (pyhgf.distribution.hgflogpgradop method)": [[3, "pyhgf.distribution.HGFLogpGradOp.__init__", false]], "__init__() (pyhgf.distribution.hgfpointwise method)": [[4, "pyhgf.distribution.HGFPointwise.__init__", false]], "__init__() (pyhgf.math.multivariatenormal method)": [[7, "pyhgf.math.MultivariateNormal.__init__", false]], "__init__() (pyhgf.math.normal method)": [[8, "pyhgf.math.Normal.__init__", false]], "__init__() (pyhgf.model.hgf method)": [[16, "pyhgf.model.HGF.__init__", false]], "add_edges() (in module pyhgf.utils)": [[55, "pyhgf.utils.add_edges", false]], "beliefs_propagation() (in module pyhgf.utils)": [[56, "pyhgf.utils.beliefs_propagation", false]], "binary_input_prediction_error_finite_precision() (in module pyhgf.updates.prediction_error.inputs.binary)": [[39, "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_finite_precision", false]], "binary_input_prediction_error_infinite_precision() (in module pyhgf.updates.prediction_error.inputs.binary)": [[40, "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_infinite_precision", false]], "binary_node_update_finite() (in module pyhgf.updates.posterior.binary)": [[26, "pyhgf.updates.posterior.binary.binary_node_update_finite", false]], "binary_node_update_infinite() (in module pyhgf.updates.posterior.binary)": [[27, "pyhgf.updates.posterior.binary.binary_node_update_infinite", false]], "binary_softmax() (in module pyhgf.response)": [[21, "pyhgf.response.binary_softmax", false]], "binary_softmax_inverse_temperature() (in module pyhgf.response)": [[22, "pyhgf.response.binary_softmax_inverse_temperature", false]], "binary_state_node_prediction() (in module pyhgf.updates.prediction.binary)": [[34, "pyhgf.updates.prediction.binary.binary_state_node_prediction", false]], "binary_state_node_prediction_error() (in module pyhgf.updates.prediction_error.nodes.binary)": [[45, "pyhgf.updates.prediction_error.nodes.binary.binary_state_node_prediction_error", false]], "binary_surprise() (in module pyhgf.math)": [[9, "pyhgf.math.binary_surprise", false]], "binary_surprise_finite_precision() (in module pyhgf.math)": [[10, "pyhgf.math.binary_surprise_finite_precision", false]], "categorical_input_update() (in module pyhgf.updates.posterior.categorical)": [[28, "pyhgf.updates.posterior.categorical.categorical_input_update", false]], "clusters_likelihood() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[49, "pyhgf.updates.prediction_error.nodes.dirichlet.clusters_likelihood", false]], "continuous_input_prediction_error() (in module pyhgf.updates.prediction_error.inputs.continuous)": [[41, "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_prediction_error", false]], "continuous_input_value_prediction_error() (in module pyhgf.updates.prediction_error.inputs.continuous)": [[42, "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_value_prediction_error", false]], "continuous_input_volatility_prediction_error() (in module pyhgf.updates.prediction_error.inputs.continuous)": [[43, "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_volatility_prediction_error", false]], "continuous_node_prediction() (in module pyhgf.updates.prediction.continuous)": [[35, "pyhgf.updates.prediction.continuous.continuous_node_prediction", false]], "continuous_node_prediction_error() (in module pyhgf.updates.prediction_error.nodes.continuous)": [[46, "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_prediction_error", false]], "continuous_node_update() (in module pyhgf.updates.posterior.continuous)": [[29, "pyhgf.updates.posterior.continuous.continuous_node_update", false]], "continuous_node_update_ehgf() (in module pyhgf.updates.posterior.continuous)": [[30, "pyhgf.updates.posterior.continuous.continuous_node_update_ehgf", false]], "continuous_node_value_prediction_error() (in module pyhgf.updates.prediction_error.nodes.continuous)": [[47, "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_value_prediction_error", false]], "continuous_node_volatility_prediction_error() (in module pyhgf.updates.prediction_error.nodes.continuous)": [[48, "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_volatility_prediction_error", false]], "create_cluster() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[50, "pyhgf.updates.prediction_error.nodes.dirichlet.create_cluster", false]], "decision rule": [[69, "term-Decision-rule", true]], "dirichlet_kullback_leibler() (in module pyhgf.math)": [[11, "pyhgf.math.dirichlet_kullback_leibler", false]], "dirichlet_node_prediction() (in module pyhgf.updates.prediction.dirichlet)": [[38, "pyhgf.updates.prediction.dirichlet.dirichlet_node_prediction", false]], "dirichlet_node_prediction_error() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[51, "pyhgf.updates.prediction_error.nodes.dirichlet.dirichlet_node_prediction_error", false]], "fill_categorical_state_node() (in module pyhgf.utils)": [[57, "pyhgf.utils.fill_categorical_state_node", false]], "first_level_binary_surprise() (in module pyhgf.response)": [[23, "pyhgf.response.first_level_binary_surprise", false]], "first_level_gaussian_surprise() (in module pyhgf.response)": [[24, "pyhgf.response.first_level_gaussian_surprise", false]], "gaussian random walk": [[63, "term-Gaussian-Random-Walk", true]], "gaussian_density() (in module pyhgf.math)": [[12, "pyhgf.math.gaussian_density", false]], "gaussian_predictive_distribution() (in module pyhgf.math)": [[13, "pyhgf.math.gaussian_predictive_distribution", false]], "gaussian_surprise() (in module pyhgf.math)": [[14, "pyhgf.math.gaussian_surprise", false]], "generic_input_prediction_error() (in module pyhgf.updates.prediction_error.inputs.generic)": [[44, "pyhgf.updates.prediction_error.inputs.generic.generic_input_prediction_error", false]], "get_candidate() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[52, "pyhgf.updates.prediction_error.nodes.dirichlet.get_candidate", false]], "get_update_sequence() (in module pyhgf.utils)": [[58, "pyhgf.utils.get_update_sequence", false]], "hgf (class in pyhgf.model)": [[16, "pyhgf.model.HGF", false]], "hgf_logp() (in module pyhgf.distribution)": [[5, "pyhgf.distribution.hgf_logp", false]], "hgfdistribution (class in pyhgf.distribution)": [[2, "pyhgf.distribution.HGFDistribution", false]], "hgflogpgradop (class in pyhgf.distribution)": [[3, "pyhgf.distribution.HGFLogpGradOp", false]], "hgfpointwise (class in pyhgf.distribution)": [[4, "pyhgf.distribution.HGFPointwise", false]], "likely_cluster_proposal() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[53, "pyhgf.updates.prediction_error.nodes.dirichlet.likely_cluster_proposal", false]], "list_branches() (in module pyhgf.utils)": [[59, "pyhgf.utils.list_branches", false]], "logp() (in module pyhgf.distribution)": [[6, "pyhgf.distribution.logp", false]], "multivariatenormal (class in pyhgf.math)": [[7, "pyhgf.math.MultivariateNormal", false]], "node": [[63, "term-Node", true]], "normal (class in pyhgf.math)": [[8, "pyhgf.math.Normal", false]], "perceptual model": [[69, "term-Perceptual-model", true]], "plot_correlations() (in module pyhgf.plots)": [[17, "pyhgf.plots.plot_correlations", false]], "plot_network() (in module pyhgf.plots)": [[18, "pyhgf.plots.plot_network", false]], "plot_nodes() (in module pyhgf.plots)": [[19, "pyhgf.plots.plot_nodes", false]], "plot_trajectories() (in module pyhgf.plots)": [[20, "pyhgf.plots.plot_trajectories", false]], "posterior_update_exponential_family() (in module pyhgf.updates.posterior.exponential)": [[33, "pyhgf.updates.posterior.exponential.posterior_update_exponential_family", false]], "posterior_update_mean_continuous_node() (in module pyhgf.updates.posterior.continuous)": [[31, "pyhgf.updates.posterior.continuous.posterior_update_mean_continuous_node", false]], "posterior_update_precision_continuous_node() (in module pyhgf.updates.posterior.continuous)": [[32, "pyhgf.updates.posterior.continuous.posterior_update_precision_continuous_node", false]], "predict_mean() (in module pyhgf.updates.prediction.continuous)": [[36, "pyhgf.updates.prediction.continuous.predict_mean", false]], "predict_precision() (in module pyhgf.updates.prediction.continuous)": [[37, "pyhgf.updates.prediction.continuous.predict_precision", false]], "prediction": [[63, "term-Prediction", true]], "prediction error": [[63, "term-Prediction-error", true]], "response function": [[69, "term-Response-function", true]], "response model": [[69, "term-Response-model", true]], "sigmoid() (in module pyhgf.math)": [[15, "pyhgf.math.sigmoid", false]], "to_pandas() (in module pyhgf.utils)": [[60, "pyhgf.utils.to_pandas", false]], "total_gaussian_surprise() (in module pyhgf.response)": [[25, "pyhgf.response.total_gaussian_surprise", false]], "update": [[63, "term-Update", true]], "update_cluster() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[54, "pyhgf.updates.prediction_error.nodes.dirichlet.update_cluster", false]], "vape": [[63, "term-VAPE", true]], "vope": [[63, "term-VOPE", true]]}, "objects": {"pyhgf.distribution": [[2, 0, 1, "", "HGFDistribution"], [3, 0, 1, "", "HGFLogpGradOp"], [4, 0, 1, "", "HGFPointwise"], [5, 2, 1, "", "hgf_logp"], [6, 2, 1, "", "logp"]], "pyhgf.distribution.HGFDistribution": [[2, 1, 1, "", "__init__"]], "pyhgf.distribution.HGFLogpGradOp": [[3, 1, 1, "", "__init__"]], "pyhgf.distribution.HGFPointwise": [[4, 1, 1, "", "__init__"]], "pyhgf.math": [[7, 0, 1, "", "MultivariateNormal"], [8, 0, 1, "", "Normal"], [9, 2, 1, "", "binary_surprise"], [10, 2, 1, "", "binary_surprise_finite_precision"], [11, 2, 1, "", "dirichlet_kullback_leibler"], [12, 2, 1, "", "gaussian_density"], [13, 2, 1, "", "gaussian_predictive_distribution"], [14, 2, 1, "", "gaussian_surprise"], [15, 2, 1, "", "sigmoid"]], "pyhgf.math.MultivariateNormal": [[7, 1, 1, "", "__init__"]], "pyhgf.math.Normal": [[8, 1, 1, "", "__init__"]], "pyhgf.model": [[16, 0, 1, "", "HGF"]], "pyhgf.model.HGF": [[16, 1, 1, "", "__init__"]], "pyhgf.plots": [[17, 2, 1, "", "plot_correlations"], [18, 2, 1, "", "plot_network"], [19, 2, 1, "", "plot_nodes"], [20, 2, 1, "", "plot_trajectories"]], "pyhgf.response": [[21, 2, 1, "", "binary_softmax"], [22, 2, 1, "", "binary_softmax_inverse_temperature"], [23, 2, 1, "", "first_level_binary_surprise"], [24, 2, 1, "", "first_level_gaussian_surprise"], [25, 2, 1, "", "total_gaussian_surprise"]], "pyhgf.updates.posterior.binary": [[26, 2, 1, "", "binary_node_update_finite"], [27, 2, 1, "", "binary_node_update_infinite"]], "pyhgf.updates.posterior.categorical": [[28, 2, 1, "", "categorical_input_update"]], "pyhgf.updates.posterior.continuous": [[29, 2, 1, "", "continuous_node_update"], [30, 2, 1, "", "continuous_node_update_ehgf"], [31, 2, 1, "", "posterior_update_mean_continuous_node"], [32, 2, 1, "", "posterior_update_precision_continuous_node"]], "pyhgf.updates.posterior.exponential": [[33, 2, 1, "", "posterior_update_exponential_family"]], "pyhgf.updates.prediction.binary": [[34, 2, 1, "", "binary_state_node_prediction"]], "pyhgf.updates.prediction.continuous": [[35, 2, 1, "", "continuous_node_prediction"], [36, 2, 1, "", "predict_mean"], [37, 2, 1, "", "predict_precision"]], "pyhgf.updates.prediction.dirichlet": [[38, 2, 1, "", "dirichlet_node_prediction"]], "pyhgf.updates.prediction_error.inputs.binary": [[39, 2, 1, "", "binary_input_prediction_error_finite_precision"], [40, 2, 1, "", "binary_input_prediction_error_infinite_precision"]], "pyhgf.updates.prediction_error.inputs.continuous": [[41, 2, 1, "", "continuous_input_prediction_error"], [42, 2, 1, "", "continuous_input_value_prediction_error"], [43, 2, 1, "", "continuous_input_volatility_prediction_error"]], "pyhgf.updates.prediction_error.inputs.generic": [[44, 2, 1, "", "generic_input_prediction_error"]], "pyhgf.updates.prediction_error.nodes.binary": [[45, 2, 1, "", "binary_state_node_prediction_error"]], "pyhgf.updates.prediction_error.nodes.continuous": [[46, 2, 1, "", "continuous_node_prediction_error"], [47, 2, 1, "", "continuous_node_value_prediction_error"], [48, 2, 1, "", "continuous_node_volatility_prediction_error"]], "pyhgf.updates.prediction_error.nodes.dirichlet": [[49, 2, 1, "", "clusters_likelihood"], [50, 2, 1, "", "create_cluster"], [51, 2, 1, "", "dirichlet_node_prediction_error"], [52, 2, 1, "", "get_candidate"], [53, 2, 1, "", "likely_cluster_proposal"], [54, 2, 1, "", "update_cluster"]], "pyhgf.utils": [[55, 2, 1, "", "add_edges"], [56, 2, 1, "", "beliefs_propagation"], [57, 2, 1, "", "fill_categorical_state_node"], [58, 2, 1, "", "get_update_sequence"], [59, 2, 1, "", "list_branches"], [60, 2, 1, "", "to_pandas"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "terms": {"": [1, 2, 19, 20, 23, 24, 25, 36, 43, 55, 56, 58, 61, 63, 64, 65, 66, 68, 69, 71, 72, 73, 75, 76, 77], "0": [0, 2, 3, 4, 5, 6, 9, 10, 14, 15, 16, 19, 20, 21, 22, 36, 53, 55, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "00": [73, 76, 77], "000000": 77, "000000e": 77, "00039": [1, 61, 78], "008": 77, "00825": [1, 61, 78], "009": 69, "01": [65, 71, 72, 73, 74, 76], "010053": 77, "011": 77, "012": 69, "01517": 66, "016": 78, "016216": 69, "017453": 77, "018": 76, "02": [65, 76], "021": 69, "027": 2, "03": [72, 76], "030": [13, 33], "0323": 68, "038": 2, "04": [19, 20, 68, 76], "044691": 77, "046086": 77, "05": [72, 75, 77], "056803": 69, "060": 78, "061": 76, "065": 2, "067450": 69, "068": 78, "077038": 69, "0792": 68, "08": 78, "08008": 71, "1": [1, 2, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 19, 20, 21, 22, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 51, 55, 58, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 77, 78], "10": [1, 13, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 63, 64, 65, 67, 68, 69, 70, 72, 73, 74, 75, 77, 78], "100": [65, 71, 73], "1000": [2, 63, 64, 65, 72, 73, 74, 76], "10000": [16, 63], "1007": [13, 33, 78], "1016": 78, "1017": 78, "107328": 77, "1078": 77, "109": 77, "10937": [26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 78], "11": [2, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "1106": 68, "1118": 68, "112": 77, "113": 77, "114": 78, "117590": 78, "12": [2, 19, 20, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "1224": 78, "123": [63, 64, 65, 70, 71, 74, 75, 76, 77], "1239": 78, "124": 76, "125": [63, 76], "1251": 78, "1254": 77, "126": 77, "1265": 78, "128": [65, 76], "13": [19, 20, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "138": 61, "14": [2, 69], "1413": 78, "1432": 78, "147": 76, "15": 74, "150": [67, 74], "1500": 64, "16": [2, 65, 66, 68, 69, 70, 71, 73, 75, 76, 77], "163726": 77, "1662": 1, "16625161": 1, "1684": 70, "17": [66, 67], "1724106460": 64, "1732": 69, "18": [19, 20, 69, 70], "185465": 69, "19": [63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "1903": 71, "196": 76, "1998": 71, "1_000": [66, 68, 69, 70, 71, 73, 75, 77], "1d": [2, 4], "1e1": [19, 20, 66, 68, 73], "1e2": 76, "1e4": [16, 19, 20, 66, 68, 69, 73], "1i": [11, 67], "1rst": 66, "2": [2, 3, 4, 5, 6, 11, 13, 14, 16, 19, 20, 29, 30, 31, 32, 43, 48, 51, 58, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 77, 78], "20": [1, 71, 72, 77, 78], "200": [63, 64, 65, 76], "2000": [64, 70], "20000": [52, 53], "2001": 11, "2010": 68, "2011": [1, 61, 63, 64, 68, 78], "2013": 61, "2014": [1, 61, 63, 64, 70, 76, 78], "2016": [70, 76, 78], "2017": [75, 78], "2019": [71, 76, 78], "202": 66, "2020": [13, 33, 65, 78], "2021": [61, 66, 69, 77, 78], "2023": [0, 26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 63, 64, 76, 78], "2024": [61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "203": 66, "205": 69, "2071": 69, "21": 67, "21596": 66, "21629826": 1, "222": 77, "224": 76, "226": 78, "228712": 77, "2305": [26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 78], "230946": 69, "232583": 69, "233799": 69, "234603": 69, "235004": 69, "24": 76, "244": 76, "245": 76, "245895": 77, "247": 76, "249": 76, "25": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "250": [63, 64, 67, 72, 76], "2516081684": 68, "256": 65, "26": [63, 64, 65, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77], "27": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "270900": 69, "27879": 78, "283697": 69, "296556": 69, "2_000": [70, 71, 73, 75], "2_i": 70, "2a2a2a": 67, "2i": [11, 67], "2nd": 66, "3": [2, 3, 4, 5, 13, 16, 19, 20, 33, 58, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 77, 78], "30": [63, 64, 65, 67, 76, 78], "301674": 69, "308": 76, "31": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "3186": 70, "32": 65, "3200": 70, "3389": [1, 61, 78], "345082": 77, "345825": 77, "346159e": 77, "35": [65, 67], "350": 72, "35667497": 9, "363": 77, "387": 76, "389923": 69, "393": 77, "4": [58, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78], "40": 75, "400": [64, 65, 72], "400254": 69, "403361": 77, "4093": 68, "41": [63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "416410": 69, "42": [53, 72, 77], "43": 72, "444049": 69, "45": 64, "456645": 77, "458906": 69, "466356": 69, "471469": 69, "472": 76, "474077": 69, "48": 70, "48550": [26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61], "49547": 78, "4_000": [66, 68, 69, 77], "4c72b0": [63, 69, 76, 77], "5": [0, 1, 2, 19, 20, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "50": [73, 74], "500": [70, 74], "500000": 69, "502": 69, "506923": 69, "510971": 69, "512": 65, "5161": 1, "518301": 69, "52": [13, 33, 78], "520583": 69, "520641": 77, "52988": 66, "530355": 69, "530717": 69, "536678": 69, "5377": 76, "54": 69, "540697": 69, "550": 72, "55a868": [63, 71, 77], "566859": 69, "58": [13, 33, 78], "582766": [65, 74], "588046": 77, "591": 77, "597464": 69, "598099": 77, "5d1e51": 77, "6": [20, 63, 64, 65, 70, 71, 74, 75, 76, 77, 78], "60": [71, 73], "600": [64, 65, 72], "6174": 68, "622459": 69, "624085": 69, "627284": 69, "631975": 69, "635": 76, "638038": 69, "64": [65, 70], "64919": [13, 33], "65": 70, "650": 72, "659764": 69, "66": 77, "660445": 69, "661825": 69, "663944": 69, "680811": 61, "692576": 77, "698": 68, "698733": 69, "7": [9, 65, 68, 71, 75, 76, 77, 78], "70": 70, "701": 76, "731660": 69, "732927": 69, "750": 64, "7554": 78, "766": 2, "776": 2, "78it": 73, "7_7": [13, 33], "7f7f7f": 67, "8": [1, 11, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "80": 75, "800": [64, 65], "806": 2, "80it": 73, "815315": 77, "828": 68, "834867": 69, "850": 72, "864711": 77, "865": 76, "87854": 69, "886": 68, "888": 69, "894831": 77, "8992462158203": 61, "9": [11, 19, 20, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "90": 64, "900": 64, "903": 68, "904": 77, "910": 68, "9189386": 14, "931": 76, "938": 2, "944": 2, "950": 72, "951": 69, "95it": 73, "964": 68, "965": 68, "9696": 78, "97632": 66, "978": [13, 33], "982095e": 77, "99": 70, "996418": 77, "999": 65, "A": [0, 1, 2, 3, 4, 5, 16, 19, 20, 22, 26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 53, 56, 58, 59, 62, 63, 64, 66, 68, 69, 70, 71, 72, 76, 77, 78], "And": 69, "As": [64, 70, 75], "At": [62, 63, 76], "Being": 69, "But": [64, 68, 69, 70, 76], "By": [2, 3, 4, 30, 36, 61, 68, 69], "For": [1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 50, 51, 54, 63, 64, 65, 69, 71, 72, 76, 77], "If": [1, 2, 3, 4, 16, 19, 20, 31, 32, 36, 55, 59, 63, 67, 69, 70, 72, 75, 77], "In": [1, 13, 19, 20, 33, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "It": [1, 16, 28, 55, 61, 63, 64, 65, 68, 69, 71, 72, 74, 75, 77], "NOT": 77, "OR": 76, "On": 69, "One": [64, 66, 68, 77], "Or": 76, "Such": [63, 65, 77], "That": 77, "The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 65, 69, 70, 71, 72, 73, 74, 75, 78], "Then": [72, 76], "There": [68, 69, 70, 71, 75, 77], "These": [1, 61, 63, 66], "To": [63, 66, 68, 69, 70, 72, 76, 77], "With": [63, 72], "_": [20, 22, 31, 32, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 75, 76, 77], "_1": [69, 70], "__init__": [2, 3, 4, 7, 8, 16], "_a": [34, 36, 37], "_b": [31, 32, 34], "_i": 63, "_j": [31, 32, 42, 43, 47, 48], "a_custom_hgf": 64, "aarhu": [72, 76], "aarhus_weather_df": 76, "ab": 71, "aberr": 68, "abil": 71, "abl": [61, 66, 69, 70, 72], "about": [1, 62, 63, 64, 65, 66, 67, 68, 69, 75, 76, 77], "abov": [59, 63, 64, 65, 68, 69, 72, 75, 76], "absenc": [71, 75], "abstract": [1, 65, 78], "ac": 11, "acceler": 68, "accept": [66, 68, 72], "access": [2, 3, 4, 64, 69], "accommod": 1, "accord": [0, 69, 72], "accordingli": [5, 63, 66, 68, 75, 76], "account": [1, 63, 64, 75], "accumul": 56, "accur": 71, "acetylcholin": 1, "achiev": 65, "across": [25, 63, 65, 66, 68, 75], "act": [66, 68, 69, 70], "action": [61, 69, 70, 77], "actionmodel": 69, "activ": [13, 33, 61, 69, 77, 78], "actual": [61, 64, 67, 75], "acycl": 64, "ad": [66, 67, 68, 72, 74, 75, 76], "adapt": [1, 62, 63, 68, 69, 77], "adapt_diag": [66, 68, 69, 70, 71, 73, 75, 77], "add": [55, 61, 63, 72, 75, 76, 77], "add_group": [70, 77], "add_nod": [2, 3, 4, 61, 64, 65, 67, 72, 74, 75, 76], "addit": [2, 3, 4, 5, 6, 64, 65, 68, 69], "addition": [71, 77], "additionn": [21, 22, 23, 24, 25], "adjac": 64, "adjacencylist": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 50, 51, 54, 55, 56, 64], "adjust": 77, "adopt": [66, 68], "advanc": 62, "advantag": [63, 64, 77], "aesara": [66, 68], "affect": [5, 6, 16, 68, 75, 78], "after": [0, 19, 26, 27, 28, 29, 30, 56, 65, 66, 68, 70, 71, 75, 76, 77], "afterward": [2, 3, 4, 16], "again": [67, 68], "against": 68, "agent": [1, 61, 62, 64, 65, 66, 68, 69, 70, 71, 73, 75, 76, 77], "agnost": 1, "aim": [61, 68], "air": 76, "aki": 78, "al": [0, 61, 63, 64, 66, 69, 70, 76, 77], "algorithm": [1, 61, 63, 66, 73], "align": [63, 65, 69], "alin": 78, "all": [0, 1, 2, 5, 16, 55, 58, 59, 66, 68, 69, 70, 71, 72, 73, 75, 76, 77], "alloc": 51, "allow": [1, 64, 68, 69, 72, 75, 76], "alon": 76, "along": [5, 23, 77], "alpha": [65, 67, 69, 71, 72, 74, 75, 76, 77], "alpha_": [11, 67, 72], "alpha_1": 11, "alpha_2": 11, "alreadi": [59, 64, 69, 70], "also": [16, 19, 35, 37, 41, 46, 59, 61, 63, 64, 66, 68, 69, 70, 72, 74, 75, 76, 77], "altern": [58, 64, 68, 69, 75, 77], "alternative\u00e6li": 70, "alwai": [51, 67, 70, 71, 75, 76, 77], "among": 69, "amount": 68, "an": [1, 2, 3, 4, 5, 6, 7, 8, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 31, 32, 33, 40, 41, 42, 43, 44, 46, 52, 54, 56, 58, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77], "analys": [1, 77], "analyt": 1, "andrew": 78, "ani": [0, 1, 26, 27, 29, 30, 59, 61, 62, 63, 65, 66, 67, 68, 69, 70, 72], "anim": 65, "ann": 78, "anna": 78, "anoth": [63, 67, 68, 72, 74, 76, 77], "another_custom_hgf": 64, "answer": 71, "anymor": [36, 63, 65], "anyth": [63, 67], "api": [61, 66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "apont": 61, "appar": 63, "appear": [64, 72], "append": [19, 63, 65, 70, 71, 75, 76, 77], "appli": [43, 56, 58, 62, 64, 65, 67, 69, 70, 71, 75, 76, 77], "applic": [1, 62, 64, 65, 68, 69, 71], "apply_along_axi": 65, "approach": [63, 65, 66, 67, 70, 71], "appropri": 74, "approxim": [1, 30, 61, 63, 64, 76], "april": [68, 78], "ar": [0, 1, 2, 4, 5, 16, 19, 28, 43, 55, 56, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "ar1": [63, 75], "arang": [64, 65, 67, 69, 72, 75, 77], "arbitrari": [2, 64, 69, 72, 76], "arbitrarili": 61, "area": [19, 76], "arg": [7, 8, 26, 27, 28, 29, 30, 33, 34, 35, 38, 39, 40, 44, 45, 46, 51], "argument": [2, 3, 4, 64, 66, 68, 69, 72], "arm": [62, 69, 70, 77], "around": [19, 20, 62, 63, 64, 68, 69, 77], "arrai": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 21, 22, 28, 36, 37, 45, 47, 49, 52, 53, 56, 64, 65, 66, 67, 68, 69, 70, 71, 72, 75, 76, 77], "arrang": 76, "arriv": 63, "articl": [1, 78], "artifici": 72, "arviz": [2, 66, 68, 69, 70, 71, 73, 75, 76, 77], "arxiv": [26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 71, 78], "as_tensor_vari": [67, 75, 77], "asarrai": [67, 75], "ask": [1, 68], "aspect": 67, "assert": 64, "assess": [51, 66, 68, 77], "assign": [66, 67, 68, 69, 70, 71, 73, 75, 77], "associ": [2, 3, 4, 5, 6, 58, 61, 67, 69, 70, 71, 72, 75, 77, 78], "assum": [1, 29, 30, 33, 39, 40, 55, 63, 64, 66, 68, 69, 70, 71, 72, 74, 75, 76, 77], "assumpt": [74, 77], "astyp": [72, 75], "atmospher": 76, "attribut": [2, 3, 4, 16, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 54, 55, 56, 61, 65, 67, 70, 71, 74, 75], "au": 72, "aug": [63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "august": [68, 78], "author": [1, 72], "auto": [66, 67, 68, 69, 70, 71, 73, 75, 77], "autoconnect": [36, 63, 72], "autoconnection_strength": 72, "autocorrel": 72, "autom": 76, "automat": [64, 66, 68, 70], "autoregress": 36, "avail": [0, 61, 76], "averag": [66, 76], "avoid": 71, "awai": 65, "ax": [17, 19, 20, 63, 64, 65, 67, 71, 72, 74, 75, 77], "axi": [5, 63, 65, 70], "axvlin": 75, "az": [2, 66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "b": [31, 32, 34, 36, 61, 65, 66, 72, 75], "back": [36, 63, 70], "backgroud": 19, "backslash": 1, "backward": 64, "bad": 70, "badg": 62, "bandit": [62, 69, 70, 77], "bank": 68, "base": [1, 53, 58, 63, 66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "batch": [5, 56, 75], "bay": 1, "bayesian": [1, 61, 62, 63, 66, 67, 68, 69, 77, 78], "becaus": [43, 63, 64, 66, 67, 68, 72, 75, 76], "becom": 63, "been": [58, 63, 64, 65, 67, 68, 69, 70, 76, 77], "befor": [0, 19, 32, 58, 63, 64, 65, 68, 69, 70, 71, 75, 76], "beforehand": [31, 68, 77], "begin": [9, 13, 62, 63, 65, 69, 72, 77], "behav": [1, 66, 68, 72, 76], "behavior": [1, 77, 78], "behaviour": [5, 6, 61, 62, 63, 66, 68, 69, 70, 72, 73, 75], "behind": [62, 63, 76], "being": [63, 64, 66, 70, 72, 73, 77], "belief": [0, 6, 19, 53, 56, 61, 62, 64, 65, 68, 69, 70, 71, 72, 76], "beliefs_propag": [65, 75], "belong": [59, 65], "below": [0, 63, 66, 67, 69, 72, 75, 76, 77], "bernoulli": [9, 77], "best": [1, 52, 68, 72, 73, 77], "beta": [75, 77], "better": [30, 68, 69, 70, 71, 76], "between": [0, 1, 5, 6, 11, 16, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 55, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 77], "beyond": 63, "bia": [70, 77, 78], "biased_random": 77, "biased_random_idata": 77, "biased_random_model": 77, "bibtex": 1, "big": 63, "binari": [2, 3, 4, 5, 6, 9, 10, 16, 20, 21, 22, 23, 28, 57, 58, 61, 62, 63, 65, 67, 68, 70, 71, 75], "binary_input_idx": 57, "binary_input_upd": 28, "binary_paramet": [57, 67], "binary_precis": [16, 20, 66], "binary_softmax": [69, 76, 77], "binary_softmax_inverse_temperatur": [61, 70, 71], "binary_surpris": [69, 75], "bind": [61, 64], "binomi": [64, 69, 70, 71, 75], "biolog": 61, "bit": [68, 70], "bivariate_hgf": 65, "bla": [66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "blackjax": 69, "blank": 67, "block": [63, 66, 68, 75], "blog": 67, "blue": [69, 72], "bollmann": 61, "bool": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 40, 41, 44, 49, 52, 53, 56], "bool_": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 21, 22, 49, 52, 53, 56], "boolean": [28, 67, 68, 77], "boom": 78, "both": [1, 36, 61, 62, 63, 64, 67, 69, 70, 72, 74, 75, 76], "bottom": [61, 63, 76], "brain": 1, "branch": [51, 59, 61, 69, 75], "branch_list": 59, "break": 76, "briefli": 77, "broad": 67, "broadcast": [5, 70], "broader": 65, "brodersen": [1, 61, 78], "broke": 68, "brown": [75, 78], "bucklei": 78, "build": [62, 63, 66, 68, 72, 76], "built": [64, 66, 68, 76, 77], "burst": 64, "c": [1, 13, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 66, 67, 68, 69, 70, 71, 73, 75, 76, 77, 78], "c44e52": [63, 65, 69, 71, 77], "ca": 72, "calcul": [70, 72], "call": [0, 28, 63, 65, 66, 68, 69, 70, 75, 76, 77], "callabl": [0, 2, 3, 4, 5, 6, 33, 55, 56, 69], "cambridg": 78, "can": [0, 1, 2, 3, 4, 5, 6, 16, 31, 43, 55, 56, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "candid": [49, 51, 52, 53, 75], "cannot": [16, 64, 65, 75], "capabl": [63, 72], "capitalis": 63, "captur": [63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "cardiac": [62, 68], "carlo": [1, 66, 68, 77], "carri": 77, "carryov": 56, "case": [9, 13, 63, 65, 67, 68, 69, 70, 72, 73, 75, 77], "categor": [16, 57, 58, 62, 65, 70, 75], "categori": [10, 65, 67, 75], "categorical_hgf": 67, "categorical_idata": 67, "categorical_surpris": 67, "caus": 30, "cbo9781139087759": 78, "cdot": 72, "cedric": 78, "cell": [63, 68, 76], "censor": 71, "censored_volatil": 71, "centr": [67, 68], "central": [63, 64, 68, 72, 77], "certain": [1, 63, 64], "chain": [1, 2, 66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "cham": 78, "chanc": 75, "chance_conting": 75, "chang": [63, 64, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77], "channel": 73, "chaotic": 75, "check": [68, 70], "chf": [19, 20], "child": [0, 19, 20, 31, 32, 42, 51, 63, 64, 65, 72, 76], "children": [0, 16, 19, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 50, 51, 54, 55, 58, 59, 61, 63, 64, 72], "children_idx": 55, "children_input": 19, "choic": 64, "cholinerg": 78, "choos": [65, 68, 75], "chose": [22, 51, 65, 69, 75], "chosen": [58, 75], "christoph": [1, 78], "chunck": 72, "ci": [19, 20], "circl": 69, "circumst": 30, "citi": 76, "clarifi": 70, "clariti": [68, 77], "class": [0, 2, 3, 4, 7, 8, 16, 18, 19, 20, 33, 64, 65, 66, 67, 68, 69, 70, 75, 77], "classic": [68, 77], "cldtot": 76, "clear": [69, 76], "clearli": [64, 69], "clock": 72, "close": [69, 71], "closer": 72, "cloud": 76, "cloudi": 76, "cluster": [49, 50, 51, 52, 53, 54], "cm": 74, "cmap": [67, 71], "co": 65, "code": [62, 63, 64, 65, 69, 70, 72, 76, 77], "coeffici": [63, 71], "cognit": [61, 73, 78], "colab": [62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "collect": [0, 67], "colleg": 11, "collin": [71, 78], "color": [19, 63, 65, 67, 69, 71, 72, 74, 75, 76, 77], "column": 56, "com": [61, 76], "combin": [1, 36, 63, 64], "come": [1, 63, 65, 69, 70, 72, 76], "command": 77, "common": [64, 67], "commonli": [69, 72], "commun": [13, 63], "compar": [1, 61, 68, 70, 77], "compare_df": 77, "comparison": [4, 62, 71], "compat": [2, 64, 66, 67, 68, 69, 70], "complet": [63, 76, 77], "complex": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 21, 22, 49, 52, 53, 56, 62, 63, 64, 69, 76], "complexifi": 63, "compli": 69, "complic": 1, "compon": [63, 64, 68, 70, 75], "compromis": 64, "comput": [0, 1, 2, 3, 4, 5, 6, 10, 11, 13, 23, 24, 31, 32, 33, 36, 37, 39, 40, 43, 45, 47, 48, 58, 61, 62, 63, 64, 65, 67, 69, 73, 75, 76, 77, 78], "computation": 1, "concaten": 75, "conceiv": 61, "concentr": 11, "concept": [63, 70, 76], "concern": 63, "concis": 76, "cond": 72, "condit": 77, "connect": [1, 6, 16, 63, 64, 69, 72, 76], "consequ": [63, 64], "consid": [58, 63, 64, 66, 68, 69, 72, 75, 76, 77], "consider": 1, "consist": [63, 64, 65, 67, 69, 71, 72, 75, 77], "constand": 72, "constant": [14, 63, 65, 72], "constitud": 63, "constitut": [72, 76], "constrained_layout": [63, 64, 65, 66, 68, 69, 70, 72, 73, 75, 77], "contain": [0, 1, 2, 3, 4, 16, 17, 21, 22, 36, 37, 51, 56, 61, 63, 64, 70, 73, 76], "context": [2, 4, 56, 65, 66, 68, 69, 75, 76, 77], "contextu": 1, "contin": 3, "conting": [64, 67, 69, 75, 77], "contingencylist": 64, "continu": [1, 2, 3, 4, 5, 6, 16, 19, 20, 24, 26, 27, 58, 61, 62, 63, 65, 66, 67, 69, 70, 72, 73, 74, 75, 76, 77], "continuous_input_prediction_error": [42, 43], "continuous_input_upd": 28, "continuous_input_value_prediction_error": [31, 32, 41, 43], "continuous_input_volatility_prediction_error": [31, 42], "continuous_node_prediction_error": [47, 48], "continuous_node_value_prediction_error": [31, 32, 46, 48], "continuous_node_volatility_prediction_error": [31, 46, 47], "continuous_precis": 16, "contrari": 64, "control": [1, 63, 64, 70, 76, 77], "conveni": [63, 69], "converg": [70, 71, 73, 75], "convert": [19, 20, 63, 67, 73, 75, 77], "core": [2, 61, 64, 66, 68, 69, 70, 71, 73, 75, 77], "correct": [65, 78], "correctli": [18, 71], "correl": [0, 17, 71], "correspond": [16, 19, 20, 65, 66, 69, 70, 71, 72, 75, 76], "cost": 75, "could": [23, 24, 25, 64, 67, 68, 69, 72, 75, 77], "count": [13, 65, 70], "counterpart": [64, 66], "coupl": [0, 1, 5, 6, 16, 19, 20, 28, 31, 32, 35, 36, 37, 41, 46, 55, 58, 61, 62, 66, 74, 75, 77], "coupling_fn": [55, 64, 72], "coupling_strength": 55, "cours": [62, 76], "covari": 65, "cover": [63, 76, 77], "cpython": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "creat": [0, 2, 3, 4, 16, 19, 20, 50, 51, 61, 62, 65, 70, 71, 72, 73, 75, 76, 77], "create_belief_propagation_fn": 75, "creation": [64, 69, 76, 77], "crisi": 68, "critic": [1, 64, 69], "cross": [4, 70, 77, 78], "crucial": 70, "csv": 76, "cumsum": [63, 72, 76], "currenc": 68, "current": [0, 1, 19, 20, 28, 34, 35, 36, 37, 39, 40, 41, 42, 44, 55, 61, 63, 64, 65, 69, 76, 78], "current_belief": 77, "curv": 19, "custom": [16, 62, 66, 67, 70, 75, 77], "custom_op": [67, 75], "customdist": [70, 77], "customis": 62, "customop": [67, 75], "d": [1, 11, 61, 65, 78], "dai": 76, "dark": 76, "dash": 63, "data": [0, 1, 2, 3, 4, 5, 6, 19, 20, 23, 24, 25, 56, 60, 61, 63, 65, 67, 69, 70, 71, 72, 73, 74, 76, 77, 78], "data2": 65, "databas": 76, "datafram": 60, "dataset": [69, 73, 76, 77], "daunizeau": [1, 61, 78], "de": 78, "deadlock": 77, "deal": [1, 75], "debug": 76, "decid": [63, 68, 69, 77], "decis": [1, 6, 21, 22, 61, 66, 67, 70, 71, 77], "declar": [64, 70, 72], "decreas": 75, "dedic": 68, "deeper": 61, "def": [64, 65, 67, 69, 70, 72, 75, 77], "default": [2, 3, 4, 5, 6, 16, 19, 20, 23, 24, 32, 56, 58, 61, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 75, 77], "defin": [12, 16, 19, 56, 61, 63, 64, 65, 66, 67, 68, 69, 70, 72, 76, 77], "definit": [58, 69], "degre": [65, 66, 68, 72], "deliv": 76, "delta": [65, 72], "delta_j": [31, 32, 42, 47, 48], "demonstr": [1, 61, 65, 66, 69, 71, 73, 74], "denmark": 72, "denot": 63, "densiti": [0, 2, 11, 12, 13, 66, 68, 70, 74, 76], "depend": [5, 6, 31, 34, 63, 66, 68, 69, 70, 72, 76], "depict": [20, 63, 77], "deriv": [1, 61, 63, 65, 72], "describ": [0, 61, 62, 63, 64, 65, 66, 69, 76], "descript": [1, 63, 76], "design": [62, 64, 67, 69, 70, 75, 76, 77], "despin": [63, 64, 65, 67, 70, 71, 72, 74, 75, 76, 77], "detail": [63, 71, 75, 76], "detect": 73, "determin": 1, "determinist": [1, 70, 77], "develop": [61, 64, 77], "deviat": [19, 20, 49, 52, 53, 70, 73], "df": [65, 74], "diagnost": [70, 71, 73, 75], "dict": [16, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 54, 55, 56, 57], "dictionari": [16, 56, 61, 64, 66, 68, 76], "did": [68, 70], "differ": [1, 2, 3, 4, 5, 16, 26, 27, 29, 30, 55, 63, 64, 65, 66, 68, 69, 70, 72, 75, 76], "differenti": [65, 66, 68, 72], "difficult": [1, 65, 76], "diffus": [61, 64], "dimens": [3, 5, 6, 63, 64, 70], "dimension": [65, 75], "dir": 11, "direct": [63, 64], "directli": [28, 64, 66, 68, 69, 70, 72, 75], "dirichlet": [11, 28, 65, 67], "dirichlet_nod": 38, "disambigu": 64, "disappear": 72, "discrep": [66, 68], "discret": [1, 67, 77], "discuss": [1, 63, 75, 77], "displai": [65, 70, 72, 77], "dissoci": [0, 64], "dist": 71, "dist_mean": 74, "dist_std": 74, "distanc": 65, "distant": 65, "distinguish": [70, 76], "distribut": [7, 8, 9, 10, 11, 13, 14, 28, 33, 53, 61, 62, 63, 64, 66, 67, 68, 69, 71, 73, 74, 76, 77], "dive": [63, 64], "diverg": [0, 11, 67, 68, 70, 71, 75, 77], "dk": 72, "do": [61, 64, 66, 67, 68, 69, 70, 72, 76, 77], "documatt": 64, "document": [61, 67, 76, 77], "doe": [65, 67, 69, 76, 77], "doesn": 72, "doi": [1, 13, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 78], "dollar": 68, "domain": [68, 77], "don": [63, 76], "done": 64, "dopamin": 1, "dopaminerg": 78, "dot": 68, "down": [0, 61, 63, 65, 76], "download": [61, 73, 76], "drag": 68, "drai": 66, "draw": [1, 19, 20, 66, 68, 69, 70, 71, 73, 75, 77], "drift": [5, 6, 16, 36, 64, 72, 76], "dse": 77, "dtype": [9, 14, 53, 66, 67, 68, 69, 75, 76, 77], "due": 64, "duplic": [70, 71], "dure": [0, 37, 53, 61, 64, 68, 70, 71, 72, 78], "dx": 78, "dynam": [61, 62, 69, 72, 73, 76, 77], "e": [1, 2, 5, 6, 16, 19, 22, 26, 27, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 55, 59, 61, 62, 63, 64, 66, 68, 69, 70, 71, 73, 75, 76, 77, 78], "e49547": 78, "each": [2, 3, 4, 19, 20, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 49, 50, 51, 53, 54, 60, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77], "easili": [64, 67, 69, 76, 77], "ecg": 73, "ecg_peak": 73, "ecosystem": 61, "edg": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 50, 51, 54, 55, 56, 58, 59, 61], "edgecolor": [65, 69, 71, 75, 77], "editor": 78, "ef": 65, "effect": [31, 32, 37, 43, 68, 71, 78], "effective_precis": 37, "effici": [1, 63], "ehgf": [30, 31, 58], "either": [51, 64, 69, 70, 72, 76], "ekaterina": [1, 78], "elaps": [29, 30, 32, 63, 75], "electrocardiographi": 73, "electron": 1, "element": 72, "elicit": 14, "elif": 78, "ellicit": 9, "elpd": 70, "elpd_diff": 77, "elpd_loo": [70, 77], "els": [71, 75], "emb": [66, 68], "embed": [0, 62, 66, 68, 70], "empir": 1, "en": [7, 8], "enabl": 1, "encapsul": [67, 75], "encod": [1, 61, 63, 67, 69, 71, 76], "end": [9, 13, 63, 65, 69, 72], "endogen": 37, "energi": [1, 78], "enlarg": 65, "enno": 78, "enough": 61, "ensur": [58, 70, 71, 75, 76], "enter": 63, "entir": 64, "entri": 16, "enumer": [63, 65, 77], "environ": [1, 63, 64, 69, 70, 76, 77], "environment": [1, 64, 71], "epsilon_j": 43, "eq": 11, "equal": [1, 3, 30, 72], "equat": [1, 11, 63, 66, 67, 68, 69, 72, 75, 76], "equival": [43, 65, 69], "erdem": 78, "eric": 78, "error": [1, 31, 32, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 58, 61, 64, 65, 68, 72, 73, 76, 77, 78], "especi": [63, 70, 75, 77], "ess": 71, "ess_bulk": [2, 69, 77], "ess_tail": [2, 69, 77], "estim": [0, 1, 2, 19, 20, 62, 63, 65, 69, 70, 71, 75, 76, 77], "et": [0, 61, 63, 64, 66, 69, 70, 76, 77], "eta": 65, "eta0": [10, 16, 20, 66], "eta1": [10, 16, 20, 66], "etc": 64, "euro": 68, "european": 78, "evalu": [13, 63, 67, 69, 75, 78], "even": [1, 63, 72], "event": [1, 68, 74], "everi": [62, 63, 64, 67, 70, 75, 76, 77], "everyth": 69, "evid": [6, 65, 77], "evidenc": 65, "evolut": [63, 66, 68, 69, 76, 77], "evolv": [62, 63, 75], "exact": [63, 69, 76], "exactli": [63, 67, 69, 70], "exampl": [1, 2, 9, 14, 19, 20, 61, 62, 63, 64, 66, 67, 68, 69, 70, 72, 76, 77], "excel": 69, "except": [31, 32, 42, 66, 68, 69, 77], "exchang": 68, "exclud": [59, 75], "exclus": 59, "execut": [0, 64], "exert": [63, 64], "exhibit": [66, 68], "exist": [49, 51, 52, 53, 54, 64], "exogen": 37, "exot": 67, "exp": [37, 63, 65, 70, 75, 76], "expect": [0, 5, 6, 9, 10, 14, 16, 19, 20, 22, 28, 30, 31, 32, 34, 35, 36, 37, 42, 52, 63, 64, 65, 66, 68, 69, 70, 72, 73, 74, 75, 76, 77], "expected_mean": [9, 10, 14, 36, 49, 52, 53, 63, 64, 69, 70, 71, 75, 77], "expected_precis": [10, 14, 37, 64, 65, 74], "expected_sigma": [49, 52, 53], "experi": [69, 77], "experiment": [1, 62, 69, 70, 71, 75, 77], "explain": [70, 76, 77], "explan": 77, "explicit": 69, "explicitli": [1, 64, 70, 73], "explor": 77, "exponenti": [7, 8, 13, 62, 63, 65, 76], "exponential_famili": [7, 8], "export": [60, 69], "express": [1, 64, 65, 67, 68, 72, 75, 76], "extend": [64, 65, 66, 68, 70], "extens": [1, 62, 77], "extract": [66, 68, 73, 74, 77], "extrem": [1, 68, 75], "f": [36, 61, 63, 64, 72, 76], "f_1": 64, "f_i": 64, "f_n": 64, "f_x": 65, "facilit": [61, 64], "fact": [72, 75], "fail": 30, "fairli": 71, "fall": 68, "fals": [19, 20, 64, 72, 77], "famili": [7, 8, 13, 33, 62, 63, 65, 76], "familiar": 69, "far": [64, 68, 69, 76, 77], "fashion": 1, "fast": [72, 75, 77], "feasibl": 61, "featur": [19, 20, 64, 70, 73, 76], "februari": 78, "fed": 70, "feed": [19, 20, 75], "fewer": 74, "field": [1, 64, 69, 77], "fig": [65, 67, 71, 72, 74], "figsiz": [19, 20, 63, 64, 65, 67, 69, 71, 72, 74, 75, 76, 77], "figur": [19, 20, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 75, 76, 77], "fil": 11, "file": 1, "fill": 71, "fill_between": [67, 74, 75], "filter": [0, 1, 5, 6, 13, 16, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 64, 69, 70, 71, 74, 75, 77, 78], "final": [1, 76, 77], "find": [52, 61, 62, 64, 68, 69, 76], "finit": [10, 26, 39], "fir": 73, "firebrick": 75, "first": [0, 1, 3, 5, 6, 10, 16, 24, 29, 30, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 75, 76, 77], "first_level_binary_surpris": [66, 77], "first_level_gaussian_surpris": [68, 73, 76], "firt": 22, "fit": [2, 3, 4, 5, 6, 23, 24, 25, 69, 70, 71, 72, 75, 76], "fix": [2, 33, 43, 63, 69, 70, 72, 76, 77], "flatten": 70, "flexibl": [1, 61, 67, 76, 77], "flexibli": 65, "flight": 68, "float": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 44, 49, 52, 53, 55, 56, 70, 75], "float32": [9, 14, 66, 68, 69, 76, 77], "float64": [67, 75], "floor": 68, "fluctuat": 63, "flux": 76, "fn": 77, "fnhum": [1, 61, 78], "focu": 61, "focus": [64, 75], "folder": 61, "follow": [1, 11, 58, 61, 63, 64, 65, 66, 67, 68, 72, 75, 76, 77], "forc": 75, "fork": [66, 77], "form": [1, 63, 64, 65, 70, 72, 76], "formal": 63, "format": 1, "formul": 1, "forward": [61, 63, 66, 68, 70, 71, 75, 76, 77], "found": [1, 63, 64, 66, 68, 76], "foundat": [1, 61, 76, 78], "four": [1, 64, 75, 77], "fpsyt": 61, "frac": [11, 13, 14, 19, 22, 31, 32, 33, 34, 36, 37, 42, 43, 48, 63, 65, 67, 70, 75], "fraction": 76, "frame": [60, 63, 65, 73, 76], "framework": [1, 61, 62, 63, 64, 65], "franc": 68, "free": [1, 61, 66, 69, 71], "freedom": 65, "friston": [1, 61, 78], "from": [0, 1, 2, 5, 6, 9, 11, 13, 14, 19, 20, 21, 22, 31, 32, 42, 43, 44, 58, 59, 61, 62, 63, 64, 66, 67, 68, 70, 72, 73, 74, 76, 77], "frontier": [1, 61, 78], "frontiersin": [1, 78], "fry": 53, "fr\u00e4ssle": 61, "full": [1, 6, 61, 65], "fulli": [63, 76], "func": 65, "funcanim": 65, "function": [1, 2, 3, 4, 5, 6, 15, 18, 19, 20, 21, 22, 23, 24, 25, 28, 43, 55, 56, 58, 59, 61, 62, 63, 65, 66, 67, 68, 70, 71, 73, 75, 76, 77], "fundament": 63, "further": [63, 64, 70, 74, 75], "fusion": 69, "futur": [0, 63, 78], "g": [1, 5, 6, 31, 32, 61, 63, 69, 71, 72, 77], "g_": [65, 72], "gabri": 78, "gamma": [11, 13, 65, 67], "gamma_a": 37, "gamma_j": [31, 32, 43], "gaussian": [0, 1, 2, 5, 6, 12, 13, 14, 16, 19, 24, 25, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 64, 69, 70, 71, 72, 73, 74, 75, 77, 78], "gaussian_predictive_distribut": 65, "gcc": [63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "ge": 78, "gelman": 78, "gener": [1, 26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 46, 47, 48, 57, 58, 62, 64, 65, 66, 67, 69, 70, 71, 72, 75, 77, 78], "generalis": [61, 62, 67, 69], "generalised_filt": 65, "get": [34, 64, 65, 68, 69, 70, 71, 74, 75, 76, 77], "get_legend_handles_label": [63, 77], "get_network": [65, 75], "get_update_sequ": 64, "ghgf": [61, 76, 77], "gif": 65, "git": 61, "github": [11, 61], "githubusercont": 76, "give": [66, 68, 69, 72, 75, 77], "given": [0, 6, 9, 11, 14, 19, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 36, 37, 42, 43, 47, 48, 52, 53, 59, 61, 63, 64, 65, 66, 67, 68, 69, 71, 72, 75, 76, 77], "global": [1, 68], "go": [63, 66, 68, 69, 70, 75, 76], "goe": 67, "good": [69, 70, 71, 75], "googl": [62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "grad": [67, 75], "gradient": [3, 67, 75], "grai": 75, "grandpar": 64, "graph": [62, 64, 67, 75], "graphic": 61, "graphviz": [18, 66, 68], "greater": 64, "greatli": 65, "greec": 68, "green": [71, 72], "grei": [19, 63, 65, 68, 71, 74], "grid": [63, 65, 71, 72, 74, 76, 77], "ground": 76, "group": [62, 63, 71, 77], "grow": 67, "grw": [63, 76], "grw_1": 76, "grw_2": 76, "guid": 63, "gz": [67, 75], "h": [1, 26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 63, 65, 77, 78], "ha": [1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 50, 51, 54, 55, 63, 64, 65, 66, 67, 68, 69, 70, 75, 76, 77], "had": [69, 70, 77], "halfnorm": 70, "hamiltonian": [66, 68, 77], "hand": [32, 62, 69], "handi": 72, "handl": [62, 63, 65, 67, 69, 70, 77], "happen": [63, 69, 72, 76], "harrison": [61, 78], "hat": [9, 14, 19, 22, 31, 32, 34, 36, 37, 42, 43, 47, 48, 63, 69, 70, 72], "have": [1, 28, 43, 58, 63, 64, 66, 67, 68, 69, 70, 72, 75, 76, 77], "hdi_3": [2, 69, 77], "hdi_97": [2, 69, 77], "he": 69, "head": [69, 76], "heart": [0, 63, 64], "heartbeat": 73, "heatmap": 17, "heavi": 64, "hedvig": 78, "height": [19, 20, 76], "heinzl": 61, "help": [68, 70, 76], "her": 69, "here": [1, 2, 21, 22, 23, 24, 25, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "hgf": [0, 1, 2, 3, 4, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 28, 29, 57, 61, 62, 63, 64, 65, 67, 70, 71, 72, 73, 74, 75, 76], "hgf_loglik": [66, 68, 69, 71, 73, 77], "hgf_logp_op": [2, 66, 68, 69, 70, 71, 73, 77], "hgf_logp_op_pointwis": [70, 77], "hgf_mcmc": [66, 68], "hgfdistribut": [66, 67, 68, 69, 70, 71, 73, 76, 77], "hgfpointwis": [70, 77], "hhgf_loglik": 2, "hidden": [1, 63, 75, 76, 77], "hide": 75, "hierarch": [0, 1, 5, 6, 13, 16, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 64, 69, 71, 73, 74, 75, 77, 78], "hierarchi": [0, 1, 2, 3, 4, 16, 61, 63, 64, 66, 68, 76], "hierarchicalgaussianfilt": 69, "high": [74, 75], "high_nois": 72, "high_prob": 75, "higher": [63, 66, 68, 70, 71, 72, 76, 77], "highest": 1, "highli": [1, 68, 77], "hist": 75, "hold": [63, 69], "home": 1, "hood": 65, "hostedtoolcach": 77, "hour": [62, 76], "hourli": [76, 78], "how": [62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "howev": [1, 63, 64, 65, 67, 68, 69, 70, 72, 73, 77], "html": 11, "http": [1, 7, 8, 11, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 71, 76, 78], "human": [1, 61, 78], "hyper": 70, "hyperparamet": [13, 33, 65], "hyperprior": [70, 71], "i": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 19, 20, 22, 23, 24, 28, 29, 30, 31, 32, 33, 35, 36, 37, 41, 42, 43, 44, 46, 47, 48, 51, 55, 56, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "iain": 78, "idata": [2, 73, 75, 77], "idata_kwarg": 77, "idea": [63, 64, 68, 69, 71], "ident": 72, "identifi": 71, "idex": 57, "idx": [56, 67, 71], "iglesia": [1, 61, 66, 69, 77, 78], "ignor": [5, 6], "ii": 1, "iii": 1, "ilabcod": [61, 76], "illustr": [1, 63, 64, 67, 68, 69, 72, 73, 75, 76, 77], "iloc": 74, "imagin": 72, "impact": 75, "implement": [0, 16, 33, 36, 61, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "impli": [28, 57, 63, 65, 67, 68, 75, 76], "implicitli": 69, "import": [2, 9, 14, 19, 20, 61, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "import_dataset1": 73, "importantli": [63, 64], "imposs": 58, "improv": [58, 77], "imshow": 67, "includ": [5, 6, 16, 56, 63, 64, 65, 66, 68, 69, 70, 72, 73], "incom": [63, 76], "incompat": 77, "incorpor": [16, 35, 41, 46, 65, 69, 70], "incorrect": 72, "increas": [65, 66, 68, 70, 71, 72, 75, 76, 77], "increment": [56, 63], "inde": 70, "independ": [62, 65, 71], "index": [19, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 50, 51, 54, 55, 56, 57, 59, 61, 64], "indic": [55, 63, 68, 69, 70, 71, 72, 73, 75, 77], "individu": [1, 61, 71, 78], "inf": [5, 16, 20, 23, 24, 25, 66, 67, 69, 70, 75], "infer": [0, 1, 5, 6, 13, 33, 61, 62, 63, 64, 68, 69, 74, 77, 78], "inferred_paramet": 71, "infinit": [27, 40, 67, 75], "influenc": [0, 1, 36, 63, 64, 65, 66, 68, 70, 72, 75, 76, 77], "inform": [1, 13, 56, 64, 65, 66, 67, 68, 70, 72, 75, 76, 77], "infti": 68, "ingredi": 69, "inherit": [5, 6, 61, 63, 76], "initi": [2, 3, 4, 16, 64, 65, 66, 68, 69, 70, 71, 73, 75, 76, 77], "initial_belief": 77, "initial_mean": [16, 19, 20, 66, 68, 69, 70, 71, 73, 77], "initial_precis": [16, 19, 20, 66, 68, 69, 73, 77], "initv": 71, "inplac": 67, "input": [1, 2, 3, 4, 5, 6, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 32, 38, 46, 50, 51, 52, 54, 56, 57, 58, 59, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77], "input_convers": 73, "input_data": [2, 3, 4, 5, 6, 19, 20, 56, 61, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "input_nodes_idx": 38, "input_precis": [5, 6, 64, 65, 72, 74], "input_typ": 73, "insert": 63, "insid": [69, 72, 75, 77], "inspir": [61, 63, 64], "instal": [18, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "instanc": [0, 6, 17, 18, 19, 20, 21, 22, 23, 24, 25, 57, 58, 61, 64, 66, 68, 69, 70, 76], "instanti": [67, 75], "instead": [2, 3, 4, 31, 32, 42, 68, 75, 76, 77], "instruct": 64, "instrument": 72, "int": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 72], "int32": 77, "integ": [2, 3, 4, 64], "integr": [1, 65, 77], "inter": 1, "interact": [62, 63, 77], "intercept": 63, "interest": [63, 70, 71, 75, 76], "interestingli": 65, "interfac": [61, 69], "interleav": 0, "intern": [33, 62, 67, 69, 70, 72, 76, 78], "interocept": 62, "interpol": 67, "interpret": 1, "intersect": 62, "interv": [28, 34, 35, 36, 37, 39, 40, 41, 42, 44, 65, 72, 73], "interven": 68, "intervent": 68, "introduc": [1, 62, 63, 67, 76, 77], "introduct": [61, 62], "introductori": 76, "intuit": [1, 62, 69], "invers": [1, 5, 6, 22, 61, 62, 63, 69, 70, 71, 75], "inverse_temperatur": [70, 71], "invert": [1, 76, 77], "involv": 1, "io": 11, "ion": 11, "ipykernel_2221": 64, "ipykernel_3229": 68, "ipython": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "irrespect": 53, "isbn": 1, "isnan": [67, 75], "issn": 1, "item": [2, 3, 4], "iter": [63, 66, 68, 69, 70, 71, 73, 74, 75, 77], "ith": 56, "its": [1, 34, 36, 44, 51, 55, 61, 62, 63, 64, 66, 68, 69, 70, 72, 73, 76, 77], "itself": [63, 64, 66, 72, 76], "iv": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "j": [1, 31, 32, 37, 42, 43, 48, 61, 78], "jacobian": [67, 75], "jan": 78, "jax": [0, 5, 20, 21, 22, 53, 56, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "jaxlib": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "jean": [1, 78], "jit": [61, 67, 72, 75], "jitted_custom_op_jax": [67, 75], "jitted_vjp_custom_op_jax": [67, 75], "jitter": [66, 68, 69, 70, 71, 73, 75, 77], "jl": 69, "jnp": [16, 20, 23, 24, 25, 65, 66, 67, 68, 69, 70, 71, 72, 75, 76], "job": [66, 68, 69, 70, 71, 73, 75, 77], "joint": [64, 65], "jonah": 78, "journal": [1, 78], "julia": [61, 64, 69], "jump": 63, "just": [69, 70, 71, 72, 77], "k": [1, 11, 21, 22, 26, 27, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 63, 64, 65, 67, 69, 70, 71, 72, 75, 76, 77], "kai": [1, 78], "kalman": [63, 69], "kappa": 63, "kappa_1": 63, "kappa_j": [31, 32, 37, 42], "karl": [1, 78], "kasper": [61, 78], "kdeplot": 71, "keep": [72, 76], "kei": [1, 53, 63, 64, 77], "keyword": [1, 64, 69], "kg": 76, "kind": [31, 55, 61, 63, 64, 65, 67, 68, 70, 72, 74, 75, 76, 77], "kl": [11, 67], "kl_diverg": 67, "klaa": [1, 78], "knew": [66, 68], "know": [63, 69, 72, 77], "knowledg": 76, "known": 72, "kora": 72, "kullback": [11, 67], "kwarg": [7, 8], "l": [13, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 63, 77, 78], "l_a": 75, "l_b": 75, "label": [63, 64, 65, 67, 69, 70, 74, 75, 76, 77], "laew": 1, "lambda": [63, 70, 72], "lambda_1": 63, "lambda_2": [63, 72], "lambda_2x_2": 72, "lambda_3": [63, 72], "lambda_a": [36, 63, 72], "land": 76, "lanillo": 78, "lar": 78, "larg": [64, 65, 76], "larger": [64, 65, 71], "last": [56, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "latent": 63, "later": [37, 61, 63, 70, 77], "latter": 75, "lax": [56, 72, 75], "layer": [5, 63, 68, 76, 77], "layout": [64, 68], "lead": [63, 68, 77], "learn": [1, 61, 63, 67, 71, 72, 74, 76, 78], "learning_r": 77, "learnt": 72, "least": [0, 70, 71, 73, 75], "leav": [0, 63, 70, 76, 77, 78], "lee": [70, 78], "left": [11, 13, 31, 32, 36, 37, 43, 48, 63, 65, 67, 69, 76], "leftarrow": [33, 65], "legend": [63, 64, 65, 69, 70, 72, 74, 75, 76, 77], "legrand": [26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 72, 78], "leibler": [11, 67], "len": [67, 69, 75, 77], "length": [2, 3, 4, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 50, 51, 54, 56, 69, 70], "leq": 72, "less": [16, 64, 69], "let": [63, 64, 65, 67, 69, 72, 76, 77], "level": [0, 1, 2, 5, 6, 16, 19, 20, 22, 24, 61, 62, 63, 64, 65, 69, 71, 72, 73, 74, 75, 76], "leverag": 70, "li": 63, "lib": 77, "librari": [0, 64, 66, 68, 77], "like": [53, 66, 67, 68, 69, 70, 72, 77], "likelihood": [49, 51, 68, 69, 70, 77], "lilian": 78, "limit": [1, 30, 63, 65, 69, 72, 75, 77], "line": [63, 64, 68, 69, 72], "linear": [31, 32, 55, 62], "linear_hgf": 72, "linearli": 65, "linestyl": [63, 64, 65, 69, 71, 72, 74, 77], "linewidth": [63, 65, 67, 76, 77], "link": [1, 55, 61, 64, 70], "linspac": [70, 71, 74], "list": [2, 3, 4, 5, 19, 20, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 50, 51, 54, 55, 57, 58, 59, 61, 64, 67, 69, 70, 75, 76], "lit": 1, "ln": [11, 67], "load": [61, 76, 77], "load_data": [2, 19, 20, 61, 66, 68, 69, 70, 71, 76, 77], "load_ext": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "loc": [63, 65, 67, 74, 75, 76], "log": [2, 4, 5, 6, 9, 14, 19, 61, 66, 68, 69, 70, 75, 77], "log_likelihoo": 77, "log_likelihood": [70, 77], "log_prob": 5, "logist": 15, "logit": 77, "lognorm": 70, "logp": [5, 70, 77], "logp_fn": 75, "logp_pointwis": [70, 77], "lomakina": [1, 61, 78], "london": 11, "long": [72, 78], "loo": 70, "loo_hgf": 70, "look": [66, 67, 68, 72, 77], "loop": [63, 75, 76, 77], "loos": 75, "loss": 75, "loss_arm1": 75, "loss_arm2": 75, "lot": 66, "low": [74, 75], "low_nois": 72, "low_prob": 75, "lower": [63, 64, 65, 66, 67, 71], "lower_bound": 15, "lowest": 61, "luckili": 70, "m": [61, 63, 64], "m2": 76, "m3": 76, "m_1": 63, "m_a": 36, "made": [16, 64, 69, 70, 75, 76, 77], "magic": 76, "mai": [1, 67, 78], "main": [0, 18, 19, 20, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "major": 1, "make": [1, 61, 63, 64, 66, 67, 69, 70, 74, 75, 76], "make_nod": [67, 75], "manag": 72, "mani": [1, 2, 63, 64, 67, 69, 70], "manipul": [0, 61, 62, 66, 69, 70, 75, 76], "manka": 78, "manual": [64, 65, 70, 72, 77], "many_binary_children_hgf": 64, "many_value_children_hgf": 64, "many_value_parents_hgf": 64, "many_volatility_children_hgf": 64, "many_volatility_parents_hgf": 64, "map": 70, "marker": 72, "market": 68, "markov": 1, "mask": 75, "master": 61, "match": [5, 56, 64, 72, 77], "math": [2, 33, 36, 47, 65, 71, 75], "mathcal": [2, 13, 63, 64, 65, 66, 69, 70, 76], "mathemat": [14, 63, 76], "mathi": [1, 13, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 63, 64, 65, 76, 78], "matlab": [61, 63, 68], "matplotlib": [17, 19, 20, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "matrix": [70, 75], "matter": [56, 69, 77], "maxim": 68, "mayb": 70, "mcmc": [2, 62, 77], "mcse_mean": [2, 69, 77], "mcse_sd": [2, 69, 77], "mead": 1, "mean": [1, 2, 5, 6, 9, 12, 14, 16, 19, 20, 29, 30, 31, 32, 34, 35, 36, 42, 49, 52, 53, 58, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77], "mean_1": [2, 5, 6, 68], "mean_2": [5, 6], "mean_3": [5, 6], "mean_hgf": 74, "mean_mu_g0": 53, "mean_precision_hgf": 74, "measur": [67, 69, 71, 72, 73], "mechan": 1, "media": 61, "mention": 63, "mere": 69, "messag": 64, "meta": [64, 68], "meter": 76, "method": [1, 2, 3, 4, 7, 8, 16, 23, 24, 33, 64, 66, 68, 69, 70, 73, 76], "metric": 69, "michael": 78, "might": [2, 3, 4, 16, 69, 77], "min": 67, "minim": [1, 64, 66, 68, 76], "minimis": 73, "miss": [72, 75], "missing_inputs_u": 75, "mix": 76, "mm": 76, "modal": 73, "model": [1, 2, 3, 4, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 30, 57, 58, 62, 64, 65, 71, 72, 74, 75, 78], "model_to_graphviz": [66, 68, 70, 73, 77], "model_typ": [2, 3, 4, 16, 19, 20, 23, 64, 66, 68, 69, 70, 71, 73, 77], "modifi": 69, "modul": [0, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "modular": [61, 63, 64, 77], "mont": [1, 66, 68, 77], "montemagno": 72, "month": 76, "more": [62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 76, 77], "moreov": 70, "most": [16, 63, 64, 65, 66, 67, 68, 69, 75, 76], "mostli": 75, "move": [63, 70, 77], "mu": [9, 14, 22, 31, 32, 34, 36, 47, 63, 66, 68, 69, 70, 76], "mu_": 43, "mu_1": [63, 68, 72, 76], "mu_2": [63, 72], "mu_3": 72, "mu_a": [36, 37, 42, 72], "mu_b": [31, 32, 72], "mu_i": 63, "mu_j": [31, 32, 42, 47], "mu_temperatur": 70, "mu_volatil": 70, "much": [64, 65, 68, 76, 77], "multi": [62, 70, 71], "multiarm": 62, "multilevel": [62, 70, 77], "multinomi": 67, "multipl": [1, 5, 19, 55, 64, 67, 69, 70, 72, 73, 75], "multipleloc": 65, "multipli": 64, "multiprocess": 77, "multithread": 77, "multivari": [7, 65], "multivariatenorm": 65, "must": [55, 72], "m\u00f8ller": [26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 78], "m\u00fcller": 61, "n": [2, 4, 26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "n1662": 1, "n_": [31, 32, 37], "n_1": 64, "n_categori": 67, "n_j": 64, "n_level": [2, 3, 4, 5, 6, 16, 19, 20, 64, 66, 68, 69, 70, 71, 73, 77], "n_node": [64, 65, 72, 75], "n_sampl": [52, 53], "name": 63, "nan": [2, 3, 4, 5, 77], "nativ": [66, 68, 70, 72], "natur": [1, 63, 65], "ncol": [63, 71], "ndarrai": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 21, 22, 49, 52, 53, 56], "necessarili": 1, "need": [26, 27, 28, 29, 30, 65, 67, 69, 70, 71, 72, 75, 76, 77], "neg": [5, 6, 19, 30, 66, 68, 69, 72, 75], "nelder": 1, "nest": [67, 69, 75, 76], "network": [0, 5, 6, 17, 18, 19, 20, 24, 25, 36, 37, 38, 50, 51, 54, 55, 56, 57, 58, 59, 60, 62, 65, 66, 68, 69, 71, 72, 73, 74, 75, 76, 77], "neural": [0, 38, 50, 51, 54, 55, 58, 62, 63, 64, 72, 77], "neuroimag": 78, "neuromodel": 61, "neuromodul": 1, "neuromodulatori": 1, "neurosci": [1, 61, 66, 68, 70, 78], "new": [0, 19, 20, 31, 32, 34, 36, 37, 39, 40, 41, 44, 49, 50, 51, 52, 53, 56, 61, 63, 64, 65, 66, 67, 68, 70, 71, 72, 75, 76, 77], "new_attribut": 64, "new_belief": 77, "new_input_precision_1": 64, "new_input_precision_2": 64, "new_mean": 65, "new_mu": 53, "new_observ": 77, "new_sigma": 53, "newaxi": [2, 66, 68, 69, 70, 73, 77], "next": [1, 63, 66, 68, 69], "nicola": [72, 78], "nodal": 73, "nodalis": [61, 76], "node": [2, 3, 4, 5, 6, 16, 18, 19, 20, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 55, 56, 57, 58, 59, 60, 61, 62, 65, 66, 68, 69, 70, 72, 73, 75, 77], "node_idx": [19, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 54, 57, 59, 64, 67, 75], "node_paramet": [64, 65], "node_precis": 31, "node_trajectori": [67, 69, 70, 71, 75, 77], "node_typ": 64, "nois": [1, 43, 64, 72], "noisi": [64, 65, 72], "noisier": 72, "non": [31, 32, 50, 54, 62], "non_sequ": 77, "none": [2, 3, 4, 6, 16, 19, 20, 23, 24, 25, 28, 55, 63, 64, 66, 67, 69, 72], "nonlinear_hgf": 72, "noon": 76, "nope": 43, "norm": [65, 74], "normal": [1, 2, 7, 10, 11, 33, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "note": [16, 18, 28, 31, 32, 35, 41, 42, 43, 46, 55, 63, 66, 68, 69, 70, 72, 75, 76, 77], "notebook": [62, 63, 64, 66, 68, 69, 70, 72, 74, 75, 77], "notic": 72, "notion": [63, 64], "nov": 78, "novel": 1, "novemb": 78, "now": [63, 64, 66, 68, 69, 70, 72, 75, 76, 77], "np": [2, 5, 13, 63, 64, 65, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77], "nrow": [63, 65, 67, 75], "nu": [13, 33], "nu_": 65, "num": 71, "num_sampl": 77, "number": [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 49, 50, 51, 52, 53, 54, 56, 64, 65, 66, 67, 68, 69, 70, 71, 72, 75, 77], "numer": [1, 67, 75], "numpi": [2, 4, 5, 20, 21, 22, 53, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "nut": [66, 68, 69, 70, 71, 73, 75, 77], "nutshel": 69, "o": [61, 76, 77], "o_": 69, "object": [71, 77], "observ": [0, 9, 10, 13, 14, 19, 20, 28, 29, 30, 31, 32, 39, 40, 41, 42, 44, 49, 51, 52, 53, 56, 61, 62, 63, 64, 65, 66, 67, 68, 70, 72, 73, 75, 76, 77], "observation_input_0": 69, "observation_input_0_expected_precis": [69, 74], "observation_input_0_surpris": 69, "obtain": 69, "occur": [30, 67, 70], "octob": 78, "offer": [1, 63], "offici": [61, 67], "often": [30, 63, 64, 69, 70, 71], "omega": [66, 67, 68, 70, 73, 75, 76], "omega_": [66, 68, 70], "omega_1": [63, 68, 76], "omega_2": [2, 63, 66, 67, 68, 69, 73, 77], "omega_3": [66, 68], "omega_a": 37, "omega_j": [31, 32], "onc": [63, 64, 77], "one": [1, 2, 3, 4, 19, 29, 30, 31, 32, 33, 36, 42, 63, 64, 65, 69, 70, 75, 76, 77, 78], "ones": [65, 71, 72, 75], "onli": [0, 16, 20, 23, 63, 64, 66, 67, 69, 70, 72, 73, 75, 76], "onlin": 1, "oop": 76, "op": [3, 67, 75], "open": [61, 73], "oper": [61, 65, 67, 69, 75, 76], "operand": [50, 54], "opt": 77, "optim": [1, 58, 61, 63, 64, 66, 68, 75], "optimis": [66, 68, 69], "option": [22, 36, 68, 69], "orang": 68, "order": [55, 56, 61, 63, 64, 65, 66, 68, 69, 72, 77], "org": [1, 7, 8, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 71, 78], "organ": 0, "origin": [58, 61, 72], "orphan": 63, "oscil": 72, "oscillatori": 72, "other": [31, 32, 59, 61, 63, 64, 66, 68, 69, 72, 75, 76, 77], "otherwis": 75, "our": [1, 63, 65, 66, 68, 69, 70, 72, 73, 75, 77], "ourselv": [66, 68], "out": [63, 70, 77, 78], "outcom": [9, 14, 61, 62, 64, 66, 69, 70, 75, 77], "outcome_1": 77, "outcome_2": 77, "output": [67, 69, 75, 78], "output_gradi": [67, 75], "output_typ": 73, "outputs_info": 77, "outsid": 72, "over": [2, 5, 6, 13, 61, 62, 63, 64, 65, 66, 68, 69, 70, 72, 73, 75, 76, 77], "overal": [1, 68, 69], "overcom": 72, "overfit": [68, 75], "overlai": 53, "overtim": 74, "overview": 63, "own": [36, 63, 76], "p": [11, 22, 26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "p1": 67, "p2": 67, "p3": 67, "p_a": [36, 72, 75], "p_loo": [70, 77], "pablo": 78, "packag": [1, 61, 64, 69], "page": 1, "pair": 63, "pan": 73, "panda": [60, 69, 73, 76], "panel": [64, 68, 69], "paper": [1, 63], "paralel": 65, "parallel": [3, 5, 6, 70], "paramet": [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 70, 72, 73, 76], "parameter": [16, 63], "parameter_structur": 56, "parametr": [11, 13, 22, 49, 51, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 77], "parametris": [75, 76, 77], "paraticip": [21, 22], "parent": [0, 5, 6, 16, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 50, 51, 54, 55, 58, 59, 61, 63, 64, 65, 66, 68, 72, 73, 74, 75, 76], "parent_idx": 55, "pareto": 70, "part": [5, 6, 16, 61, 63, 64, 67, 68, 69, 70, 72, 76, 77], "partial": [67, 71, 75], "particip": [69, 70, 71, 73, 77], "particular": [63, 76], "pass": [2, 3, 4, 5, 6, 28, 44, 63, 64, 65, 66, 68, 69, 72, 75, 76], "past": [65, 69], "patholog": 1, "pattern": 78, "pct": 70, "pd": 76, "pdf": [1, 65, 74], "peak": 73, "penni": 11, "per": [70, 71], "percept": [1, 61, 78], "perceptu": [1, 2, 3, 4, 16, 69, 70, 71], "pereira": 61, "perform": [1, 5, 6, 30, 36, 56, 58, 62, 63, 64, 66, 67, 68, 69, 72, 73, 75, 76, 77], "perspect": [66, 68], "peter": 78, "petzschner": 61, "pfenning": [76, 78], "phasic": [5, 6, 16, 36, 37, 42, 63, 76], "phenomena": 64, "phenomenon": 72, "phi": 63, "phygf": [76, 77], "physio_df": 73, "physiolog": [62, 68], "pi": [13, 14, 19, 31, 32, 34, 37, 42, 43, 48, 63, 65, 66, 68, 72], "pi_": 43, "pi_1": 63, "pi_a": 37, "pi_b": [31, 32], "pi_i": 63, "pi_j": [31, 32, 48], "pid": 77, "piec": 77, "pip": [61, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "pjitfunct": 5, "place": [63, 64, 70, 75], "plai": [1, 68], "plausibl": 61, "pleas": 70, "plot": [63, 64, 65, 67, 69, 71, 72, 74, 75, 76, 77], "plot_compar": 77, "plot_correl": 68, "plot_network": [64, 65, 66, 67, 68, 72, 74, 75, 76, 77], "plot_nod": [64, 67, 72, 75], "plot_posterior": [70, 75], "plot_raw": 73, "plot_trac": [66, 67, 68, 69, 73, 77], "plot_trajectori": [61, 64, 66, 68, 72, 73, 76, 77], "plt": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "plu": 75, "pm": [2, 66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "pmid": 1, "point": [13, 23, 24, 25, 28, 34, 35, 36, 37, 39, 40, 41, 42, 44, 56, 63, 64, 65, 66, 67, 68, 69, 70, 75, 76], "pointer": [26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 54], "pointwis": [4, 70, 77], "pointwise_loglikelihood": [70, 77], "pool": 71, "popen_fork": 77, "popul": 70, "popular": 77, "posit": [64, 69, 70, 76], "possess": 72, "possibl": [10, 36, 61, 62, 64, 65, 67, 69, 70, 72, 73, 77], "post": 67, "posterior": [1, 2, 43, 61, 62, 63, 65, 76], "posterior_mean": 31, "posterior_precis": 32, "posterior_update_mean_continuous_nod": [29, 30, 32], "posterior_update_precision_continuous_nod": [29, 30, 31], "posteriori": 70, "potenti": [2, 66, 67, 68, 69, 71, 73, 75, 77], "power": [77, 78], "pp": [13, 33], "ppg": 73, "pr": [66, 69], "practic": [62, 64, 65, 69, 78], "pre": [16, 49, 51, 53, 66, 67, 68, 77], "precipit": 76, "precis": [1, 5, 6, 10, 12, 14, 16, 19, 20, 26, 27, 29, 30, 31, 32, 34, 35, 37, 39, 40, 42, 43, 45, 52, 58, 61, 62, 63, 64, 65, 66, 67, 68, 72, 75, 76], "precision_1": [2, 5, 6], "precision_2": [2, 5, 6], "precision_3": [5, 6], "precsnoland": 76, "prectotland": 76, "predict": [1, 13, 14, 31, 32, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 58, 62, 64, 65, 68, 69, 70, 73, 75, 76, 78], "predict_precis": 31, "prediction_error": [31, 32], "presenc": 71, "present": [61, 62, 63, 64, 66, 68, 69, 70, 75, 76], "press": 78, "previou": [0, 1, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 51, 52, 63, 64, 66, 67, 68, 69, 70, 72, 76, 77], "previous": [63, 69, 76], "principl": [1, 58, 63, 64, 65, 69, 76, 77], "print": [2, 61], "prior": [2, 62, 64, 65, 66, 68, 69, 70, 73, 76, 77], "probabilist": [0, 1, 2, 19, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 54, 61, 62, 63, 65, 68, 69, 73, 75, 77], "probabl": [0, 1, 2, 4, 5, 6, 9, 10, 13, 19, 22, 28, 33, 49, 62, 63, 65, 66, 68, 69, 70, 71, 75, 77], "problem": [62, 71], "procedur": [64, 70, 77], "proceed": 70, "process": [1, 29, 30, 36, 38, 50, 51, 54, 61, 62, 64, 65, 72, 75, 76, 77], "produc": [70, 75, 77], "product": [67, 75], "programmat": 69, "progress": [64, 67, 72], "propag": [0, 56, 64, 65, 69, 76, 77], "propens": [63, 70], "properti": [1, 64], "proport": 65, "propos": 58, "provid": [1, 2, 3, 4, 5, 16, 19, 22, 55, 61, 63, 64, 66, 67, 68, 69, 70, 72, 75, 76, 77], "proxim": 64, "pseudo": [13, 65, 70], "psi": [11, 28, 67], "psychiatri": [61, 62, 69, 70, 76], "psycholog": 69, "pt": [67, 70, 75, 77], "public": [1, 11, 67], "publish": [33, 78], "pulcu": [75, 78], "punish": [62, 78], "purpos": [63, 69, 74], "put": 68, "pv": 78, "pval": 67, "py": [64, 68, 77], "pyhgf": [1, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "pymc": [0, 2, 5, 6, 66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "pyplot": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "pytensor": [66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "python": [61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "python3": 77, "pytre": 64, "pytress": 64, "q": [11, 67], "qualiti": 70, "quantiti": [70, 74, 75, 76], "question": 65, "quickli": 68, "quit": 68, "r": [63, 65, 72, 73, 75], "r_a": 65, "r_hat": [2, 69, 77], "rain": 76, "raman": 61, "rand": 65, "randn": 65, "random": [1, 5, 6, 16, 36, 53, 64, 65, 67, 69, 70, 71, 72, 74, 75], "randomli": [63, 71, 77], "rang": [63, 65, 67, 69, 70, 71, 74, 75, 76], "rank": 77, "rate": [36, 61, 63, 65, 66, 68, 69, 74, 75, 76, 77], "rather": 77, "ratio": 65, "ration": 78, "raw": 76, "rcparam": [63, 64, 65, 66, 68, 69, 70, 72, 73, 75, 77], "reach": 64, "react": 68, "read": [19, 20, 76, 77], "read_csv": 76, "reader": 63, "readi": [75, 77], "real": [1, 42, 64, 65, 66, 68, 69, 72, 73, 76, 77], "reanalysi": 78, "reason": [64, 66, 68, 69, 70], "recap": 77, "receiv": [0, 19, 20, 28, 36, 44, 51, 61, 63, 64, 65, 67, 69, 70, 72, 75, 77], "recent": 1, "recommend": [70, 71, 73, 75, 77], "reconstruct": 77, "record": [62, 75, 76], "recov": [0, 62, 75], "recoveri": [62, 69, 77], "recurs": [59, 61], "red": 71, "reduc": 58, "ref": 71, "ref_val": 70, "refer": [7, 8, 11, 13, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 63, 64, 65, 67, 69, 70, 71, 75, 76], "reflect": [64, 76], "regist": [64, 72, 77], "regular": [30, 63, 66, 77], "reinforc": [1, 61, 62, 63, 66, 67], "relat": [1, 69, 73], "relationship": 55, "relax": 74, "releas": 61, "relev": [16, 66, 68, 72], "reli": [63, 65, 70], "reliabl": 71, "remain": 75, "remot": 63, "remov": 76, "reparameter": [68, 70, 71, 75, 77], "repeat": [63, 70, 75, 76], "replac": [67, 75], "report": [1, 71], "repres": [1, 5, 6, 16, 36, 63, 64, 65, 67, 69, 70, 72, 76], "requier": [67, 75], "requir": [4, 18, 21, 23, 24, 25, 36, 64, 65, 69, 70, 75, 76, 77], "rescorla": [63, 66, 71], "research": [1, 69], "resembl": 69, "resolut": 1, "respect": [11, 63, 64, 68, 77], "respir": 73, "respond": 77, "respons": [2, 3, 4, 5, 6, 61, 62, 66, 68, 70, 71, 73, 76, 77, 78], "response_funct": [2, 3, 4, 6, 61, 66, 68, 69, 70, 71, 73, 76, 77], "response_function_input": [2, 3, 4, 5, 6, 21, 22, 23, 24, 25, 61, 69, 70, 71, 77], "response_function_paramet": [5, 6, 21, 22, 23, 24, 25, 61, 66, 69, 70, 71], "rest": 1, "restrict": [64, 68], "result": [1, 2, 61, 64, 66, 67, 68, 69, 70, 73, 75, 76, 77], "retriev": [64, 68, 73, 77], "return": [0, 4, 5, 6, 9, 10, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 64, 65, 66, 67, 68, 69, 70, 72, 73, 75, 77], "revert": [36, 63], "review": [63, 76], "reward": [62, 69, 77, 78], "rf": [65, 70], "rhat": 71, "rho": [63, 72], "rho_1": 63, "rho_2": 72, "rho_3": 72, "rho_a": [36, 72], "rhoa": 76, "right": [11, 13, 31, 32, 36, 37, 43, 48, 63, 65, 67, 69, 75], "rise": 68, "rl": 1, "robert": 78, "robust": [70, 71, 73, 75], "rocket": 70, "role": [0, 1, 68], "root": [0, 59, 63, 64, 76], "row": 19, "rr": 73, "rr_": 73, "rule": [77, 78], "run": [62, 63, 65, 66, 67, 68, 70, 71, 72, 73, 75, 76, 77], "runtimewarn": 77, "rust": 61, "rw": 77, "rw_idata": 77, "rw_model": 77, "rw_updat": 77, "s11222": 78, "s_0": 69, "s_1": 69, "sa": 61, "sake": 69, "salient": 68, "same": [1, 2, 3, 4, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 50, 51, 54, 55, 63, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77], "sampl": [1, 2, 52, 53, 58, 61, 62, 63, 64, 65, 69, 71, 73, 74, 75], "sampler": [66, 68, 69, 70, 71, 73, 75, 77], "samuel": 78, "sandra": [1, 78], "satellit": 78, "save": [37, 65, 70, 71, 77], "scalar": 65, "scale": [63, 65, 74, 76, 77], "scall": 63, "scan": [56, 75, 77], "scat": 65, "scat2": 65, "scatter": [65, 69, 71, 75, 77], "scatterplot": 71, "scheme": [1, 64], "schrader": 61, "sch\u00f6bi": 61, "scienc": 13, "scipi": [65, 74], "scope": 63, "scratch": 61, "sd": [2, 69, 77], "se": [70, 77], "seaborn": [63, 64, 65, 67, 70, 71, 72, 74, 75, 76, 77], "seagreen": 75, "search": 59, "second": [0, 1, 2, 5, 6, 10, 16, 62, 63, 64, 66, 68, 69, 70, 71, 72, 73, 75, 76, 77], "section": [62, 63, 66, 67, 68, 70, 76, 77], "see": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 75, 76, 77], "seed": [63, 64, 65, 69, 70, 71, 72, 74, 75, 76], "seen": [63, 76, 77], "select": [69, 75, 76], "self": [67, 75, 77], "send": [63, 64, 68], "sens": [1, 63, 67, 69], "sensori": [1, 63, 76, 77, 78], "sensory_precis": 52, "sep": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "separ": [65, 70, 71, 77], "septemb": 68, "sequenc": [56, 58, 61, 63, 65, 67, 69, 70, 75, 77], "sequenti": [66, 67, 68, 69, 70, 71, 73, 75, 77], "seri": [1, 2, 3, 4, 5, 6, 13, 23, 33, 60, 61, 63, 64, 65, 66, 67, 68, 70, 73, 76, 78], "serotonin": 1, "serv": 61, "session": 62, "set": [16, 19, 20, 55, 57, 59, 61, 63, 64, 65, 66, 68, 69, 70, 71, 72, 74, 75, 77], "set_minor_loc": 65, "set_offset": 65, "set_palett": 70, "set_titl": [65, 67, 71], "set_update_sequ": 74, "set_xdata": 65, "set_xlabel": [65, 71, 74], "set_ydata": 65, "set_ylabel": [65, 67, 71, 74, 75], "sever": [1, 68, 77], "sfreq": 73, "shad": 19, "shape": [0, 1, 3, 64, 65, 67, 70, 71, 72, 75, 76], "share": [64, 66], "sharei": 75, "sharex": [63, 67, 75], "she": 69, "shoot": 68, "shortwav": 76, "should": [0, 2, 4, 5, 19, 20, 28, 33, 36, 37, 43, 52, 55, 64, 65, 67, 69, 70, 75, 77], "show": [19, 20, 64, 68, 77], "show_current_st": [19, 20], "show_heart_r": 73, "show_observ": [19, 20, 64, 72], "show_surpris": [19, 20, 72], "shown": [63, 65, 72], "side": [64, 69, 70], "sidecar": 77, "sigma": [52, 63, 64, 70, 76], "sigma_1": [63, 76], "sigma_2": [63, 76], "sigma_mu_g0": 53, "sigma_pi_g0": 53, "sigma_temperatur": 70, "sigma_volatil": 70, "sigmoid": [63, 70, 71, 75, 77], "sigmoid_hgf": 69, "sigmoid_hgf_idata": 69, "sigmoid_inverse_temperatur": 71, "signal": [0, 61, 62, 72], "sim": [2, 63, 70, 72, 76], "similar": [31, 32, 42, 61, 66, 68, 73, 75, 77], "similarli": [64, 68], "simpl": [2, 63, 64, 65, 69, 71, 75, 76, 77, 78], "simpler": [63, 64, 77], "simplest": [63, 69], "simplex": 1, "simpli": [0, 64, 65, 70, 71, 76, 77], "simplifi": [72, 76], "simpul": 63, "simul": [1, 52, 53, 63, 64, 65, 69, 72, 76, 77, 78], "simultan": 70, "sin": [64, 65, 72], "sinc": [63, 72], "singl": [6, 56, 64, 75, 77], "sinusoid": [64, 72], "sinusoid_linear_hgf": 72, "sinusoid_nonlinear_hgf": 72, "situat": [1, 19, 20, 63, 64, 67, 69, 70, 75], "size": [1, 5, 61, 63, 64, 66, 68, 71, 74, 76], "skew": 67, "slightli": [68, 69, 77], "slope": [63, 72], "slow": 75, "smaller": 71, "smooth": 62, "smoother": 65, "smoothli": 61, "sn": [63, 64, 65, 67, 70, 71, 72, 74, 75, 76, 77], "snoma": 76, "snow": 76, "so": [43, 56, 61, 64, 66, 68, 69, 72, 76, 77], "sofmax": [21, 22], "softmax": [5, 6, 61, 69, 75], "softwar": 61, "solar": 76, "sole": 75, "solid": 77, "solut": 65, "some": [30, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 75, 76], "someth": [63, 64, 69, 72, 74, 77], "sometim": [64, 68, 69, 76, 77], "sort": 65, "sourc": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61], "space": [42, 58, 68, 70, 72], "sparsiti": 69, "special": 75, "specif": [1, 36, 61, 62, 63, 64, 65, 66, 67, 69, 70, 72, 75], "specifi": [2, 55, 63, 67, 72, 73, 75], "spike": 68, "spiral": 65, "split": [64, 69], "springer": [33, 78], "sqrt": [13, 19, 65, 74], "squar": 70, "stabil": 1, "stabl": 68, "stable_conting": 75, "stack": 65, "staffel": [76, 78], "standard": [0, 19, 20, 29, 31, 49, 52, 53, 58, 62, 63, 64, 66, 67, 68, 69, 70, 74, 76, 77], "start": [2, 3, 4, 58, 63, 65, 67, 69, 70, 75, 76, 77], "stat": [65, 74], "state": [1, 19, 31, 32, 34, 36, 37, 42, 45, 47, 48, 53, 55, 57, 61, 63, 64, 65, 69, 70, 72, 75, 76, 77], "static": [38, 50, 54], "statist": [0, 13, 17, 19, 20, 33, 60, 63, 64, 69, 71, 74, 78], "statproofbook": 11, "std": [72, 74], "steep": 72, "steeper": 72, "stefan": 78, "step": [1, 5, 6, 29, 30, 31, 32, 37, 42, 56, 58, 62, 63, 64, 65, 66, 69, 70, 71, 72, 75, 76, 77], "stephan": [1, 26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 78], "still": [67, 75], "stim_1": 77, "stim_2": 77, "stimuli": [69, 70, 77], "stimulu": [69, 70, 77], "stochast": [63, 65, 67, 72, 76], "storag": 76, "store": [37, 41, 42, 43, 46, 61, 64, 69, 70], "str": [2, 3, 4, 16, 19, 58], "straight": 63, "straightforward": [63, 65, 75], "strength": [16, 28, 31, 32, 35, 36, 37, 41, 46, 55, 63, 66, 72], "string": 64, "structur": [0, 16, 19, 20, 28, 35, 41, 46, 56, 58, 59, 60, 61, 63, 64, 65, 66, 67, 68, 69, 71, 72, 76, 77], "student": 65, "studi": [1, 62, 68, 70], "sub": [0, 64, 66], "subject": [1, 77], "subplot": [63, 65, 67, 71, 72, 74, 75, 77], "subtl": 77, "success": 71, "suffici": [0, 13, 17, 19, 20, 33, 60, 63, 64, 69, 74, 78], "sufficient_statist": 65, "sufficient_stats_fn": 33, "suggest": [65, 77], "suitabl": 75, "sum": [5, 23, 25, 36, 37, 42, 61, 66, 67, 68, 69, 70, 73, 75, 76, 77], "sum_": [11, 31, 32, 37, 67, 69], "summari": [2, 66, 68, 69, 71, 73, 77], "summer": 76, "support": [5, 19, 20, 61, 63, 64], "suppos": 72, "sure": [67, 69, 75, 77], "surfac": 76, "surpris": [0, 2, 3, 4, 5, 6, 9, 10, 14, 19, 20, 21, 22, 23, 24, 25, 60, 61, 64, 67, 73, 75, 76, 77], "surprise_fn": 67, "suspect": 68, "swgdn": 76, "swiss": 68, "switch": [65, 66], "swtdn": 76, "sy": [63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "system": 61, "systol": 73, "t": [22, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 56, 61, 63, 64, 65, 66, 67, 69, 70, 72, 75, 76, 77], "t2m": 76, "tailor": [66, 67], "take": [0, 1, 63, 66, 69, 70, 76, 77], "tapa": 61, "target": [61, 65, 76], "target_accept": [68, 70, 71, 75, 77], "task": [61, 62, 64, 66, 69, 70, 73, 77], "techniqu": 71, "tediou": 68, "temp": 70, "temperatur": [5, 6, 22, 61, 69, 70, 71, 75, 76], "temporari": 51, "ten": 78, "tensor": [66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "term": [1, 37, 63, 64, 69, 72, 78], "terminologi": [67, 70], "test": [70, 71], "text": [9, 69, 72], "th": 70, "than": [16, 30, 63, 65, 67, 68, 70, 71, 72], "thank": [70, 77], "thecomput": 62, "thei": [0, 64, 65, 66, 67, 68, 69, 70, 71, 77], "them": [63, 69, 75, 76], "theoret": [62, 76], "theori": [1, 63, 77], "therefor": [23, 43, 63, 64, 65, 67, 68, 69, 70, 72, 75, 76, 77], "thestrup": 78, "theta": [64, 65, 72], "theta_": 64, "theta_1": [64, 72], "theta_2": 72, "thi": [0, 1, 2, 4, 5, 6, 13, 16, 18, 19, 20, 23, 28, 29, 30, 31, 32, 33, 37, 42, 43, 51, 56, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "thing": [67, 70, 76], "think": [63, 69], "third": [1, 5, 6, 64, 66, 68], "those": [61, 64, 65, 66, 69, 70], "three": [0, 5, 6, 16, 19, 20, 63, 64, 67, 74, 75], "three_level_hgf": [68, 73], "three_level_hgf_idata": [66, 68], "three_level_trajectori": 77, "three_levels_binary_hgf": [66, 77], "three_levels_continuous_hgf": 68, "three_levels_continuous_hgf_bi": 68, "three_levels_hgf": [20, 66], "three_levels_idata": 77, "threshold": 72, "through": [0, 61, 62, 63, 64, 69, 70, 72, 76, 77], "thu": [1, 76], "ticker": 65, "tight": [64, 68], "tight_layout": [64, 65, 68], "tile": [63, 75, 76], "tim": 78, "time": [1, 2, 3, 4, 5, 6, 13, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 44, 56, 60, 61, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78], "time_step": [2, 3, 4, 5, 6, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 69, 75], "timeseri": [2, 19, 20, 68, 76], "timestep": 72, "titl": [1, 63, 65, 67, 70, 72, 74, 77], "tmp": [64, 68], "to_numpi": [76, 77], "to_panda": [65, 69, 74], "toa": 76, "togeth": [20, 66, 68, 69, 77], "tolist": 71, "tomkin": 73, "tonic": [2, 5, 6, 16, 36, 37, 42, 63, 68, 70, 71, 72, 74, 75, 76, 77], "tonic_drift": [16, 19, 20, 66, 72, 73], "tonic_drift_1": [5, 6], "tonic_drift_2": [5, 6], "tonic_drift_3": [5, 6], "tonic_volatil": [16, 19, 20, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "tonic_volatility_1": [5, 6, 68, 73], "tonic_volatility_2": [2, 5, 6, 66, 67, 68, 69, 70, 71, 73, 77], "tonic_volatility_3": [5, 6, 66, 68], "too": 75, "took": [66, 68, 69, 70, 71, 73, 75, 77], "tool": 70, "toolbox": [61, 63, 68, 69], "top": [0, 19, 20, 61, 63, 66, 68, 69, 74, 76], "total": [36, 37, 63, 66, 68, 69, 70, 71, 72, 73, 75, 76, 77], "total_gaussian_surpris": [2, 73], "total_surpris": 69, "toussaint": 61, "toward": [75, 77], "trace": 72, "track": [63, 64, 65, 66, 69, 74, 76], "tradition": 69, "trajectori": [0, 6, 17, 19, 20, 60, 61, 65, 69, 70, 71, 73, 74, 75, 76], "trajectories_df": 60, "transform": [63, 64, 69, 70, 72, 77], "transit": [57, 62, 65], "translat": 61, "transmiss": 76, "transpar": 64, "treat": 70, "tree": 64, "tree_util": [67, 75], "tri": [64, 66, 69, 77], "trial": [1, 63, 68, 69, 75, 77], "trigger": [0, 56, 61, 63, 76], "tristan": 72, "trivial": 69, "true": [9, 14, 19, 20, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 77], "try": [68, 69, 72, 74, 75, 76, 77], "tune": [2, 66, 68, 69, 70, 71, 73, 75, 77], "tupl": [2, 3, 4, 19, 20, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 50, 51, 52, 53, 54, 55, 56, 59, 61, 64, 69, 72], "turn": [62, 63, 76], "tutori": [61, 63, 66, 69, 70, 71, 72, 75, 76, 77], "two": [0, 1, 5, 6, 11, 16, 19, 20, 29, 30, 56, 61, 63, 64, 65, 67, 69, 70, 71, 72, 73, 74, 75, 76], "two_armed_bandit_hgf": 75, "two_armed_bandit_missing_inputs_hgf": 75, "two_bandits_logp": 75, "two_level_hgf": 68, "two_level_hgf_idata": [66, 68, 70, 71, 77], "two_level_trajectori": 77, "two_levels_binary_hgf": [66, 70, 71, 77], "two_levels_continuous_hgf": [68, 76], "two_levels_hgf": [66, 77], "two_levels_idata": 77, "type": [2, 3, 4, 5, 6, 16, 21, 22, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 50, 51, 53, 54, 55, 56, 58, 64, 65, 67, 69, 70, 75, 77], "typic": 64, "u": [20, 42, 43, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "u1": 72, "u2": 72, "u_0": 64, "u_0_prob": 64, "u_1": [63, 64, 72], "u_1_prob": 64, "u_2": [63, 72], "u_loss_arm1": 75, "u_loss_arm2": 75, "u_win_arm1": 75, "u_win_arm2": 75, "ucl": 11, "uk": 11, "uncertain": [1, 64], "uncertainti": [1, 19, 20, 61, 62, 63, 75, 76, 77, 78], "under": [1, 6, 9, 10, 14, 21, 22, 30, 49, 51, 53, 61, 63, 65, 66, 68, 69, 70, 77, 78], "undergo": [69, 70], "underli": [10, 64, 66, 67, 68, 69, 71, 72], "underpin": [63, 65], "understand": [1, 63, 72, 77], "underw": 69, "unexpect": [65, 66, 68], "uniform": [66, 71, 77], "union": [21, 22, 53, 55], "uniqu": [63, 64, 77], "unit": [2, 3, 4, 56, 70], "univari": [8, 33], "univariate_hgf": 65, "univers": [11, 72, 78], "unlik": [63, 68], "unobserv": 75, "until": [67, 72], "up": [19, 20, 61, 63, 68, 76], "updat": [1, 13, 56, 57, 58, 61, 62, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77], "update_binary_input_par": 35, "update_continuous_input_par": 35, "update_fn": 64, "update_fn1": 64, "update_fn2": 64, "update_sequ": [56, 64, 65, 75], "update_typ": [58, 74], "upon": 63, "upper": [63, 64, 71, 75], "upper_bound": 15, "url": [1, 11, 78], "us": [0, 1, 2, 3, 4, 5, 6, 16, 18, 19, 28, 29, 30, 31, 32, 36, 37, 42, 43, 53, 56, 61, 63, 64, 70, 71, 72, 73, 74, 75, 76, 77, 78], "usd": [19, 20], "user": [61, 63, 69], "userwarn": [64, 68], "usual": [0, 63, 64, 71, 74], "util": [65, 73, 75], "v": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "valid": [4, 13, 23, 64, 70, 77, 78], "valu": [0, 2, 5, 6, 10, 16, 19, 20, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 54, 55, 56, 61, 62, 65, 66, 68, 69, 70, 71, 73, 74, 75, 77], "valuat": 68, "value_children": [61, 64, 65, 72, 74, 75, 76], "value_coupling_children": [16, 35, 41, 46], "value_coupling_par": [16, 35, 41, 46], "value_par": 64, "vapa": 43, "vape": 63, "var_nam": [2, 66, 69, 70, 71, 77], "vari": [63, 65, 69, 70, 72], "variabl": [1, 13, 36, 56, 61, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77], "varianc": [5, 6, 16, 61, 62, 63, 64, 68, 76], "variat": [0, 1, 64, 65], "varieti": 64, "variou": [1, 64, 76], "vartheta": 65, "vector": [2, 3, 4, 5, 16, 53, 56, 65, 67, 69, 70, 71, 75, 77], "vectorized_logp": 5, "vehtari": [70, 78], "verbelen": 78, "veri": [1, 63, 68, 70, 73, 76], "versatil": 76, "version": [26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "via": [63, 64], "view": 75, "visibl": 68, "visual": [0, 18, 19, 20, 61, 65, 74, 76, 77], "vizualis": 65, "vjp": [67, 75], "vjp_custom_op": [67, 75], "vjp_custom_op_jax": [67, 75], "vjp_fn": [67, 75], "vjpcustomop": [67, 75], "vol": 61, "volatil": [0, 1, 2, 5, 6, 16, 19, 20, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46, 48, 50, 51, 54, 55, 58, 61, 62, 65, 66, 68, 69, 70, 71, 72, 74, 75, 77], "volatile_conting": 75, "volatility_children": [64, 65, 74, 76], "volatility_coupl": [16, 19, 20, 28, 66, 73], "volatility_coupling_1": [5, 6], "volatility_coupling_2": [5, 6], "volatility_coupling_children": [16, 35, 41, 46], "volatility_coupling_par": [16, 35, 41, 46], "volatility_par": 64, "volum": 1, "vopa": 37, "vope": [43, 63], "vstack": 67, "w": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "w_a": 75, "w_b": 75, "wa": [31, 32, 40, 41, 44, 58, 61, 64, 66, 67, 68, 69, 72, 75, 77], "waad": [26, 27, 29, 30, 31, 32, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 78], "wagenmak": [70, 78], "wagner": [63, 66, 71], "wai": [1, 43, 56, 63, 64, 65, 66, 67, 68, 69, 70, 72, 75, 76, 77], "waic": 78, "walk": [1, 5, 6, 16, 36, 72, 75], "want": [2, 64, 66, 68, 69, 70, 72, 73, 74, 75, 76, 77], "warmup": 2, "warn": [66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "watermark": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "wave": [64, 72], "we": [0, 1, 2, 43, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "weak_typ": [9, 14], "weber": [0, 13, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 48, 61, 63, 64, 65, 76, 78], "wed": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "weigh": [65, 76], "weight": [1, 53, 61, 63, 64, 65, 77], "weigth": 53, "well": [1, 56, 64, 71, 76, 77], "were": [63, 66, 68, 69, 70, 71, 75, 77], "what": [64, 67, 68, 69, 72, 75, 76, 77], "when": [2, 4, 5, 6, 23, 36, 51, 63, 64, 65, 66, 67, 68, 69, 70, 72, 75, 76, 77], "whenev": 61, "where": [0, 3, 4, 5, 6, 14, 19, 20, 22, 31, 32, 36, 37, 42, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 72, 74, 75, 76], "wherea": 73, "whether": [19, 40, 41, 44], "which": [1, 5, 6, 13, 36, 42, 58, 63, 64, 65, 66, 67, 68, 69, 70, 72, 75, 76, 77], "while": [61, 63, 64, 65, 69, 70, 72, 73, 75, 76, 77], "whole": [63, 65, 75], "wide": [16, 66], "width": [19, 20], "wiki": [7, 8], "wikipedia": [7, 8], "william": 11, "wilson": [71, 78], "win": 75, "win_arm1": 75, "win_arm2": 75, "wind": 78, "wine": 75, "wishart": 11, "within": 1, "without": [1, 36, 62, 64, 65, 69, 70, 72], "won": 66, "word": [64, 66, 68, 77], "work": [18, 43, 62, 67, 69, 70, 75, 77], "workflow": [70, 77], "workshop": 76, "world": [63, 65, 69, 77], "worri": [66, 68], "worth": 70, "would": [66, 68, 70, 72, 75, 76], "wpenni": 11, "wrap": [0, 66, 67, 68, 75], "write": [67, 69, 72, 76, 77], "written": [61, 65], "www": [1, 11, 78], "x": [9, 12, 13, 14, 15, 33, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76], "x1": [63, 72], "x2": [63, 72], "x3": 72, "x64": 77, "x_": [63, 66, 76], "x_1": [63, 65, 72, 76], "x_1_1": 63, "x_1_2": 63, "x_1_3": 63, "x_1_expected_mean": [69, 74], "x_1_expected_precis": 69, "x_1_mean": 69, "x_1_precis": 69, "x_1_surpris": 69, "x_1_xis_0": 65, "x_2": [63, 65, 72, 76], "x_2_1": 63, "x_2_2": 63, "x_2_3": 63, "x_2_expected_mean": 69, "x_2_expected_precis": 69, "x_2_mean": 69, "x_2_precis": 69, "x_2_surpris": 69, "x_3": 72, "x_b": 36, "x_i": 65, "xaxi": 65, "xflr6": 18, "xi": [13, 33, 64, 65, 67], "xi_": [13, 64, 65], "xi_1": 64, "xi_k": 64, "xi_x": [13, 65], "xlabel": [63, 65, 67, 69, 72, 76, 77], "xlim": 65, "y": [13, 61, 65, 69, 71, 75, 77], "y1": 67, "y2": 67, "yaxi": 65, "ye": 72, "year": [1, 76, 78], "yet": 75, "ylabel": [63, 65, 67, 72, 76, 77], "ylim": 65, "you": [1, 61, 62, 64, 67, 69, 72, 75, 76, 77], "your": [1, 76, 77], "z": [65, 70], "z_": 70, "zero": 72, "zeta": 42, "zip": [63, 65, 71, 74, 75, 77], "zoom": 72, "zorder": [67, 71], "zurich": [62, 76], "\u03c9_2": 2}, "titles": ["API", "How to cite?", "pyhgf.distribution.HGFDistribution", "pyhgf.distribution.HGFLogpGradOp", "pyhgf.distribution.HGFPointwise", "pyhgf.distribution.hgf_logp", "pyhgf.distribution.logp", "pyhgf.math.MultivariateNormal", "pyhgf.math.Normal", "pyhgf.math.binary_surprise", "pyhgf.math.binary_surprise_finite_precision", "pyhgf.math.dirichlet_kullback_leibler", "pyhgf.math.gaussian_density", "pyhgf.math.gaussian_predictive_distribution", "pyhgf.math.gaussian_surprise", "pyhgf.math.sigmoid", "pyhgf.model.HGF", "pyhgf.plots.plot_correlations", "pyhgf.plots.plot_network", "pyhgf.plots.plot_nodes", "pyhgf.plots.plot_trajectories", "pyhgf.response.binary_softmax", "pyhgf.response.binary_softmax_inverse_temperature", "pyhgf.response.first_level_binary_surprise", "pyhgf.response.first_level_gaussian_surprise", "pyhgf.response.total_gaussian_surprise", "pyhgf.updates.posterior.binary.binary_node_update_finite", "pyhgf.updates.posterior.binary.binary_node_update_infinite", "pyhgf.updates.posterior.categorical.categorical_input_update", "pyhgf.updates.posterior.continuous.continuous_node_update", "pyhgf.updates.posterior.continuous.continuous_node_update_ehgf", "pyhgf.updates.posterior.continuous.posterior_update_mean_continuous_node", "pyhgf.updates.posterior.continuous.posterior_update_precision_continuous_node", "pyhgf.updates.posterior.exponential.posterior_update_exponential_family", "pyhgf.updates.prediction.binary.binary_state_node_prediction", "pyhgf.updates.prediction.continuous.continuous_node_prediction", "pyhgf.updates.prediction.continuous.predict_mean", "pyhgf.updates.prediction.continuous.predict_precision", "pyhgf.updates.prediction.dirichlet.dirichlet_node_prediction", "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_finite_precision", "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_infinite_precision", "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_prediction_error", "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_value_prediction_error", "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_volatility_prediction_error", "pyhgf.updates.prediction_error.inputs.generic.generic_input_prediction_error", "pyhgf.updates.prediction_error.nodes.binary.binary_state_node_prediction_error", "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_prediction_error", "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_value_prediction_error", "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_volatility_prediction_error", "pyhgf.updates.prediction_error.nodes.dirichlet.clusters_likelihood", "pyhgf.updates.prediction_error.nodes.dirichlet.create_cluster", "pyhgf.updates.prediction_error.nodes.dirichlet.dirichlet_node_prediction_error", "pyhgf.updates.prediction_error.nodes.dirichlet.get_candidate", "pyhgf.updates.prediction_error.nodes.dirichlet.likely_cluster_proposal", "pyhgf.updates.prediction_error.nodes.dirichlet.update_cluster", "pyhgf.utils.add_edges", "pyhgf.utils.beliefs_propagation", "pyhgf.utils.fill_categorical_state_node", "pyhgf.utils.get_update_sequence", "pyhgf.utils.list_branches", "pyhgf.utils.to_pandas", "PyHGF: A Neural Network Library for Predictive Coding", "Learn", "Introduction to the Generalised Hierarchical Gaussian Filter", "Creating and manipulating networks of probabilistic nodes", "From Reinforcement Learning to Generalised Bayesian Filtering", "The binary Hierarchical Gaussian Filter", "The categorical Hierarchical Gaussian Filter", "The continuous Hierarchical Gaussian Filter", "Using custom response models", "Hierarchical Bayesian modelling with probabilistic neural networks", "Recovering computational parameters from observed behaviours", "Non-linear value coupling", "Example 1: Bayesian filtering of cardiac volatility", "Example 2: Estimating the mean and precision of an input node", "Example 3: A multi-armed bandit task with independent rewards and punishments", "Introduction to the generalised Hierarchical Gaussian Filter", "Application to reinforcement learning", "References"], "titleterms": {"1": [73, 76], "2": [74, 76], "3": [75, 76], "4": 76, "A": [61, 75], "The": [61, 62, 63, 64, 66, 67, 68, 76, 77], "acknowledg": 61, "activ": 72, "ad": 63, "adapt": 65, "add": [66, 68], "add_edg": 55, "an": 74, "api": 0, "applic": 77, "arm": [71, 75], "ascend": 64, "assign": 64, "attribut": 64, "autoregress": 63, "bandit": [71, 75], "bayesian": [65, 70, 73, 75], "behavior": 69, "behaviour": [71, 77], "belief": [63, 75, 77], "beliefs_propag": 56, "between": 76, "bias": 77, "binari": [0, 26, 27, 34, 39, 40, 45, 64, 66, 69, 77], "binary_input_prediction_error_finite_precis": 39, "binary_input_prediction_error_infinite_precis": 40, "binary_node_update_finit": 26, "binary_node_update_infinit": 27, "binary_softmax": 21, "binary_softmax_inverse_temperatur": 22, "binary_state_node_predict": 34, "binary_state_node_prediction_error": 45, "binary_surpris": 9, "binary_surprise_finite_precis": 10, "bivari": 65, "cardiac": 73, "case": [62, 64], "categor": [0, 28, 67], "categorical_input_upd": 28, "cite": 1, "clusters_likelihood": 49, "code": 61, "collect": 65, "comparison": [70, 77], "comput": [70, 71], "configur": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "content": 0, "continu": [0, 29, 30, 31, 32, 35, 36, 37, 41, 42, 43, 46, 47, 48, 64, 68], "continuous_input_prediction_error": 41, "continuous_input_value_prediction_error": 42, "continuous_input_volatility_prediction_error": 43, "continuous_node_predict": 35, "continuous_node_prediction_error": 46, "continuous_node_upd": 29, "continuous_node_update_ehgf": 30, "continuous_node_value_prediction_error": 47, "continuous_node_volatility_prediction_error": 48, "correl": 68, "coupl": [63, 64, 72, 76], "creat": [64, 66, 67, 68, 69], "create_clust": 50, "custom": [64, 69], "data": [66, 68], "dataset": [67, 70, 75], "decis": [69, 75], "deriv": 73, "descend": 64, "detail": 64, "differ": 77, "dirichlet": [0, 38, 49, 50, 51, 52, 53, 54], "dirichlet_kullback_leibl": 11, "dirichlet_node_predict": 38, "dirichlet_node_prediction_error": 51, "distribut": [0, 2, 3, 4, 5, 6, 65, 70], "doe": 61, "drift": 63, "dynam": [63, 64, 65], "edg": 64, "error": [0, 63], "estim": 74, "exampl": [73, 74, 75], "exercis": [62, 76], "exponenti": [0, 33], "famili": 0, "fill_categorical_state_nod": 57, "filter": [61, 62, 63, 65, 66, 67, 68, 73, 76], "first_level_binary_surpris": 23, "first_level_gaussian_surpris": 24, "fit": [61, 66, 67, 68, 77], "fix": [65, 66, 68], "forward": 67, "frequenc": 72, "from": [65, 69, 71, 75], "function": [0, 64, 69, 72], "gaussian": [61, 62, 63, 65, 66, 67, 68, 76], "gaussian_dens": 12, "gaussian_predictive_distribut": 13, "gaussian_surpris": 14, "gener": [0, 44, 61, 63, 76], "generalis": [63, 65, 76], "generic_input_prediction_error": 44, "get": 61, "get_candid": 52, "get_update_sequ": 58, "glossari": [63, 69], "go": 77, "graph": 70, "group": 70, "heart": 73, "hgf": [16, 66, 68, 69, 77], "hgf_logp": 5, "hgfdistribut": 2, "hgflogpgradop": 3, "hgfpointwis": 4, "hierarch": [61, 62, 63, 65, 66, 67, 68, 70, 76], "how": [1, 61], "implement": 64, "import": 66, "independ": 75, "infer": [67, 70, 71, 75], "input": [0, 39, 40, 41, 42, 43, 44, 64, 74], "instal": 61, "instantan": 73, "introduct": [63, 76], "invers": 76, "known": 74, "kown": 74, "learn": [62, 65, 66, 68, 77], "level": [66, 68, 70, 77], "librari": 61, "likely_cluster_propos": 53, "linear": 72, "list_branch": 59, "load": 73, "logp": 6, "manipul": 64, "math": [0, 7, 8, 9, 10, 11, 12, 13, 14, 15], "mcmc": [66, 67, 68], "mean": 74, "miss": 64, "model": [0, 16, 61, 63, 66, 67, 68, 69, 70, 73, 76, 77], "modifi": 64, "multi": 75, "multivari": 64, "multivariatenorm": 7, "network": [61, 63, 64, 67, 70], "neural": [61, 70], "new": 69, "next": 77, "node": [0, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 63, 64, 67, 74, 76], "non": [65, 72], "normal": [8, 65], "nu": 65, "observ": [69, 71], "one": 71, "optim": 77, "paramet": [66, 68, 69, 71, 75, 77], "particip": 75, "physiolog": 73, "plot": [0, 17, 18, 19, 20, 66, 68, 70, 73], "plot_correl": 17, "plot_network": 18, "plot_nod": 19, "plot_trajectori": 20, "posterior": [0, 26, 27, 28, 29, 30, 31, 32, 33, 70, 77], "posterior_update_exponential_famili": 33, "posterior_update_mean_continuous_nod": 31, "posterior_update_precision_continuous_nod": 32, "practic": 76, "precis": 74, "predict": [0, 34, 35, 36, 37, 38, 61, 63, 72, 77], "predict_mean": 36, "predict_precis": 37, "prediction_error": [39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "preprocess": 73, "probabilist": [64, 67, 70, 76], "process": [0, 63], "propag": 63, "punish": 75, "pyhgf": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61], "random": [63, 76, 77], "rate": 73, "real": 75, "record": 73, "recov": [69, 71], "recoveri": [71, 75], "rectifi": 72, "refer": [61, 78], "reinforc": [65, 77], "relu": 72, "rescorla": 77, "respons": [0, 21, 22, 23, 24, 25, 69, 75], "reward": 75, "rl": 77, "rule": [69, 75], "sampl": [66, 67, 68, 70, 77], "sequenc": 64, "sigmoid": 15, "signal": 73, "simul": [67, 70, 71, 75], "solut": [76, 77], "start": 61, "state": [0, 67], "static": 64, "stationari": 65, "statist": 65, "step": 0, "structur": 75, "suffici": 65, "surpris": [66, 68, 69], "system": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], "tabl": 0, "task": [71, 75], "theori": [62, 64], "three": [66, 68, 77], "through": 65, "time": [64, 75], "to_panda": 60, "total_gaussian_surpris": 25, "track": 72, "trajectori": [66, 68, 77], "transit": 67, "tutori": 62, "two": [66, 68, 77], "unit": 72, "univari": 65, "unknown": 74, "unkown": 74, "unobserv": 64, "updat": [0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 63, 64, 75], "update_clust": 54, "us": [62, 65, 66, 67, 68, 69], "util": [0, 55, 56, 57, 58, 59, 60], "valu": [63, 64, 72, 76], "vari": 64, "visual": [64, 66, 68, 70, 71], "volatil": [63, 64, 73, 76], "wagner": 77, "walk": [63, 76], "weather": 76, "where": 77, "work": [61, 64], "world": 76}}) \ No newline at end of file +Search.setIndex({"alltitles": {"": [[77, "exercise1"], [77, "exercise2"], [77, "exercise3"], [77, "exercise4"], [77, "exercise5"]], "API": [[0, "api"]], "Acknowledgments": [[62, "acknowledgments"]], "Add data": [[67, "add-data"], [67, "id4"], [69, "add-data"], [69, "id3"]], "Adding a drift to the random walk": [[64, "adding-a-drift-to-the-random-walk"]], "Application to reinforcement learning": [[78, null]], "Autoregressive processes": [[64, "autoregressive-processes"]], "Bayesian inference": [[76, "bayesian-inference"]], "Beliefs trajectories": [[78, "beliefs-trajectories"]], "Biased random": [[78, "biased-random"]], "Binary inputs": [[0, "binary-inputs"]], "Binary nodes": [[0, "binary-nodes"], [0, "id1"]], "Binary state nodes": [[0, "binary-state-nodes"]], "Bivariate normal distribution": [[66, "bivariate-normal-distribution"]], "Categorical nodes": [[0, "categorical-nodes"]], "Continuous inputs": [[0, "continuous-inputs"]], "Continuous nodes": [[0, "continuous-nodes"], [0, "id2"]], "Continuous state nodes": [[0, "continuous-state-nodes"]], "Continuous value coupling": [[65, "continuous-value-coupling"]], "Continuous volatility coupling": [[65, "continuous-volatility-coupling"]], "Coupling with binary nodes": [[65, "coupling-with-binary-nodes"]], "Create the model": [[67, "create-the-model"], [67, "id3"], [69, "create-the-model"], [69, "id2"]], "Creating a new response function": [[70, "creating-a-new-response-function"]], "Creating a new response function: the binary surprise": [[70, "creating-a-new-response-function-the-binary-surprise"]], "Creating and manipulating networks of probabilistic nodes": [[65, null]], "Creating custom update functions": [[65, "creating-custom-update-functions"]], "Creating custom update sequences": [[65, "creating-custom-update-sequences"]], "Creating probabilistic nodes": [[65, "creating-probabilistic-nodes"]], "Creating the decision rule": [[70, "creating-the-decision-rule"]], "Creating the model": [[67, "creating-the-model"], [67, "id7"], [69, "creating-the-model"], [69, "id5"]], "Creating the probabilistic network": [[68, "creating-the-probabilistic-network"]], "Decision rule": [[76, "decision-rule"]], "Dirichlet processes": [[0, "dirichlet-processes"], [0, "id3"]], "Distribution": [[0, "distribution"]], "Dynamic assignation of update sequences": [[65, "dynamic-assignation-of-update-sequences"]], "Dynamic beliefs updating": [[64, "dynamic-beliefs-updating"]], "Example 1: Bayesian filtering of cardiac volatility": [[74, null]], "Example 2: Estimating the mean and precision of an input node": [[75, null]], "Example 3: A multi-armed bandit task with independent rewards and punishments": [[76, null]], "Exercises": [[63, "exercises"]], "Exponential family": [[0, "exponential-family"]], "Filtering the Sufficient Statistics of a Non-Stationary Distribution": [[66, "filtering-the-sufficient-statistics-of-a-non-stationary-distribution"]], "Filtering the Sufficient Statistics of a Stationary Distribution": [[66, "filtering-the-sufficient-statistics-of-a-stationary-distribution"]], "Fitting behaviours to different RL models": [[78, "fitting-behaviours-to-different-rl-models"]], "Fitting the binary HGF with fixed parameters": [[67, "fitting-the-binary-hgf-with-fixed-parameters"]], "Fitting the continuous HGF with fixed parameters": [[69, "fitting-the-continuous-hgf-with-fixed-parameters"]], "Fitting the model forwards": [[68, "fitting-the-model-forwards"]], "Frequency tracking": [[73, "frequency-tracking"]], "From Reinforcement Learning to Generalised Bayesian Filtering": [[66, null]], "Gaussian Random Walks": [[64, "gaussian-random-walks"], [77, "gaussian-random-walks"]], "Generic input": [[0, "generic-input"]], "Getting started": [[62, "getting-started"]], "Glossary": [[64, "glossary"], [70, "glossary"]], "Group-level inference": [[71, "group-level-inference"]], "Hierarchical Bayesian modelling with probabilistic neural networks": [[71, null]], "How does it work?": [[62, "how-does-it-work"]], "How to cite?": [[1, null]], "Imports": [[67, "imports"]], "Inference from the simulated behaviours": [[72, "inference-from-the-simulated-behaviours"]], "Inference using MCMC sampling": [[68, "inference-using-mcmc-sampling"]], "Inputs": [[0, "inputs"]], "Installation": [[62, "installation"]], "Introduction to the Generalised Hierarchical Gaussian Filter": [[64, null]], "Introduction to the generalised Hierarchical Gaussian Filter": [[77, null]], "Kown mean, unknown precision": [[75, "kown-mean-unknown-precision"]], "Learn": [[63, null]], "Learning parameters with MCMC sampling": [[67, "learning-parameters-with-mcmc-sampling"], [69, "learning-parameters-with-mcmc-sampling"]], "Loading and preprocessing physiological recording": [[74, "loading-and-preprocessing-physiological-recording"]], "Math": [[0, "math"]], "Model": [[0, "model"], [74, "model"]], "Model comparison": [[71, "model-comparison"], [78, "model-comparison"]], "Model fitting": [[62, "model-fitting"]], "Model inversion: the generalized Hierarchical Gaussian Filter": [[77, "model-inversion-the-generalized-hierarchical-gaussian-filter"]], "Modifying the attributes": [[65, "modifying-the-attributes"]], "Modifying the edges": [[65, "modifying-the-edges"]], "Multivariate coupling": [[65, "multivariate-coupling"]], "Non-linear predictions": [[73, "non-linear-predictions"]], "Non-linear value coupling": [[73, null]], "Parameter recovery": [[76, "parameter-recovery"]], "Parameters optimization": [[78, "parameters-optimization"]], "Plot correlation": [[69, "plot-correlation"]], "Plot the computational graph": [[71, "plot-the-computational-graph"]], "Plot the signal with instantaneous heart rate derivations": [[74, "plot-the-signal-with-instantaneous-heart-rate-derivations"]], "Plot trajectories": [[67, "plot-trajectories"], [67, "id5"], [69, "plot-trajectories"], [69, "id4"]], "Plots": [[0, "plots"]], "Posterior predictive sampling": [[78, "posterior-predictive-sampling"]], "Posterior updates": [[0, "posterior-updates"]], "Practice: Filtering the worlds weather": [[77, "practice-filtering-the-worlds-weather"]], "Prediction error steps": [[0, "prediction-error-steps"]], "Prediction steps": [[0, "prediction-steps"]], "Preprocessing": [[74, "preprocessing"]], "Probabilistic coupling between nodes": [[77, "probabilistic-coupling-between-nodes"]], "PyHGF: A Neural Network Library for Predictive Coding": [[62, null]], "ReLU (rectified linear unit) activation function": [[73, "relu-rectified-linear-unit-activation-function"]], "Real-time decision and belief updating": [[76, "real-time-decision-and-belief-updating"]], "Recovering HGF parameters from the observed behaviors": [[70, "recovering-hgf-parameters-from-the-observed-behaviors"]], "Recovering computational parameters from observed behaviours": [[72, null]], "References": [[62, "references"], [79, null]], "Rescorla-Wagner": [[78, "rescorla-wagner"]], "Response": [[0, "response"]], "Sampling": [[67, "sampling"], [67, "id9"], [69, "sampling"], [69, "id7"], [71, "sampling"]], "Simulate a dataset": [[71, "simulate-a-dataset"], [76, "simulate-a-dataset"]], "Simulate behaviours from a one-armed bandit task": [[72, "simulate-behaviours-from-a-one-armed-bandit-task"]], "Simulate responses from a participant": [[76, "simulate-responses-from-a-participant"]], "Simulating a dataset": [[68, "simulating-a-dataset"]], "Solution to Exercise 1": [[77, "solution-exercise1"]], "Solution to Exercise 2": [[77, "solution-exercise2"]], "Solution to Exercise 3": [[77, "solution-exercise3"]], "Solution to Exercise 4": [[77, "solution-exercise4"]], "Solutions": [[77, "solutions"], [78, "solutions"]], "State nodes": [[0, "state-nodes"]], "Static assignation of update sequences": [[65, "static-assignation-of-update-sequences"]], "Surprise": [[67, "surprise"], [67, "id6"], [69, "surprise"]], "System configuration": [[64, "system-configuration"], [65, "system-configuration"], [66, "system-configuration"], [67, "system-configuration"], [68, "system-configuration"], [69, "system-configuration"], [70, "system-configuration"], [71, "system-configuration"], [72, "system-configuration"], [73, "system-configuration"], [74, "system-configuration"], [75, "system-configuration"], [76, "system-configuration"], [77, "system-configuration"], [78, "system-configuration"]], "Table of Contents": [[0, null]], "Task structure": [[76, "task-structure"]], "The Generalized Hierarchical Gaussian Filter": [[62, "the-generalized-hierarchical-gaussian-filter"]], "The Hierarchical Gaussian Filter": [[63, "the-hierarchical-gaussian-filter"]], "The Hierarchical Gaussian Filter in a network of predictive nodes": [[64, "the-hierarchical-gaussian-filter-in-a-network-of-predictive-nodes"]], "The binary HGF": [[78, "the-binary-hgf"]], "The binary Hierarchical Gaussian Filter": [[67, null]], "The case of multivariate ascendency": [[65, "the-case-of-multivariate-ascendency"]], "The case of multivariate descendency": [[65, "the-case-of-multivariate-descendency"]], "The categorical Hierarchical Gaussian Filter": [[68, null]], "The categorical state node": [[68, "the-categorical-state-node"]], "The categorical state-transition node": [[68, "the-categorical-state-transition-node"]], "The continuous Hierarchical Gaussian Filter": [[69, null]], "The generative model": [[64, "the-generative-model"], [77, "the-generative-model"]], "The propagation of prediction and prediction errors": [[64, "the-propagation-of-prediction-and-prediction-errors"]], "The three-level binary Hierarchical Gaussian Filter": [[67, "the-three-level-binary-hierarchical-gaussian-filter"]], "The three-level continuous Hierarchical Gaussian Filter": [[69, "the-three-level-continuous-hierarchical-gaussian-filter"]], "The two-level binary Hierarchical Gaussian Filter": [[67, "the-two-level-binary-hierarchical-gaussian-filter"]], "The two-level continuous Hierarchical Gaussian Filter": [[69, "the-two-level-continuous-hierarchical-gaussian-filter"]], "Theory": [[63, "theory"]], "Theory and implementation details": [[65, "theory-and-implementation-details"]], "Three-level HGF": [[78, "three-level-hgf"]], "Three-level model": [[67, "three-level-model"], [69, "three-level-model"]], "Time-varying update sequences": [[65, "time-varying-update-sequences"]], "Tutorials": [[63, "tutorials"]], "Two-level HGF": [[78, "two-level-hgf"]], "Two-level model": [[67, "two-level-model"], [69, "two-level-model"]], "Univariate normal distribution": [[66, "univariate-normal-distribution"]], "Unkown mean, known precision": [[75, "unkown-mean-known-precision"]], "Unkown mean, unknown precision": [[75, "unkown-mean-unknown-precision"]], "Update functions": [[65, "update-functions"]], "Updates functions": [[0, "updates-functions"]], "Use cases": [[63, "use-cases"]], "Using a dynamically adapted \\nu through a collection of Hierarchical Gaussian Filters": [[66, "using-a-dynamically-adapted-nu-through-a-collection-of-hierarchical-gaussian-filters"]], "Using a fixed \\nu": [[66, "using-a-fixed-nu"]], "Using custom response models": [[70, null]], "Using the learned parameters": [[67, "using-the-learned-parameters"], [67, "id10"], [69, "using-the-learned-parameters"], [69, "id8"]], "Utils": [[0, "utils"]], "Value coupling": [[64, "value-coupling"], [65, "value-coupling"], [77, "value-coupling"]], "Visualization of the posterior distributions": [[71, "visualization-of-the-posterior-distributions"]], "Visualizing parameters recovery": [[72, "visualizing-parameters-recovery"]], "Visualizing probabilistic networks": [[65, "visualizing-probabilistic-networks"]], "Visualizing the model": [[67, "visualizing-the-model"], [67, "id8"], [69, "visualizing-the-model"], [69, "id6"]], "Volatility coupling": [[64, "volatility-coupling"], [65, "volatility-coupling"], [77, "volatility-coupling"]], "Where to go next?": [[78, "where-to-go-next"]], "Working with missing or unobserved input sequences": [[65, "working-with-missing-or-unobserved-input-sequences"]], "pyhgf.distribution.HGFDistribution": [[2, null]], "pyhgf.distribution.HGFLogpGradOp": [[3, null]], "pyhgf.distribution.HGFPointwise": [[4, null]], "pyhgf.distribution.hgf_logp": [[5, null]], "pyhgf.distribution.logp": [[6, null]], "pyhgf.math.MultivariateNormal": [[7, null]], "pyhgf.math.Normal": [[8, null]], "pyhgf.math.binary_surprise": [[9, null]], "pyhgf.math.binary_surprise_finite_precision": [[10, null]], "pyhgf.math.dirichlet_kullback_leibler": [[11, null]], "pyhgf.math.gaussian_density": [[12, null]], "pyhgf.math.gaussian_predictive_distribution": [[13, null]], "pyhgf.math.gaussian_surprise": [[14, null]], "pyhgf.math.sigmoid": [[15, null]], "pyhgf.model.HGF": [[16, null]], "pyhgf.model.Network": [[17, null]], "pyhgf.plots.plot_correlations": [[18, null]], "pyhgf.plots.plot_network": [[19, null]], "pyhgf.plots.plot_nodes": [[20, null]], "pyhgf.plots.plot_trajectories": [[21, null]], "pyhgf.response.binary_softmax": [[22, null]], "pyhgf.response.binary_softmax_inverse_temperature": [[23, null]], "pyhgf.response.first_level_binary_surprise": [[24, null]], "pyhgf.response.first_level_gaussian_surprise": [[25, null]], "pyhgf.response.total_gaussian_surprise": [[26, null]], "pyhgf.updates.posterior.binary.binary_node_update_finite": [[27, null]], "pyhgf.updates.posterior.binary.binary_node_update_infinite": [[28, null]], "pyhgf.updates.posterior.categorical.categorical_input_update": [[29, null]], "pyhgf.updates.posterior.continuous.continuous_node_update": [[30, null]], "pyhgf.updates.posterior.continuous.continuous_node_update_ehgf": [[31, null]], "pyhgf.updates.posterior.continuous.posterior_update_mean_continuous_node": [[32, null]], "pyhgf.updates.posterior.continuous.posterior_update_precision_continuous_node": [[33, null]], "pyhgf.updates.posterior.exponential.posterior_update_exponential_family": [[34, null]], "pyhgf.updates.prediction.binary.binary_state_node_prediction": [[35, null]], "pyhgf.updates.prediction.continuous.continuous_node_prediction": [[36, null]], "pyhgf.updates.prediction.continuous.predict_mean": [[37, null]], "pyhgf.updates.prediction.continuous.predict_precision": [[38, null]], "pyhgf.updates.prediction.dirichlet.dirichlet_node_prediction": [[39, null]], "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_finite_precision": [[40, null]], "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_infinite_precision": [[41, null]], "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_prediction_error": [[42, null]], "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_value_prediction_error": [[43, null]], "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_volatility_prediction_error": [[44, null]], "pyhgf.updates.prediction_error.inputs.generic.generic_input_prediction_error": [[45, null]], "pyhgf.updates.prediction_error.nodes.binary.binary_state_node_prediction_error": [[46, null]], "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_prediction_error": [[47, null]], "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_value_prediction_error": [[48, null]], "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_volatility_prediction_error": [[49, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.clusters_likelihood": [[50, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.create_cluster": [[51, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.dirichlet_node_prediction_error": [[52, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.get_candidate": [[53, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.likely_cluster_proposal": [[54, null]], "pyhgf.updates.prediction_error.nodes.dirichlet.update_cluster": [[55, null]], "pyhgf.utils.add_edges": [[56, null]], "pyhgf.utils.beliefs_propagation": [[57, null]], "pyhgf.utils.fill_categorical_state_node": [[58, null]], "pyhgf.utils.get_update_sequence": [[59, null]], "pyhgf.utils.list_branches": [[60, null]], "pyhgf.utils.to_pandas": [[61, null]]}, "docnames": ["api", "cite", "generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution", "generated/pyhgf.distribution/pyhgf.distribution.HGFLogpGradOp", "generated/pyhgf.distribution/pyhgf.distribution.HGFPointwise", "generated/pyhgf.distribution/pyhgf.distribution.hgf_logp", "generated/pyhgf.distribution/pyhgf.distribution.logp", "generated/pyhgf.math/pyhgf.math.MultivariateNormal", "generated/pyhgf.math/pyhgf.math.Normal", "generated/pyhgf.math/pyhgf.math.binary_surprise", "generated/pyhgf.math/pyhgf.math.binary_surprise_finite_precision", "generated/pyhgf.math/pyhgf.math.dirichlet_kullback_leibler", "generated/pyhgf.math/pyhgf.math.gaussian_density", "generated/pyhgf.math/pyhgf.math.gaussian_predictive_distribution", "generated/pyhgf.math/pyhgf.math.gaussian_surprise", "generated/pyhgf.math/pyhgf.math.sigmoid", "generated/pyhgf.model/pyhgf.model.HGF", "generated/pyhgf.model/pyhgf.model.Network", "generated/pyhgf.plots/pyhgf.plots.plot_correlations", "generated/pyhgf.plots/pyhgf.plots.plot_network", "generated/pyhgf.plots/pyhgf.plots.plot_nodes", "generated/pyhgf.plots/pyhgf.plots.plot_trajectories", "generated/pyhgf.response/pyhgf.response.binary_softmax", "generated/pyhgf.response/pyhgf.response.binary_softmax_inverse_temperature", "generated/pyhgf.response/pyhgf.response.first_level_binary_surprise", "generated/pyhgf.response/pyhgf.response.first_level_gaussian_surprise", "generated/pyhgf.response/pyhgf.response.total_gaussian_surprise", "generated/pyhgf.updates.posterior.binary/pyhgf.updates.posterior.binary.binary_node_update_finite", "generated/pyhgf.updates.posterior.binary/pyhgf.updates.posterior.binary.binary_node_update_infinite", "generated/pyhgf.updates.posterior.categorical/pyhgf.updates.posterior.categorical.categorical_input_update", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.continuous_node_update", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.continuous_node_update_ehgf", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.posterior_update_mean_continuous_node", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.posterior_update_precision_continuous_node", "generated/pyhgf.updates.posterior.exponential/pyhgf.updates.posterior.exponential.posterior_update_exponential_family", "generated/pyhgf.updates.prediction.binary/pyhgf.updates.prediction.binary.binary_state_node_prediction", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.continuous_node_prediction", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.predict_mean", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.predict_precision", "generated/pyhgf.updates.prediction.dirichlet/pyhgf.updates.prediction.dirichlet.dirichlet_node_prediction", "generated/pyhgf.updates.prediction_error.inputs.binary/pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_finite_precision", "generated/pyhgf.updates.prediction_error.inputs.binary/pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_infinite_precision", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_prediction_error", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_value_prediction_error", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_volatility_prediction_error", "generated/pyhgf.updates.prediction_error.inputs.generic/pyhgf.updates.prediction_error.inputs.generic.generic_input_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.binary/pyhgf.updates.prediction_error.nodes.binary.binary_state_node_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_value_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_volatility_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.clusters_likelihood", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.create_cluster", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.dirichlet_node_prediction_error", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.get_candidate", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.likely_cluster_proposal", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.update_cluster", "generated/pyhgf.utils/pyhgf.utils.add_edges", "generated/pyhgf.utils/pyhgf.utils.beliefs_propagation", "generated/pyhgf.utils/pyhgf.utils.fill_categorical_state_node", "generated/pyhgf.utils/pyhgf.utils.get_update_sequence", "generated/pyhgf.utils/pyhgf.utils.list_branches", "generated/pyhgf.utils/pyhgf.utils.to_pandas", "index", "learn", "notebooks/0.1-Theory", "notebooks/0.2-Creating_networks", "notebooks/0.3-Generalised_filtering", "notebooks/1.1-Binary_HGF", "notebooks/1.2-Categorical_HGF", "notebooks/1.3-Continuous_HGF", "notebooks/2-Using_custom_response_functions", "notebooks/3-Multilevel_HGF", "notebooks/4-Parameter_recovery", "notebooks/5-Non_linear_value_coupling", "notebooks/Example_1_Heart_rate_variability", "notebooks/Example_2_Input_node_volatility_coupling", "notebooks/Example_3_Multi_armed_bandit", "notebooks/Exercise_1_Introduction_to_the_generalised_hierarchical_gaussian_filter", "notebooks/Exercise_2_Bayesian_reinforcement_learning", "references"], "envversion": {"sphinx": 63, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinxcontrib.bibtex": 9}, "filenames": ["api.rst", "cite.md", "generated/pyhgf.distribution/pyhgf.distribution.HGFDistribution.rst", "generated/pyhgf.distribution/pyhgf.distribution.HGFLogpGradOp.rst", "generated/pyhgf.distribution/pyhgf.distribution.HGFPointwise.rst", "generated/pyhgf.distribution/pyhgf.distribution.hgf_logp.rst", "generated/pyhgf.distribution/pyhgf.distribution.logp.rst", "generated/pyhgf.math/pyhgf.math.MultivariateNormal.rst", "generated/pyhgf.math/pyhgf.math.Normal.rst", "generated/pyhgf.math/pyhgf.math.binary_surprise.rst", "generated/pyhgf.math/pyhgf.math.binary_surprise_finite_precision.rst", "generated/pyhgf.math/pyhgf.math.dirichlet_kullback_leibler.rst", "generated/pyhgf.math/pyhgf.math.gaussian_density.rst", "generated/pyhgf.math/pyhgf.math.gaussian_predictive_distribution.rst", "generated/pyhgf.math/pyhgf.math.gaussian_surprise.rst", "generated/pyhgf.math/pyhgf.math.sigmoid.rst", "generated/pyhgf.model/pyhgf.model.HGF.rst", "generated/pyhgf.model/pyhgf.model.Network.rst", "generated/pyhgf.plots/pyhgf.plots.plot_correlations.rst", "generated/pyhgf.plots/pyhgf.plots.plot_network.rst", "generated/pyhgf.plots/pyhgf.plots.plot_nodes.rst", "generated/pyhgf.plots/pyhgf.plots.plot_trajectories.rst", "generated/pyhgf.response/pyhgf.response.binary_softmax.rst", "generated/pyhgf.response/pyhgf.response.binary_softmax_inverse_temperature.rst", "generated/pyhgf.response/pyhgf.response.first_level_binary_surprise.rst", "generated/pyhgf.response/pyhgf.response.first_level_gaussian_surprise.rst", "generated/pyhgf.response/pyhgf.response.total_gaussian_surprise.rst", "generated/pyhgf.updates.posterior.binary/pyhgf.updates.posterior.binary.binary_node_update_finite.rst", "generated/pyhgf.updates.posterior.binary/pyhgf.updates.posterior.binary.binary_node_update_infinite.rst", "generated/pyhgf.updates.posterior.categorical/pyhgf.updates.posterior.categorical.categorical_input_update.rst", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.continuous_node_update.rst", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.continuous_node_update_ehgf.rst", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.posterior_update_mean_continuous_node.rst", "generated/pyhgf.updates.posterior.continuous/pyhgf.updates.posterior.continuous.posterior_update_precision_continuous_node.rst", "generated/pyhgf.updates.posterior.exponential/pyhgf.updates.posterior.exponential.posterior_update_exponential_family.rst", "generated/pyhgf.updates.prediction.binary/pyhgf.updates.prediction.binary.binary_state_node_prediction.rst", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.continuous_node_prediction.rst", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.predict_mean.rst", "generated/pyhgf.updates.prediction.continuous/pyhgf.updates.prediction.continuous.predict_precision.rst", "generated/pyhgf.updates.prediction.dirichlet/pyhgf.updates.prediction.dirichlet.dirichlet_node_prediction.rst", "generated/pyhgf.updates.prediction_error.inputs.binary/pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_finite_precision.rst", "generated/pyhgf.updates.prediction_error.inputs.binary/pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_infinite_precision.rst", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_prediction_error.rst", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_value_prediction_error.rst", "generated/pyhgf.updates.prediction_error.inputs.continuous/pyhgf.updates.prediction_error.inputs.continuous.continuous_input_volatility_prediction_error.rst", "generated/pyhgf.updates.prediction_error.inputs.generic/pyhgf.updates.prediction_error.inputs.generic.generic_input_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.binary/pyhgf.updates.prediction_error.nodes.binary.binary_state_node_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_value_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.continuous/pyhgf.updates.prediction_error.nodes.continuous.continuous_node_volatility_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.clusters_likelihood.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.create_cluster.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.dirichlet_node_prediction_error.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.get_candidate.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.likely_cluster_proposal.rst", "generated/pyhgf.updates.prediction_error.nodes.dirichlet/pyhgf.updates.prediction_error.nodes.dirichlet.update_cluster.rst", "generated/pyhgf.utils/pyhgf.utils.add_edges.rst", "generated/pyhgf.utils/pyhgf.utils.beliefs_propagation.rst", "generated/pyhgf.utils/pyhgf.utils.fill_categorical_state_node.rst", "generated/pyhgf.utils/pyhgf.utils.get_update_sequence.rst", "generated/pyhgf.utils/pyhgf.utils.list_branches.rst", "generated/pyhgf.utils/pyhgf.utils.to_pandas.rst", "index.md", "learn.md", "notebooks/0.1-Theory.ipynb", "notebooks/0.2-Creating_networks.ipynb", "notebooks/0.3-Generalised_filtering.ipynb", "notebooks/1.1-Binary_HGF.ipynb", "notebooks/1.2-Categorical_HGF.ipynb", "notebooks/1.3-Continuous_HGF.ipynb", "notebooks/2-Using_custom_response_functions.ipynb", "notebooks/3-Multilevel_HGF.ipynb", "notebooks/4-Parameter_recovery.ipynb", "notebooks/5-Non_linear_value_coupling.ipynb", "notebooks/Example_1_Heart_rate_variability.ipynb", "notebooks/Example_2_Input_node_volatility_coupling.ipynb", "notebooks/Example_3_Multi_armed_bandit.ipynb", "notebooks/Exercise_1_Introduction_to_the_generalised_hierarchical_gaussian_filter.ipynb", "notebooks/Exercise_2_Bayesian_reinforcement_learning.ipynb", "references.md"], "indexentries": {"__init__() (pyhgf.distribution.hgfdistribution method)": [[2, "pyhgf.distribution.HGFDistribution.__init__", false]], "__init__() (pyhgf.distribution.hgflogpgradop method)": [[3, "pyhgf.distribution.HGFLogpGradOp.__init__", false]], "__init__() (pyhgf.distribution.hgfpointwise method)": [[4, "pyhgf.distribution.HGFPointwise.__init__", false]], "__init__() (pyhgf.math.multivariatenormal method)": [[7, "pyhgf.math.MultivariateNormal.__init__", false]], "__init__() (pyhgf.math.normal method)": [[8, "pyhgf.math.Normal.__init__", false]], "__init__() (pyhgf.model.hgf method)": [[16, "pyhgf.model.HGF.__init__", false]], "__init__() (pyhgf.model.network method)": [[17, "pyhgf.model.Network.__init__", false]], "add_edges() (in module pyhgf.utils)": [[56, "pyhgf.utils.add_edges", false]], "beliefs_propagation() (in module pyhgf.utils)": [[57, "pyhgf.utils.beliefs_propagation", false]], "binary_input_prediction_error_finite_precision() (in module pyhgf.updates.prediction_error.inputs.binary)": [[40, "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_finite_precision", false]], "binary_input_prediction_error_infinite_precision() (in module pyhgf.updates.prediction_error.inputs.binary)": [[41, "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_infinite_precision", false]], "binary_node_update_finite() (in module pyhgf.updates.posterior.binary)": [[27, "pyhgf.updates.posterior.binary.binary_node_update_finite", false]], "binary_node_update_infinite() (in module pyhgf.updates.posterior.binary)": [[28, "pyhgf.updates.posterior.binary.binary_node_update_infinite", false]], "binary_softmax() (in module pyhgf.response)": [[22, "pyhgf.response.binary_softmax", false]], "binary_softmax_inverse_temperature() (in module pyhgf.response)": [[23, "pyhgf.response.binary_softmax_inverse_temperature", false]], "binary_state_node_prediction() (in module pyhgf.updates.prediction.binary)": [[35, "pyhgf.updates.prediction.binary.binary_state_node_prediction", false]], "binary_state_node_prediction_error() (in module pyhgf.updates.prediction_error.nodes.binary)": [[46, "pyhgf.updates.prediction_error.nodes.binary.binary_state_node_prediction_error", false]], "binary_surprise() (in module pyhgf.math)": [[9, "pyhgf.math.binary_surprise", false]], "binary_surprise_finite_precision() (in module pyhgf.math)": [[10, "pyhgf.math.binary_surprise_finite_precision", false]], "categorical_input_update() (in module pyhgf.updates.posterior.categorical)": [[29, "pyhgf.updates.posterior.categorical.categorical_input_update", false]], "clusters_likelihood() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[50, "pyhgf.updates.prediction_error.nodes.dirichlet.clusters_likelihood", false]], "continuous_input_prediction_error() (in module pyhgf.updates.prediction_error.inputs.continuous)": [[42, "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_prediction_error", false]], "continuous_input_value_prediction_error() (in module pyhgf.updates.prediction_error.inputs.continuous)": [[43, "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_value_prediction_error", false]], "continuous_input_volatility_prediction_error() (in module pyhgf.updates.prediction_error.inputs.continuous)": [[44, "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_volatility_prediction_error", false]], "continuous_node_prediction() (in module pyhgf.updates.prediction.continuous)": [[36, "pyhgf.updates.prediction.continuous.continuous_node_prediction", false]], "continuous_node_prediction_error() (in module pyhgf.updates.prediction_error.nodes.continuous)": [[47, "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_prediction_error", false]], "continuous_node_update() (in module pyhgf.updates.posterior.continuous)": [[30, "pyhgf.updates.posterior.continuous.continuous_node_update", false]], "continuous_node_update_ehgf() (in module pyhgf.updates.posterior.continuous)": [[31, "pyhgf.updates.posterior.continuous.continuous_node_update_ehgf", false]], "continuous_node_value_prediction_error() (in module pyhgf.updates.prediction_error.nodes.continuous)": [[48, "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_value_prediction_error", false]], "continuous_node_volatility_prediction_error() (in module pyhgf.updates.prediction_error.nodes.continuous)": [[49, "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_volatility_prediction_error", false]], "create_cluster() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[51, "pyhgf.updates.prediction_error.nodes.dirichlet.create_cluster", false]], "decision rule": [[70, "term-Decision-rule", true]], "dirichlet_kullback_leibler() (in module pyhgf.math)": [[11, "pyhgf.math.dirichlet_kullback_leibler", false]], "dirichlet_node_prediction() (in module pyhgf.updates.prediction.dirichlet)": [[39, "pyhgf.updates.prediction.dirichlet.dirichlet_node_prediction", false]], "dirichlet_node_prediction_error() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[52, "pyhgf.updates.prediction_error.nodes.dirichlet.dirichlet_node_prediction_error", false]], "fill_categorical_state_node() (in module pyhgf.utils)": [[58, "pyhgf.utils.fill_categorical_state_node", false]], "first_level_binary_surprise() (in module pyhgf.response)": [[24, "pyhgf.response.first_level_binary_surprise", false]], "first_level_gaussian_surprise() (in module pyhgf.response)": [[25, "pyhgf.response.first_level_gaussian_surprise", false]], "gaussian random walk": [[64, "term-Gaussian-Random-Walk", true]], "gaussian_density() (in module pyhgf.math)": [[12, "pyhgf.math.gaussian_density", false]], "gaussian_predictive_distribution() (in module pyhgf.math)": [[13, "pyhgf.math.gaussian_predictive_distribution", false]], "gaussian_surprise() (in module pyhgf.math)": [[14, "pyhgf.math.gaussian_surprise", false]], "generic_input_prediction_error() (in module pyhgf.updates.prediction_error.inputs.generic)": [[45, "pyhgf.updates.prediction_error.inputs.generic.generic_input_prediction_error", false]], "get_candidate() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[53, "pyhgf.updates.prediction_error.nodes.dirichlet.get_candidate", false]], "get_update_sequence() (in module pyhgf.utils)": [[59, "pyhgf.utils.get_update_sequence", false]], "hgf (class in pyhgf.model)": [[16, "pyhgf.model.HGF", false]], "hgf_logp() (in module pyhgf.distribution)": [[5, "pyhgf.distribution.hgf_logp", false]], "hgfdistribution (class in pyhgf.distribution)": [[2, "pyhgf.distribution.HGFDistribution", false]], "hgflogpgradop (class in pyhgf.distribution)": [[3, "pyhgf.distribution.HGFLogpGradOp", false]], "hgfpointwise (class in pyhgf.distribution)": [[4, "pyhgf.distribution.HGFPointwise", false]], "likely_cluster_proposal() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[54, "pyhgf.updates.prediction_error.nodes.dirichlet.likely_cluster_proposal", false]], "list_branches() (in module pyhgf.utils)": [[60, "pyhgf.utils.list_branches", false]], "logp() (in module pyhgf.distribution)": [[6, "pyhgf.distribution.logp", false]], "multivariatenormal (class in pyhgf.math)": [[7, "pyhgf.math.MultivariateNormal", false]], "network (class in pyhgf.model)": [[17, "pyhgf.model.Network", false]], "node": [[64, "term-Node", true]], "normal (class in pyhgf.math)": [[8, "pyhgf.math.Normal", false]], "perceptual model": [[70, "term-Perceptual-model", true]], "plot_correlations() (in module pyhgf.plots)": [[18, "pyhgf.plots.plot_correlations", false]], "plot_network() (in module pyhgf.plots)": [[19, "pyhgf.plots.plot_network", false]], "plot_nodes() (in module pyhgf.plots)": [[20, "pyhgf.plots.plot_nodes", false]], "plot_trajectories() (in module pyhgf.plots)": [[21, "pyhgf.plots.plot_trajectories", false]], "posterior_update_exponential_family() (in module pyhgf.updates.posterior.exponential)": [[34, "pyhgf.updates.posterior.exponential.posterior_update_exponential_family", false]], "posterior_update_mean_continuous_node() (in module pyhgf.updates.posterior.continuous)": [[32, "pyhgf.updates.posterior.continuous.posterior_update_mean_continuous_node", false]], "posterior_update_precision_continuous_node() (in module pyhgf.updates.posterior.continuous)": [[33, "pyhgf.updates.posterior.continuous.posterior_update_precision_continuous_node", false]], "predict_mean() (in module pyhgf.updates.prediction.continuous)": [[37, "pyhgf.updates.prediction.continuous.predict_mean", false]], "predict_precision() (in module pyhgf.updates.prediction.continuous)": [[38, "pyhgf.updates.prediction.continuous.predict_precision", false]], "prediction": [[64, "term-Prediction", true]], "prediction error": [[64, "term-Prediction-error", true]], "response function": [[70, "term-Response-function", true]], "response model": [[70, "term-Response-model", true]], "sigmoid() (in module pyhgf.math)": [[15, "pyhgf.math.sigmoid", false]], "to_pandas() (in module pyhgf.utils)": [[61, "pyhgf.utils.to_pandas", false]], "total_gaussian_surprise() (in module pyhgf.response)": [[26, "pyhgf.response.total_gaussian_surprise", false]], "update": [[64, "term-Update", true]], "update_cluster() (in module pyhgf.updates.prediction_error.nodes.dirichlet)": [[55, "pyhgf.updates.prediction_error.nodes.dirichlet.update_cluster", false]], "vape": [[64, "term-VAPE", true]], "vope": [[64, "term-VOPE", true]]}, "objects": {"pyhgf.distribution": [[2, 0, 1, "", "HGFDistribution"], [3, 0, 1, "", "HGFLogpGradOp"], [4, 0, 1, "", "HGFPointwise"], [5, 2, 1, "", "hgf_logp"], [6, 2, 1, "", "logp"]], "pyhgf.distribution.HGFDistribution": [[2, 1, 1, "", "__init__"]], "pyhgf.distribution.HGFLogpGradOp": [[3, 1, 1, "", "__init__"]], "pyhgf.distribution.HGFPointwise": [[4, 1, 1, "", "__init__"]], "pyhgf.math": [[7, 0, 1, "", "MultivariateNormal"], [8, 0, 1, "", "Normal"], [9, 2, 1, "", "binary_surprise"], [10, 2, 1, "", "binary_surprise_finite_precision"], [11, 2, 1, "", "dirichlet_kullback_leibler"], [12, 2, 1, "", "gaussian_density"], [13, 2, 1, "", "gaussian_predictive_distribution"], [14, 2, 1, "", "gaussian_surprise"], [15, 2, 1, "", "sigmoid"]], "pyhgf.math.MultivariateNormal": [[7, 1, 1, "", "__init__"]], "pyhgf.math.Normal": [[8, 1, 1, "", "__init__"]], "pyhgf.model": [[16, 0, 1, "", "HGF"], [17, 0, 1, "", "Network"]], "pyhgf.model.HGF": [[16, 1, 1, "", "__init__"]], "pyhgf.model.Network": [[17, 1, 1, "", "__init__"]], "pyhgf.plots": [[18, 2, 1, "", "plot_correlations"], [19, 2, 1, "", "plot_network"], [20, 2, 1, "", "plot_nodes"], [21, 2, 1, "", "plot_trajectories"]], "pyhgf.response": [[22, 2, 1, "", "binary_softmax"], [23, 2, 1, "", "binary_softmax_inverse_temperature"], [24, 2, 1, "", "first_level_binary_surprise"], [25, 2, 1, "", "first_level_gaussian_surprise"], [26, 2, 1, "", "total_gaussian_surprise"]], "pyhgf.updates.posterior.binary": [[27, 2, 1, "", "binary_node_update_finite"], [28, 2, 1, "", "binary_node_update_infinite"]], "pyhgf.updates.posterior.categorical": [[29, 2, 1, "", "categorical_input_update"]], "pyhgf.updates.posterior.continuous": [[30, 2, 1, "", "continuous_node_update"], [31, 2, 1, "", "continuous_node_update_ehgf"], [32, 2, 1, "", "posterior_update_mean_continuous_node"], [33, 2, 1, "", "posterior_update_precision_continuous_node"]], "pyhgf.updates.posterior.exponential": [[34, 2, 1, "", "posterior_update_exponential_family"]], "pyhgf.updates.prediction.binary": [[35, 2, 1, "", "binary_state_node_prediction"]], "pyhgf.updates.prediction.continuous": [[36, 2, 1, "", "continuous_node_prediction"], [37, 2, 1, "", "predict_mean"], [38, 2, 1, "", "predict_precision"]], "pyhgf.updates.prediction.dirichlet": [[39, 2, 1, "", "dirichlet_node_prediction"]], "pyhgf.updates.prediction_error.inputs.binary": [[40, 2, 1, "", "binary_input_prediction_error_finite_precision"], [41, 2, 1, "", "binary_input_prediction_error_infinite_precision"]], "pyhgf.updates.prediction_error.inputs.continuous": [[42, 2, 1, "", "continuous_input_prediction_error"], [43, 2, 1, "", "continuous_input_value_prediction_error"], [44, 2, 1, "", "continuous_input_volatility_prediction_error"]], "pyhgf.updates.prediction_error.inputs.generic": [[45, 2, 1, "", "generic_input_prediction_error"]], "pyhgf.updates.prediction_error.nodes.binary": [[46, 2, 1, "", "binary_state_node_prediction_error"]], "pyhgf.updates.prediction_error.nodes.continuous": [[47, 2, 1, "", "continuous_node_prediction_error"], [48, 2, 1, "", "continuous_node_value_prediction_error"], [49, 2, 1, "", "continuous_node_volatility_prediction_error"]], "pyhgf.updates.prediction_error.nodes.dirichlet": [[50, 2, 1, "", "clusters_likelihood"], [51, 2, 1, "", "create_cluster"], [52, 2, 1, "", "dirichlet_node_prediction_error"], [53, 2, 1, "", "get_candidate"], [54, 2, 1, "", "likely_cluster_proposal"], [55, 2, 1, "", "update_cluster"]], "pyhgf.utils": [[56, 2, 1, "", "add_edges"], [57, 2, 1, "", "beliefs_propagation"], [58, 2, 1, "", "fill_categorical_state_node"], [59, 2, 1, "", "get_update_sequence"], [60, 2, 1, "", "list_branches"], [61, 2, 1, "", "to_pandas"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "terms": {"": [1, 2, 17, 20, 21, 24, 25, 26, 37, 44, 56, 57, 59, 62, 64, 65, 66, 67, 69, 70, 72, 73, 74, 76, 77, 78], "0": [0, 2, 3, 4, 5, 6, 9, 10, 14, 15, 16, 20, 21, 22, 23, 37, 54, 56, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "00": [74, 77, 78], "000000": 78, "000000e": 78, "00039": [1, 62, 79], "005910": 78, "00598": 67, "008": 70, "00825": [1, 62, 79], "01": [66, 72, 73, 75, 77, 78], "012": 70, "013": 78, "016": 79, "016216": 70, "0167": 69, "018": 77, "02": [66, 77], "027": 2, "03": [73, 77], "030": [13, 34], "034586": 78, "038": 2, "04": [20, 21, 69, 77], "05": [73, 76, 78], "051144": 78, "056803": 70, "060": 79, "061": 77, "061202": 78, "065": 2, "067450": 70, "068": 79, "077038": 70, "078": 70, "08": 79, "08008": 72, "1": [1, 2, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 52, 56, 59, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 78, 79], "10": [1, 13, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 78, 79], "100": [66, 72, 74], "1000": [2, 64, 65, 66, 73, 74, 75, 77], "10000": [16, 64], "1007": [13, 34, 79], "1016": 79, "1017": 79, "1028": 69, "104614": 78, "109": 78, "10937": [27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 79], "11": [2, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "1106": 69, "1118": 69, "112": 78, "113": 78, "114": 79, "117590": 79, "12": [2, 20, 21, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "1224": 79, "123": [64, 65, 66, 71, 72, 75, 76, 77, 78], "1239": 79, "124": 77, "125": [64, 77], "1251": 79, "1265": 79, "128": [66, 77, 78], "13": [20, 21, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "138": 62, "14": [2, 70], "1413": 79, "1432": 79, "147": 77, "15": [67, 69, 75], "150": [68, 75], "1500": 65, "159686": 78, "16": [2, 66, 67, 69, 70, 71, 72, 74, 76, 77, 78], "1662": 1, "16625161": 1, "1684": 71, "17": [68, 71], "1724106460": 65, "18": [20, 21, 70], "1843": 70, "185465": 70, "19": [64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "1903": 72, "196": 77, "1_000": [67, 69, 70, 71, 72, 74, 76, 78], "1d": [2, 4], "1e1": [20, 21, 67, 69, 74], "1e2": 77, "1e4": [16, 20, 21, 67, 69, 70, 74], "1i": [11, 68], "1rst": 67, "2": [2, 3, 4, 5, 6, 11, 13, 14, 16, 17, 20, 21, 30, 31, 32, 33, 44, 49, 52, 59, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 78, 79], "20": [1, 71, 72, 73, 78, 79], "200": [64, 65, 66, 77], "2000": [65, 71, 72], "20000": [53, 54], "2001": 11, "2010": 69, "2011": [1, 62, 64, 65, 69, 79], "2013": 62, "2014": [1, 62, 64, 65, 71, 77, 79], "2016": [71, 77, 79], "2017": [76, 79], "2019": [72, 77, 79], "202": 67, "2020": [13, 34, 66, 79], "2021": [62, 67, 70, 78, 79], "2023": [0, 27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 64, 65, 77, 79], "2024": [62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "203": 67, "205": 70, "21": 68, "21596": 67, "21629826": 1, "222": 78, "224": 77, "226": 79, "228293": 78, "2305": [27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 79], "230946": 70, "231": [67, 69, 70, 71, 72, 74, 76, 78], "232583": 70, "233799": 70, "234603": 70, "235004": 70, "2374": 70, "24": 77, "241318": 78, "244": 77, "245": 77, "247": 77, "249": 77, "25": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "250": [64, 65, 68, 73, 77], "2516081684": 69, "256": 66, "26": [64, 65, 66, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78], "268124e": 78, "27": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "270900": 70, "27879": 79, "283697": 70, "296556": 70, "2_000": [71, 72, 74, 76], "2_i": 71, "2a2a2a": 68, "2i": [11, 68], "2nd": 67, "3": [2, 3, 4, 5, 13, 16, 17, 20, 21, 34, 59, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 78, 79], "30": [64, 65, 66, 68, 77, 79], "301674": 70, "308": 77, "31": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "3187": 71, "32": 66, "3200": 71, "3389": [1, 62, 79], "345082": 78, "345825": 78, "35": [66, 68], "350": 73, "35667497": 9, "379589": 78, "38": 78, "387": 77, "389923": 70, "398": 78, "4": [59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 79], "40": 76, "400": [65, 66, 73], "400254": 70, "4093": 69, "41": [64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "416410": 70, "42": [54, 73], "43": 73, "444049": 70, "45": 65, "458906": 70, "466356": 70, "47": 71, "471469": 70, "472": 77, "474077": 70, "48550": [27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62], "486802": 78, "495": 70, "49547": 79, "4_000": [67, 69, 70, 78], "4c72b0": [64, 70, 77, 78], "5": [0, 1, 2, 20, 21, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "50": [74, 75], "500": [71, 75], "500000": 70, "506923": 70, "510971": 70, "512": 66, "5161": 1, "518301": 70, "52": [13, 34, 79], "520583": 70, "520983": 78, "5298": 67, "530355": 70, "530717": 70, "536678": 70, "5377": 77, "54": 70, "540697": 70, "550": 73, "555": 78, "55a868": [64, 72, 78], "566859": 70, "574400": 78, "578": 78, "58": [13, 34, 79], "582766": [66, 75], "597464": 70, "5d1e51": 78, "6": [21, 64, 65, 66, 71, 72, 75, 76, 77, 78, 79], "60": [72, 74], "600": [65, 66, 73], "608986": 78, "6174": 69, "622459": 70, "624085": 70, "627284": 70, "631975": 70, "635": 77, "638038": 70, "64": [66, 71], "64919": [13, 34], "650": 73, "659764": 70, "66": 78, "660445": 70, "661825": 70, "663944": 70, "680811": 62, "68it": 74, "696196": 78, "698": 69, "698733": 70, "69it": 74, "7": [9, 66, 69, 72, 76, 77, 79], "70": 71, "701": 77, "731660": 70, "732927": 70, "750": 65, "7554": 79, "75it": 74, "766": 2, "776": 2, "7_7": [13, 34], "7f7f7f": 68, "8": [1, 11, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "80": 76, "800": [65, 66], "805189": 78, "806": 2, "828": 69, "834867": 70, "850": 73, "856558": 78, "865": [77, 78], "866991": 78, "87854": 70, "886": 69, "894": 78, "8992462158203": 62, "9": [11, 20, 21, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "90": 65, "900": 65, "903": 69, "910": 69, "9189386": 14, "931": 77, "938": 2, "942": 70, "944": 2, "950": 73, "952": 70, "964": 69, "965": 69, "9696": 79, "971741": 78, "97632": 67, "978": [13, 34], "98": 71, "99": 71, "999": 66, "A": [0, 1, 2, 3, 4, 5, 16, 17, 20, 21, 23, 27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 54, 57, 59, 60, 64, 65, 67, 69, 70, 71, 72, 73, 77, 78, 79], "And": 70, "As": [65, 71, 76], "At": [63, 64, 77], "Being": 70, "But": [65, 69, 70, 71, 77], "By": [2, 3, 4, 31, 37, 62, 69, 70], "For": [1, 17, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 51, 52, 55, 64, 65, 66, 70, 72, 73, 77, 78], "If": [1, 2, 3, 4, 16, 20, 21, 32, 33, 37, 56, 60, 64, 68, 70, 71, 73, 76, 78], "In": [1, 13, 20, 21, 34, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "It": [1, 16, 29, 56, 62, 64, 65, 66, 69, 70, 72, 73, 75, 76, 78], "NOT": 78, "OR": 77, "On": 70, "One": [65, 67, 69, 78], "Or": 77, "Such": [64, 66, 78], "That": 78, "The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 66, 70, 71, 72, 73, 74, 75, 76, 79], "Then": [73, 77], "There": [70, 71, 72, 76, 78], "These": [1, 62, 64, 67], "To": [64, 67, 69, 70, 71, 73, 77, 78], "With": [64, 73], "_": [21, 23, 32, 33, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 76, 77, 78], "_1": [70, 71], "__init__": [2, 3, 4, 7, 8, 16, 17], "_a": [35, 37, 38], "_b": [32, 33, 35], "_i": 64, "_j": [32, 33, 43, 44, 48, 49], "a_custom_hgf": 65, "aarhu": [73, 77], "aarhus_weather_df": 77, "ab": 72, "aberr": 69, "abil": 72, "abl": [62, 67, 70, 71, 73], "about": [1, 63, 64, 65, 66, 67, 68, 69, 70, 76, 77, 78], "abov": [60, 64, 65, 66, 69, 70, 73, 76, 77], "absenc": [72, 76], "abstract": [1, 66, 79], "ac": 11, "acceler": 69, "accept": [67, 69, 73], "access": [2, 3, 4, 65, 70], "accommod": 1, "accord": [0, 70, 73], "accordingli": [5, 64, 67, 69, 76, 77], "account": [1, 64, 65, 76], "accumul": 57, "accur": 72, "acetylcholin": 1, "achiev": 66, "across": [26, 64, 66, 67, 69, 76], "act": [67, 69, 70, 71], "action": [62, 70, 71, 78], "actionmodel": 70, "activ": [13, 34, 62, 70, 78, 79], "actual": [62, 65, 68, 76], "acycl": 65, "ad": [67, 68, 69, 73, 75, 76, 77], "adapt": [1, 64, 69, 70, 78], "adapt_diag": [67, 69, 70, 71, 72, 74, 76, 78], "add": [56, 62, 64, 73, 76, 77, 78], "add_group": [71, 78], "add_nod": [2, 3, 4, 62, 65, 66, 68, 73, 75, 76, 77], "addit": [2, 3, 4, 5, 6, 65, 66, 69, 70], "addition": [72, 78], "additionn": [22, 23, 24, 25, 26], "adjac": 65, "adjacencylist": [17, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 51, 52, 55, 56, 57, 65], "adjust": 78, "adopt": [67, 69], "advanc": 63, "advantag": [64, 65, 78], "aesara": [67, 69], "affect": [5, 6, 16, 69, 76, 79], "after": [0, 17, 20, 27, 28, 29, 30, 31, 57, 66, 67, 71, 72, 76, 77, 78], "afterward": [2, 3, 4, 16], "again": [68, 69], "against": 69, "agent": [1, 62, 63, 65, 66, 67, 69, 70, 71, 72, 74, 76, 77, 78], "agnost": 1, "aim": [62, 69], "air": 77, "aki": 79, "al": [0, 62, 64, 65, 67, 70, 71, 77, 78], "algorithm": [1, 62, 64, 67, 74], "align": [64, 66, 70], "alin": 79, "all": [0, 1, 2, 5, 16, 56, 59, 60, 67, 69, 70, 71, 72, 73, 74, 76, 77, 78], "alloc": 52, "allow": [1, 65, 69, 70, 73, 76, 77], "alon": 77, "along": [5, 24, 78], "alpha": [66, 68, 70, 72, 73, 75, 76, 77, 78], "alpha_": [11, 68, 73], "alpha_1": 11, "alpha_2": 11, "alreadi": [60, 65, 70, 71], "also": [16, 20, 36, 38, 42, 47, 60, 62, 64, 65, 67, 69, 70, 71, 73, 75, 76, 77, 78], "altern": [59, 65, 69, 70, 76, 78], "alternative\u00e6li": 71, "alwai": [52, 68, 71, 72, 76, 77, 78], "among": 70, "amount": 69, "an": [1, 2, 3, 4, 5, 6, 7, 8, 14, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 32, 33, 34, 41, 42, 43, 44, 45, 47, 53, 55, 57, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78], "analys": [1, 78], "analyt": 1, "andrew": 79, "ani": [0, 1, 27, 28, 30, 31, 60, 62, 64, 66, 67, 68, 69, 70, 71, 73], "anim": 66, "ann": 79, "anna": 79, "anoth": [64, 68, 69, 73, 75, 77, 78], "another_custom_hgf": 65, "answer": 72, "anymor": [37, 64, 66], "anyth": [64, 68], "api": [62, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78], "apont": 62, "appar": 64, "appear": [65, 73], "append": [20, 64, 66, 71, 72, 76, 77, 78], "appli": [17, 44, 57, 59, 65, 66, 68, 70, 71, 72, 76, 77, 78], "applic": [1, 63, 65, 66, 69, 70, 72], "apply_along_axi": 66, "approach": [64, 66, 67, 68, 71, 72], "appropri": 75, "approxim": [1, 31, 62, 64, 65, 77], "april": [69, 79], "ar": [0, 1, 2, 4, 5, 16, 17, 20, 29, 44, 56, 57, 60, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "ar1": [64, 76], "arang": [65, 66, 68, 70, 73, 76, 78], "arbitrari": [2, 65, 70, 73, 77], "arbitrarili": 62, "area": [20, 77], "arg": [7, 8, 27, 28, 29, 30, 31, 34, 35, 36, 39, 40, 41, 45, 46, 47, 52], "argument": [2, 3, 4, 65, 67, 69, 70, 73], "arm": [70, 71, 78], "around": [20, 21, 63, 64, 65, 69, 70, 78], "arrai": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 22, 23, 29, 37, 38, 46, 48, 50, 53, 54, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 76, 77, 78], "arrang": 77, "arriv": 64, "articl": [1, 79], "artifici": 73, "arviz": [2, 67, 69, 70, 71, 72, 74, 76, 77, 78], "arxiv": [27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 72, 79], "as_tensor_vari": [68, 76, 78], "asarrai": [68, 76], "ask": [1, 69], "aspect": 68, "assert": 65, "assess": [52, 67, 69, 78], "assign": [67, 68, 69, 70, 71, 72, 74, 76, 78], "associ": [2, 3, 4, 5, 6, 59, 62, 68, 70, 71, 72, 73, 76, 78, 79], "assum": [1, 30, 31, 34, 40, 41, 56, 64, 65, 67, 69, 70, 71, 72, 73, 75, 76, 77, 78], "assumpt": [75, 78], "astyp": [73, 76], "atmospher": 77, "attribut": [2, 3, 4, 16, 17, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 55, 56, 57, 62, 66, 68, 71, 72, 75, 76], "au": 73, "aug": [64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "august": [69, 79], "author": [1, 73], "auto": [67, 68, 69, 70, 71, 72, 74, 76, 78], "autoconnect": [37, 64, 73], "autoconnection_strength": 73, "autocorrel": 73, "autom": 77, "automat": [65, 67, 69, 71], "autoregress": 37, "avail": [0, 62, 77], "averag": [67, 77], "avoid": 72, "awai": 66, "ax": [18, 20, 21, 64, 65, 66, 68, 72, 73, 75, 76, 78], "axi": [5, 64, 66, 71], "axvlin": 76, "az": [2, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78], "b": [32, 33, 35, 37, 62, 66, 67, 73, 76], "back": [37, 64, 71], "backgroud": 20, "backslash": 1, "backward": 65, "bad": 71, "badg": 63, "bandit": [70, 71, 78], "bank": 69, "base": [1, 54, 59, 64, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78], "batch": [5, 57, 76], "bay": 1, "bayesian": [1, 62, 63, 64, 67, 68, 69, 70, 78, 79], "becaus": [44, 64, 65, 67, 68, 69, 73, 76, 77], "becom": 64, "been": [59, 64, 65, 66, 68, 69, 70, 71, 77, 78], "befor": [0, 20, 33, 59, 64, 65, 66, 69, 70, 71, 72, 76, 77], "beforehand": [32, 69, 78], "begin": [9, 13, 63, 64, 66, 70, 73, 78], "behav": [1, 67, 69, 73, 77], "behavior": [1, 78, 79], "behaviour": [5, 6, 62, 64, 67, 69, 70, 71, 73, 74, 76], "behind": [63, 64, 77], "being": [64, 65, 67, 71, 73, 74, 78], "belief": [0, 6, 17, 20, 54, 57, 62, 65, 66, 69, 70, 71, 72, 73, 77], "beliefs_propag": [17, 66, 76], "belong": [60, 66], "below": [0, 64, 67, 68, 70, 73, 76, 77, 78], "bernoulli": [9, 78], "best": [1, 53, 69, 73, 74, 78], "beta": [76, 78], "better": [31, 69, 70, 71, 72, 77], "between": [0, 1, 5, 6, 11, 16, 29, 30, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 43, 45, 56, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 78], "beyond": 64, "bia": [71, 78, 79], "biased_random": 78, "biased_random_idata": 78, "biased_random_model": 78, "bibtex": 1, "big": 64, "binari": [2, 3, 4, 5, 6, 9, 10, 16, 21, 22, 23, 24, 29, 58, 59, 62, 64, 66, 68, 69, 71, 72, 76], "binary_input_idx": 58, "binary_input_upd": 29, "binary_paramet": [58, 68], "binary_precis": [16, 21, 67], "binary_softmax": [70, 77, 78], "binary_softmax_inverse_temperatur": [62, 71, 72], "binary_surpris": [70, 76], "bind": [62, 65], "binomi": [65, 70, 71, 72, 76], "biolog": 62, "bit": [69, 71], "bivariate_hgf": 66, "bla": [67, 68, 69, 70, 71, 72, 74, 76, 77, 78], "blackjax": 70, "blank": 68, "block": [64, 67, 69, 76], "blog": 68, "blue": [70, 73], "bollmann": 62, "bool": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 41, 42, 45, 50, 53, 54, 57], "bool_": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 22, 23, 50, 53, 54, 57], "boolean": [29, 68, 69, 78], "boom": 79, "both": [1, 37, 62, 64, 65, 68, 70, 71, 73, 75, 76, 77], "bottom": [62, 64, 77], "brain": 1, "branch": [52, 60, 62, 70, 76], "branch_list": 60, "break": 77, "briefli": 78, "broad": 68, "broadcast": [5, 71], "broader": 66, "brodersen": [1, 62, 79], "broke": 69, "brown": [76, 79], "bucklei": 79, "build": [63, 64, 67, 69, 73, 77], "built": [65, 67, 69, 77, 78], "burst": 65, "c": [1, 13, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79], "c44e52": [64, 66, 70, 72, 78], "ca": 73, "calcul": [71, 73], "call": [0, 29, 64, 66, 67, 69, 70, 71, 76, 77, 78], "callabl": [0, 2, 3, 4, 5, 6, 34, 56, 57, 70], "cambridg": 79, "can": [0, 1, 2, 3, 4, 5, 6, 16, 32, 44, 56, 57, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "candid": [50, 52, 53, 54, 76], "cannot": [16, 65, 66, 76], "capabl": [64, 73], "capitalis": 64, "captur": [64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "cardiac": 69, "carlo": [1, 67, 69, 78], "carri": 78, "carryov": 57, "case": [9, 13, 64, 66, 68, 69, 70, 71, 73, 74, 76, 78], "categor": [16, 58, 59, 66, 71, 76], "categori": [10, 66, 68, 76], "categorical_hgf": 68, "categorical_idata": 68, "categorical_surpris": 68, "caus": 31, "cbo9781139087759": 79, "cdot": 73, "cedric": 79, "cell": [64, 69, 77], "censor": 72, "censored_volatil": 72, "centr": [68, 69], "central": [64, 65, 69, 73, 78], "certain": [1, 64, 65], "chain": [1, 2, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78], "cham": 79, "chanc": 76, "chance_conting": 76, "chang": [64, 65, 68, 69, 70, 71, 72, 73, 75, 76, 77, 78], "channel": 74, "chaotic": 76, "check": [69, 71], "chf": [20, 21], "child": [0, 20, 21, 32, 33, 43, 52, 64, 65, 66, 73, 77], "children": [0, 16, 17, 20, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 51, 52, 55, 56, 59, 60, 62, 64, 65, 73], "children_idx": 56, "children_input": 20, "choic": 65, "cholinerg": 79, "choos": [66, 69, 76], "chose": [23, 52, 66, 70, 76], "chosen": [59, 76], "christoph": [1, 79], "chunck": 73, "ci": [20, 21], "circl": 70, "circumst": 31, "citi": 77, "clarifi": 71, "clariti": [69, 78], "class": [0, 2, 3, 4, 7, 8, 16, 17, 19, 20, 21, 34, 65, 66, 67, 68, 69, 70, 71, 76, 78], "classic": [69, 78], "cldtot": 77, "clear": [70, 77], "clearli": [65, 70], "clock": 73, "close": [70, 72], "closer": 73, "cloud": 77, "cloudi": 77, "cluster": [50, 51, 52, 53, 54, 55], "cm": 75, "cmap": [68, 72], "co": 66, "code": [17, 63, 64, 65, 66, 70, 71, 73, 77, 78], "coeffici": [64, 72], "cognit": [62, 74, 79], "colab": [63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "collect": [0, 68], "colleg": 11, "collin": [72, 79], "color": [20, 64, 66, 68, 70, 72, 73, 75, 76, 77, 78], "column": 57, "com": [62, 77], "combin": [1, 37, 64, 65], "come": [1, 64, 66, 70, 71, 73, 77], "command": 78, "common": [65, 68], "commonli": [70, 73], "commun": [13, 64], "compar": [1, 62, 69, 71, 78], "compare_df": 78, "comparison": [4, 63, 72], "compat": [2, 65, 67, 68, 69, 70, 71], "complet": [64, 77, 78], "complex": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 22, 23, 50, 53, 54, 57, 63, 64, 65, 70, 77], "complexifi": 64, "compli": 70, "complic": 1, "compon": [64, 65, 69, 71, 76], "compromis": 65, "comput": [0, 1, 2, 3, 4, 5, 6, 10, 11, 13, 24, 25, 32, 33, 34, 37, 38, 40, 41, 44, 46, 48, 49, 59, 62, 64, 65, 66, 68, 70, 74, 76, 77, 78, 79], "computation": 1, "concaten": 76, "conceiv": 62, "concentr": 11, "concept": [64, 71, 77], "concern": 64, "concis": 77, "cond": 73, "condit": 78, "connect": [1, 6, 16, 64, 65, 70, 73, 77], "consequ": [64, 65], "consid": [59, 64, 65, 67, 69, 70, 73, 76, 77, 78], "consider": 1, "consist": [17, 64, 65, 66, 68, 70, 72, 73, 76, 78], "constand": 73, "constant": [14, 64, 66, 73], "constitud": 64, "constitut": [73, 77], "constrained_layout": [64, 65, 66, 67, 69, 70, 71, 73, 74, 76, 78], "contain": [0, 1, 2, 3, 4, 16, 18, 22, 23, 37, 38, 52, 57, 62, 64, 65, 71, 74, 77], "context": [2, 4, 57, 66, 67, 69, 70, 76, 77, 78], "contextu": 1, "contin": 3, "conting": [65, 68, 70, 76, 78], "contingencylist": 65, "continu": [1, 2, 3, 4, 5, 6, 16, 20, 21, 25, 27, 28, 59, 62, 64, 66, 67, 68, 70, 71, 73, 74, 75, 76, 77, 78], "continuous_input_prediction_error": [43, 44], "continuous_input_upd": 29, "continuous_input_value_prediction_error": [32, 33, 42, 44], "continuous_input_volatility_prediction_error": [32, 43], "continuous_node_prediction_error": [48, 49], "continuous_node_value_prediction_error": [32, 33, 47, 49], "continuous_node_volatility_prediction_error": [32, 47, 48], "continuous_precis": 16, "contrari": 65, "control": [1, 64, 65, 71, 77, 78], "conveni": [64, 70], "converg": [71, 72, 74, 76], "convert": [20, 21, 64, 68, 74, 76, 78], "core": [2, 17, 62, 65, 67, 69, 70, 71, 72, 74, 76, 78], "correct": [66, 79], "correctli": [19, 72], "correl": [0, 18, 72], "correspond": [16, 20, 21, 66, 67, 70, 71, 72, 73, 76, 77], "cost": 76, "could": [24, 25, 26, 65, 68, 69, 70, 73, 76, 78], "count": [13, 66, 71], "counterpart": [65, 67], "coupl": [0, 1, 5, 6, 16, 20, 21, 29, 32, 33, 36, 37, 38, 42, 47, 56, 59, 62, 67, 75, 76, 78], "coupling_fn": [56, 65, 73], "coupling_strength": 56, "cours": [63, 77], "covari": 66, "cover": [64, 77, 78], "cpython": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "creat": [0, 2, 3, 4, 16, 20, 21, 51, 52, 62, 63, 66, 71, 72, 73, 74, 76, 77, 78], "create_belief_propagation_fn": 76, "creation": [65, 70, 77, 78], "crisi": 69, "critic": [1, 65, 70], "cross": [4, 71, 78, 79], "crucial": 71, "csv": 77, "cumsum": [64, 73, 77], "currenc": 69, "current": [0, 1, 20, 21, 29, 35, 36, 37, 38, 40, 41, 42, 43, 45, 56, 62, 64, 65, 66, 70, 77, 79], "current_belief": 78, "curv": 20, "custom": [16, 67, 68, 71, 76, 78], "custom_op": [68, 76], "customdist": [71, 78], "customis": 63, "customop": [68, 76], "d": [1, 11, 62, 66, 79], "dai": 77, "dark": 77, "dash": 64, "data": [0, 1, 2, 3, 4, 5, 6, 20, 21, 24, 25, 26, 57, 61, 62, 64, 66, 68, 70, 71, 72, 73, 74, 75, 77, 78, 79], "data2": 66, "databas": 77, "datafram": 61, "dataset": [70, 74, 77, 78], "daunizeau": [1, 62, 79], "de": 79, "deadlock": 78, "deal": [1, 76], "debug": 77, "decid": [64, 69, 70, 78], "decis": [1, 6, 22, 23, 62, 67, 68, 71, 72, 78], "declar": [65, 71, 73], "decreas": 76, "dedic": 69, "deeper": 62, "def": [65, 66, 68, 70, 71, 73, 76, 78], "default": [2, 3, 4, 5, 6, 16, 20, 21, 24, 25, 33, 57, 59, 62, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 76, 78], "defin": [12, 16, 17, 20, 57, 62, 64, 65, 66, 67, 68, 69, 70, 71, 73, 77, 78], "definit": [59, 70], "degre": [66, 67, 69, 73], "deliv": 77, "delta": [66, 73], "delta_j": [32, 33, 43, 48, 49], "demonstr": [1, 62, 66, 67, 70, 72, 74, 75], "denmark": 73, "denot": 64, "densiti": [0, 2, 11, 12, 13, 67, 69, 71, 75, 77], "depend": [5, 6, 32, 35, 64, 67, 69, 70, 71, 73, 77], "depict": [21, 64, 78], "deriv": [1, 62, 64, 66, 73], "describ": [0, 62, 63, 64, 65, 66, 67, 70, 77], "descript": [1, 64, 77], "design": [63, 65, 68, 70, 71, 76, 77, 78], "despin": [64, 65, 66, 68, 71, 72, 73, 75, 76, 77, 78], "detail": [64, 72, 76, 77], "detect": 74, "determin": 1, "determinist": [1, 71, 78], "develop": [62, 65, 78], "deviat": [20, 21, 50, 53, 54, 71, 74], "df": [66, 75], "diagnost": [71, 72, 74, 76], "dict": [16, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 55, 56, 57, 58], "dictionari": [16, 57, 62, 65, 67, 69, 77], "did": [69, 71], "differ": [1, 2, 3, 4, 5, 16, 27, 28, 30, 31, 56, 64, 65, 66, 67, 69, 70, 71, 73, 76, 77], "differenti": [66, 67, 69, 73], "difficult": [1, 66, 77], "diffus": [62, 65], "dimens": [3, 5, 6, 64, 65, 71], "dimension": [66, 76], "dir": 11, "direct": [64, 65], "directli": [29, 65, 67, 69, 70, 71, 73, 76], "dirichlet": [11, 29, 66, 68], "dirichlet_nod": 39, "disambigu": 65, "disappear": 73, "discrep": [67, 69], "discret": [1, 68, 78], "discuss": [1, 64, 76, 78], "displai": [66, 71, 73, 78], "dissoci": [0, 65], "dist": 72, "dist_mean": 75, "dist_std": 75, "distanc": 66, "distant": 66, "distinguish": [71, 77], "distribut": [7, 8, 9, 10, 11, 13, 14, 29, 34, 54, 62, 64, 65, 67, 68, 69, 70, 72, 74, 75, 77, 78], "dive": [64, 65], "diverg": [0, 11, 68, 71, 72, 76, 78], "dk": 73, "do": [62, 65, 67, 68, 69, 70, 71, 73, 77, 78], "documatt": 65, "document": [62, 68, 77, 78], "doe": [66, 68, 70, 77, 78], "doesn": 73, "doi": [1, 13, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 79], "dollar": 69, "domain": [69, 78], "don": [64, 77], "done": 65, "dopamin": 1, "dopaminerg": 79, "dot": 69, "down": [0, 62, 64, 66, 77], "download": [62, 74, 77], "drag": 69, "drai": 67, "draw": [1, 20, 21, 67, 69, 70, 71, 72, 74, 76, 78], "drift": [5, 6, 16, 37, 65, 73, 77], "dse": 78, "dtype": [9, 14, 54, 67, 68, 69, 70, 76, 77, 78], "due": 65, "duplic": [71, 72], "dure": [0, 17, 38, 54, 62, 65, 69, 71, 72, 73, 79], "dx": 79, "dynam": [17, 62, 70, 73, 74, 77, 78], "e": [1, 2, 5, 6, 16, 20, 23, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 56, 60, 62, 64, 65, 67, 69, 70, 71, 72, 74, 76, 77, 78, 79], "e49547": 79, "each": [2, 3, 4, 17, 20, 21, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 50, 51, 52, 54, 55, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78], "easili": [65, 68, 70, 77, 78], "ecg": 74, "ecg_peak": 74, "ecosystem": 62, "edg": [17, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 51, 52, 55, 56, 57, 59, 60, 62], "edgecolor": [66, 70, 72, 76, 78], "editor": 79, "ef": 66, "effect": [32, 33, 38, 44, 69, 72, 79], "effective_precis": 38, "effici": [1, 64], "ehgf": [31, 32, 59], "either": [52, 65, 70, 71, 73, 77], "ekaterina": [1, 79], "elaps": [30, 31, 33, 64, 76], "electrocardiographi": 74, "electron": 1, "element": 73, "elicit": 14, "elif": 79, "ellicit": 9, "elpd": 71, "elpd_diff": 78, "elpd_loo": [71, 78], "els": [72, 76], "emb": [67, 69], "embed": [0, 67, 69, 71], "empir": 1, "empti": 17, "en": [7, 8], "enabl": 1, "encapsul": [68, 76], "encod": [1, 62, 64, 68, 70, 72, 77], "end": [9, 13, 64, 66, 70, 73], "endogen": 38, "energi": [1, 79], "enlarg": 66, "enno": 79, "enough": 62, "ensur": [59, 71, 72, 76, 77], "enter": 64, "entir": 65, "entri": 16, "enumer": [64, 66, 78], "environ": [1, 64, 65, 70, 71, 77, 78], "environment": [1, 65, 72], "epsilon_j": 44, "eq": 11, "equal": [1, 3, 31, 73], "equat": [1, 11, 64, 67, 68, 69, 70, 73, 76, 77], "equival": [44, 66, 70], "erdem": 79, "eric": 79, "error": [1, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52, 59, 62, 65, 66, 69, 73, 74, 77, 78, 79], "especi": [64, 71, 76, 78], "ess": 72, "ess_bulk": [2, 70, 78], "ess_tail": [2, 70, 78], "estim": [0, 1, 2, 20, 21, 64, 66, 70, 71, 72, 76, 77, 78], "et": [0, 62, 64, 65, 67, 70, 71, 77, 78], "eta": 66, "eta0": [10, 16, 21, 67], "eta1": [10, 16, 21, 67], "etc": 65, "euro": 69, "european": 79, "evalu": [13, 64, 68, 70, 76, 79], "even": [1, 64, 73], "event": [1, 69, 75], "everi": [63, 64, 65, 68, 71, 76, 77, 78], "everyth": 70, "evid": [6, 66, 78], "evidenc": 66, "evolut": [64, 67, 69, 70, 77, 78], "evolv": [64, 76], "exact": [64, 70, 77], "exactli": [64, 68, 70, 71], "exampl": [1, 2, 9, 14, 20, 21, 62, 63, 64, 65, 67, 68, 69, 70, 71, 73, 77, 78], "excel": 70, "except": [32, 33, 43, 67, 69, 70, 78], "exchang": 69, "exclud": [60, 76], "exclus": 60, "execut": [0, 65], "exert": [64, 65], "exhibit": [67, 69], "exist": [50, 52, 53, 54, 55, 65], "exogen": 38, "exot": 68, "exp": [38, 64, 66, 71, 76, 77], "expect": [0, 5, 6, 9, 10, 14, 16, 20, 21, 23, 29, 31, 32, 33, 35, 36, 37, 38, 43, 53, 64, 65, 66, 67, 69, 70, 71, 73, 74, 75, 76, 77, 78], "expected_mean": [9, 10, 14, 37, 50, 53, 54, 64, 65, 70, 71, 72, 76, 78], "expected_precis": [10, 14, 38, 65, 66, 75], "expected_sigma": [50, 53, 54], "experi": [70, 78], "experiment": [1, 63, 70, 71, 72, 76, 78], "explain": [71, 77, 78], "explan": 78, "explicit": 70, "explicitli": [1, 65, 71, 74], "explor": 78, "exponenti": [7, 8, 13, 64, 66, 77], "exponential_famili": [7, 8], "export": [61, 70], "express": [1, 65, 66, 68, 69, 73, 76, 77], "extend": [65, 66, 67, 69, 71], "extens": [1, 63, 78], "extract": [67, 69, 74, 75, 78], "extrem": [1, 69, 76], "f": [37, 62, 64, 65, 73, 77], "f_1": 65, "f_i": 65, "f_n": 65, "f_x": 66, "facilit": [62, 65], "fact": [73, 76], "fail": 31, "fairli": 72, "fall": 69, "fals": [20, 21, 65, 73, 78], "famili": [7, 8, 13, 34, 64, 66, 77], "familiar": 70, "far": [65, 69, 70, 77, 78], "fashion": 1, "fast": [73, 76, 78], "feasibl": 62, "featur": [20, 21, 65, 71, 74, 77], "februari": 79, "fed": 71, "feed": [20, 21, 76], "fewer": 75, "field": [1, 65, 70, 78], "fig": [66, 68, 72, 73, 75], "figsiz": [20, 21, 64, 65, 66, 68, 70, 72, 73, 75, 76, 77, 78], "figur": [20, 21, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 76, 77, 78], "fil": 11, "file": 1, "fill": 72, "fill_between": [68, 75, 76], "filter": [0, 1, 5, 6, 13, 16, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 65, 70, 71, 72, 75, 76, 78, 79], "final": [1, 77, 78], "find": [53, 62, 63, 65, 69, 70, 77], "finit": [10, 27, 40], "fir": 74, "firebrick": 76, "first": [0, 1, 3, 5, 6, 10, 16, 25, 30, 31, 62, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 76, 77, 78], "first_level_binary_surpris": [67, 78], "first_level_gaussian_surpris": [69, 74, 77], "firt": 23, "fit": [2, 3, 4, 5, 6, 24, 25, 26, 70, 71, 72, 73, 76, 77], "fix": [2, 34, 44, 64, 70, 71, 73, 77, 78], "flatten": 71, "flexibl": [1, 62, 68, 77, 78], "flexibli": 66, "flight": 69, "float": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 45, 50, 53, 54, 56, 57, 71, 76], "float32": [9, 14, 67, 69, 70, 77, 78], "float64": [68, 76], "floor": 69, "fluctuat": 64, "flux": 77, "fn": 78, "fnhum": [1, 62, 79], "focu": 62, "focus": [65, 76], "folder": 62, "follow": [1, 11, 59, 62, 64, 65, 66, 67, 68, 69, 73, 76, 77, 78], "forc": 76, "fork": [67, 78], "form": [1, 64, 65, 66, 71, 73, 77], "formal": 64, "format": 1, "formul": 1, "forward": [62, 64, 67, 69, 71, 72, 76, 77, 78], "found": [1, 64, 65, 67, 69, 77], "foundat": [1, 62, 77, 79], "four": [1, 65, 76, 78], "fpsyt": 62, "frac": [11, 13, 14, 20, 23, 32, 33, 34, 35, 37, 38, 43, 44, 49, 64, 66, 68, 71, 76], "fraction": 77, "frame": [61, 64, 66, 74, 77], "framework": [1, 62, 64, 65, 66], "franc": 69, "free": [1, 62, 67, 70, 72], "freedom": 66, "friston": [1, 62, 79], "from": [0, 1, 2, 5, 6, 9, 11, 13, 14, 20, 21, 22, 23, 32, 33, 43, 44, 45, 59, 60, 62, 64, 65, 67, 68, 69, 71, 73, 74, 75, 77, 78], "frontier": [1, 62, 79], "frontiersin": [1, 79], "fry": 54, "fr\u00e4ssle": 62, "full": [1, 6, 62, 66], "fulli": [64, 77], "func": 66, "funcanim": 66, "function": [1, 2, 3, 4, 5, 6, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 29, 44, 56, 57, 59, 60, 62, 64, 66, 67, 68, 69, 71, 72, 74, 76, 77, 78], "fundament": 64, "further": [64, 65, 71, 75, 76], "fusion": 70, "futur": [0, 64, 79], "g": [1, 5, 6, 32, 33, 62, 64, 70, 72, 73, 78], "g_": [66, 73], "gabri": 79, "gamma": [11, 13, 66, 68], "gamma_a": 38, "gamma_j": [32, 33, 44], "gaussian": [0, 1, 2, 5, 6, 12, 13, 14, 16, 20, 25, 26, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 65, 70, 71, 72, 73, 74, 75, 76, 78, 79], "gaussian_predictive_distribut": 66, "gcc": [64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "ge": 79, "gelman": 79, "gener": [1, 27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 47, 48, 49, 58, 59, 65, 66, 67, 68, 70, 71, 72, 73, 76, 78, 79], "generalis": [62, 63, 68, 70], "generalised_filt": 66, "get": [35, 65, 66, 69, 70, 71, 72, 75, 76, 77, 78], "get_legend_handles_label": [64, 78], "get_network": [66, 76], "get_update_sequ": 65, "ghgf": [62, 77, 78], "gif": 66, "git": 62, "github": [11, 62], "githubusercont": 77, "give": [67, 69, 70, 73, 76, 78], "given": [0, 6, 9, 11, 14, 20, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 37, 38, 43, 44, 48, 49, 53, 54, 60, 62, 64, 65, 66, 67, 68, 69, 70, 72, 73, 76, 77, 78], "global": [1, 69], "go": [64, 67, 69, 70, 71, 76, 77], "goe": 68, "good": [70, 71, 72, 76], "googl": [63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "grad": [68, 76], "gradient": [3, 68, 76], "grai": 76, "grandpar": 65, "graph": [65, 68, 76], "graphic": 62, "graphviz": [19, 67, 69], "greater": 65, "greatli": 66, "greec": 69, "green": [72, 73], "grei": [20, 64, 66, 69, 72, 75], "grid": [64, 66, 72, 73, 75, 77, 78], "ground": 77, "group": [63, 64, 72, 78], "grow": 68, "grw": [64, 77], "grw_1": 77, "grw_2": 77, "guid": 64, "gz": [68, 76], "h": [1, 27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 64, 66, 78, 79], "ha": [1, 17, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 51, 52, 55, 56, 64, 65, 66, 67, 68, 69, 70, 71, 76, 77, 78], "had": [70, 71, 78], "halfnorm": 71, "hamiltonian": [67, 69, 78], "hand": [33, 63, 70], "handi": 73, "handl": [64, 66, 68, 70, 71, 78], "happen": [64, 70, 73, 77], "harrison": [62, 79], "hat": [9, 14, 20, 23, 32, 33, 35, 37, 38, 43, 44, 48, 49, 64, 70, 71, 73], "have": [1, 29, 44, 59, 64, 65, 67, 68, 69, 70, 71, 73, 76, 77, 78], "hdi_3": [2, 70, 78], "hdi_97": [2, 70, 78], "he": 70, "head": [70, 77], "heart": [0, 64, 65], "heartbeat": 74, "heatmap": 18, "heavi": 65, "hedvig": 79, "height": [20, 21, 77], "heinzl": 62, "help": [69, 71, 77], "her": 70, "here": [1, 2, 22, 23, 24, 25, 26, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78], "hgf": [0, 1, 2, 3, 4, 5, 6, 18, 20, 21, 22, 23, 24, 25, 26, 29, 30, 58, 62, 64, 65, 66, 68, 71, 72, 73, 74, 75, 76, 77], "hgf_loglik": [67, 69, 70, 72, 74, 78], "hgf_logp_op": [2, 67, 69, 70, 71, 72, 74, 78], "hgf_logp_op_pointwis": [71, 78], "hgf_mcmc": [67, 69], "hgfdistribut": [67, 68, 69, 70, 71, 72, 74, 77, 78], "hgfpointwis": [71, 78], "hhgf_loglik": 2, "hidden": [1, 64, 76, 77, 78], "hide": 76, "hierarch": [0, 1, 5, 6, 13, 16, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 65, 70, 72, 74, 75, 76, 78, 79], "hierarchi": [0, 1, 2, 3, 4, 16, 62, 64, 65, 67, 69, 77], "hierarchicalgaussianfilt": 70, "high": [75, 76], "high_nois": 73, "high_prob": 76, "higher": [64, 67, 69, 71, 72, 73, 77, 78], "highest": 1, "highli": [1, 69, 78], "hist": 76, "hold": [64, 70], "home": 1, "hood": 66, "hostedtoolcach": [67, 69, 70, 71, 72, 74, 76, 78], "hour": [63, 77], "hourli": [77, 79], "how": [63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "howev": [1, 64, 65, 66, 68, 69, 70, 71, 73, 74, 78], "html": 11, "http": [1, 7, 8, 11, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 72, 77, 79], "human": [1, 62, 79], "hyper": 71, "hyperparamet": [13, 34, 66], "hyperprior": [71, 72], "i": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 20, 21, 23, 24, 25, 29, 30, 31, 32, 33, 34, 36, 37, 38, 42, 43, 44, 45, 47, 48, 49, 52, 56, 57, 59, 60, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79], "iain": 79, "idata": [2, 74, 76, 78], "idata_kwarg": 78, "idea": [64, 65, 69, 70, 72], "ident": 73, "identifi": 72, "idex": 58, "idx": [57, 68, 72], "iglesia": [1, 62, 67, 70, 78, 79], "ignor": [5, 6], "ii": 1, "iii": 1, "ilabcod": [62, 77], "illustr": [1, 64, 65, 68, 69, 70, 73, 74, 76, 77, 78], "iloc": 75, "imagin": 73, "impact": 76, "implement": [0, 16, 34, 37, 62, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "impli": [29, 58, 64, 66, 68, 69, 76, 77], "implicitli": 70, "import": [2, 9, 14, 20, 21, 62, 64, 65, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "import_dataset1": 74, "importantli": [64, 65], "imposs": 59, "improv": [59, 78], "imshow": 68, "includ": [5, 6, 16, 57, 64, 65, 66, 67, 69, 70, 71, 73, 74], "incom": [64, 77], "incompat": 78, "incorpor": [16, 36, 42, 47, 66, 70, 71], "incorrect": 73, "increas": [66, 67, 69, 71, 72, 73, 76, 77, 78], "increment": [57, 64], "inde": 71, "independ": [66, 72], "index": [17, 20, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 51, 52, 55, 56, 57, 58, 60, 62, 65], "indic": [56, 64, 69, 70, 71, 72, 73, 74, 76, 78], "individu": [1, 62, 72, 79], "inf": [5, 16, 21, 24, 25, 26, 67, 68, 70, 71, 76], "infer": [0, 1, 5, 6, 13, 34, 62, 63, 64, 65, 69, 70, 75, 78, 79], "inferred_paramet": 72, "infinit": [28, 41, 68, 76], "influenc": [0, 1, 37, 64, 65, 66, 67, 69, 71, 73, 76, 77, 78], "inform": [1, 13, 17, 57, 65, 66, 67, 68, 69, 71, 73, 76, 77, 78], "infti": 69, "ingredi": 70, "inherit": [5, 6, 62, 64, 77], "initi": [2, 3, 4, 16, 17, 65, 66, 67, 69, 70, 71, 72, 74, 76, 77, 78], "initial_belief": 78, "initial_mean": [16, 20, 21, 67, 69, 70, 71, 72, 74, 78], "initial_precis": [16, 20, 21, 67, 69, 70, 74, 78], "initv": 72, "inplac": 68, "input": [1, 2, 3, 4, 5, 6, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 39, 47, 51, 52, 53, 55, 57, 58, 59, 60, 62, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78], "input_convers": 74, "input_data": [2, 3, 4, 5, 6, 20, 21, 57, 62, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "input_nodes_idx": 39, "input_precis": [5, 6, 65, 66, 73, 75], "input_typ": 74, "insert": 64, "insid": [70, 73, 76, 78], "inspir": [62, 64, 65], "instal": [19, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "instanc": [0, 6, 18, 19, 20, 21, 22, 23, 24, 25, 26, 58, 59, 62, 65, 67, 69, 70, 71, 77], "instanti": [68, 76], "instead": [2, 3, 4, 32, 33, 43, 69, 76, 77, 78], "instruct": 65, "instrument": 73, "int": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 66, 73], "int32": 78, "integ": [2, 3, 4, 65], "integr": [1, 66, 78], "inter": 1, "interact": [63, 64, 78], "intercept": 64, "interest": [64, 71, 72, 76, 77], "interestingli": 66, "interfac": [62, 70], "interleav": 0, "intern": [34, 63, 68, 70, 71, 73, 77, 79], "interpol": 68, "interpret": 1, "interv": [29, 35, 36, 37, 38, 40, 41, 42, 43, 45, 66, 73, 74], "interven": 69, "intervent": 69, "introduc": [1, 64, 68, 77, 78], "introduct": 62, "introductori": 77, "intuit": [1, 63, 70], "invers": [1, 5, 6, 23, 62, 64, 70, 71, 72, 76], "inverse_temperatur": [71, 72], "invert": [1, 77, 78], "involv": 1, "io": 11, "ion": 11, "ipykernel_2218": 65, "ipykernel_3142": 69, "ipython": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "ipywidget": [67, 69, 70, 71, 72, 74, 76, 78], "irrespect": 54, "isbn": 1, "isnan": [68, 76], "issn": 1, "item": [2, 3, 4], "iter": [64, 67, 69, 70, 71, 72, 74, 75, 76, 78], "ith": 57, "its": [1, 35, 37, 45, 52, 56, 62, 64, 65, 67, 69, 70, 71, 73, 74, 77, 78], "itself": [64, 65, 67, 73, 77], "iv": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "j": [1, 32, 33, 38, 43, 44, 49, 62, 79], "jacobian": [68, 76], "jan": 79, "jax": [0, 5, 17, 21, 22, 23, 54, 57, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "jaxlib": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "jean": [1, 79], "jit": [62, 68, 73, 76], "jitted_custom_op_jax": [68, 76], "jitted_vjp_custom_op_jax": [68, 76], "jitter": [67, 69, 70, 71, 72, 74, 76, 78], "jl": 70, "jnp": [16, 21, 24, 25, 26, 66, 67, 68, 69, 70, 71, 72, 73, 76, 77], "job": [67, 69, 70, 71, 72, 74, 76, 78], "joint": [65, 66], "jonah": 79, "journal": [1, 79], "julia": [62, 65, 70], "jump": 64, "jupyt": [67, 69, 70, 71, 72, 74, 76, 78], "just": [70, 71, 72, 73, 78], "k": [1, 11, 22, 23, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 64, 65, 66, 68, 70, 71, 72, 73, 76, 77, 78], "kai": [1, 79], "kalman": [64, 70], "kappa": 64, "kappa_1": 64, "kappa_j": [32, 33, 38, 43], "karl": [1, 79], "kasper": [62, 79], "kdeplot": 72, "keep": [73, 77], "kei": [1, 54, 64, 65, 78], "keyword": [1, 65, 70], "kg": 77, "kind": [32, 56, 62, 64, 65, 66, 68, 69, 71, 73, 75, 76, 77, 78], "kl": [11, 68], "kl_diverg": 68, "klaa": [1, 79], "knew": [67, 69], "know": [64, 70, 73, 78], "knowledg": 77, "known": 73, "kora": 73, "kullback": [11, 68], "kwarg": [7, 8], "l": [13, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 64, 78, 79], "l_a": 76, "l_b": 76, "label": [64, 65, 66, 68, 70, 71, 75, 76, 77, 78], "laew": 1, "lambda": [64, 71, 73], "lambda_1": 64, "lambda_2": [64, 73], "lambda_2x_2": 73, "lambda_3": [64, 73], "lambda_a": [37, 64, 73], "land": 77, "lanillo": 79, "lar": 79, "larg": [65, 66, 77], "larger": [65, 66, 72], "last": [57, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "latent": 64, "later": [38, 62, 64, 71, 78], "latter": 76, "lax": [17, 57, 73, 76], "layer": [5, 64, 69, 77, 78], "layout": [65, 69], "lead": [64, 69, 78], "learn": [1, 62, 64, 68, 72, 73, 75, 77, 79], "learning_r": 78, "learnt": 73, "least": [0, 71, 72, 74, 76], "leav": [0, 64, 71, 77, 78, 79], "lee": [71, 79], "left": [11, 13, 32, 33, 37, 38, 44, 49, 64, 66, 68, 70, 77], "leftarrow": [34, 66], "legend": [64, 65, 66, 70, 71, 73, 75, 76, 77, 78], "legrand": [27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 73, 79], "leibler": [11, 68], "len": [68, 70, 76, 78], "length": [2, 3, 4, 17, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 51, 52, 55, 57, 70, 71], "leq": 73, "less": [16, 65, 70], "let": [64, 65, 66, 68, 70, 73, 77, 78], "level": [0, 1, 2, 5, 6, 16, 20, 21, 23, 25, 62, 64, 65, 66, 70, 72, 73, 74, 75, 76, 77], "leverag": 71, "li": 64, "lib": [67, 69, 70, 71, 72, 74, 76, 78], "librari": [0, 65, 67, 69, 78], "like": [54, 67, 68, 69, 70, 71, 73, 78], "likelihood": [50, 52, 69, 70, 71, 78], "lilian": 79, "limit": [1, 31, 64, 66, 70, 73, 76, 78], "line": [64, 65, 69, 70, 73], "linear": [32, 33, 56], "linear_hgf": 73, "linearli": 66, "linestyl": [64, 65, 66, 70, 72, 73, 75, 78], "linewidth": [64, 66, 68, 77, 78], "link": [1, 56, 62, 65, 71], "linspac": [71, 72, 75], "list": [2, 3, 4, 5, 17, 20, 21, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 51, 52, 55, 56, 58, 59, 60, 62, 65, 68, 70, 71, 76, 77], "lit": 1, "live": [67, 69, 70, 71, 72, 74, 76, 78], "ln": [11, 68], "load": [62, 77, 78], "load_data": [2, 20, 21, 62, 67, 69, 70, 71, 72, 77, 78], "load_ext": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "loc": [64, 66, 68, 75, 76, 77], "log": [2, 4, 5, 6, 9, 14, 20, 62, 67, 69, 70, 71, 76, 78], "log_likelihoo": 78, "log_likelihood": [71, 78], "log_prob": 5, "logist": 15, "logit": 78, "lognorm": 71, "logp": [5, 71, 78], "logp_fn": 76, "logp_pointwis": [71, 78], "lomakina": [1, 62, 79], "london": 11, "long": [73, 79], "loo": 71, "loo_hgf": 71, "look": [67, 68, 69, 73, 78], "loop": [64, 76, 77, 78], "loos": 76, "loss": 76, "loss_arm1": 76, "loss_arm2": 76, "lot": 67, "low": [75, 76], "low_nois": 73, "low_prob": 76, "lower": [64, 65, 66, 67, 68, 72], "lower_bound": 15, "lowest": 62, "luckili": 71, "m": [62, 64, 65], "m2": 77, "m3": 77, "m_1": 64, "m_a": 37, "made": [16, 65, 70, 71, 76, 77, 78], "magic": 77, "mai": [1, 68, 79], "main": [0, 19, 20, 21, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "major": 1, "make": [1, 62, 64, 65, 67, 68, 70, 71, 75, 76, 77], "make_nod": [68, 76], "manag": 73, "mani": [1, 2, 64, 65, 68, 70, 71], "manipul": [0, 17, 62, 63, 67, 70, 71, 76, 77], "manka": 79, "manual": [65, 66, 71, 73, 78], "many_binary_children_hgf": 65, "many_value_children_hgf": 65, "many_value_parents_hgf": 65, "many_volatility_children_hgf": 65, "many_volatility_parents_hgf": 65, "map": 71, "marker": 73, "market": 69, "markov": 1, "mask": 76, "master": 62, "match": [5, 57, 65, 73, 78], "math": [2, 34, 37, 48, 66, 72, 76], "mathcal": [2, 13, 64, 65, 66, 67, 70, 71, 77], "mathemat": [14, 64, 77], "mathi": [1, 13, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 64, 65, 66, 77, 79], "matlab": [62, 64, 69], "matplotlib": [18, 20, 21, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "matrix": [71, 76], "matter": [57, 70, 78], "maxim": 69, "mayb": 71, "mcmc": [2, 63, 78], "mcse_mean": [2, 70, 78], "mcse_sd": [2, 70, 78], "mead": 1, "mean": [1, 2, 5, 6, 9, 12, 14, 16, 20, 21, 30, 31, 32, 33, 35, 36, 37, 43, 50, 53, 54, 59, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78], "mean_1": [2, 5, 6, 69], "mean_2": [5, 6], "mean_3": [5, 6], "mean_hgf": 75, "mean_mu_g0": 54, "mean_precision_hgf": 75, "measur": [68, 70, 72, 73, 74], "mechan": 1, "media": 62, "mention": 64, "mere": 70, "messag": 65, "meta": [65, 69], "meter": 77, "method": [1, 2, 3, 4, 7, 8, 16, 17, 24, 25, 34, 65, 67, 69, 70, 71, 74, 77], "metric": 70, "michael": 79, "might": [2, 3, 4, 16, 70, 78], "min": 68, "minim": [1, 65, 67, 69, 77], "minimis": 74, "miss": [73, 76], "missing_inputs_u": 76, "mix": 77, "mm": 77, "modal": 74, "model": [1, 2, 3, 4, 5, 6, 18, 20, 21, 22, 23, 24, 25, 26, 31, 58, 59, 63, 65, 66, 72, 73, 75, 76, 79], "model_to_graphviz": [67, 69, 71, 74, 78], "model_typ": [2, 3, 4, 16, 20, 21, 24, 65, 67, 69, 70, 71, 72, 74, 78], "modifi": 70, "modul": [0, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "modular": [62, 64, 65, 78], "mont": [1, 67, 69, 78], "montemagno": 73, "month": 77, "more": [63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 77, 78], "moreov": 71, "most": [16, 64, 65, 66, 67, 68, 69, 70, 76, 77], "mostli": 76, "move": [64, 71, 78], "mu": [9, 14, 23, 32, 33, 35, 37, 48, 64, 67, 69, 70, 71, 77], "mu_": 44, "mu_1": [64, 69, 73, 77], "mu_2": [64, 73], "mu_3": 73, "mu_a": [37, 38, 43, 73], "mu_b": [32, 33, 73], "mu_i": 64, "mu_j": [32, 33, 43, 48], "mu_temperatur": 71, "mu_volatil": 71, "much": [65, 66, 69, 77, 78], "multi": [71, 72], "multilevel": [71, 78], "multinomi": 68, "multipl": [1, 5, 20, 56, 65, 68, 70, 71, 73, 74, 76], "multipleloc": 66, "multipli": 65, "multiprocess": 78, "multithread": 78, "multivari": [7, 66], "multivariatenorm": 66, "must": [56, 73], "m\u00f8ller": [27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 79], "m\u00fcller": 62, "n": [2, 4, 27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "n1662": 1, "n_": [32, 33, 38], "n_1": 65, "n_categori": 68, "n_j": 65, "n_level": [2, 3, 4, 5, 6, 16, 20, 21, 65, 67, 69, 70, 71, 72, 74, 78], "n_node": [65, 66, 73, 76], "n_sampl": [53, 54], "name": 64, "nan": [2, 3, 4, 5, 78], "nativ": [67, 69, 71, 73], "natur": [1, 64, 66], "ncol": [64, 72], "ndarrai": [2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 22, 23, 50, 53, 54, 57], "necessarili": 1, "need": [27, 28, 29, 30, 31, 66, 68, 70, 71, 72, 73, 76, 77, 78], "neg": [5, 6, 20, 31, 67, 69, 70, 73, 76], "nelder": 1, "nest": [68, 70, 76, 77], "network": [0, 5, 6, 18, 19, 20, 21, 25, 26, 37, 38, 39, 51, 52, 55, 56, 57, 58, 59, 60, 61, 63, 66, 67, 69, 70, 72, 73, 74, 75, 76, 77, 78], "neural": [0, 17, 39, 51, 52, 55, 56, 59, 63, 64, 65, 73, 78], "neuroimag": 79, "neuromodel": 62, "neuromodul": 1, "neuromodulatori": 1, "neurosci": [1, 62, 67, 69, 71, 79], "new": [0, 20, 21, 32, 33, 35, 37, 38, 40, 41, 42, 45, 50, 51, 52, 53, 54, 57, 62, 64, 65, 66, 67, 68, 69, 71, 72, 73, 76, 77, 78], "new_attribut": 65, "new_belief": 78, "new_input_precision_1": 65, "new_input_precision_2": 65, "new_mean": 66, "new_mu": 54, "new_observ": 78, "new_sigma": 54, "newaxi": [2, 67, 69, 70, 71, 74, 78], "next": [1, 64, 67, 69, 70], "nicola": [73, 79], "nodal": 74, "nodalis": [62, 77], "node": [2, 3, 4, 5, 6, 16, 17, 19, 20, 21, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 58, 59, 60, 61, 62, 66, 67, 69, 70, 71, 73, 74, 76, 78], "node_idx": [20, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 55, 58, 60, 65, 68, 76], "node_paramet": [65, 66], "node_precis": 32, "node_trajectori": [17, 68, 70, 71, 72, 76, 78], "node_typ": 65, "nois": [1, 44, 65, 73], "noisi": [65, 66, 73], "noisier": 73, "non": [32, 33, 51, 55], "non_sequ": 78, "none": [2, 3, 4, 6, 16, 17, 20, 21, 24, 25, 26, 29, 56, 64, 65, 67, 68, 70, 73], "nonlinear_hgf": 73, "noon": 77, "nope": 44, "norm": [66, 75], "normal": [1, 2, 7, 10, 11, 34, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "note": [16, 19, 29, 32, 33, 36, 42, 43, 44, 47, 56, 64, 67, 69, 70, 71, 73, 76, 77, 78], "notebook": [63, 64, 65, 67, 69, 70, 71, 73, 75, 76, 78], "notic": 73, "notion": [64, 65], "nov": 79, "novel": 1, "novemb": 79, "now": [64, 65, 67, 69, 70, 71, 73, 76, 77, 78], "np": [2, 5, 13, 64, 65, 66, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78], "nrow": [64, 66, 68, 76], "nu": [13, 34], "nu_": 66, "num": 72, "num_sampl": 78, "number": [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 50, 51, 52, 53, 54, 55, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 76, 78], "numer": [1, 68, 76], "numpi": [2, 4, 5, 21, 22, 23, 54, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "nut": [67, 69, 70, 71, 72, 74, 76, 78], "nutshel": 70, "o": [62, 77, 78], "o_": 70, "object": [72, 78], "observ": [0, 9, 10, 13, 14, 20, 21, 29, 30, 31, 32, 33, 40, 41, 42, 43, 45, 50, 52, 53, 54, 57, 62, 64, 65, 66, 67, 68, 69, 71, 73, 74, 76, 77, 78], "observation_input_0": 70, "observation_input_0_expected_precis": [70, 75], "observation_input_0_surpris": 70, "obtain": 70, "occur": [31, 68, 71], "octob": 79, "offer": [1, 64], "offici": [62, 68], "often": [31, 64, 65, 70, 71, 72], "omega": [67, 68, 69, 71, 74, 76, 77], "omega_": [67, 69, 71], "omega_1": [64, 69, 77], "omega_2": [2, 64, 67, 68, 69, 70, 74, 78], "omega_3": [67, 69], "omega_a": 38, "omega_j": [32, 33], "onc": [64, 65, 78], "one": [1, 2, 3, 4, 20, 30, 31, 32, 33, 34, 37, 43, 64, 65, 66, 70, 71, 76, 77, 78, 79], "ones": [66, 72, 73, 76], "onli": [0, 16, 21, 24, 64, 65, 67, 68, 70, 71, 73, 74, 76, 77], "onlin": 1, "oop": 77, "op": [3, 68, 76], "open": [62, 74], "oper": [62, 66, 68, 70, 76, 77], "operand": [51, 55], "opt": [67, 69, 70, 71, 72, 74, 76, 78], "optim": [1, 59, 62, 64, 65, 67, 69, 76], "optimis": [67, 69, 70], "option": [23, 37, 69, 70], "orang": 69, "order": [56, 57, 62, 64, 65, 66, 67, 69, 70, 73, 78], "org": [1, 7, 8, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 72, 79], "organ": 0, "origin": [59, 62, 73], "orphan": 64, "oscil": 73, "oscillatori": 73, "other": [32, 33, 60, 62, 64, 65, 67, 69, 70, 73, 76, 77, 78], "otherwis": 76, "our": [1, 64, 66, 67, 69, 70, 71, 73, 74, 76, 78], "ourselv": [67, 69], "out": [64, 71, 78, 79], "outcom": [9, 14, 62, 65, 67, 70, 71, 76, 78], "outcome_1": 78, "outcome_2": 78, "output": [68, 70, 76, 79], "output_gradi": [68, 76], "output_typ": 74, "outputs_info": 78, "outsid": 73, "over": [2, 5, 6, 13, 62, 64, 65, 66, 67, 69, 70, 71, 73, 74, 76, 77, 78], "overal": [1, 69, 70], "overcom": 73, "overfit": [69, 76], "overlai": 54, "overtim": 75, "overview": 64, "own": [37, 64, 77], "p": [11, 23, 27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "p1": 68, "p2": 68, "p3": 68, "p_a": [37, 73, 76], "p_loo": [71, 78], "pablo": 79, "packag": [1, 62, 65, 67, 69, 70, 71, 72, 74, 76, 78], "page": 1, "pair": 64, "pan": 74, "panda": [61, 70, 74, 77], "panel": [65, 69, 70], "paper": [1, 64], "paralel": 66, "parallel": [3, 5, 6, 71], "paramet": [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 13, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 71, 73, 74, 77], "parameter": [16, 64], "parameter_structur": 57, "parametr": [11, 13, 17, 23, 50, 52, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 78], "parametris": [76, 77, 78], "paraticip": [22, 23], "parent": [0, 5, 6, 16, 17, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 51, 52, 55, 56, 59, 60, 62, 64, 65, 66, 67, 69, 73, 74, 75, 76, 77], "parent_idx": 56, "pareto": 71, "part": [5, 6, 16, 62, 64, 65, 68, 69, 70, 71, 73, 77, 78], "partial": [68, 72, 76], "particip": [70, 71, 72, 74, 78], "particular": [64, 77], "pass": [2, 3, 4, 5, 6, 17, 29, 45, 64, 65, 66, 67, 69, 70, 73, 76, 77], "past": [66, 70], "patholog": 1, "pattern": 79, "pct": 71, "pd": 77, "pdf": [1, 66, 75], "peak": 74, "penni": 11, "per": [71, 72], "percept": [1, 62, 79], "perceptu": [1, 2, 3, 4, 16, 70, 71, 72], "pereira": 62, "perform": [1, 5, 6, 31, 37, 57, 59, 63, 64, 65, 67, 68, 69, 70, 73, 74, 76, 77, 78], "perspect": [67, 69], "peter": 79, "petzschner": 62, "pfenning": [77, 79], "phasic": [5, 6, 16, 37, 38, 43, 64, 77], "phenomena": 65, "phenomenon": 73, "phi": 64, "phygf": [77, 78], "physio_df": 74, "physiolog": 69, "pi": [13, 14, 20, 32, 33, 35, 38, 43, 44, 49, 64, 66, 67, 69, 73], "pi_": 44, "pi_1": 64, "pi_a": 38, "pi_b": [32, 33], "pi_i": 64, "pi_j": [32, 33, 49], "pid": 78, "piec": 78, "pip": [62, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "pjitfunct": 5, "place": [64, 65, 71, 76], "plai": [1, 69], "plausibl": 62, "pleas": 71, "plot": [64, 65, 66, 68, 70, 72, 73, 75, 76, 77, 78], "plot_compar": 78, "plot_correl": 69, "plot_network": [65, 66, 67, 68, 69, 73, 75, 76, 77, 78], "plot_nod": [65, 68, 73, 76], "plot_posterior": [71, 76], "plot_raw": 74, "plot_trac": [67, 68, 69, 70, 74, 78], "plot_trajectori": [62, 65, 67, 69, 73, 74, 77, 78], "plt": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "plu": 76, "pm": [2, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78], "pmid": 1, "point": [13, 24, 25, 26, 29, 35, 36, 37, 38, 40, 41, 42, 43, 45, 57, 64, 65, 66, 67, 68, 69, 70, 71, 76, 77], "pointer": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 55], "pointwis": [4, 71, 78], "pointwise_loglikelihood": [71, 78], "pool": 72, "popen_fork": 78, "popul": 71, "popular": 78, "posit": [65, 70, 71, 77], "possess": 73, "possibl": [10, 37, 62, 63, 65, 66, 68, 70, 71, 73, 74, 78], "post": 68, "posterior": [1, 2, 44, 62, 64, 66, 77], "posterior_mean": 32, "posterior_precis": 33, "posterior_update_mean_continuous_nod": [30, 31, 33], "posterior_update_precision_continuous_nod": [30, 31, 32], "posteriori": 71, "potenti": [2, 67, 68, 69, 70, 72, 74, 76, 78], "power": [78, 79], "pp": [13, 34], "ppg": 74, "pr": [67, 70], "practic": [65, 66, 70, 79], "pre": [16, 17, 50, 52, 54, 67, 68, 69, 78], "precipit": 77, "precis": [1, 5, 6, 10, 12, 14, 16, 20, 21, 27, 28, 30, 31, 32, 33, 35, 36, 38, 40, 41, 43, 44, 46, 53, 59, 62, 64, 65, 66, 67, 68, 69, 73, 76, 77], "precision_1": [2, 5, 6], "precision_2": [2, 5, 6], "precision_3": [5, 6], "precsnoland": 77, "prectotland": 77, "predict": [1, 13, 14, 17, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 52, 59, 63, 65, 66, 69, 70, 71, 74, 76, 77, 79], "predict_precis": 32, "prediction_error": [32, 33], "presenc": 72, "present": [62, 64, 65, 67, 69, 70, 71, 76, 77], "press": 79, "previou": [0, 1, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 42, 43, 45, 52, 53, 64, 65, 67, 68, 69, 70, 71, 73, 77, 78], "previous": [64, 70, 77], "principl": [1, 59, 64, 65, 66, 70, 77, 78], "print": [2, 62], "prior": [2, 65, 66, 67, 69, 70, 71, 74, 77, 78], "probabilist": [0, 1, 2, 17, 20, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 55, 62, 63, 64, 66, 69, 70, 74, 76, 78], "probabl": [0, 1, 2, 4, 5, 6, 9, 10, 13, 20, 23, 29, 34, 50, 64, 66, 67, 69, 70, 71, 72, 76, 78], "problem": 72, "procedur": [65, 71, 78], "proceed": 71, "process": [1, 30, 31, 37, 39, 51, 52, 55, 62, 65, 66, 73, 76, 77, 78], "produc": [71, 76, 78], "product": [68, 76], "programmat": 70, "progress": [65, 68, 73], "propag": [0, 17, 57, 65, 66, 70, 77, 78], "propens": [64, 71], "properti": [1, 65], "proport": 66, "propos": 59, "provid": [1, 2, 3, 4, 5, 16, 20, 23, 56, 62, 64, 65, 67, 68, 69, 70, 71, 73, 76, 77, 78], "proxim": 65, "pseudo": [13, 66, 71], "psi": [11, 29, 68], "psychiatri": [62, 63, 70, 71, 77], "psycholog": 70, "pt": [68, 71, 76, 78], "public": [1, 11, 68], "publish": [34, 79], "pulcu": [76, 79], "punish": 79, "purpos": [64, 70, 75], "put": 69, "pv": 79, "pval": 68, "py": [65, 67, 69, 70, 71, 72, 74, 76, 78], "pyhgf": [1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "pymc": [0, 2, 5, 6, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78], "pyplot": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "pytensor": [67, 68, 69, 70, 71, 72, 74, 76, 77, 78], "python": [62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "python3": [67, 69, 70, 71, 72, 74, 76, 78], "pytre": 65, "pytress": 65, "q": [11, 68], "qualiti": 71, "quantiti": [71, 75, 76, 77], "question": 66, "quickli": 69, "quit": 69, "r": [64, 66, 73, 74, 76], "r_a": 66, "r_hat": [2, 70, 78], "rain": 77, "raman": 62, "rand": 66, "randn": 66, "random": [1, 5, 6, 16, 37, 54, 65, 66, 68, 70, 71, 72, 73, 75, 76], "randomli": [64, 72, 78], "rang": [64, 66, 68, 70, 71, 72, 75, 76, 77], "rank": 78, "rate": [37, 62, 64, 66, 67, 69, 70, 75, 76, 77, 78], "rather": 78, "ratio": 66, "ration": 79, "raw": 77, "rcparam": [64, 65, 66, 67, 69, 70, 71, 73, 74, 76, 78], "reach": 65, "react": 69, "read": [20, 21, 77, 78], "read_csv": 77, "reader": 64, "readi": [76, 78], "real": [1, 43, 65, 66, 67, 69, 70, 73, 74, 77, 78], "reanalysi": 79, "reason": [65, 67, 69, 70, 71], "recap": 78, "receiv": [0, 20, 21, 29, 37, 45, 52, 62, 64, 65, 66, 68, 70, 71, 73, 76, 78], "recent": 1, "recommend": [71, 72, 74, 76, 78], "reconstruct": 78, "record": [76, 77], "recov": [0, 76], "recoveri": [70, 78], "recurs": [60, 62], "red": 72, "reduc": 59, "ref": 72, "ref_val": 71, "refer": [7, 8, 11, 13, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 64, 65, 66, 68, 70, 71, 72, 76, 77], "reflect": [65, 77], "regist": [65, 73, 78], "regular": [31, 64, 67, 78], "reinforc": [1, 62, 63, 64, 67, 68], "relat": [1, 70, 74], "relationship": 56, "relax": 75, "releas": 62, "relev": [16, 67, 69, 73], "reli": [64, 66, 71], "reliabl": 72, "remain": 76, "remot": 64, "remov": 77, "reparameter": [71, 72, 76, 78], "repeat": [64, 71, 76, 77], "replac": [68, 76], "report": [1, 72], "repres": [1, 5, 6, 16, 37, 64, 65, 66, 68, 70, 71, 73, 77], "requier": [68, 76], "requir": [4, 19, 22, 24, 25, 26, 37, 65, 66, 70, 71, 76, 77, 78], "rescorla": [64, 67, 72], "research": [1, 70], "resembl": 70, "resolut": 1, "respect": [11, 64, 65, 69, 78], "respir": 74, "respond": 78, "respons": [2, 3, 4, 5, 6, 62, 67, 69, 71, 72, 74, 77, 78, 79], "response_funct": [2, 3, 4, 6, 62, 67, 69, 70, 71, 72, 74, 77, 78], "response_function_input": [2, 3, 4, 5, 6, 22, 23, 24, 25, 26, 62, 70, 71, 72, 78], "response_function_paramet": [5, 6, 22, 23, 24, 25, 26, 62, 67, 70, 71, 72], "rest": 1, "restrict": [65, 69], "result": [1, 2, 62, 65, 67, 68, 69, 70, 71, 74, 76, 77, 78], "retriev": [65, 69, 74, 78], "return": [0, 4, 5, 6, 9, 10, 11, 13, 14, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 65, 66, 67, 68, 69, 70, 71, 73, 74, 76, 78], "revert": [37, 64], "review": [64, 77], "reward": [70, 78, 79], "rf": [66, 71], "rhat": 72, "rho": [64, 73], "rho_1": 64, "rho_2": 73, "rho_3": 73, "rho_a": [37, 73], "rhoa": 77, "rich": [67, 69, 70, 71, 72, 74, 76, 78], "right": [11, 13, 32, 33, 37, 38, 44, 49, 64, 66, 68, 70, 76], "rise": 69, "rl": 1, "robert": 79, "robust": [71, 72, 74, 76], "rocket": 71, "role": [0, 1, 69], "root": [0, 60, 64, 65, 77], "row": 20, "rr": 74, "rr_": 74, "rule": [78, 79], "run": [63, 64, 66, 67, 68, 69, 71, 72, 73, 74, 76, 77, 78], "runtimewarn": 78, "rust": 62, "rw": 78, "rw_idata": 78, "rw_model": 78, "rw_updat": 78, "s11222": 79, "s_0": 70, "s_1": 70, "sa": 62, "sake": 70, "salient": 69, "same": [1, 2, 3, 4, 17, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 51, 52, 55, 56, 64, 68, 69, 70, 71, 72, 73, 75, 76, 77, 78], "sampl": [1, 2, 53, 54, 59, 62, 63, 64, 65, 66, 70, 72, 74, 75, 76], "sampler": [67, 69, 70, 71, 72, 74, 76, 78], "samuel": 79, "sandra": [1, 79], "satellit": 79, "save": [38, 66, 71, 72, 78], "scalar": 66, "scale": [64, 66, 75, 77, 78], "scall": 64, "scan": [17, 57, 76, 78], "scan_fn": 17, "scat": 66, "scat2": 66, "scatter": [66, 70, 72, 76, 78], "scatterplot": 72, "scheme": [1, 65], "schrader": 62, "sch\u00f6bi": 62, "scienc": 13, "scipi": [66, 75], "scope": 64, "scratch": 62, "sd": [2, 70, 78], "se": [71, 78], "seaborn": [64, 65, 66, 68, 71, 72, 73, 75, 76, 77, 78], "seagreen": 76, "search": 60, "second": [0, 1, 2, 5, 6, 10, 16, 64, 65, 67, 69, 70, 71, 72, 73, 74, 76, 77, 78], "section": [63, 64, 67, 68, 69, 71, 77, 78], "see": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 76, 77, 78], "seed": [64, 65, 66, 70, 71, 72, 73, 75, 76, 77], "seen": [64, 77, 78], "select": [70, 76, 77], "self": [68, 76, 78], "send": [64, 65, 69], "sens": [1, 64, 68, 70], "sensori": [1, 64, 77, 78, 79], "sensory_precis": 53, "sep": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "separ": [66, 71, 72, 78], "septemb": 69, "sequenc": [17, 57, 59, 62, 64, 66, 68, 70, 71, 76, 78], "sequenti": [67, 68, 69, 70, 71, 72, 74, 76, 78], "seri": [1, 2, 3, 4, 5, 6, 13, 24, 34, 61, 62, 64, 65, 66, 67, 68, 69, 71, 74, 77, 79], "serotonin": 1, "serv": 62, "session": 63, "set": [16, 20, 21, 56, 58, 60, 62, 64, 65, 66, 67, 69, 70, 71, 72, 73, 75, 76, 78], "set_minor_loc": 66, "set_offset": 66, "set_palett": 71, "set_titl": [66, 68, 72], "set_update_sequ": 75, "set_xdata": 66, "set_xlabel": [66, 72, 75], "set_ydata": 66, "set_ylabel": [66, 68, 72, 75, 76], "sever": [1, 69, 78], "sfreq": 74, "shad": 20, "shape": [0, 1, 3, 65, 66, 68, 71, 72, 73, 76, 77], "share": [65, 67], "sharei": 76, "sharex": [64, 68, 76], "she": 70, "shoot": 69, "shortwav": 77, "should": [0, 2, 4, 5, 20, 21, 29, 34, 37, 38, 44, 53, 56, 65, 66, 68, 70, 71, 76, 78], "show": [20, 21, 65, 69, 78], "show_current_st": [20, 21], "show_heart_r": 74, "show_observ": [20, 21, 65, 73], "show_surpris": [20, 21, 73], "shown": [64, 66, 73], "side": [65, 70, 71], "sidecar": 78, "sigma": [53, 64, 65, 71, 77], "sigma_1": [64, 77], "sigma_2": [64, 77], "sigma_mu_g0": 54, "sigma_pi_g0": 54, "sigma_temperatur": 71, "sigma_volatil": 71, "sigmoid": [64, 71, 72, 76, 78], "sigmoid_hgf": 70, "sigmoid_hgf_idata": 70, "sigmoid_inverse_temperatur": 72, "signal": [0, 62, 73], "sim": [2, 64, 71, 73, 77], "similar": [32, 33, 43, 62, 67, 69, 74, 76, 78], "similarli": [65, 69], "simpl": [2, 64, 65, 66, 70, 72, 76, 77, 78, 79], "simpler": [64, 65, 78], "simplest": [64, 70], "simplex": 1, "simpli": [0, 65, 66, 71, 72, 77, 78], "simplifi": [73, 77], "simpul": 64, "simul": [1, 53, 54, 64, 65, 66, 70, 73, 77, 78, 79], "simultan": 71, "sin": [65, 66, 73], "sinc": [64, 73], "singl": [6, 57, 65, 76, 78], "sinusoid": [65, 73], "sinusoid_linear_hgf": 73, "sinusoid_nonlinear_hgf": 73, "site": [67, 69, 70, 71, 72, 74, 76, 78], "situat": [1, 20, 21, 64, 65, 68, 70, 71, 76], "size": [1, 5, 62, 64, 65, 67, 69, 72, 75, 77], "skew": 68, "slightli": [69, 70, 78], "slope": [64, 73], "slow": 76, "smaller": 72, "smoother": 66, "smoothli": 62, "sn": [64, 65, 66, 68, 71, 72, 73, 75, 76, 77, 78], "snoma": 77, "snow": 77, "so": [44, 57, 62, 65, 67, 69, 70, 73, 77, 78], "sofmax": [22, 23], "softmax": [5, 6, 62, 70, 76], "softwar": 62, "solar": 77, "sole": 76, "solid": 78, "solut": 66, "some": [31, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 76, 77], "someth": [64, 65, 70, 73, 75, 78], "sometim": [65, 69, 70, 77, 78], "sort": 66, "sourc": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62], "space": [43, 59, 69, 71, 73], "sparsiti": 70, "special": 76, "specif": [1, 37, 62, 64, 65, 66, 67, 68, 70, 71, 73, 76], "specifi": [2, 56, 64, 68, 73, 74, 76], "spike": 69, "spiral": 66, "split": [65, 70], "springer": [34, 79], "sqrt": [13, 20, 66, 75], "squar": 71, "stabil": 1, "stabl": 69, "stable_conting": 76, "stack": 66, "staffel": [77, 79], "standard": [0, 20, 21, 30, 32, 50, 53, 54, 59, 63, 64, 65, 67, 68, 69, 70, 71, 75, 77, 78], "start": [2, 3, 4, 59, 64, 66, 68, 70, 71, 76, 77, 78], "stat": [66, 75], "state": [1, 20, 32, 33, 35, 37, 38, 43, 46, 48, 49, 54, 56, 58, 62, 64, 65, 66, 70, 71, 73, 76, 77, 78], "static": [39, 51, 55], "statist": [0, 13, 18, 20, 21, 34, 61, 64, 65, 70, 72, 75, 79], "statproofbook": 11, "std": [73, 75], "steep": 73, "steeper": 73, "stefan": 79, "step": [1, 5, 6, 17, 30, 31, 32, 33, 38, 43, 57, 59, 63, 64, 65, 66, 67, 70, 71, 72, 73, 76, 77, 78], "stephan": [1, 27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 79], "still": [68, 76], "stim_1": 78, "stim_2": 78, "stimuli": [70, 71, 78], "stimulu": [70, 71, 78], "stochast": [64, 66, 68, 73, 77], "storag": 77, "store": [38, 42, 43, 44, 47, 62, 65, 70, 71], "str": [2, 3, 4, 16, 20, 59], "straight": 64, "straightforward": [64, 66, 76], "strength": [16, 29, 32, 33, 36, 37, 38, 42, 47, 56, 64, 67, 73], "string": 65, "structur": [0, 16, 17, 20, 21, 29, 36, 42, 47, 57, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 72, 73, 77, 78], "student": 66, "studi": [1, 63, 69, 71], "sub": [0, 65, 67], "subject": [1, 78], "subplot": [64, 66, 68, 72, 73, 75, 76, 78], "subtl": 78, "success": 72, "suffici": [0, 13, 18, 20, 21, 34, 61, 64, 65, 70, 75, 79], "sufficient_statist": 66, "sufficient_stats_fn": 34, "suggest": [66, 78], "suitabl": 76, "sum": [5, 24, 26, 37, 38, 43, 62, 67, 68, 69, 70, 71, 74, 76, 77, 78], "sum_": [11, 32, 33, 38, 68, 70], "summari": [2, 67, 69, 70, 72, 74, 78], "summer": 77, "support": [5, 20, 21, 62, 64, 65, 67, 69, 70, 71, 72, 74, 76, 78], "suppos": 73, "sure": [68, 70, 76, 78], "surfac": 77, "surpris": [0, 2, 3, 4, 5, 6, 9, 10, 14, 20, 21, 22, 23, 24, 25, 26, 61, 62, 65, 68, 74, 76, 77, 78], "surprise_fn": 68, "suspect": 69, "swgdn": 77, "swiss": 69, "switch": [66, 67], "swtdn": 77, "sy": [64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "system": 62, "systol": 74, "t": [23, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 57, 62, 64, 65, 66, 67, 68, 70, 71, 73, 76, 77, 78], "t2m": 77, "tailor": [67, 68], "take": [0, 1, 64, 67, 70, 71, 77, 78], "tapa": 62, "target": [62, 66, 77], "target_accept": [71, 72, 76, 78], "task": [62, 63, 65, 67, 70, 71, 74, 78], "techniqu": 72, "tediou": 69, "temp": 71, "temperatur": [5, 6, 23, 62, 70, 71, 72, 76, 77], "temporari": 52, "ten": 79, "tensor": [67, 68, 69, 70, 71, 72, 74, 76, 77, 78], "term": [1, 38, 64, 65, 70, 73, 79], "terminologi": [68, 71], "test": [71, 72], "text": [9, 70, 73], "th": 71, "than": [16, 31, 64, 66, 68, 69, 71, 72, 73], "thank": [71, 78], "thecomput": 63, "thei": [0, 65, 66, 67, 68, 69, 70, 71, 72, 78], "them": [64, 70, 76, 77], "theoret": 77, "theori": [1, 64, 78], "therefor": [24, 44, 64, 65, 66, 68, 69, 70, 71, 73, 76, 77, 78], "thestrup": 79, "theta": [65, 66, 73], "theta_": 65, "theta_1": [65, 73], "theta_2": 73, "thi": [0, 1, 2, 4, 5, 6, 13, 16, 17, 19, 20, 21, 24, 29, 30, 31, 32, 33, 34, 38, 43, 44, 52, 57, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "thing": [68, 71, 77], "think": [64, 70], "third": [1, 5, 6, 65, 67, 69], "those": [62, 65, 66, 67, 70, 71], "three": [0, 5, 6, 16, 20, 21, 64, 65, 68, 75, 76], "three_level_hgf": [69, 74], "three_level_hgf_idata": [67, 69], "three_level_trajectori": 78, "three_levels_binary_hgf": [67, 78], "three_levels_continuous_hgf": 69, "three_levels_continuous_hgf_bi": 69, "three_levels_hgf": [21, 67], "three_levels_idata": 78, "threshold": 73, "through": [0, 62, 64, 65, 70, 71, 73, 77, 78], "thu": [1, 77], "ticker": 66, "tight": [65, 69], "tight_layout": [65, 66, 69], "tile": [64, 76, 77], "tim": 79, "time": [1, 2, 3, 4, 5, 6, 13, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 45, 57, 61, 62, 64, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 79], "time_step": [2, 3, 4, 5, 6, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 42, 43, 45, 70, 76], "timeseri": [2, 20, 21, 69, 77], "timestep": 73, "titl": [1, 64, 66, 68, 71, 73, 75, 78], "tmp": [65, 69], "to_numpi": [77, 78], "to_panda": [66, 70, 75], "toa": 77, "togeth": [21, 67, 69, 70, 78], "tolist": 72, "tomkin": 74, "tonic": [2, 5, 6, 16, 37, 38, 43, 64, 69, 71, 72, 73, 75, 76, 77, 78], "tonic_drift": [16, 20, 21, 67, 73, 74], "tonic_drift_1": [5, 6], "tonic_drift_2": [5, 6], "tonic_drift_3": [5, 6], "tonic_volatil": [16, 20, 21, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "tonic_volatility_1": [5, 6, 69, 74], "tonic_volatility_2": [2, 5, 6, 67, 68, 69, 70, 71, 72, 74, 78], "tonic_volatility_3": [5, 6, 67, 69], "too": 76, "took": [67, 69, 70, 71, 72, 74, 76, 78], "tool": 71, "toolbox": [62, 64, 69, 70], "top": [0, 20, 21, 62, 64, 67, 69, 70, 75, 77], "total": [37, 38, 64, 67, 69, 70, 71, 72, 73, 74, 76, 77, 78], "total_gaussian_surpris": [2, 74], "total_surpris": 70, "toussaint": 62, "toward": [76, 78], "trace": 73, "track": [64, 65, 66, 67, 70, 75, 77], "tradition": 70, "trajectori": [0, 6, 18, 20, 21, 61, 62, 66, 70, 71, 72, 74, 75, 76, 77], "trajectories_df": 61, "transform": [64, 65, 70, 71, 73, 78], "transit": [58, 66], "translat": 62, "transmiss": 77, "transpar": 65, "treat": 71, "tree": 65, "tree_util": [68, 76], "tri": [65, 67, 70, 78], "trial": [1, 64, 69, 70, 76, 78], "trigger": [0, 57, 62, 64, 77], "tristan": 73, "trivial": 70, "true": [9, 14, 20, 21, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 78], "try": [69, 70, 73, 75, 76, 77, 78], "tune": [2, 67, 69, 70, 71, 72, 74, 76, 78], "tupl": [2, 3, 4, 17, 20, 21, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 51, 52, 53, 54, 55, 56, 57, 60, 62, 65, 70, 73], "turn": [64, 77], "tutori": [62, 64, 67, 70, 71, 72, 73, 76, 77, 78], "two": [0, 1, 5, 6, 11, 16, 20, 21, 30, 31, 57, 62, 64, 65, 66, 68, 70, 71, 72, 73, 74, 75, 76, 77], "two_armed_bandit_hgf": 76, "two_armed_bandit_missing_inputs_hgf": 76, "two_bandits_logp": 76, "two_level_hgf": 69, "two_level_hgf_idata": [67, 69, 71, 72, 78], "two_level_trajectori": 78, "two_levels_binary_hgf": [67, 71, 72, 78], "two_levels_continuous_hgf": [69, 77], "two_levels_hgf": [67, 78], "two_levels_idata": 78, "type": [2, 3, 4, 5, 6, 16, 17, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 51, 52, 54, 55, 56, 57, 59, 65, 66, 68, 70, 71, 76, 78], "typic": 65, "u": [21, 43, 44, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "u1": 73, "u2": 73, "u_0": 65, "u_0_prob": 65, "u_1": [64, 65, 73], "u_1_prob": 65, "u_2": [64, 73], "u_loss_arm1": 76, "u_loss_arm2": 76, "u_win_arm1": 76, "u_win_arm2": 76, "ucl": 11, "uk": 11, "uncertain": [1, 65], "uncertainti": [1, 20, 21, 62, 64, 76, 77, 78, 79], "under": [1, 6, 9, 10, 14, 22, 23, 31, 50, 52, 54, 62, 64, 66, 67, 69, 70, 71, 78, 79], "undergo": [70, 71], "underli": [10, 65, 67, 68, 69, 70, 72, 73], "underpin": [64, 66], "understand": [1, 64, 73, 78], "underw": 70, "unexpect": [66, 67, 69], "uniform": [67, 72, 78], "union": [22, 23, 54, 56], "uniqu": [64, 65, 78], "unit": [2, 3, 4, 57, 71], "univari": [8, 34], "univariate_hgf": 66, "univers": [11, 73, 79], "unlik": [64, 69], "unobserv": 76, "until": [68, 73], "up": [20, 21, 62, 64, 69, 77], "updat": [1, 13, 17, 57, 58, 59, 62, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78], "update_binary_input_par": 36, "update_continuous_input_par": 36, "update_fn": 65, "update_fn1": 65, "update_fn2": 65, "update_sequ": [17, 57, 65, 66, 76], "update_typ": [59, 75], "upon": 64, "upper": [64, 65, 72, 76], "upper_bound": 15, "url": [1, 11, 79], "us": [0, 1, 2, 3, 4, 5, 6, 16, 19, 20, 29, 30, 31, 32, 33, 37, 38, 43, 44, 54, 57, 62, 64, 65, 71, 72, 73, 74, 75, 76, 77, 78, 79], "usd": [20, 21], "user": [62, 64, 70], "userwarn": [65, 67, 69, 70, 71, 72, 74, 76, 78], "usual": [0, 64, 65, 72, 75], "util": [66, 74, 76], "v": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "valid": [4, 13, 24, 65, 71, 78, 79], "valu": [0, 2, 5, 6, 10, 16, 17, 20, 21, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 55, 56, 57, 62, 66, 67, 69, 70, 71, 72, 74, 75, 76, 78], "valuat": 69, "value_children": [62, 65, 66, 73, 75, 76, 77], "value_coupling_children": [16, 36, 42, 47], "value_coupling_par": [16, 36, 42, 47], "value_par": 65, "vapa": 44, "vape": 64, "var_nam": [2, 67, 70, 71, 72, 78], "vari": [64, 66, 70, 71, 73], "variabl": [1, 13, 37, 57, 62, 64, 65, 66, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78], "varianc": [5, 6, 16, 62, 64, 65, 69, 77], "variat": [0, 1, 65, 66], "varieti": 65, "variou": [1, 65, 77], "vartheta": 66, "vector": [2, 3, 4, 5, 16, 54, 57, 66, 68, 70, 71, 72, 76, 78], "vectorized_logp": 5, "vehtari": [71, 79], "verbelen": 79, "veri": [1, 64, 69, 71, 74, 77], "versatil": 77, "version": [17, 27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "via": [64, 65], "view": 76, "visibl": 69, "visual": [0, 19, 20, 21, 62, 66, 75, 77, 78], "vizualis": 66, "vjp": [68, 76], "vjp_custom_op": [68, 76], "vjp_custom_op_jax": [68, 76], "vjp_fn": [68, 76], "vjpcustomop": [68, 76], "vol": 62, "volatil": [0, 1, 2, 5, 6, 16, 17, 20, 21, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 49, 51, 52, 55, 56, 59, 62, 66, 67, 69, 70, 71, 72, 73, 75, 76, 78], "volatile_conting": 76, "volatility_children": [65, 66, 75, 77], "volatility_coupl": [16, 20, 21, 29, 67, 74], "volatility_coupling_1": [5, 6], "volatility_coupling_2": [5, 6], "volatility_coupling_children": [16, 36, 42, 47], "volatility_coupling_par": [16, 36, 42, 47], "volatility_par": 65, "volum": 1, "vopa": 38, "vope": [44, 64], "vstack": 68, "w": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "w_a": 76, "w_b": 76, "wa": [32, 33, 41, 42, 45, 59, 62, 65, 67, 68, 69, 70, 73, 76, 78], "waad": [27, 28, 30, 31, 32, 33, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 79], "wagenmak": [71, 79], "wagner": [64, 67, 72], "wai": [1, 44, 57, 64, 65, 66, 67, 68, 69, 70, 71, 73, 76, 77, 78], "waic": 79, "walk": [1, 5, 6, 16, 37, 73, 76], "want": [2, 65, 67, 69, 70, 71, 73, 74, 75, 76, 77, 78], "warmup": 2, "warn": [67, 68, 69, 70, 71, 72, 74, 76, 77, 78], "watermark": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "wave": [65, 73], "we": [0, 1, 2, 44, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "weak_typ": [9, 14], "weber": [0, 13, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 40, 41, 42, 43, 44, 45, 47, 48, 49, 62, 64, 65, 66, 77, 79], "wed": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "weigh": [66, 77], "weight": [1, 54, 62, 64, 65, 66, 78], "weigth": 54, "well": [1, 57, 65, 72, 77, 78], "were": [64, 67, 70, 71, 72, 76, 78], "what": [65, 68, 69, 70, 73, 76, 77, 78], "when": [2, 4, 5, 6, 24, 37, 52, 64, 65, 66, 67, 68, 69, 70, 71, 73, 76, 77, 78], "whenev": 62, "where": [0, 3, 4, 5, 6, 14, 20, 21, 23, 32, 33, 37, 38, 43, 62, 64, 65, 66, 67, 68, 69, 70, 71, 73, 75, 76, 77], "wherea": 74, "whether": [20, 41, 42, 45], "which": [1, 5, 6, 13, 37, 43, 59, 64, 65, 66, 67, 68, 69, 70, 71, 73, 76, 77, 78], "while": [62, 64, 65, 66, 70, 71, 73, 74, 76, 77, 78], "whole": [64, 66, 76], "wide": [16, 67], "width": [20, 21], "wiki": [7, 8], "wikipedia": [7, 8], "william": 11, "wilson": [72, 79], "win": 76, "win_arm1": 76, "win_arm2": 76, "wind": 79, "wine": 76, "wishart": 11, "within": 1, "without": [1, 37, 65, 66, 70, 71, 73], "won": 67, "word": [65, 67, 69, 78], "work": [19, 44, 68, 70, 71, 76, 78], "workflow": [71, 78], "workshop": 77, "world": [64, 66, 70, 78], "worri": [67, 69], "worth": 71, "would": [67, 69, 71, 73, 76, 77], "wpenni": 11, "wrap": [0, 67, 68, 69, 76], "write": [68, 70, 73, 77, 78], "written": [62, 66], "www": [1, 11, 79], "x": [9, 12, 13, 14, 15, 34, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77], "x1": [64, 73], "x2": [64, 73], "x3": 73, "x64": [67, 69, 70, 71, 72, 74, 76, 78], "x_": [64, 67, 77], "x_1": [64, 66, 73, 77], "x_1_1": 64, "x_1_2": 64, "x_1_3": 64, "x_1_expected_mean": [70, 75], "x_1_expected_precis": 70, "x_1_mean": 70, "x_1_precis": 70, "x_1_surpris": 70, "x_1_xis_0": 66, "x_2": [64, 66, 73, 77], "x_2_1": 64, "x_2_2": 64, "x_2_3": 64, "x_2_expected_mean": 70, "x_2_expected_precis": 70, "x_2_mean": 70, "x_2_precis": 70, "x_2_surpris": 70, "x_3": 73, "x_b": 37, "x_i": 66, "xaxi": 66, "xflr6": 19, "xi": [13, 34, 65, 66, 68], "xi_": [13, 65, 66], "xi_1": 65, "xi_k": 65, "xi_x": [13, 66], "xlabel": [64, 66, 68, 70, 73, 77, 78], "xlim": 66, "y": [13, 62, 66, 70, 72, 76, 78], "y1": 68, "y2": 68, "yaxi": 66, "ye": 73, "year": [1, 77, 79], "yet": 76, "ylabel": [64, 66, 68, 73, 77, 78], "ylim": 66, "you": [1, 62, 63, 65, 68, 70, 73, 76, 77, 78], "your": [1, 77, 78], "z": [66, 71], "z_": 71, "zero": 73, "zeta": 43, "zip": [64, 66, 72, 75, 76, 78], "zoom": 73, "zorder": [68, 72], "zurich": [63, 77], "\u03c9_2": 2}, "titles": ["API", "How to cite?", "pyhgf.distribution.HGFDistribution", "pyhgf.distribution.HGFLogpGradOp", "pyhgf.distribution.HGFPointwise", "pyhgf.distribution.hgf_logp", "pyhgf.distribution.logp", "pyhgf.math.MultivariateNormal", "pyhgf.math.Normal", "pyhgf.math.binary_surprise", "pyhgf.math.binary_surprise_finite_precision", "pyhgf.math.dirichlet_kullback_leibler", "pyhgf.math.gaussian_density", "pyhgf.math.gaussian_predictive_distribution", "pyhgf.math.gaussian_surprise", "pyhgf.math.sigmoid", "pyhgf.model.HGF", "pyhgf.model.Network", "pyhgf.plots.plot_correlations", "pyhgf.plots.plot_network", "pyhgf.plots.plot_nodes", "pyhgf.plots.plot_trajectories", "pyhgf.response.binary_softmax", "pyhgf.response.binary_softmax_inverse_temperature", "pyhgf.response.first_level_binary_surprise", "pyhgf.response.first_level_gaussian_surprise", "pyhgf.response.total_gaussian_surprise", "pyhgf.updates.posterior.binary.binary_node_update_finite", "pyhgf.updates.posterior.binary.binary_node_update_infinite", "pyhgf.updates.posterior.categorical.categorical_input_update", "pyhgf.updates.posterior.continuous.continuous_node_update", "pyhgf.updates.posterior.continuous.continuous_node_update_ehgf", "pyhgf.updates.posterior.continuous.posterior_update_mean_continuous_node", "pyhgf.updates.posterior.continuous.posterior_update_precision_continuous_node", "pyhgf.updates.posterior.exponential.posterior_update_exponential_family", "pyhgf.updates.prediction.binary.binary_state_node_prediction", "pyhgf.updates.prediction.continuous.continuous_node_prediction", "pyhgf.updates.prediction.continuous.predict_mean", "pyhgf.updates.prediction.continuous.predict_precision", "pyhgf.updates.prediction.dirichlet.dirichlet_node_prediction", "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_finite_precision", "pyhgf.updates.prediction_error.inputs.binary.binary_input_prediction_error_infinite_precision", "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_prediction_error", "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_value_prediction_error", "pyhgf.updates.prediction_error.inputs.continuous.continuous_input_volatility_prediction_error", "pyhgf.updates.prediction_error.inputs.generic.generic_input_prediction_error", "pyhgf.updates.prediction_error.nodes.binary.binary_state_node_prediction_error", "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_prediction_error", "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_value_prediction_error", "pyhgf.updates.prediction_error.nodes.continuous.continuous_node_volatility_prediction_error", "pyhgf.updates.prediction_error.nodes.dirichlet.clusters_likelihood", "pyhgf.updates.prediction_error.nodes.dirichlet.create_cluster", "pyhgf.updates.prediction_error.nodes.dirichlet.dirichlet_node_prediction_error", "pyhgf.updates.prediction_error.nodes.dirichlet.get_candidate", "pyhgf.updates.prediction_error.nodes.dirichlet.likely_cluster_proposal", "pyhgf.updates.prediction_error.nodes.dirichlet.update_cluster", "pyhgf.utils.add_edges", "pyhgf.utils.beliefs_propagation", "pyhgf.utils.fill_categorical_state_node", "pyhgf.utils.get_update_sequence", "pyhgf.utils.list_branches", "pyhgf.utils.to_pandas", "PyHGF: A Neural Network Library for Predictive Coding", "Learn", "Introduction to the Generalised Hierarchical Gaussian Filter", "Creating and manipulating networks of probabilistic nodes", "From Reinforcement Learning to Generalised Bayesian Filtering", "The binary Hierarchical Gaussian Filter", "The categorical Hierarchical Gaussian Filter", "The continuous Hierarchical Gaussian Filter", "Using custom response models", "Hierarchical Bayesian modelling with probabilistic neural networks", "Recovering computational parameters from observed behaviours", "Non-linear value coupling", "Example 1: Bayesian filtering of cardiac volatility", "Example 2: Estimating the mean and precision of an input node", "Example 3: A multi-armed bandit task with independent rewards and punishments", "Introduction to the generalised Hierarchical Gaussian Filter", "Application to reinforcement learning", "References"], "titleterms": {"1": [74, 77], "2": [75, 77], "3": [76, 77], "4": 77, "A": [62, 76], "The": [62, 63, 64, 65, 67, 68, 69, 77, 78], "acknowledg": 62, "activ": 73, "ad": 64, "adapt": 66, "add": [67, 69], "add_edg": 56, "an": 75, "api": 0, "applic": 78, "arm": [72, 76], "ascend": 65, "assign": 65, "attribut": 65, "autoregress": 64, "bandit": [72, 76], "bayesian": [66, 71, 74, 76], "behavior": 70, "behaviour": [72, 78], "belief": [64, 76, 78], "beliefs_propag": 57, "between": 77, "bias": 78, "binari": [0, 27, 28, 35, 40, 41, 46, 65, 67, 70, 78], "binary_input_prediction_error_finite_precis": 40, "binary_input_prediction_error_infinite_precis": 41, "binary_node_update_finit": 27, "binary_node_update_infinit": 28, "binary_softmax": 22, "binary_softmax_inverse_temperatur": 23, "binary_state_node_predict": 35, "binary_state_node_prediction_error": 46, "binary_surpris": 9, "binary_surprise_finite_precis": 10, "bivari": 66, "cardiac": 74, "case": [63, 65], "categor": [0, 29, 68], "categorical_input_upd": 29, "cite": 1, "clusters_likelihood": 50, "code": 62, "collect": 66, "comparison": [71, 78], "comput": [71, 72], "configur": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "content": 0, "continu": [0, 30, 31, 32, 33, 36, 37, 38, 42, 43, 44, 47, 48, 49, 65, 69], "continuous_input_prediction_error": 42, "continuous_input_value_prediction_error": 43, "continuous_input_volatility_prediction_error": 44, "continuous_node_predict": 36, "continuous_node_prediction_error": 47, "continuous_node_upd": 30, "continuous_node_update_ehgf": 31, "continuous_node_value_prediction_error": 48, "continuous_node_volatility_prediction_error": 49, "correl": 69, "coupl": [64, 65, 73, 77], "creat": [65, 67, 68, 69, 70], "create_clust": 51, "custom": [65, 70], "data": [67, 69], "dataset": [68, 71, 76], "decis": [70, 76], "deriv": 74, "descend": 65, "detail": 65, "differ": 78, "dirichlet": [0, 39, 50, 51, 52, 53, 54, 55], "dirichlet_kullback_leibl": 11, "dirichlet_node_predict": 39, "dirichlet_node_prediction_error": 52, "distribut": [0, 2, 3, 4, 5, 6, 66, 71], "doe": 62, "drift": 64, "dynam": [64, 65, 66], "edg": 65, "error": [0, 64], "estim": 75, "exampl": [74, 75, 76], "exercis": [63, 77], "exponenti": [0, 34], "famili": 0, "fill_categorical_state_nod": 58, "filter": [62, 63, 64, 66, 67, 68, 69, 74, 77], "first_level_binary_surpris": 24, "first_level_gaussian_surpris": 25, "fit": [62, 67, 68, 69, 78], "fix": [66, 67, 69], "forward": 68, "frequenc": 73, "from": [66, 70, 72, 76], "function": [0, 65, 70, 73], "gaussian": [62, 63, 64, 66, 67, 68, 69, 77], "gaussian_dens": 12, "gaussian_predictive_distribut": 13, "gaussian_surpris": 14, "gener": [0, 45, 62, 64, 77], "generalis": [64, 66, 77], "generic_input_prediction_error": 45, "get": 62, "get_candid": 53, "get_update_sequ": 59, "glossari": [64, 70], "go": 78, "graph": 71, "group": 71, "heart": 74, "hgf": [16, 67, 69, 70, 78], "hgf_logp": 5, "hgfdistribut": 2, "hgflogpgradop": 3, "hgfpointwis": 4, "hierarch": [62, 63, 64, 66, 67, 68, 69, 71, 77], "how": [1, 62], "implement": 65, "import": 67, "independ": 76, "infer": [68, 71, 72, 76], "input": [0, 40, 41, 42, 43, 44, 45, 65, 75], "instal": 62, "instantan": 74, "introduct": [64, 77], "invers": 77, "known": 75, "kown": 75, "learn": [63, 66, 67, 69, 78], "level": [67, 69, 71, 78], "librari": 62, "likely_cluster_propos": 54, "linear": 73, "list_branch": 60, "load": 74, "logp": 6, "manipul": 65, "math": [0, 7, 8, 9, 10, 11, 12, 13, 14, 15], "mcmc": [67, 68, 69], "mean": 75, "miss": 65, "model": [0, 16, 17, 62, 64, 67, 68, 69, 70, 71, 74, 77, 78], "modifi": 65, "multi": 76, "multivari": 65, "multivariatenorm": 7, "network": [17, 62, 64, 65, 68, 71], "neural": [62, 71], "new": 70, "next": 78, "node": [0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 64, 65, 68, 75, 77], "non": [66, 73], "normal": [8, 66], "nu": 66, "observ": [70, 72], "one": 72, "optim": 78, "paramet": [67, 69, 70, 72, 76, 78], "particip": 76, "physiolog": 74, "plot": [0, 18, 19, 20, 21, 67, 69, 71, 74], "plot_correl": 18, "plot_network": 19, "plot_nod": 20, "plot_trajectori": 21, "posterior": [0, 27, 28, 29, 30, 31, 32, 33, 34, 71, 78], "posterior_update_exponential_famili": 34, "posterior_update_mean_continuous_nod": 32, "posterior_update_precision_continuous_nod": 33, "practic": 77, "precis": 75, "predict": [0, 35, 36, 37, 38, 39, 62, 64, 73, 78], "predict_mean": 37, "predict_precis": 38, "prediction_error": [40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], "preprocess": 74, "probabilist": [65, 68, 71, 77], "process": [0, 64], "propag": 64, "punish": 76, "pyhgf": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62], "random": [64, 77, 78], "rate": 74, "real": 76, "record": 74, "recov": [70, 72], "recoveri": [72, 76], "rectifi": 73, "refer": [62, 79], "reinforc": [66, 78], "relu": 73, "rescorla": 78, "respons": [0, 22, 23, 24, 25, 26, 70, 76], "reward": 76, "rl": 78, "rule": [70, 76], "sampl": [67, 68, 69, 71, 78], "sequenc": 65, "sigmoid": 15, "signal": 74, "simul": [68, 71, 72, 76], "solut": [77, 78], "start": 62, "state": [0, 68], "static": 65, "stationari": 66, "statist": 66, "step": 0, "structur": 76, "suffici": 66, "surpris": [67, 69, 70], "system": [64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], "tabl": 0, "task": [72, 76], "theori": [63, 65], "three": [67, 69, 78], "through": 66, "time": [65, 76], "to_panda": 61, "total_gaussian_surpris": 26, "track": 73, "trajectori": [67, 69, 78], "transit": 68, "tutori": 63, "two": [67, 69, 78], "unit": 73, "univari": 66, "unknown": 75, "unkown": 75, "unobserv": 65, "updat": [0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 64, 65, 76], "update_clust": 55, "us": [63, 66, 67, 68, 69, 70], "util": [0, 56, 57, 58, 59, 60, 61], "valu": [64, 65, 73, 77], "vari": 65, "visual": [65, 67, 69, 71, 72], "volatil": [64, 65, 74, 77], "wagner": 78, "walk": [64, 77], "weather": 77, "where": 78, "work": [62, 65], "world": 77}}) \ No newline at end of file