Funsor-based NumPyro
====================

See the `GitHub repo <https://github.com/pyro-ppl/funsor>`_ for more information about Funsor.

.. automodule:: numpyro.contrib.funsor

Effect handlers
---------------

.. autoclass:: numpyro.contrib.funsor.enum_messenger.enum
    :members:
    :undoc-members:
    :show-inheritance:
    :member-order: bysource

.. autoclass:: numpyro.contrib.funsor.enum_messenger.infer_config
    :members:
    :undoc-members:
    :show-inheritance:
    :member-order: bysource

.. autofunction:: numpyro.contrib.funsor.enum_messenger.markov

.. autoclass:: numpyro.contrib.funsor.enum_messenger.plate
    :members:
    :undoc-members:
    :show-inheritance:
    :member-order: bysource

.. autofunction:: numpyro.contrib.funsor.enum_messenger.to_data

.. autofunction:: numpyro.contrib.funsor.enum_messenger.to_funsor

.. autoclass:: numpyro.contrib.funsor.enum_messenger.trace
    :members:
    :undoc-members:
    :show-inheritance:
    :member-order: bysource

Inference Utilities
-------------------

.. autofunction:: numpyro.contrib.funsor.infer_util.config_enumerate

.. autofunction:: numpyro.contrib.funsor.discrete.infer_discrete

.. autofunction:: numpyro.contrib.funsor.infer_util.log_density

.. autofunction:: numpyro.contrib.funsor.infer_util.plate_to_enum_plate
