sequince.steps.transformations
==============================

.. py:module:: sequince.steps.transformations


Attributes
----------

.. autoapisummary::

   sequince.steps.transformations.logger
   sequince.steps.transformations.MetadataUpdateFn


Classes
-------

.. autoapisummary::

   sequince.steps.transformations.SMCTransformation
   sequince.steps.transformations.MetadataTransformation
   sequince.steps.transformations.TransformationStep
   sequince.steps.transformations.ExpandDimensions


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

.. py:data:: logger

.. py:data:: MetadataUpdateFn

.. py:class:: SMCTransformation

   Transformation between successive SMC targets.


   .. py:method:: forward(state, context, rng)


   .. py:method:: forward_with_context(state, context, rng)

      Apply the transformation and return its context explicitly.



   .. py:method:: inverse(particles, context)


   .. py:method:: log_auxiliary_density(particles, context)


   .. py:method:: log_jacobian(particles, context)


   .. py:method:: make_log_proposal(base_log_proposal, context)

      Return a log proposal function corresponding to the new proposal
      distribution after applying this transformation.

      :param base_log_proposal: The log proposal function before applying the transformation.
      :param context: The step context, which may contain metadata needed to define the
                      new log proposal.



.. py:class:: MetadataTransformation

   Bases: :py:obj:`SMCTransformation`


   Same-space transformation that only updates metadata.


   .. py:attribute:: state_metadata_fn
      :type:  MetadataUpdateFn | None
      :value: None



   .. py:attribute:: context_metadata_fn
      :type:  MetadataUpdateFn | None
      :value: None



   .. py:method:: forward_with_context(state, context, rng)

      Apply the transformation and return its context explicitly.



.. py:class:: TransformationStep(transformation, *, posterior = None, transformation_key = SMC_TRANSFORMATION_KEY)

   Bases: :py:obj:`sequince.steps.base.SMCStep`


   Apply a general SMC transformation and expose it to later steps.


   .. py:method:: apply(state, context, rng)


.. py:class:: ExpandDimensions(transformation, *, expected_block_size = None, metadata_key = 'dimensions', added_dimensions_key = 'added_dimensions', dimension_delta_key = 'last_dimension_delta', posterior = None, transformation_key = SMC_TRANSFORMATION_KEY)

   Bases: :py:obj:`TransformationStep`


   Apply an SMC transformation that increases the particle dimension.


   .. py:method:: apply(state, context, rng)


