Skip to content

Commit

Permalink
Document scan conventions in developer_documentation.rst
Browse files Browse the repository at this point in the history
  • Loading branch information
dylanhmorris committed Sep 17, 2024
1 parent ab8238a commit ff39642
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion docs/source/developer_documentation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,13 @@ PyRenew Principles
- Using default site names in a ``RandomVariable`` is discouraged. Only use default site names at the ``Model`` level.
- Use ``DeterministicVariable``\ s instead of constants within a model.

- `scan` conventions
- Use ``jax.lax.scan`` for any scan whose iterations are deterministic, i.e. iterations contain no internal calls to ``RandomVariable.sample()`` or ``numpyro.sample()``.
- Use ``numpyro.scan`` for any scan whose the iterations are stochastic, i.e. the iterations potentially include calls to ``RandomVariable.sample()`` or ``numpyro.sample``

- Multidimensional array conventions

- In a multidimensional array of timeseries, time is always the first dimension. By default, ``numpyro.scan`` builds by augmenting the first dimension, and variables are often scanned over time, making default output of scan over time sensible.
- In a multidimensional array of timeseries, time is always the first dimension. By default, ``jax.lax.scan()`` and ``numpyro.contrib.control_flow.scan()`` build output arrays by augmenting the first dimension, and variables are often scanned over time, making default output of scan over time sensible.

Adding Documentation to Sphinx
------------------------------
Expand Down

0 comments on commit ff39642

Please sign in to comment.