160 deltaX = deltaY = 1.0 / ( vTotC * pixelFactor * f0Bin );
161 out->deltaX = deltaX;
162 out->deltaY = deltaY;
164 patchSizeX = 4.0 * tan( 0.25 * patchSkySizeX );
165 patchSizeY = 4.0 * tan( 0.25 * patchSkySizeY );
166 xSide =
out->xSide = ceil( patchSizeX / deltaX );
167 ySide =
out->ySide = ceil( patchSizeY / deltaY );
168 maxSide =
MAX( xSide, ySide );
172 maxNBins =
out->maxNBins = ceil( ( 1.5 * maxSide ) / pixelFactor );
179 out->maxNBorders = 1 + 2 * maxNBins;
184 out->nFreqValid = ( pixErr * 2 * f0Bin ) / ( pixelFactor * maxNBins );
189 out->epsilon = 8.0 * linErr / ( maxSide * deltaX * maxSide ) ;
224 UINT2 maxNBins1, maxNBins2;
272 deltaX = deltaY = 1.0 / ( vTotC * pixelFactor * f0Bin );
273 out->deltaX = deltaX;
274 out->deltaY = deltaY;
276 patchSizeX = 4.0 * tan( 0.25 * patchSkySizeX );
277 patchSizeY = 4.0 * tan( 0.25 * patchSkySizeY );
278 xSide =
out->xSide = ceil( patchSizeX / deltaX );
279 ySide =
out->ySide = ceil( patchSizeY / deltaY );
280 maxSide =
MAX( xSide, ySide );
283 maxDopplerBin = floor( f0Bin * vTotC + 0.5 );
284 maxNBins1 = 1 + 2 * maxDopplerBin;
289 maxNBins2 = ceil( ( 1.5 * maxSide ) / pixelFactor );
291 maxNBins =
out->maxNBins =
MIN( maxNBins1, maxNBins2 );
298 out->maxNBorders = 1 + 2 * maxNBins;
301 if ( maxDopplerBin < 2 ) {
303 out->nFreqValid = f0Bin;
306 num = maxDopplerBin * maxDopplerBin;
307 den = ( maxDopplerBin - 1 ) * ( maxDopplerBin - 1 );
308 out->nFreqValid = pixErr / ( pixelFactor * vTotC ) * sqrt( num / den - 1.0 );
314 out->epsilon = 8.0 * linErr / ( maxSide * deltaX * maxSide ) ;
342 REAL8 xMin, xMax, x1;
343 REAL8 yMin, yMax, myy1;
380 xMax =
out->xMax = deltaX * 0.5 * ( xSide - 1 );
381 yMax =
out->yMax = deltaY * 0.5 * ( ySide - 1 );
383 xMin =
out->xMin = -xMax;
384 yMin =
out->yMin = -yMax;
390 for (
i = 0;
i < xSide; ++
i ) {
396 for (
i = 0;
i < ySide; ++
i ) {
#define ATTATCHSTATUSPTR(statusptr)
#define ASSERT(assertion, statusptr, code, mesg)
#define DETATCHSTATUSPTR(statusptr)
#define INITSTATUS(statusptr)
#define RETURN(statusptr)
void LALHOUGHComputeNDSizePar(LALStatus *status, HOUGHSizePar *out, HOUGHResolutionPar *in1)
void LALHOUGHFillPatchGrid(LALStatus *status, HOUGHPatchGrid *out, HOUGHSizePar *in1)
void LALHOUGHComputeSizePar(LALStatus *status, HOUGHSizePar *out, HOUGHResolutionPar *in1)
This structure stores patch-frequency grid information.
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
INT8 f0Bin
corresponding freq bin
REAL8 deltaX
pixel size in the projected plane