137 #include <lal/LALStdlib.h>
138 #include <lal/LALConstants.h>
139 #include <lal/AVFactories.h>
140 #include <lal/SeqFactories.h>
154 #define LUTH_EFREQ 10
157 #define LUTH_MSGENULL "Null pointer"
158 #define LUTH_MSGESIZE "Invalid input size"
159 #define LUTH_MSGESZMM "Size mismatch"
160 #define LUTH_MSGEINT "Invalid interval"
161 #define LUTH_MSGESAME "Input/Output data vectors are the same"
162 #define LUTH_MSGEFREQ "Invalid frequency"
163 #define LUTH_MSGEVAL "Invalid value"
173 #define MAX(A, B) (((A) < (B)) ? (B) : (A))
174 #define MIN(A, B) (((A) < (B)) ? (A) : (B))
175 #define cot(A) (1./tan(A))
202 #define VEPI LAL_TWOPI * LAL_REARTH_SI / ( LAL_DAYSID_SI * LAL_C_SI )
207 #define VTOT LAL_TWOPI * LAL_AU_SI / ( LAL_YRSID_SI * LAL_C_SI )
221 typedef struct tagHOUGHBorder {
234 typedef struct tagHOUGHBin2Border {
246 typedef struct tagHOUGHptfLUT {
264 typedef struct tagHOUGHPatchGrid {
282 typedef struct tagHOUGHResolutionPar {
294 typedef struct tagHOUGHSizePar {
308 typedef struct tagREAL8Cart3Coor {
315 typedef struct tagREAL8Cart2Coor {
321 typedef struct tagREAL8Polar2Coor {
327 typedef struct tagREAL8UnitPolarCoor {
333 typedef struct tagHOUGHParamPLUT {
353 typedef struct tagHOUGHDemodPar {
void LALStereoProjectCart(LALStatus *status, REAL8Cart2Coor *out, REAL8UnitPolarCoor *in)
void LALRotatePolarU(LALStatus *status, REAL8UnitPolarCoor *out, REAL8UnitPolarCoor *in, REAL8UnitPolarCoor *par)
void LALNDHOUGHParamPLUT(LALStatus *status, HOUGHParamPLUT *out, HOUGHSizePar *sizePar, HOUGHDemodPar *par)
void LALStereoProjectPolar(LALStatus *status, REAL8Polar2Coor *out, REAL8UnitPolarCoor *in)
void LALInvRotatePolarU(LALStatus *status, REAL8UnitPolarCoor *out, REAL8UnitPolarCoor *in, REAL8UnitPolarCoor *par)
void LALStereoInvProjectPolar(LALStatus *status, REAL8UnitPolarCoor *out, REAL8Polar2Coor *in)
void LALHOUGHComputeNDSizePar(LALStatus *status, HOUGHSizePar *out, HOUGHResolutionPar *in)
void LALHOUGHFillPatchGrid(LALStatus *status, HOUGHPatchGrid *out, HOUGHSizePar *par)
void LALHOUGHConstructPLUT(LALStatus *status, HOUGHptfLUT *lut, HOUGHPatchGrid *patch, HOUGHParamPLUT *par)
void LALHOUGHCalcParamPLUT(LALStatus *status, HOUGHParamPLUT *out, HOUGHSizePar *sizePar, HOUGHDemodPar *par)
void LALHOUGHComputeSizePar(LALStatus *status, HOUGHSizePar *out, HOUGHResolutionPar *in)
void LALStereoInvProjectCart(LALStatus *status, REAL8UnitPolarCoor *out, REAL8Cart2Coor *in)
INT2 COORType
To be changed to {INT2 COORType} if the number of pixels in the x-direction exceeds 255.
This structure stores the border indexes corresponding to one frequency bin plus the corrections to b...
INT2 rightB2
Border index to be used (stop-border ‘ ’)
INT2 leftB1
Border index to be used (start-border ‘ ’)
INT2 piece1min
If piece1min piece1max no corrections should be added.
INT2 piece2max
Interval limits of the (second piece) correction to the first column.
INT2 rightB1
Border index to be used (stop-border ‘ ’)
INT2 piece1max
Interval limits of the (first piece) correction to the first column.
INT2 leftB2
Border index to be used (start-border ‘ ’)
INT2 piece2min
If piece2min piece2max no corrections should be added.
This structure stores the border of a circle clipped on the projected plane.
COORType * xPixel
x pixel index to be marked
INT4 yLower
lower y pixel affected by this border and yUpper<yLower or yUpper<0 are possible
UINT2 ySide
length of xPixel
INT4 yCenter
y pixel value of the center of the circle
INT4 yUpper
upper y pixel affected by this border
Demodulation parameters needed for the Hough transform; all coordinates are assumed to be with respec...
REAL8Cart3Coor positC
(x,y,z): Position of the detector
REAL8 deltaF
Frequency resolution: df=1/TCOH
REAL8 timeDiff
: time difference
REAL8Cart3Coor veloC
(x,y,z): Relative detector velocity
REAL8Vector spin
Spin down information.
REAL8UnitPolarCoor skyPatch
(alpha, delta): position of the center of the patch
Parameters needed to construct the partial look up table.
REAL8UnitPolarCoor xi
Center of the circle on the celestial sphere, (alpha,delta) in the rotated coordinates.
REAL8 deltaF
Frequency resolution: df=1/TCOH
REAL8 cosPhiMin0
of the f0Bin
INT4 offset
Frequency bin corresponding to center of patch; measured w.r.t.
REAL8 epsilon
maximum angle (distance in radians) from the pole to consider a circle as a line in the projected pla...
REAL8 cosPhiMax0
of the f0Bin
REAL8 cosDelta
corresponding to one annulus.
INT8 nFreqValid
Number of frequency bins for which the LUT is valid.
This structure stores patch-frequency grid information.
UINT2 ySide
Real number of pixels in the y-direction (in the projected plane).
REAL8 deltaY
Longitudinal space resolution, y-direction.
REAL8 * xCoor
Coordinates of the pixel centers.
REAL8 yMin
Patch limit, as center of the first pixel.
UINT2 xSide
Real number of pixels in the x direction (in the projected plane); it should be less than or equal to...
REAL8 yMax
Patch limit, as center of the last pixel.
REAL8 deltaX
Longitudinal space resolution, x-direction.
REAL8 xMin
Patch limit, as the coordinate of the center of the first pixel.
REAL8 f0
Frequency to construct grid.
REAL8 xMax
Patch limit, as the coordinate of the center of the last pixel.
REAL8 * yCoor
Coordinates of the pixel centers.
REAL8 deltaF
Frequency resolution: df=1/TCOH
parameters needed for gridding the patch
REAL8 deltaF
Frequency resolution: df=1/TCOH
REAL8 pixErr
for validity of LUT as PIXERR
INT8 f0Bin
Frequency bin at which construct the grid.
REAL8 patchSkySizeY
Patch size in radians along y-axis.
REAL8 patchSkySizeX
Patch size in radians along x-axis.
REAL8 pixelFactor
number of pixel that fit in the thinnest annulus
REAL8 vTotC
estimate value of v-total/C as VTOT
REAL8 linErr
as LINERR circle ->line
required for constructing patch
UINT2 maxNBorders
maximum number of borders affecting the patch; for memory allocation
UINT2 maxNBins
maximum number of bins affecting the patch; for memory allocation
UINT2 ySide
number of pixels in the y direction
INT8 nFreqValid
number of frequencies where the LUT is valid
INT8 f0Bin
corresponding freq bin
UINT2 xSide
number of pixels in the x direction (projected plane)
REAL8 deltaX
pixel size in the projected plane
This structure stores the patch-time-frequency look up table.
INT4 offset
Frequency bin corresponding to center of patch measured with respect to f0Bin (zero in modulated case...
REAL8 deltaF
Frequency resolution df=1/TCOH, where 1/TCOH is the coherent integration time used in teh demodulatio...
UINT2 maxNBins
Maximum number of bins affecting the patch (for memory allocation purposes)
INT4 nBin
Exact number of bins affecting the patch.
HOUGHBorder * border
The annulus borders.
INT4 iniBin
First bin affecting the patch with respect to f0.
INT2 timeIndex
time index of the lut
HOUGHBin2Border * bin
Bin to border correspondence.
UINT2 maxNBorders
Maximum number of borders affecting the patch (for memory allocation purposes)
INT8 f0Bin
Frequency bin for which it has been constructed.
INT8 nFreqValid
Number of frequencies where the lut is valid.
Two dimensional Cartessian coordinates.
Three dimensional Cartessian coordinates.
Two dimensional polar coordinates.
Polar coordinates of a unitary vector on the sphere.
REAL8 delta
In the interval [ ].