jaxpint.components#
Base component types for JaxPINT timing model modules.
Component fields that store parameter names must follow the naming
convention: end with _name for a single parameter name, or
_names for a tuple of parameter names. This enables
required_params() to discover them automatically.
- class jaxpint.components.PhaseComponent[source]#
Bases:
ModuleBase class for components that contribute to pulse phase.
Subclasses implement
__call__(self, toa_data, params, delay) -> DualFloat.In the timing model, all PhaseComponents see the same total delay and their phase contributions are summed.
Fields that store parameter names must end with
_name(single) or_names(tuple). This enablesrequired_params().
- class jaxpint.components.NoiseComponent[source]#
Bases:
ModuleBase class for stochastic noise sources.
Every noise source decomposes its covariance as:
C = diag(Ndiag) + U @ diag(Phidiag) @ Uᵀ
Subclasses must implement:
covariance— returns the(Ndiag, U, Phidiag)triple.generate— draws a random noise realization.
The fitter combines multiple
NoiseComponentinstances by summing their diagonal contributions and horizontally concatenating their basis matrices and weight vectors.Fields that store parameter names must end with
_name(single) or_names(tuple). This enablesrequired_params().- covariance(toa_data, params)[source]#
Return the Woodbury decomposition of this component’s covariance.
Returns
(Ndiag, U, Phidiag)such that:C = diag(Ndiag) + U @ diag(Phidiag) @ Uᵀ
For purely diagonal noise, return
(Ndiag, None, None). For purely low-rank noise, return(zeros, U, Phidiag).- Parameters:
toa_data (
TOAData) – Pre-extracted TOA data (TDB times, frequencies, positions, etc.).params (
ParameterVector) – Timing model parameters.
- Returns:
- Raises:
NotImplementedError – Must be overridden by subclasses.
- Return type:
tuple[Float[Array, ‘n_toas’], Float[Array, ‘n_toas n_basis’] | None, Float[Array, ‘n_basis’] | None]
- generate(toa_data, params, key)[source]#
Draw a random noise realization.
- Parameters:
toa_data (
TOAData) – Pre-extracted TOA data.params (
ParameterVector) – Timing model parameters (including noise parameter values).key (
JAX PRNG key) – Random key for reproducible sampling.
- Returns:
Noise delays in seconds.
- Return type:
(n_toas,)- Raises:
NotImplementedError – Must be overridden by subclasses.
- class jaxpint.components.DelayComponent[source]#
Bases:
ModuleBase class for components that contribute to signal delay.
Subclasses implement
__call__(self, toa_data, params, delay) -> Array.In the timing model, DelayComponents are applied sequentially: each component sees the accumulated delay from prior components.
Fields that store parameter names must end with
_name(single) or_names(tuple). This enablesrequired_params().
- class jaxpint.components.DispersionDelayComponent[source]#
Bases:
DelayComponentBase class for delay components that contribute to dispersion measure.
Subclasses must implement
compute_dm()returning the DM contribution in pc/cm³, in addition to__call__()which returns delay in seconds. The timing model usescompute_dmto evaluate the total model DM for wideband fitting.- compute_dm(toa_data, params, delay)[source]#
Return this component’s DM contribution in pc/cm³.
- Parameters:
toa_data (
TOAData) – Pre-extracted TOA data.params (
ParameterVector) – Timing model parameters.delay (
(n_toas,)) – Accumulated signal delay in seconds from prior delay components.
- Returns:
DM contribution in pc/cm³.
- Return type:
(n_toas,)- Raises:
NotImplementedError – Must be overridden by subclasses.