jesterTOV.inference.likelihoods.constraints.ConstraintTOVLikelihood

jesterTOV.inference.likelihoods.constraints.ConstraintTOVLikelihood#

class ConstraintTOVLikelihood(penalty_tov=-10000000000.0)[source]#

Bases: LikelihoodBase

TOV-level constraint likelihood for enforcing valid TOV integration.

This likelihood only checks TOV integration results (NaN in M-R-Λ). It does NOT check EOS-level constraints. Use together with ConstraintEOSLikelihood for full constraint checking, or use alone when EOS constraints are already satisfied.

The transform must add TOV violation counts to its output dictionary: - ‘n_tov_failures’: Number of NaN in TOV solution (M, R, Λ)

Parameters:

penalty_tov (float, optional) – Log likelihood penalty for TOV integration failure (default: -1e10)

Examples

>>> # In config.yaml (full constraint checking)
>>> likelihoods:
>>>   - type: "constraints_eos"
>>>     enabled: true
>>>   - type: "constraints_tov"
>>>     enabled: true
>>>     parameters:
>>>       penalty_tov: -1.0e10
__init__(penalty_tov=-10000000000.0)[source]#

Methods

__init__([penalty_tov])

evaluate(params)

Evaluate TOV constraint log likelihood.

Attributes

data

The data for the likelihood.

model

The model for the likelihood.

evaluate(params)[source]#

Evaluate TOV constraint log likelihood.

Returns 0.0 if TOV integration succeeded, applies penalty otherwise. Uses jnp.where for JAX compatibility (no Python if-statements).

Parameters:

params (dict[str, float]) – Must contain TOV constraint violation counts from transform: - ‘n_tov_failures’

Return type:

Float

Returns:

Float – TOV penalty (0.0 if valid, large negative if invalid)