LALPulsar  6.1.0.1-89842e6
ComputeFstat_DemodHL_OptC.c File Reference

Akos generic hotloop code (Dterms <= 20) More...

Detailed Description

Akos generic hotloop code (Dterms <= 20)

/* NOTE: sin[ 2pi (Dphi_alpha - k) ] = sin [ 2pi Dphi_alpha ], therefore
* the trig-functions need to be calculated only once!
* We choose the value sin[ 2pi(Dphi_alpha - kstar) ] because it is the
* closest to zero and will pose no numerical difficulties !
*/
{
{
/* improved hotloop algorithm by Fekete Akos:
* take out repeated divisions into a single common denominator,
* plus use extra cleverness to compute the nominator efficiently...
*/
REAL4 kappa_max = kappa_star + 1.0f * Dterms - 1.0f;
REAL4 Sn = crealf(*Xalpha_l);
REAL4 Tn = cimagf(*Xalpha_l);
REAL4 pn = kappa_max;
REAL4 qn = pn;
REAL4 U_alpha, V_alpha;
/* recursion with 2*Dterms steps */
for ( l = 1; l < 2*Dterms; l ++ )
{
Xalpha_l ++;
pn = pn - 1.0f; /* p_(n+1) */
Sn = pn * Sn + qn * crealf(*Xalpha_l); /* S_(n+1) */
Tn = pn * Tn + qn * cimagf(*Xalpha_l); /* T_(n+1) */
qn *= pn; /* q_(n+1) */
} /* for l < 2*Dterms */
{ /* only one division left */
REAL4 r_qn = 1.0 / qn;
U_alpha = Sn * r_qn;
V_alpha = Tn * r_qn;
}
/* NOTE: sin[ 2pi (Dphi_alpha - k) ] = sin [ 2pi Dphi_alpha ] = sin [ 2pi kappa_star ],
* therefore the trig-functions need to be calculated only once!
* We choose the value sin[ 2pi kappa_star ] because it is the
* closest to zero and will pose no numerical difficulties !
* As kappa in [0, 1) we can skip the trimming step.
*/
REAL4 s_alpha, c_alpha; /* sin(2pi kappa_alpha) and (cos(2pi kappa_alpha)-1) */
XLALSinCos2PiLUTtrimmed ( &s_alpha, &c_alpha, kappa_star);
c_alpha -= 1.0f;
realXP = s_alpha * U_alpha - c_alpha * V_alpha;
imagXP = c_alpha * U_alpha + s_alpha * V_alpha;
}
/* real- and imaginary part of e^{i 2 pi lambda_alpha } */
XLALSinCos2PiLUT ( &imagQ, &realQ, lambda_alpha );
}
int l
const double pn
uint32_t UINT4
float REAL4
int XLALSinCos2PiLUT(REAL4 *sin2pix, REAL4 *cos2pix, REAL8 x)
Calculate sin(2*pi*x) and cos(2*pi*x) to roughly 1e-7 precision using a lookup-table and Taylor-expan...
Definition: SinCosLUT.c:97
int XLALSinCos2PiLUTtrimmed(REAL4 *s, REAL4 *c, REAL8 x)
A function that uses the lookup tables to evaluate sin and cos values of 2*Pi*x, but relies on x bein...
Definition: SinCosLUT.c:112

Definition in file ComputeFstat_DemodHL_OptC.c.

Go to the source code of this file.

Macros

#define FUNC   XLALComputeFaFb_OptC
 
#define HOTLOOP_SOURCE   "ComputeFstat_DemodHL_OptC.i"
 

Macro Definition Documentation

◆ FUNC

#define FUNC   XLALComputeFaFb_OptC

Definition at line 37 of file ComputeFstat_DemodHL_OptC.c.

◆ HOTLOOP_SOURCE

#define HOTLOOP_SOURCE   "ComputeFstat_DemodHL_OptC.i"

Definition at line 38 of file ComputeFstat_DemodHL_OptC.c.