83 #include <lal/BinaryPulsarTiming.h>
87 #include <lal/LALConstants.h>
88 #include <lal/LALStdlib.h>
89 #include <lal/LALString.h>
90 #include <lal/SSBtimes.h>
93 #define UNUSED __attribute__ ((unused))
98 #define AULTSC 499.00478364
108 *
u = phase + ecc * sin( phase ) / sqrt( 1.0 - 2.*ecc * cos( phase ) + ecc * ecc );
110 du = ( phase - ( *
u - ecc * sin( *
u ) ) ) / ( 1.0 - ecc * cos( *
u ) );
112 }
while ( fabs( du ) > 1.e-14 );
125 REAL8 sin_delta, cos_delta, sin_alpha, cos_alpha;
126 REAL8 delta_i0, delta_j0;
127 REAL8 sin_omega, cos_omega;
128 REAL8 ca, sa, cd, sd;
130 REAL8 posPulsar[3], velPulsar[3], psrPos[3];
135 sini = sin(
params->kin );
139 sin_omega = sin(
params->kom );
140 cos_omega = cos(
params->kom );
161 posPulsar[0] = ca * cd;
162 posPulsar[1] = sa * cd;
167 velPulsar[2] =
params->pmdec * cd;
172 psrPos[
i] = posPulsar[
i] + delt * velPulsar[
i];
176 sin_delta = psrPos[2];
177 cos_delta = cos( asin( sin_delta ) );
178 sin_alpha = psrPos[1] / cos_delta;
179 cos_alpha = psrPos[0] / cos_delta;
200 kop->
DK011 = -
x / daop / sini * delta_i0 * sin_omega;
201 kop->
DK012 = -
x / daop / sini * delta_j0 * cos_omega;
202 kop->
DK013 = -
x / daop / sini * delta_i0 * cos_omega;
203 kop->
DK014 =
x / daop / sini * delta_j0 * sin_omega;
205 kop->
DK021 =
x / daop / tani * delta_i0 * cos_omega;
206 kop->
DK022 = -
x / daop / tani * delta_j0 * sin_omega;
207 kop->
DK023 =
x / daop / tani * delta_i0 * sin_omega;
208 kop->
DK024 =
x / daop / tani * delta_j0 * cos_omega;
210 kop->
DK011 = -
x * dpara / sini * delta_i0 * sin_omega;
211 kop->
DK012 = -
x * dpara / sini * delta_j0 * cos_omega;
212 kop->
DK013 = -
x * dpara / sini * delta_i0 * cos_omega;
213 kop->
DK014 =
x * dpara / sini * delta_j0 * sin_omega;
215 kop->
DK021 =
x * dpara / tani * delta_i0 * cos_omega;
216 kop->
DK022 = -
x * dpara / tani * delta_j0 * sin_omega;
217 kop->
DK023 =
x * dpara / tani * delta_i0 * sin_omega;
218 kop->
DK024 =
x * dpara / tani * delta_j0 * cos_omega;
223 }
else if (
params->Tasc != 0. ) {
231 kop->
DK032 =
x * tt0 / sini *
params->pmdec * cos_omega;
233 kop->
DK034 = -
x * tt0 / sini *
params->pmdec * sin_omega;
236 kop->
DK042 = -
x * tt0 / tani *
params->pmdec * sin_omega;
237 kop->
DK043 = -
x * tt0 / tani *
params->pmra * sin_omega;
238 kop->
DK044 = -
x * tt0 / tani *
params->pmdec * cos_omega;
247 REAL8 sin_delta, cos_delta, sin_alpha, cos_alpha;
248 REAL8 delta_i0, delta_j0;
249 REAL8 sin_omega, cos_omega;
250 REAL8 ca, sa, cd, sd;
252 REAL8 posPulsar[3], velPulsar[3], psrPos[3];
263 sin_omega = sin( kom );
264 cos_omega = cos( kom );
299 posPulsar[0] = ca * cd;
300 posPulsar[1] = sa * cd;
305 velPulsar[0] = -pmra / cos( dec ) * sa * cd - pmdec * ca * sd;
306 velPulsar[1] = pmra / cos( dec ) * ca * cd - pmdec * sa * sd;
307 velPulsar[2] = pmdec * cd;
312 psrPos[
i] = posPulsar[
i] + delt * velPulsar[
i];
316 sin_delta = psrPos[2];
317 cos_delta = cos( asin( sin_delta ) );
318 sin_alpha = psrPos[1] / cos_delta;
319 cos_alpha = psrPos[0] / cos_delta;
340 kop->
DK011 = -
x / daop / sini * delta_i0 * sin_omega;
341 kop->
DK012 = -
x / daop / sini * delta_j0 * cos_omega;
342 kop->
DK013 = -
x / daop / sini * delta_i0 * cos_omega;
343 kop->
DK014 =
x / daop / sini * delta_j0 * sin_omega;
345 kop->
DK021 =
x / daop / tani * delta_i0 * cos_omega;
346 kop->
DK022 = -
x / daop / tani * delta_j0 * sin_omega;
347 kop->
DK023 =
x / daop / tani * delta_i0 * sin_omega;
348 kop->
DK024 =
x / daop / tani * delta_j0 * cos_omega;
350 kop->
DK011 = -
x * dpara / sini * delta_i0 * sin_omega;
351 kop->
DK012 = -
x * dpara / sini * delta_j0 * cos_omega;
352 kop->
DK013 = -
x * dpara / sini * delta_i0 * cos_omega;
353 kop->
DK014 =
x * dpara / sini * delta_j0 * sin_omega;
355 kop->
DK021 =
x * dpara / tani * delta_i0 * cos_omega;
356 kop->
DK022 = -
x * dpara / tani * delta_j0 * sin_omega;
357 kop->
DK023 =
x * dpara / tani * delta_i0 * sin_omega;
358 kop->
DK024 =
x * dpara / tani * delta_j0 * cos_omega;
365 }
else if ( Tasc != 0. ) {
372 kop->
DK031 =
x * tt0 / sini * pmra * sin_omega;
373 kop->
DK032 =
x * tt0 / sini * pmdec * cos_omega;
374 kop->
DK033 =
x * tt0 / sini * pmra * cos_omega;
375 kop->
DK034 = -
x * tt0 / sini * pmdec * sin_omega;
377 kop->
DK041 =
x * tt0 / tani * pmra * cos_omega;
378 kop->
DK042 = -
x * tt0 / tani * pmdec * sin_omega;
379 kop->
DK043 = -
x * tt0 / tani * pmra * sin_omega;
380 kop->
DK044 = -
x * tt0 / tani * pmdec * cos_omega;
409 ( !strcmp(
params->model,
"BT1P" ) ) ||
410 ( !strcmp(
params->model,
"BT2P" ) ) ||
411 ( !strcmp(
params->model,
"BTX" ) ) ||
412 ( !strcmp(
params->model,
"ELL1" ) ) ||
413 ( !strcmp(
params->model,
"DD" ) ) ||
414 ( !strcmp(
params->model,
"DDS" ) ) ||
415 ( !strcmp(
params->model,
"MSS" ) ) ||
440 REAL8 eps1dot, eps2dot;
470 if ( ( !strcmp(
params->model,
"BT" ) ) &&
471 ( !strcmp(
params->model,
"BT1P" ) ) &&
472 ( !strcmp(
params->model,
"BT2P" ) ) &&
473 ( !strcmp(
params->model,
"BTX" ) ) &&
474 ( !strcmp(
params->model,
"ELL1" ) ) &&
475 ( !strcmp(
params->model,
"DD" ) ) &&
476 ( !strcmp(
params->model,
"DDS" ) ) &&
477 ( !strcmp(
params->model,
"MSS" ) ) &&
478 ( !strcmp(
params->model,
"T2" ) ) ) {
496 eps1dot =
params->eps1dot;
497 eps2dot =
params->eps2dot;
503 lal_gamma =
params->gamma;
507 shapmax =
params->shapmax;
518 if (
T0 == 0.0 && Tasc != 0.0 && eps1 == 0.0 && eps2 == 0.0 ) {
521 fe = sqrt( ( 1.0 -
e ) / ( 1.0 +
e ) );
522 uasc = 2.0 * atan( fe * tan( w0 / 2.0 ) );
523 Dt = ( Pb /
LAL_TWOPI ) * ( uasc -
e * sin( uasc ) );
532 if ( strstr( model,
"BT" ) != NULL ) {
543 REAL8 su = 0., cu = 0.;
544 REAL8 sw = 0., cw = 0.;
547 if ( !strcmp( model,
"BT1P" ) ) {
550 if ( !strcmp( model,
"BT2P" ) ) {
554 for (
i = 1 ;
i < nplanets + 1 ;
i++ ) {
572 }
else if (
i == 3 ) {
588 if ( !strcmp( model,
"BTX" ) ) {
590 for (
j = 1 ;
j <
params->nfb + 1;
j++ ) {
592 orbits += fac *
params->fb[
j - 1] * pow( tt0,
j );
595 orbits = tt0 / Pb - 0.5 * ( pbdot + xpbdot ) * ( tt0 / Pb ) * ( tt0 / Pb );
601 norbits = (
INT4 )orbits;
621 if ( !strcmp( model,
"BTX" ) ) {
625 dt += (
x * sw * ( cu -
e ) + (
x * cw * sqrt( 1.0 -
e *
e ) +
626 lal_gamma ) * su ) * ( 1.0 -
LAL_TWOPI *
params->fb[0] * (
x * cw * sqrt( 1.0 -
627 e *
e ) * cu -
x * sw * su ) / ( 1.0 -
e * cu ) );
632 dt += (
x * sw * ( cu -
e ) + (
x * cw * sqrt( 1.0 -
e *
e ) +
633 lal_gamma ) * su ) * ( 1.0 - (
LAL_TWOPI / Pb ) * (
x * cw * sqrt( 1.0 -
634 e *
e ) * cu -
x * sw * su ) / ( 1.0 -
e * cu ) );
659 if ( !strcmp( model,
"ELL1" ) || ( !strcmp( model,
"T2" ) && eps1 != 0. ) ) {
666 REAL8 DRE, DREp, DREpp;
676 REAL8 sp = 0.,
cp = 0., s2p = 0., c2p = 0.;
683 ecc = sqrt( eps1 * eps1 + eps2 * eps2 );
686 if ( Tasc == 0.0 &&
T0 != 0.0 ) {
689 fe = sqrt( ( 1.0 - ecc ) / ( 1.0 + ecc ) );
690 uasc = 2.0 * atan( fe * tan( w0 / 2.0 ) );
691 Dt = ( Pb /
LAL_TWOPI ) * ( uasc - ecc * sin( uasc ) );
707 fac /= (
REAL8 )(
j + 1 );
708 orbits += fac *
params->fb[
j] * pow( tt0,
j + 1 );
711 orbits = tt0 / Pb - 0.5 * ( pbdot + xpbdot ) * ( tt0 / Pb ) * ( tt0 / Pb );
716 norbits = (
INT4 )orbits;
717 if ( orbits < 0.0 ) {
726 if (
params->nEll == 0 ) {
727 e1 = eps1 + eps1dot * tt0;
728 e2 = eps2 + eps2dot * tt0;
730 ecc = sqrt( eps1 * eps1 + eps2 * eps2 );
732 w_int = atan2( eps1, eps2 );
733 w_int = w_int + wdot * tt0;
735 e1 = ecc * sin( w_int );
736 e2 = ecc * cos( w_int );
743 s2p = sin( 2.*phase );
744 c2p = cos( 2.*phase );
750 DRE =
x * ( sp - 0.5 * ( e1 * c2p - e2 * s2p ) );
755 dlogbr = log( 1.0 -
s * sp );
756 DS = -2.0 *
r * dlogbr;
757 DA = a0 * sp +
b0 *
cp;
764 Ck = sp - 0.5 * ( e1 * c2p - e2 * s2p );
765 Sk =
cp + 0.5 * ( e2 * c2p + e1 * s2p );
774 Dbb = DRE * ( 1.0 - nb * DREp + ( nb * DREp ) * ( nb * DREp ) + 0.5 * nb * nb * DRE * DREpp ) + DS + DA
785 if ( !strcmp( model,
"DD" ) || !strcmp( model,
"MSS" ) || !strcmp( model,
"DDS" ) || ( !strcmp( model,
"T2" ) && eps1 == 0. ) ) {
799 REAL8 onemecu, cae, sae;
801 REAL8 anhat, sqr1me2, cume, brace, dlogbr;
807 REAL8 su = 0., cu = 0.;
808 REAL8 sw = 0., cw = 0.;
824 if ( !strcmp( model,
"DD" ) ) {
832 er =
e * ( 1.0 + dr );
833 eth =
e * ( 1.0 + dth );
835 orbits = ( tt0 / Pb ) - 0.5 * ( pbdot + xpbdot ) * ( tt0 / Pb ) * ( tt0 / Pb );
836 norbits = (
INT4 )orbits;
838 if ( orbits < 0.0 ) {
851 onemecu = 1.0 -
e * cu;
852 cae = ( cu -
e ) / onemecu;
853 sae = sqrt( 1.0 -
e *
e ) * su / onemecu;
855 Ae = atan2( sae, cae );
866 if ( !strcmp( model,
"MSS" ) ) {
879 beta =
x * sqrt( 1.0 - eth * eth ) * cw;
880 bg = beta + lal_gamma;
881 DRE =
alpha * ( cu - er ) + bg * su;
882 DREp = -
alpha * su + bg * cu;
883 DREpp = -
alpha * cu - bg * su;
884 anhat = an / onemecu;
887 sqr1me2 = sqrt( 1.0 -
e *
e );
889 if ( !strcmp( model,
"DDS" ) ) {
890 sdds = 1. - exp( -1.*shapmax );
891 brace = onemecu - sdds * ( sw * cume + sqr1me2 * cw * su );
893 brace = onemecu -
s * ( sw * cume + sqr1me2 * cw * su );
895 dlogbr = log( brace );
896 DS = -2.0 *
r * dlogbr;
899 DA = a0 * ( sin(
w + Ae ) +
e * sw ) +
b0 * ( cos(
w + Ae ) +
e * cw );
906 Ck = cw * ( cu - er ) - sqrt( 1. - eth * eth ) * sw * su;
907 Sk = sw * ( cu - er ) + sqrt( 1. - eth * eth ) * cw * su;
917 Dbb = DRE * ( 1.0 - anhat * DREp + anhat * anhat * DREp * DREp + 0.5 * anhat * anhat * DRE * DREpp -
918 0.5 *
e * su * anhat * anhat * DRE * DREp / onemecu ) + DS + DA + DAOP + DSR;
928 if ( isnan(
output->deltaT ) ) {
944 REAL8 eps1dot, eps2dot;
975 if ( ( !strcmp( model,
"BT" ) ) &&
976 ( !strcmp( model,
"BT1P" ) ) &&
977 ( !strcmp( model,
"BT2P" ) ) &&
978 ( !strcmp( model,
"BTX" ) ) &&
979 ( !strcmp( model,
"ELL1" ) ) &&
980 ( !strcmp( model,
"DD" ) ) &&
981 ( !strcmp( model,
"DDS" ) ) &&
982 ( !strcmp( model,
"MSS" ) ) &&
983 ( !strcmp( model,
"T2" ) ) ) {
1026 if (
T0 == 0.0 && Tasc != 0.0 && eps1 == 0.0 && eps2 == 0.0 ) {
1029 fe = sqrt( ( 1.0 -
e ) / ( 1.0 +
e ) );
1030 uasc = 2.0 * atan( fe * tan( w0 / 2.0 ) );
1031 Dt = ( Pb /
LAL_TWOPI ) * ( uasc -
e * sin( uasc ) );
1040 if ( strstr( model,
"BT" ) != NULL ) {
1051 REAL8 su = 0., cu = 0.;
1052 REAL8 sw = 0., cw = 0.;
1055 if ( !strcmp( model,
"BT1P" ) ) {
1058 if ( !strcmp( model,
"BT2P" ) ) {
1062 for (
i = 1 ;
i < nplanets + 1 ;
i++ ) {
1079 }
else if (
i == 3 ) {
1093 w = w0 + wdot * tt0;
1101 orbits += fac * fb->
data[
j - 1] * pow( tt0,
j );
1104 orbits = tt0 / Pb - 0.5 * ( pbdot + xpbdot ) * ( tt0 / Pb ) * ( tt0 / Pb );
1110 norbits = (
INT4 )orbits;
1112 if ( orbits < 0. ) {
1130 if ( !strcmp( model,
"BTX" ) ) {
1139 dt += (
x * sw * ( cu -
e ) + (
x * cw * sqrt( 1.0 -
e *
e ) +
1140 lal_gamma ) * su ) * ( 1.0 -
LAL_TWOPI * fb0 * (
x * cw * sqrt( 1.0 -
1141 e *
e ) * cu -
x * sw * su ) / ( 1.0 -
e * cu ) );
1146 dt += (
x * sw * ( cu -
e ) + (
x * cw * sqrt( 1.0 -
e *
e ) +
1147 lal_gamma ) * su ) * ( 1.0 - (
LAL_TWOPI / Pb ) * (
x * cw * sqrt( 1.0 -
1148 e *
e ) * cu -
x * sw * su ) / ( 1.0 -
e * cu ) );
1173 if ( !strcmp( model,
"ELL1" ) || ( !strcmp( model,
"T2" ) && eps1 != 0. ) ) {
1177 REAL8 orbits, phase;
1180 REAL8 DRE, DREp, DREpp;
1190 REAL8 sp = 0.,
cp = 0., s2p = 0., c2p = 0.;
1197 ecc = sqrt( eps1 * eps1 + eps2 * eps2 );
1200 if ( Tasc == 0.0 &&
T0 != 0.0 ) {
1203 fe = sqrt( ( 1.0 - ecc ) / ( 1.0 + ecc ) );
1204 uasc = 2.0 * atan( fe * tan( w0 / 2.0 ) );
1205 Dt = ( Pb /
LAL_TWOPI ) * ( uasc - ecc * sin( uasc ) );
1218 Pb = 1. / fb->
data[0];
1223 fac /= (
REAL8 )(
j + 1 );
1224 orbits += fac * fb->
data[
j] * pow( tt0,
j + 1 );
1227 orbits = tt0 / Pb - 0.5 * ( pbdot + xpbdot ) * ( tt0 / Pb ) * ( tt0 / Pb );
1232 norbits = (
INT4 )orbits;
1233 if ( orbits < 0.0 ) {
1242 if ( eps1dot != 0. || eps2dot != 0. ) {
1243 e1 = eps1 + eps1dot * tt0;
1244 e2 = eps2 + eps2dot * tt0;
1246 ecc = sqrt( eps1 * eps1 + eps2 * eps2 );
1248 w_int = atan2( eps1, eps2 );
1249 w_int = w_int + wdot * tt0;
1251 e1 = ecc * sin( w_int );
1252 e2 = ecc * cos( w_int );
1259 s2p = sin( 2.*phase );
1260 c2p = cos( 2.*phase );
1266 DRE =
x * ( sp - 0.5 * ( e1 * c2p - e2 * s2p ) );
1271 dlogbr = log( 1.0 -
s * sp );
1272 DS = -2.0 *
r * dlogbr;
1273 DA = a0 * sp +
b0 *
cp;
1279 Ck = sp - 0.5 * ( e1 * c2p - e2 * s2p );
1280 Sk =
cp + 0.5 * ( e2 * c2p + e1 * s2p );
1289 Dbb = DRE * ( 1.0 - nb * DREp + ( nb * DREp ) * ( nb * DREp ) + 0.5 * nb * nb * DRE * DREpp ) + DS + DA
1300 if ( !strcmp( model,
"DD" ) || !strcmp( model,
"MSS" ) || !strcmp( model,
"DDS" ) || ( !strcmp( model,
"T2" ) && eps1 == 0. ) ) {
1312 REAL8 orbits, phase;
1314 REAL8 onemecu, cae, sae;
1316 REAL8 anhat, sqr1me2, cume, brace, dlogbr;
1322 REAL8 su = 0., cu = 0.;
1323 REAL8 sw = 0., cw = 0.;
1339 if ( !strcmp( model,
"DD" ) ) {
1347 er =
e * ( 1.0 + dr );
1348 eth =
e * ( 1.0 + dth );
1350 orbits = ( tt0 / Pb ) - 0.5 * ( pbdot + xpbdot ) * ( tt0 / Pb ) * ( tt0 / Pb );
1351 norbits = (
INT4 )orbits;
1353 if ( orbits < 0.0 ) {
1366 onemecu = 1.0 -
e * cu;
1367 cae = ( cu -
e ) / onemecu;
1368 sae = sqrt( 1.0 -
e *
e ) * su / onemecu;
1370 Ae = atan2( sae, cae );
1381 if ( !strcmp( model,
"MSS" ) ) {
1394 beta =
x * sqrt( 1.0 - eth * eth ) * cw;
1395 bg = beta + lal_gamma;
1396 DRE =
alpha * ( cu - er ) + bg * su;
1397 DREp = -
alpha * su + bg * cu;
1398 DREpp = -
alpha * cu - bg * su;
1399 anhat = an / onemecu;
1402 sqr1me2 = sqrt( 1.0 -
e *
e );
1404 if ( !strcmp( model,
"DDS" ) ) {
1405 sdds = 1. - exp( -1.*shapmax );
1406 brace = onemecu - sdds * ( sw * cume + sqr1me2 * cw * su );
1408 brace = onemecu -
s * ( sw * cume + sqr1me2 * cw * su );
1410 dlogbr = log( brace );
1411 DS = -2.0 *
r * dlogbr;
1414 DA = a0 * ( sin(
w + Ae ) +
e * sw ) +
b0 * ( cos(
w + Ae ) +
e * cw );
1420 Ck = cw * ( cu - er ) - sqrt( 1. - eth * eth ) * sw * su;
1421 Sk = sw * ( cu - er ) + sqrt( 1. - eth * eth ) * cw * su;
1431 Dbb = DRE * ( 1.0 - anhat * DREp + anhat * anhat * DREp * DREp + 0.5 * anhat * anhat * DRE * DREpp -
1432 0.5 *
e * su * anhat * anhat * DRE * DREp / onemecu ) + DS + DA + DAOP + DSR;
1442 if ( isnan(
output->deltaT ) ) {
void XLALBinaryPulsarDeltaTNew(BinaryPulsarOutput *output, BinaryPulsarInput *input, PulsarParameters *params)
function to calculate the binary system delay using new parameter structure
void XLALComputeEccentricAnomaly(REAL8 phase, REAL8 ecc, REAL8 *u)
XLAL function to compute the eccentric anomaly iteratively from Kelper's equation.
void XLALComputeKopeikinTerms(KopeikinTerms *kop, BinaryPulsarParams *params, BinaryPulsarInput *in)
XLAL function to compute Kopeikin terms that include the effect of binary orbital parameters of paral...
void XLALComputeKopeikinTermsNew(KopeikinTerms *kop, PulsarParameters *params, BinaryPulsarInput *in)
void LALBinaryPulsarDeltaT(LALStatus *status, BinaryPulsarOutput *output, BinaryPulsarInput *input, BinaryPulsarParams *params)
Calculate the binary system time delay using the pulsar parameters in params.
void XLALBinaryPulsarDeltaT(BinaryPulsarOutput *output, BinaryPulsarInput *input, BinaryPulsarParams *params)
XLAL function to compute the binary time delay.
#define BINARYPULSARTIMINGH_ENAN
#define BINARYPULSARTIMINGH_MSGENULLPARAMS
#define BINARYPULSARTIMINGH_ENULLOUTPUT
#define BINARYPULSARTIMINGH_ENULLINPUT
#define BINARYPULSARTIMINGH_ENULLPARAMS
#define BINARYPULSARTIMINGH_MSGENULLOUTPUT
#define BINARYPULSARTIMINGH_ENULLBINARYMODEL
#define BINARYPULSARTIMINGH_MSGNULLBINARYMODEL
#define BINARYPULSARTIMINGH_MSGENULLINPUT
#define __func__
log an I/O error, i.e.
#define ATTATCHSTATUSPTR(statusptr)
#define ASSERT(assertion, statusptr, code, mesg)
#define DETATCHSTATUSPTR(statusptr)
#define INITSTATUS(statusptr)
#define RETURN(statusptr)
const REAL8Vector * PulsarGetREAL8VectorParam(const PulsarParameters *pars, const CHAR *name)
Return a REAL8Vector parameter.
REAL8 PulsarGetREAL8ParamOrZero(const PulsarParameters *pars, const CHAR *name)
Return a REAL8 parameter if it exists, otherwise return zero.
int PulsarCheckParam(const PulsarParameters *pars, const CHAR *name)
Check for the existence of the parameter name in the PulsarParameters structure.
const CHAR * PulsarGetStringParam(const PulsarParameters *pars, const CHAR *name)
Return a string parameter.
REAL8 PulsarGetREAL8Param(const PulsarParameters *pars, const CHAR *name)
Return a REAL8 parameter.
#define XLAL_ERROR_VOID(...)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
structure containing the output parameters for the binary delay function
A structure to contain all pulsar parameters and associated errors.
REAL8 posNow[3]
Cartesian coords of Earth's center at tgps, extrapolated from JPL DE405 ephemeris; units= sec.
structure containing the Kopeikin terms
The PulsarParameters structure to contain a set of pulsar parameters.