23 #include <lal/LALStdlib.h>
25 #if defined(__cplusplus)
103 #define TWODMESHH_ENUL 1
104 #define TWODMESHH_EOUT 2
105 #define TWODMESHH_EMEM 3
106 #define TWODMESHH_EMETRIC 4
107 #define TWODMESHH_EWIDTH 5
108 #define TWODMESHH_EDIM 6
109 #define TWODMESHH_EINT 7
111 #define TWODMESHH_MSGENUL "Unexpected null pointer in arguments"
112 #define TWODMESHH_MSGEOUT "Output handle points to a non-null pointer"
113 #define TWODMESHH_MSGEMEM "Memory allocation error"
114 #define TWODMESHH_MSGEMETRIC "Non-positive metric"
115 #define TWODMESHH_MSGEWIDTH "Column width too small"
116 #define TWODMESHH_MSGEDIM "Incorrect dimensions"
117 #define TWODMESHH_MSGEINT "Non-positive interval"
124 typedef struct tagTwoDMeshNode {
142 typedef struct tagTwoDMeshParamStruc {
185 typedef struct tagTwoDColumnParamStruc {
235 #elif defined(__cplusplus)
void getMetric(LALStatus *, meshREAL g[3], meshREAL skypos[2], void *params)
void getRange(LALStatus *, meshREAL y[2], meshREAL x, void *params)
void LALTwoDMesh(LALStatus *status, TwoDMeshNode **tail, TwoDMeshParamStruc *params)
void LALTwoDColumn(LALStatus *status, TwoDMeshNode **tail, TwoDColumnParamStruc *columnParams, TwoDMeshParamStruc *params)
void LALCreateTwoDMesh(LALStatus *status, TwoDMeshNode **mesh, TwoDMeshParamStruc *params)
void LALTwoDNodeCopy(LALStatus *status, TwoDMeshNode **new_, TwoDMeshNode *old)
void LALRefineTwoDMesh(LALStatus *status, TwoDMeshNode *coarseMesh, TwoDMeshNode *fineMesh)
void LALDestroyTwoDMesh(LALStatus *status, TwoDMeshNode **mesh, UINT4 *nFree)
This structure stores additional parameters required when laying down a single column of a two-dimens...
BOOLEAN tooWide
This is set to 1 if the column-placement routine determines that the region is too wide to be covered...
This structure represents a single node in a linked list of mesh points, specified in the coordinate ...
struct tagTwoDMeshNode * next
The next mesh point in the linked list; NULL if this is the tail.
REAL4 dx
The half-width of the tile centred on the mesh point.
struct tagTwoDMeshNode * subMesh
The head of a linked list of fine mesh points within the rectangular area spanned by this mesh point ...
UINT4 nSub
The number of fine mesh points in the above list.
This structure stores the parameters required by the two-dimensional mesh placement functions.
REAL4 widthRetryFac
If the column is determined to be too wide (e.g. due to the value of widthMaxFac, above),...
REAL4 widthMaxFac
The minimum ratio of mismatch ellipse width (projected onto the horizontal axis) to column width that...
UINT4 nIn
The maximum number of mesh points allowed, after which the placement routine will quit.
void * metricParams
The parameters to be passed as the fourth argument of *getMetric(), above.
UINT4 maxColumns
The maximum number of columns the mesh placement routine will try before giving up.
REAL4 mThresh
The maximum mismatch desired between any point in the region and the nearest mesh point; note that t...
UINT4 nOut
The number of mesh points added by the placement routine; if an error occurs, this will store the num...
void * rangeParams
The parameters to be passed as the fourth argument of *getRange(), above.