Loading [MathJax]/extensions/TeX/AMSmath.js
LALPulsar 7.1.1.1-8a6b96f
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Peak2PHMDTest.c
Go to the documentation of this file.
1/*
2* Copyright (C) 2007 Badri Krishnan, Jolien Creighton, Alicia Sintes Olives
3*
4* This program is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License as published by
6* the Free Software Foundation; either version 2 of the License, or
7* (at your option) any later version.
8*
9* This program is distributed in the hope that it will be useful,
10* but WITHOUT ANY WARRANTY; without even the implied warranty of
11* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12* GNU General Public License for more details.
13*
14* You should have received a copy of the GNU General Public License
15* along with with program; see the file COPYING. If not, write to the
16* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17* MA 02110-1301 USA
18*/
19
20/*-----------------------------------------------------------------------
21 *
22 * File Name: TestPeak2PHMD.c
23 *
24 * Authors: Sintes, A.M., Krishnan, B.
25 *
26 *
27 * History: Created by Sintes June 7, 2001
28 * Modified...
29 *
30 *-----------------------------------------------------------------------
31 */
32
33/*
34 * 1. An author and Id block
35 */
36
37/**
38 * \author Sintes, A. M., Krishnan, B.
39 * \file
40 * \ingroup PHMD_h
41 *
42 * ### Program TestPeak2PHMD.c ###
43 *
44 * \brief Tests the construction of Partial-Hough-Map-Derivatives (\c phmd)
45 *
46 * ### Usage ###
47 *
48 * \code
49 * TestPeak2PHMD [-d debuglevel] [-o outfile] [-f f0] [-p alpha delta]
50 * \endcode
51 *
52 * ### Description ###
53 *
54 * \%TO BE CHANGED
55 *
56 * This program generates a patch grid, calculates the parameters needed for
57 * building a \c lut, builds the \c lut, constructs a \c phmd at a
58 * certain frequency (shifted from the frequency at which the \c lut was built),
59 * and outputs the \c phmd into a file. The sky patch is set at the south pole,
60 * no spin-down parameters are assumed for the demodulation and
61 * every third peak in the spectrum is selected. The peak-gram frequency interval
62 * is large enough to ensure compatibility with the \c lut and the frequency of the \c phmd.
63 *
64 * By default, running this program with no arguments simply tests the subroutines,
65 * producing an output file called <tt>OutHough.asc</tt>. All default parameters are set from
66 * <tt>\#define</tt>d constants.
67 *
68 * The <b>-d</b> option sets the debug level to the specified value
69 * \c debuglevel. The <b>-o</b> flag tells the program to print the partial Hough map
70 * derivative to the specified data file \c outfile. The
71 * <b>-f</b> option sets the intrinsic frequency \c f0 at which build the
72 * <tt>lut</tt>. The <b>-p</b> option sets the velocity orientation of the detector
73 * \c alpha, \c delta (in radians).
74 *
75 * ### Uses ###
76 *
77 * \code
78 * LALHOUGHCalcParamPLUT()
79 * LALHOUGHConstructPLUT()
80 * LALHOUGHPeak2PHMD()
81 * LALPrintError()
82 * LALMalloc()
83 * LALFree()
84 * LALCheckMemoryLeaks()
85 * \endcode
86 *
87 */
88
89#include <lal/PHMD.h>
90
91/**\name Error Codes */ /** @{ */
92#define TESTPEAK2PHMDC_ENORM 0
93#define TESTPEAK2PHMDC_ESUB 1
94#define TESTPEAK2PHMDC_EARG 2
95#define TESTPEAK2PHMDC_EBAD 3
96#define TESTPEAK2PHMDC_EFILE 4
97
98#define TESTPEAK2PHMDC_MSGENORM "Normal exit"
99#define TESTPEAK2PHMDC_MSGESUB "Subroutine failed"
100#define TESTPEAK2PHMDC_MSGEARG "Error parsing arguments"
101#define TESTPEAK2PHMDC_MSGEBAD "Bad argument values"
102#define TESTPEAK2PHMDC_MSGEFILE "Could not create output file"
103/** @} */
104
105
106/** \cond DONT_DOXYGEN */
107
108/* Default parameters. */
109
110
111#define F0 500.0 /* frequency to build the LUT. */
112#define TCOH 100000.0 /* time baseline of coherent integration. */
113#define DF (1./TCOH) /* frequency resolution. */
114#define ALPHA 0.0
115#define DELTA 0.0
116#define MWR 1 /*.minWidthRatio */
117#define FILEOUT "OutHough.asc" /* file output */
118#define PIXELFACTOR 2
119/* Usage format string. */
120
121#define USAGE "Usage: %s [-d debuglevel] [-o outfile] [-f f0] [-p alpha delta] [-s patchSizeX patchSizeY]\n"
122
123/*********************************************************************/
124/* Macros for printing errors & testing subroutines (from Creighton) */
125/*********************************************************************/
126
127#define ERROR( code, msg, statement ) \
128do { \
129 if ( lalDebugLevel & LALERROR ) \
130 XLALPrintError( "Error[0] %d: program %s, file %s, line %d, %s\n" \
131 " %s %s\n", (code), *argv, __FILE__, \
132 __LINE__, "$Id$", statement ? statement : \
133 "", (msg) ); \
134} while (0)
135
136#define INFO( statement ) \
137do { \
138 if ( lalDebugLevel & LALINFO ) \
139 XLALPrintError( "Info[0]: program %s, file %s, line %d, %s\n" \
140 " %s\n", *argv, __FILE__, __LINE__, \
141 "$Id$", (statement) ); \
142} while (0)
143
144#define SUB( func, statusptr ) \
145do { \
146 if ( (func), (statusptr)->statusCode ) { \
147 ERROR( TESTPEAK2PHMDC_ESUB, TESTPEAK2PHMDC_MSGESUB, \
148 "Function call \"" #func "\" failed:" ); \
149 return TESTPEAK2PHMDC_ESUB; \
150 } \
151} while (0)
152/******************************************************************/
153
154/* the Hough Map derivative pixel type */
155/*typedef CHAR HoughDT; */
156
157
158/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */
159/* vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv------------------------------------ */
160int main( int argc, char *argv[] )
161{
162
163 static LALStatus status; /* LALStatus pointer */
164 static HOUGHptfLUT lut; /* the Look Up Table */
165 static HOUGHPatchGrid patch; /* Patch description */
166 static HOUGHParamPLUT parLut; /* parameters needed to build lut */
167 static HOUGHResolutionPar parRes;
168 static HOUGHSizePar parSize;
169 static HOUGHDemodPar parDem; /* demodulation parameters */
170 static HOUGHPeakGram pg;
171 static HOUGHphmd phmd; /* the partial Hough map derivative */
172 /* ------------------------------------------------------- */
173
174 INT8 f0Bin; /* freq. bin to construct LUT */
175 UINT2 xSide, ySide;
176 UINT2 maxNBins, maxNBorders;
177
178 /* the Hough derivative map. The patch containing at most
179 SIDEX*SIDEY pixels */
180 /* HoughDT PHMD[SIDEY][SIDEX+1]; */
181
182 HoughDT *PHMD;
183
184 HoughDT *pointer;
185
186 CHAR *fname = NULL; /* The output filename */
187 FILE *fp = NULL; /* Output file */
188
189 INT4 arg; /* Argument counter */
190 INT4 i, j, k; /* Index counter, etc */
191
192 REAL8 f0, alpha, delta, veloMod;
193 REAL8 patchSizeX, patchSizeY;
194
195 /************************************************************/
196 /* Set up the default parameters. */
197 /************************************************************/
198
199 f0 = F0;
200 f0Bin = F0 * TCOH;
201
202 parRes.f0Bin = f0Bin;
203 parRes.deltaF = DF;
204 parRes.patchSkySizeX = patchSizeX = 1.0 / ( TCOH * F0 * VEPI );
205 parRes.patchSkySizeY = patchSizeY = 1.0 / ( TCOH * F0 * VEPI );
206 parRes.pixelFactor = PIXELFACTOR;
207 parRes.pixErr = PIXERR;
208 parRes.linErr = LINERR;
209 parRes.vTotC = VTOT;
210
211
212 parDem.deltaF = DF;
213 parDem.skyPatch.alpha = 0.0;
214 parDem.skyPatch.delta = -LAL_PI_2;
215
216 alpha = ALPHA;
217 delta = DELTA;
218 veloMod = VTOT;
219
220
221 /********************************************************/
222 /* Parse argument list. i stores the current position. */
223 /********************************************************/
224 arg = 1;
225 while ( arg < argc ) {
226 /* Parse debuglevel option. */
227 if ( !strcmp( argv[arg], "-d" ) ) {
228 if ( argc > arg + 1 ) {
229 arg++;
230 } else {
232 XLALPrintError( USAGE, *argv );
233 return TESTPEAK2PHMDC_EARG;
234 }
235 }
236 /* Parse output file option. */
237 else if ( !strcmp( argv[arg], "-o" ) ) {
238 if ( argc > arg + 1 ) {
239 arg++;
240 fname = argv[arg++];
241 } else {
243 XLALPrintError( USAGE, *argv );
244 return TESTPEAK2PHMDC_EARG;
245 }
246 }
247 /* Parse frequency option. */
248 else if ( !strcmp( argv[arg], "-f" ) ) {
249 if ( argc > arg + 1 ) {
250 arg++;
251 f0 = atof( argv[arg++] );
252 f0Bin = f0 * TCOH;
253 parRes.f0Bin = f0Bin;
254 } else {
256 XLALPrintError( USAGE, *argv );
257 return TESTPEAK2PHMDC_EARG;
258 }
259 }
260 /* Parse velocity position options. */
261 else if ( !strcmp( argv[arg], "-p" ) ) {
262 if ( argc > arg + 2 ) {
263 arg++;
264 alpha = atof( argv[arg++] );
265 delta = atof( argv[arg++] );
266 } else {
268 XLALPrintError( USAGE, *argv );
269 return TESTPEAK2PHMDC_EARG;
270 }
271 }
272 /* Parse patch size option. */
273 else if ( !strcmp( argv[arg], "-s" ) ) {
274 if ( argc > arg + 2 ) {
275 arg++;
276 parRes.patchSkySizeX = patchSizeX = atof( argv[arg++] );
277 parRes.patchSkySizeY = patchSizeY = atof( argv[arg++] );
278 } else {
280 XLALPrintError( USAGE, *argv );
281 return TESTPEAK2PHMDC_EARG;
282 }
283 }
284 /* Unrecognized option. */
285 else {
287 XLALPrintError( USAGE, *argv );
288 return TESTPEAK2PHMDC_EARG;
289 }
290 } /* End of argument parsing loop. */
291 /******************************************************************/
292
293 if ( f0 < 0 ) {
295 XLALPrintError( USAGE, *argv );
296 return TESTPEAK2PHMDC_EBAD;
297 }
298
299 /******************************************************************/
300 /* create patch grid */
301 /******************************************************************/
302
303 SUB( LALHOUGHComputeSizePar( &status, &parSize, &parRes ), &status );
304
305 xSide = parSize.xSide;
306 ySide = parSize.ySide;
307 maxNBins = parSize.maxNBins;
308 maxNBorders = parSize.maxNBorders;
309
310 /* allocate memory based on xSide and ySide */
311 patch.xSide = xSide;
312 patch.ySide = ySide;
313
314 patch.xCoor = NULL;
315 patch.yCoor = NULL;
316 patch.xCoor = ( REAL8 * )LALMalloc( xSide * sizeof( REAL8 ) );
317 patch.yCoor = ( REAL8 * )LALMalloc( ySide * sizeof( REAL8 ) );
318
319 SUB( LALHOUGHFillPatchGrid( &status, &patch, &parSize ), &status );
320
321 /******************************************************************/
322 /* memory allocation and settings */
323 /******************************************************************/
324
325 lut.maxNBins = maxNBins;
326 lut.maxNBorders = maxNBorders;
327 lut.border =
328 ( HOUGHBorder * )LALMalloc( maxNBorders * sizeof( HOUGHBorder ) );
329 lut.bin =
330 ( HOUGHBin2Border * )LALMalloc( maxNBins * sizeof( HOUGHBin2Border ) );
331
332 phmd.maxNBorders = maxNBorders;
333 phmd.leftBorderP =
334 ( HOUGHBorder ** )LALMalloc( maxNBorders * sizeof( HOUGHBorder * ) );
335 phmd.rightBorderP =
336 ( HOUGHBorder ** )LALMalloc( maxNBorders * sizeof( HOUGHBorder * ) );
337
338 phmd.ySide = ySide;
339 phmd.firstColumn = NULL;
340 phmd.firstColumn = ( UCHAR * )LALMalloc( ySide * sizeof( UCHAR ) );
341
342 PHMD = ( HoughDT * )LALMalloc( ( xSide + 1 ) * ySide * sizeof( HoughDT ) );
343
344 for ( i = 0; i < maxNBorders; ++i ) {
345 lut.border[i].ySide = ySide;
346 lut.border[i].xPixel = ( COORType * )LALMalloc( ySide * sizeof( COORType ) );
347 }
348
349 /******************************************************************/
350 /* Case: no spins, patch at south pole */
351 /******************************************************************/
352
353 parDem.veloC.x = veloMod * cos( delta ) * cos( alpha );
354 parDem.veloC.y = veloMod * cos( delta ) * sin( alpha );
355 parDem.veloC.z = veloMod * sin( delta );
356
357 parDem.positC.x = 0.0;
358 parDem.positC.y = 0.0;
359 parDem.positC.z = 0.0;
360 parDem.timeDiff = 0.0;
361 parDem.spin.length = 0;
362 parDem.spin.data = NULL;
363
364 /******************************************************************/
365 /* Frequency-bin of the Partial Hough Map*/
366 /******************************************************************/
367
368 phmd.fBin = f0Bin + 21; /* a bit shifted from the LUT */
369
370 /******************************************************************/
371 /* A Peakgram for testing */
372 /******************************************************************/
373 pg.deltaF = DF;
374 pg.fBinIni = ( phmd.fBin ) - maxNBins ;
375 pg.fBinFin = ( phmd.fBin ) + 5 * maxNBins;
376 pg.length = 1; /* could be much smaller */
377 pg.peak = NULL;
378 pg.peak = ( INT4 * )LALMalloc( ( pg.length ) * sizeof( INT4 ) );
379
380 /* for (ii=0; ii< pg.length; ++ii){ pg.peak[ii] = 8*ii; } */
381 /* this peakgram is for testing */
382 pg.peak[0] = maxNBins;
383
384
385 /******************************************************************/
386 /* calculate parameters needed for buiding the LUT */
387 /******************************************************************/
388 SUB( LALHOUGHCalcParamPLUT( &status, &parLut, &parSize, &parDem ), &status );
389
390 /******************************************************************/
391 /* build the LUT */
392 /******************************************************************/
393 SUB( LALHOUGHConstructPLUT( &status, &lut, &patch, &parLut ), &status );
394
395 /******************************************************************/
396 /* build a PHMD from a peakgram and LUT */
397 /******************************************************************/
398
399 SUB( LALHOUGHPeak2PHMD( &status, &phmd, &lut, &pg ), &status );
400
401 /******************************************************************/
402 /* construct PHMD[i][j] accordingly */
403 /*******************************************************/
404
405 /* initializing output space */
406 pointer = &( PHMD[0] );
407 for ( k = 0; k < ( xSide + 1 ) * ySide; ++k ) {
408 *pointer = 0;
409 ++pointer;
410 }
411
412 /* first column correction */
413 for ( k = 0; k < ySide; ++k ) {
414 PHMD[k * ( xSide + 1 ) + 0] = phmd.firstColumn[k];
415 }
416
417 /* left borders => +1 */
418 for ( k = 0; k < phmd.lengthLeft; ++k ) {
419 INT2 xindex, yLower, yUpper;
420 COORType *xPixel;
421
422 yLower = ( *( phmd.leftBorderP[k] ) ).yLower;
423 yUpper = ( *( phmd.leftBorderP[k] ) ).yUpper;
424 xPixel = &( ( *( phmd.leftBorderP[k] ) ).xPixel[0] );
425
426 for ( j = yLower; j <= yUpper; ++j ) {
427 xindex = xPixel[j];
428 PHMD[j * ( xSide + 1 ) + xindex] += 1;
429 }
430 }
431
432 /* right borders => -1 */
433 for ( k = 0; k < phmd.lengthRight; ++k ) {
434 INT2 xindex, yLower, yUpper;
435 COORType *xPixel;
436
437 yLower = ( *( phmd.rightBorderP[k] ) ).yLower;
438 yUpper = ( *( phmd.rightBorderP[k] ) ).yUpper;
439 xPixel = &( ( *( phmd.rightBorderP[k] ) ).xPixel[0] );
440
441 for ( j = yLower; j <= yUpper; ++j ) {
442 xindex = xPixel[j];
443 PHMD[j * ( xSide + 1 ) + xindex] -= 1;
444 }
445 }
446
447
448 /******************************************************************/
449 /* printing the results into a particular file */
450 /* if the -o option was given, or into FILEOUT */
451 /******************************************************************/
452
453 if ( fname ) {
454 fp = fopen( fname, "w" );
455 } else {
456 fp = fopen( FILEOUT, "w" );
457 }
458
459 if ( !fp ) {
462 }
463
464
465 for ( j = ySide - 1; j >= 0; --j ) {
466 for ( i = 0; i < xSide; ++i ) {
467 fprintf( fp, " %f", PHMD[j * ( xSide + 1 ) + i] );
468 fflush( fp );
469 }
470 fprintf( fp, " \n" );
471 fflush( fp );
472 }
473
474 fclose( fp );
475
476
477 /******************************************************************/
478 /* Free memory and exit */
479 /******************************************************************/
480
481 LALFree( pg.peak );
482
483 for ( i = 0; i < maxNBorders; ++i ) {
484 LALFree( lut.border[i].xPixel );
485 }
486
487 LALFree( lut.border );
488 LALFree( lut.bin );
489
490 LALFree( phmd.leftBorderP );
491 LALFree( phmd.rightBorderP );
492 LALFree( phmd.firstColumn );
493 LALFree( PHMD );
494
495 LALFree( patch.xCoor );
496 LALFree( patch.yCoor );
497
499
502}
503
504/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */
505
506/** \endcond */
#define SUB(func, statusptr)
#define ERROR(code, msg, statement)
#define INFO(statement)
#define DELTA
#define ALPHA
int j
int k
void LALCheckMemoryLeaks(void)
#define LALMalloc(n)
#define LALFree(p)
static double double delta
#define TESTPEAK2PHMDC_MSGEARG
#define TESTPEAK2PHMDC_EBAD
Definition: Peak2PHMDTest.c:95
#define TESTPEAK2PHMDC_MSGEBAD
#define TESTPEAK2PHMDC_MSGEFILE
#define TESTPEAK2PHMDC_ENORM
Definition: Peak2PHMDTest.c:92
#define TESTPEAK2PHMDC_EARG
Definition: Peak2PHMDTest.c:94
#define TESTPEAK2PHMDC_MSGENORM
Definition: Peak2PHMDTest.c:98
#define TESTPEAK2PHMDC_EFILE
Definition: Peak2PHMDTest.c:96
#define fprintf
int main(int argc, char **argv)
#define LAL_PI_2
unsigned char UCHAR
double REAL8
int16_t INT2
int64_t INT8
uint16_t UINT2
char CHAR
int32_t INT4
#define VTOT
Total detector velocity/c TO BE CHANGED DEPENDING ON DETECTOR.
Definition: LUT.h:207
#define PIXERR
Maximum `‘error’' (as a fraction of the width of the thinnest annulus) which allows to consider two b...
Definition: LUT.h:195
#define LINERR
Maximum `‘error’' (as a fraction of the width of the thinnest annulus) which allows to represent a ci...
Definition: LUT.h:188
void LALHOUGHFillPatchGrid(LALStatus *status, HOUGHPatchGrid *out, HOUGHSizePar *par)
Definition: PatchGrid.c:331
#define VEPI
Earth v_epicycle/c TO BE CHANGED DEPENDING ON DETECTOR.
Definition: LUT.h:202
void LALHOUGHConstructPLUT(LALStatus *status, HOUGHptfLUT *lut, HOUGHPatchGrid *patch, HOUGHParamPLUT *par)
void LALHOUGHCalcParamPLUT(LALStatus *status, HOUGHParamPLUT *out, HOUGHSizePar *sizePar, HOUGHDemodPar *par)
Definition: ParamPLUT.c:71
void LALHOUGHComputeSizePar(LALStatus *status, HOUGHSizePar *out, HOUGHResolutionPar *in)
Definition: PatchGrid.c:92
INT2 COORType
To be changed to {INT2 COORType} if the number of pixels in the x-direction exceeds 255.
Definition: LUT.h:218
REAL8 HoughDT
Hough Map derivative pixel type.
Definition: PHMD.h:121
void LALHOUGHPeak2PHMD(LALStatus *status, HOUGHphmd *phmd, HOUGHptfLUT *lut, HOUGHPeakGram *pg)
Construction of Partial-Hough-Map-Derivatives (phmd) given a peak-gram and the look-up-table.
Definition: Peak2PHMD.c:61
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
#define F0
#define FILEOUT
#define PIXELFACTOR
double alpha
This structure stores the border indexes corresponding to one frequency bin plus the corrections to b...
Definition: LUT.h:234
This structure stores the border of a circle clipped on the projected plane.
Definition: LUT.h:221
COORType * xPixel
x pixel index to be marked
Definition: LUT.h:226
UINT2 ySide
length of xPixel
Definition: LUT.h:225
Demodulation parameters needed for the Hough transform; all coordinates are assumed to be with respec...
Definition: LUT.h:353
REAL8Cart3Coor positC
(x,y,z): Position of the detector
Definition: LUT.h:357
REAL8 deltaF
Frequency resolution: df=1/TCOH
Definition: LUT.h:354
REAL8 timeDiff
: time difference
Definition: LUT.h:358
REAL8Cart3Coor veloC
(x,y,z): Relative detector velocity
Definition: LUT.h:356
REAL8Vector spin
Spin down information.
Definition: LUT.h:359
REAL8UnitPolarCoor skyPatch
(alpha, delta): position of the center of the patch
Definition: LUT.h:355
Parameters needed to construct the partial look up table.
Definition: LUT.h:333
This structure stores patch-frequency grid information.
Definition: LUT.h:264
UINT2 ySide
Real number of pixels in the y-direction (in the projected plane).
Definition: LUT.h:275
REAL8 * xCoor
Coordinates of the pixel centers.
Definition: LUT.h:271
UINT2 xSide
Real number of pixels in the x direction (in the projected plane); it should be less than or equal to...
Definition: LUT.h:270
REAL8 * yCoor
Coordinates of the pixel centers.
Definition: LUT.h:278
This structure stores the `‘peak-gram’'.
Definition: PHMD.h:129
REAL8 deltaF
Frequency resolution: df=1/TCOH
Definition: PHMD.h:131
UINT4 length
Number of peaks present in the peak-gram.
Definition: PHMD.h:134
UINT8 fBinFin
Frequency index of the last element of the spectrum covered by this peak-gram.
Definition: PHMD.h:133
UINT8 fBinIni
Frequency index of the first element of the spectrum covered by this peak-gram; it can be seen as an ...
Definition: PHMD.h:132
INT4 * peak
The peak indices relative to fBinIni, i.e., the zero peak corresponds to fBinIni.
Definition: PHMD.h:135
parameters needed for gridding the patch
Definition: LUT.h:282
REAL8 deltaF
Frequency resolution: df=1/TCOH
Definition: LUT.h:284
REAL8 pixErr
for validity of LUT as PIXERR
Definition: LUT.h:288
INT8 f0Bin
Frequency bin at which construct the grid.
Definition: LUT.h:283
REAL8 patchSkySizeY
Patch size in radians along y-axis.
Definition: LUT.h:286
REAL8 patchSkySizeX
Patch size in radians along x-axis.
Definition: LUT.h:285
REAL8 pixelFactor
number of pixel that fit in the thinnest annulus
Definition: LUT.h:287
REAL8 vTotC
estimate value of v-total/C as VTOT
Definition: LUT.h:290
REAL8 linErr
as LINERR circle ->line
Definition: LUT.h:289
required for constructing patch
Definition: LUT.h:294
UINT2 maxNBorders
maximum number of borders affecting the patch; for memory allocation
Definition: LUT.h:302
UINT2 maxNBins
maximum number of bins affecting the patch; for memory allocation
Definition: LUT.h:301
UINT2 ySide
number of pixels in the y direction
Definition: LUT.h:300
UINT2 xSide
number of pixels in the x direction (projected plane)
Definition: LUT.h:299
This structure stores a partial Hough map derivative.
Definition: PHMD.h:141
UINT2 lengthRight
Exact number of Right borders.
Definition: PHMD.h:144
UINT2 lengthLeft
Exact number of Left borders.
Definition: PHMD.h:143
UINT8 fBin
Frequency bin of this partial map derivative.
Definition: PHMD.h:142
UCHAR * firstColumn
Number of elements of firstColumn.
Definition: PHMD.h:151
UINT2 ySide
number of elements of firstColumn
Definition: PHMD.h:150
HOUGHBorder ** rightBorderP
Pointers to borders.
Definition: PHMD.h:149
UINT2 maxNBorders
Maximun number of borders of each type (for memory allocation purposes), i.e. length of *leftBorderP ...
Definition: PHMD.h:145
HOUGHBorder ** leftBorderP
Pointers to borders.
Definition: PHMD.h:148
This structure stores the patch-time-frequency look up table.
Definition: LUT.h:246
UINT2 maxNBins
Maximum number of bins affecting the patch (for memory allocation purposes)
Definition: LUT.h:256
HOUGHBorder * border
The annulus borders.
Definition: LUT.h:258
HOUGHBin2Border * bin
Bin to border correspondence.
Definition: LUT.h:259
UINT2 maxNBorders
Maximum number of borders affecting the patch (for memory allocation purposes)
Definition: LUT.h:257
REAL8 y
Definition: LUT.h:310
REAL8 x
Definition: LUT.h:309
REAL8 z
Definition: LUT.h:311
REAL8 alpha
any value
Definition: LUT.h:328
REAL8 delta
In the interval [ ].
Definition: LUT.h:329
REAL8 * data