Source code for sbijax._src.inference.likelihood.snle

"""Surjective neural likelihood estimation.

Implements the method of :cite:t:`dirmeier2023simulation`. SNLE is identical to
NLE at the objective level; the dimensionality reduction that makes it
"surjective" is a property of the network (a surjective flow), not of the
training or sampling logic. This factory therefore delegates to :func:`nle`.
"""

from sbijax._src.inference.likelihood.nle import nle


[docs] def snle(network): """Construct a surjective neural likelihood objective. Args: network: a surjective conditional density estimator with a ``log_prob`` method that reduces the dimensionality of the data Returns: an ``ObjectiveFns`` """ return nle(network)