sequince.steps.log
==================

.. py:module:: sequince.steps.log


Attributes
----------

.. autoapisummary::

   sequince.steps.log.logger


Classes
-------

.. autoapisummary::

   sequince.steps.log.LoggingStep


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

.. py:data:: logger

.. py:class:: LoggingStep(str_fn, level = logging.INFO, frequency = 1)

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


   A simple step that logs a message at each iteration.

   .. rubric:: Examples

   >>> def log_fn(state, context):
   ...     return f"Iteration {context.t}: ESS={state.effective_sample_size():.2f}"
   >>> step = LoggingStep(str_fn=log_fn, level=logging.INFO, frequency=1)
   >>> smc = SequentialMonteCarlo(steps=[..., step, ...])

   :param str_fn: A function that takes the current ``ParticleState`` and ``StepContext``
                  and returns a string message to log.
   :param level: The logging level to use (e.g., ``logging.INFO``).
   :param frequency: How often to log the message (in terms of SMC iterations).


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


