sequince.mcmc
=============

.. py:module:: sequince.mcmc


Classes
-------

.. autoapisummary::

   sequince.mcmc.MCMCResult
   sequince.mcmc.MarkovChainMonteCarlo


Functions
---------

.. autoapisummary::

   sequince.mcmc.make_mcmc


Module Contents
---------------

.. py:class:: MCMCResult

   Result of applying one or more checkpointable MCMC mutation blocks.


   .. py:attribute:: states
      :type:  collections.abc.Sequence[sequince.state.ParticleState]


   .. py:attribute:: context
      :type:  sequince.steps.base.StepContext


   .. py:attribute:: outputs
      :type:  collections.abc.Sequence[tuple[Any, ...]]


   .. py:method:: from_smc_result(result)
      :classmethod:


      Build an MCMC result from a mutation-only sequential run.



   .. py:method:: encode_for_hdf5(*, strict = False)

      Return the logical HDF5 payload for this MCMC result.



   .. py:method:: save(h5_file_or_group, path = 'mcmc_result', *, strict = False)

      Save this MCMC result below ``path`` in an open HDF5 handle.



   .. py:method:: load(h5_file_or_group, path = 'mcmc_result')
      :classmethod:


      Load an MCMC result from ``path`` in an open HDF5 handle.



   .. py:property:: final_state
      :type: sequince.state.ParticleState



   .. py:property:: chain
      :type: sequince.typing.Array


      Return mutation blocks concatenated as ``(steps, chains, dims)``.


   .. py:property:: diagnostics
      :type: dict[str, Any]


      Return diagnostics from the final mutation output.


   .. py:method:: samples(*, burn_in = 0, thin = 1, flat = True)

      Return the chain after burn-in and thinning.



.. py:class:: MarkovChainMonteCarlo(mutation, *, callbacks = None, checkpoint_writers = None)

   Checkpointable standalone MCMC built from a Sequince mutation step.


   .. py:attribute:: mutation


   .. py:method:: run(initial_state = None, *, rng = None, shared_context = None, metadata = None, outputs = None, runtime = None)

      Run one configured MCMC block.



   .. py:method:: resume_from(checkpoint, *, rng = None, shared_context = None)

      Restore a checkpoint for continuation with :meth:`run`.



.. py:function:: make_mcmc(log_prob_fn, *, mutation = 'minipcn', n_steps = 100, mutation_kwargs = None, particle_transform = None, callbacks = None, checkpoint_writers = None)

   Construct standalone MCMC using an existing Sequince mutation backend.


