jaxpint.binary#
Binary delay models for JaxPINT.
Ports PINT’s standalone binary models as pure Equinox modules with JAX autodiff.
- class jaxpint.binary.BinaryBT(pb_name='PB', t0_name='T0', a1_name='A1', ecc_name='ECC', om_name='OM', pbdot_name=None, omdot_name=None, edot_name=None, a1dot_name=None, gamma_name=None, xpbdot_name=None)[source]#
Bases:
DelayComponentBlandford-Teukolsky binary delay model.
All hand-coded derivatives are omitted;
jax.jacobianthrough__call__replaces PINT’sd_BTdelay_d_*functions.- Parameters:
pb_name (
str) – Name of binary period parameter (days).t0_name (
str) – Name of periastron epoch parameter (MJD, int/frac split).a1_name (
str) – Name of projected semi-major axis parameter (light-seconds).ecc_name (
str) – Name of eccentricity parameter (dimensionless).om_name (
str) – Name of longitude of periastron parameter (radians in ParameterVector).pbdot_name (str | None) – Optional parameter names for secular derivatives.
Nonedisables.omdot_name (str | None) – Optional parameter names for secular derivatives.
Nonedisables.edot_name (str | None) – Optional parameter names for secular derivatives.
Nonedisables.a1dot_name (str | None) – Optional parameter names for secular derivatives.
Nonedisables.gamma_name (str | None) – Optional parameter names for secular derivatives.
Nonedisables.xpbdot_name (str | None) – Optional parameter names for secular derivatives.
Nonedisables.
- class jaxpint.binary.BinaryBTPiecewise(pb_name='PB', t0_name='T0', a1_name='A1', ecc_name='ECC', om_name='OM', pbdot_name=None, omdot_name=None, edot_name=None, a1dot_name=None, gamma_name=None, xpbdot_name=None, n_pieces=0, t0x_names=(), a1x_names=(), xr1_names=(), xr2_names=())[source]#
Bases:
DelayComponentPiecewise BT binary delay model.
Allows different T0 and A1 values for non-overlapping time intervals. The number of pieces and their parameter names are static (set at construction time from the parfile). TOAs outside all defined pieces use the global T0 and A1.
- Parameters:
n_pieces (
int) – Number of piecewise intervals.t0x_names (
tupleofstr) – Parameter names for piecewise T0 values (epoch parameters).a1x_names (
tupleofstr) – Parameter names for piecewise A1 values.xr1_names (
tupleofstr) – Parameter names for piece lower/upper boundaries (MJD, stored as regular parameters in ParameterVector).xr2_names (
tupleofstr) – Parameter names for piece lower/upper boundaries (MJD, stored as regular parameters in ParameterVector).pb_name (str)
t0_name (str)
a1_name (str)
ecc_name (str)
om_name (str)
pbdot_name (str | None)
omdot_name (str | None)
edot_name (str | None)
a1dot_name (str | None)
gamma_name (str | None)
xpbdot_name (str | None)
- class jaxpint.binary.BinaryDD(pb_name='PB', t0_name='T0', a1_name='A1', ecc_name='ECC', om_name='OM', pbdot_name=None, omdot_name=None, edot_name=None, a1dot_name=None, xpbdot_name=None, gamma_name=None, dr_name=None, dth_name=None, a0_name=None, b0_name=None, shapiro_mode='standard', m2_name=None, sini_name=None, shapmax_name=None, h3_name=None, stigma_name=None)[source]#
Bases:
DelayComponentDamour-Deruelle binary delay model.
All hand-coded derivatives are omitted;
jax.jacobianthrough__call__replaces PINT’sd_DDdelay_d_*functions.Supports three Shapiro delay parameterizations via
shapiro_mode:"standard"(DD): UsesSINIandM2directly."shapmax"(DDS): UsesSHAPMAX = -ln(1 - sin(i))."h3stigma"(DDH): UsesH3andSTIGMA.
- Parameters:
pb_name (str)
t0_name (str)
a1_name (str)
ecc_name (str)
om_name (str)
pbdot_name (str | None)
omdot_name (str | None)
edot_name (str | None)
a1dot_name (str | None)
xpbdot_name (str | None)
gamma_name (str | None)
dr_name (str | None)
dth_name (str | None)
a0_name (str | None)
b0_name (str | None)
shapiro_mode (str)
m2_name (str | None)
sini_name (str | None)
shapmax_name (str | None)
h3_name (str | None)
stigma_name (str | None)
- class jaxpint.binary.BinaryDDGR(pb_name='PB', t0_name='T0', a1_name='A1', ecc_name='ECC', om_name='OM', mtot_name='MTOT', m2_name='M2', edot_name=None, a1dot_name=None, xomdot_name=None, xpbdot_name=None, a0_name=None, b0_name=None)[source]#
Bases:
DelayComponentDD model with GR-derived post-Keplerian parameters.
Input masses MTOT and M2 determine all PK parameters via GR. XOMDOT and XPBDOT allow for excess beyond GR predictions.
- Parameters:
- class jaxpint.binary.BinaryDDK(pb_name='PB', t0_name='T0', a1_name='A1', ecc_name='ECC', om_name='OM', pbdot_name=None, omdot_name=None, edot_name=None, a1dot_name=None, xpbdot_name=None, gamma_name=None, dr_name=None, dth_name=None, a0_name=None, b0_name=None, m2_name=None, kin_name='KIN', kom_name='KOM', k96=True, raj_name='RAJ', decj_name='DECJ', pmra_name=None, pmdec_name=None, posepoch_name=None, px_name='PX')[source]#
Bases:
DelayComponentDDK binary delay model.
All hand-coded derivatives are omitted;
jax.jacobianthrough__call__replaces PINT’sd_*_d_*methods.- Parameters:
kin_name (
str) – Inclination angle KIN (radians in ParameterVector).kom_name (
str) – Longitude of ascending node KOM (radians in ParameterVector).k96 (
bool) – If True, apply proper motion corrections (Kopeikin 1996).raj_name (
str) – Pulsar position parameter names (radians).decj_name (
str) – Pulsar position parameter names (radians).pmra_name (
str, optional) – Proper motion parameter names (mas/yr or equivalent).pmdec_name (
str, optional) – Proper motion parameter names (mas/yr or equivalent).posepoch_name (
str, optional) – Proper motion reference epoch.px_name (
str) – Parallax parameter name (mas).pb_name (str)
t0_name (str)
a1_name (str)
ecc_name (str)
om_name (str)
pbdot_name (str | None)
omdot_name (str | None)
edot_name (str | None)
a1dot_name (str | None)
xpbdot_name (str | None)
gamma_name (str | None)
dr_name (str | None)
dth_name (str | None)
a0_name (str | None)
b0_name (str | None)
m2_name (str | None)
- class jaxpint.binary.BinaryELL1(pb_name='PB', tasc_name='TASC', a1_name='A1', eps1_name='EPS1', eps2_name='EPS2', pbdot_name=None, a1dot_name=None, eps1dot_name=None, eps2dot_name=None, xpbdot_name=None, shapiro_mode='standard', m2_name=None, sini_name=None, h3_name=None, h4_name=None, stigma_name=None, nharms=7, omdot_name=None, lnedot_name=None)[source]#
Bases:
DelayComponentELL1 binary delay model for low-eccentricity orbits.
Uses rectangular eccentricity (EPS1, EPS2) and TASC epoch. Shapiro delay parameterization controlled by
shapiro_mode:"standard": UsesSINIandM2directly."none": No Shapiro delay.
- Parameters:
pb_name (str)
tasc_name (str)
a1_name (str)
eps1_name (str)
eps2_name (str)
pbdot_name (str | None)
a1dot_name (str | None)
eps1dot_name (str | None)
eps2dot_name (str | None)
xpbdot_name (str | None)
shapiro_mode (str)
m2_name (str | None)
sini_name (str | None)
h3_name (str | None)
h4_name (str | None)
stigma_name (str | None)
nharms (int)
omdot_name (str | None)
lnedot_name (str | None)
- jaxpint.binary.solve_kepler(mean_anomaly, eccentricity)[source]#
Solve Kepler’s equation E - e sin(E) = M for eccentric anomaly E.
Uses Halley’s method with a Danby (1988) initial guess and unrolled iterations so that
jax.gradandjax.jacobianwork natively.- Parameters:
mean_anomaly (
array) – Mean anomaly M in radians.eccentricity (
array) – Orbital eccentricity (0 <= e < 1). Must broadcast with mean_anomaly.
- Returns:
Eccentric anomaly E in radians, same shape as inputs.
- Return type:
array