LAL  7.5.0.1-b72065a
SeqFactories.h
Go to the documentation of this file.
1 #ifndef _SEQFACTORIES_H
2 #define _SEQFACTORIES_H
3 
4 #include <lal/LALDatatypes.h>
5 #include <lal/AVFactories.h>
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
11 
12 /**
13  * \defgroup SeqFactories_h Header SeqFactories.h
14  * \ingroup lal_factories
15  *
16  * \brief Provides prototype and status code information for use of CreateVectorSequence and DestroyVectorSequence.
17  *
18  * ### Synopsis ###
19  *
20  * \code
21  * #include <lal/SeqFactories.h>
22  * \endcode
23  *
24  * \section sec_SF_XLALfcts XLAL Functions
25  *
26  * \code
27  * REAL4VectorSequence * XLALCreateVectorSequence(UINT4 length, UINT4 veclen);
28  * void XLALCreateVectorSequence(REAL4VectorSequence *vecseq);
29  *
30  * <vecseqtype> * XLALCreate<vecseqtype>(UINT4 length, UINT4 veclen);
31  * void XLALCreate<vecseqtype>(<vecseqtype> *vecseq);
32  * \endcode
33  *
34  * Here <tt><vecseqtype></tt> is one of
35  * \c COMPLEX16VectorSequence,
36  * \c COMPLEX8VectorSequence,
37  * \c REAL8VectorSequence,
38  * \c REAL4VectorSequence,
39  * \c INT8VectorSequence,
40  * \c INT4VectorSequence,
41  * \c INT2VectorSequence,
42  * \c UINT8VectorSequence,
43  * \c UINT4VectorSequence,
44  * \c UINT2VectorSequence, or
45  * \c CHARVectorSequence.
46  *
47  * \subsection ss_SF_desc Description
48  *
49  * The <tt>XLALCreate<type>VectorSequence</tt> functions create vector sequences
50  * of type <tt><type></tt>, length and vector length \c veclen.
51  * The function \c XLALCreateVectorSequence is the same as
52  * \c XLALCreateREAL4VectorSequence.
53  *
54  * The <tt>XLALDestroy<type>VectorSequence</tt> functions deallocate the memory
55  * allocation pointed to by \c vecseq including its contents. The function
56  * \c XLALDestroyVectorSequence is the same as
57  * \c XLALDestroyREAL4VectorSequence.
58  *
59  * \subsection ss_SF_ret Return Values
60  *
61  * The create functions return a pointer to the created vector sequence if
62  * successful; upon failure they will return \c NULL and set \c xlalErrno
63  * to one of the following values: #XLAL_ENOMEM if memory allocation
64  * failed, or #XLAL_EBADLEN if the requested \c length or \c veclen
65  * is zero.
66  *
67  * The destroy functions do not have a return value. They can fail if they are
68  * passed a \c NULL pointer, in which case \c xlalErrno is set to
69  * #XLAL_EFAULT, or if the vector sequency passed to the destroy routine
70  * has zero length, vector length, or \c NULL data pointer then
71  * \c xlalErrno is set to #XLAL_EINVAL.
72  *
73  */
74 /** @{ */
75 
76 /**\name Error Codes */
77 /** @{ */
78 #define SEQFACTORIESH_ESLENGTH 1 /**< Illegal sequence length. */
79 #define SEQFACTORIESH_EVLENGTH 2 /**< Illegal vector length. */
80 #define SEQFACTORIESH_EALENGTH 4 /**< Illegal array dimension. */
81 #define SEQFACTORIESH_EVPTR 8 /**< Null sequence handle. */
82 #define SEQFACTORIESH_EUPTR 16 /**< Non-null sequence pointer. */
83 #define SEQFACTORIESH_EDPTR 32 /**< Null sequence data. */
84 #define SEQFACTORIESH_EINPTR 64 /**< Null input pointer. */
85 #define SEQFACTORIESH_EMALLOC 128 /**< Malloc failure. */
86 /** @} */
87 
88 /** \cond DONT_DOXYGEN */
89 #define SEQFACTORIESH_MSGESLENGTH "Illegal sequence length."
90 #define SEQFACTORIESH_MSGEVLENGTH "Illegal vector length."
91 #define SEQFACTORIESH_MSGEALENGTH "Illegal array dimension."
92 #define SEQFACTORIESH_MSGEVPTR "Null sequence handle."
93 #define SEQFACTORIESH_MSGEUPTR "Non-null sequence pointer."
94 #define SEQFACTORIESH_MSGEDPTR "Null sequence data."
95 #define SEQFACTORIESH_MSGEINPTR "Null input pointer."
96 #define SEQFACTORIESH_MSGEMALLOC "Malloc failure."
97 /** \endcond */
98 
99 /**
100  * \brief This structure stores the input required for creating a vector
101  * sequence. This input includes the length of the sequence (i.e., the number of
102  * vectors) and the length of each vector.
103  */
104 typedef struct tagCreateVectorSequenceIn {
105  UINT4 length; /**< The sequence length */
106  UINT4 vectorLength; /**< The length of each vector in the sequence */
108 
109 
110 /**
111  * \brief This structure stores the input required for creating an array
112  * sequence. This input includes the length of the sequence (i.e., the number of
113  * array) and the dimensions of each array index.
114  */
115 typedef struct tagCreateArraySequenceIn {
116  UINT4 length; /**< The sequence length */
117  UINT4Vector *dimLength; /**< The dimensions of each array index (the same for every array in the sequence) */
119 
120 /** @} */
121 /* ---------- end:SeqFactories_h ---------- */
122 
123 /**
124  * \defgroup ArraySequenceFactories_c Module ArraySequenceFactories.c
125  * \ingroup SeqFactories_h
126  *
127  * \brief Create/destroy <datatype>ArraySequence objects.
128  *
129  * ### Description ###
130  *
131  * The \c CreateArraySequence family of functions create a <datatype>ArraySequence of the appropriate dimensions.
132  *
133  * The \c DestroyArraySequence family of functions return the storage allocated by the \c CreateArraySequence functions to the system.
134  */
135 /** @{ */
136 
137 /** \name REAL4 prototypes (default name) */
138 /** @{ */
142 /** @} */
143 
144 /** \name INT2 prototypes */
145 /** @{ */
147  INT2ArraySequence **arraySequence,
148  CreateArraySequenceIn *aSeqParams);
149 
151  INT2ArraySequence **arraySeqence);
152 /** @} */
153 
154 
155 /** \name INT4 prototypes */
156 /** @{ */
158  INT4ArraySequence **arraySequence,
159  CreateArraySequenceIn *aSeqParams);
160 
162  INT4ArraySequence **arraySeqence);
163 /** @} */
164 
165 /** \name INT8 prototypes */
166 /** @{ */
168  INT8ArraySequence **arraySequence,
169  CreateArraySequenceIn *aSeqParams);
170 
172  INT8ArraySequence **arraySeqence);
173 /** @} */
174 
175 /** \name UINT2 prototypes */
176 /** @{ */
178  UINT2ArraySequence **arraySequence,
179  CreateArraySequenceIn *aSeqParams);
180 
182  UINT2ArraySequence **arraySeqence);
183 /** @} */
184 
185 /** \name UINT4 prototypes */
186 /** @{ */
188  UINT4ArraySequence **arraySequence,
189  CreateArraySequenceIn *aSeqParams);
190 
192  UINT4ArraySequence **arraySeqence);
193 /** @} */
194 
195 /** \name UINT8 prototypes */
196 /** @{ */
198  UINT8ArraySequence **arraySequence,
199  CreateArraySequenceIn *aSeqParams);
200 
202  UINT8ArraySequence **arraySeqence);
203 /** @} */
204 
205 /** \name REAL4 prototypes */
206 /** @{ */
208  REAL4ArraySequence **arraySequence,
209  CreateArraySequenceIn *aSeqParams);
210 
212  REAL4ArraySequence **arraySeqence);
213 /** @} */
214 
215 /** \name REAL8 prototypes */
216 /** @{ */
218  REAL8ArraySequence **arraySequence,
219  CreateArraySequenceIn *aSeqParams);
220 
222  REAL8ArraySequence **arraySeqence);
223 /** @} */
224 
225 /** \name COMPLEX8 prototypes */
226 /** @{ */
228  COMPLEX8ArraySequence **arraySequence,
229  CreateArraySequenceIn *aSeqParams);
230 
232  COMPLEX8ArraySequence **arraySeqence);
233 /** @} */
234 
235 /** \name COMPLEX16 prototypes */
236 /** @{ */
238  COMPLEX16ArraySequence **arraySequence,
239  CreateArraySequenceIn *aSeqParams);
240 
242  COMPLEX16ArraySequence **arraySeqence);
243 /** @} */
244 
245 /** @} */
246 /* ---------- end: ArraySequenceFactories_c ---------- */
247 
248 /**
249  * \defgroup VectorSequenceFactories_c Module VectorSequenceFactories.c
250  * \ingroup SeqFactories_h
251  * \brief Create/destroy <datatype>VectorSequence objects.
252  *
253  * ### Description ###
254  *
255  * The \c CreateVectorSequence family of functions create a <datatype>VectorSequence of the appropriate dimensions.
256  *
257  * The \c DestroyVectorSequence family of functions return the storage allocated by the \c CreateVectorSequence functions to the system.
258  */
259 /** @{ */
260 
261 /** \name REAL4 prototypes (default name) */
262 /** @{ */
264 #ifndef SWIG /* exclude from SWIG interface */
266 #endif /* SWIG */
267 
268 
272 /** @} */
273 
274 /** \name CHAR prototypes */
275 /** @{ */
278 
280  CHARVectorSequence **vectorSequence,
281  CreateVectorSequenceIn *vSeqParams);
282 
284  CHARVectorSequence **vectorSequence);
285 /** @} */
286 
287 /** \name INT2 prototypes */
288 /** @{ */
291 
293  INT2VectorSequence **vectorSequence,
294  CreateVectorSequenceIn *vSeqParams);
295 
297  INT2VectorSequence **vectorSequence);
298 /** @} */
299 
300 /** \name INT4 prototypes */
301 /** @{ */
304 
306  INT4VectorSequence **vectorSequence,
307  CreateVectorSequenceIn *vSeqParams);
308 
310  INT4VectorSequence **vectorSequence);
311 /** @} */
312 
313 /** \name INT8 prototypes */
314 /** @{ */
317 
319  INT8VectorSequence **vectorSequence,
320  CreateVectorSequenceIn *vSeqParams);
321 
323  INT8VectorSequence **vectorSequence);
324 /** @} */
325 
326 /** \name UINT2 prototypes */
327 /** @{ */
330 
332  UINT2VectorSequence **vectorSequence,
333  CreateVectorSequenceIn *vSeqParams);
334 
336  UINT2VectorSequence **vectorSequence);
337 /** @} */
338 
339 /** \name UINT4 prototypes */
340 /** @{ */
343 
345  UINT4VectorSequence **vectorSequence,
346  CreateVectorSequenceIn *vSeqParams);
347 
349  UINT4VectorSequence **vectorSequence);
350 /** @} */
351 
352 /** \name UINT8 prototypes */
353 /** @{ */
356 
358  UINT8VectorSequence **vectorSequence,
359  CreateVectorSequenceIn *vSeqParams);
360 
362  UINT8VectorSequence **vectorSequence);
363 /** @} */
364 
365 /** \name REAL4 prototypes */
366 /** @{ */
369 
371  REAL4VectorSequence **vectorSequence,
372  CreateVectorSequenceIn *vSeqParams);
373 
375  REAL4VectorSequence **vectorSequence);
376 /** @} */
377 
378 /** \name REAL8 prototypes */
379 /** @{ */
382 
384  REAL8VectorSequence **vectorSequence,
385  CreateVectorSequenceIn *vSeqParams);
386 
388  REAL8VectorSequence **vectorSequence);
389 /** @} */
390 
391 /** \name COMPLEX8 prototypes */
392 /** @{ */
395 
397  COMPLEX8VectorSequence **vectorSequence,
398  CreateVectorSequenceIn *vSeqParams);
399 
401  COMPLEX8VectorSequence **vectorSequence);
402 /** @} */
403 
404 /** \name COMPLEX16 prototypes */
405 /** @{ */
408 
410  COMPLEX16VectorSequence **vectorSequence,
411  CreateVectorSequenceIn *vSeqParams);
412 
414  COMPLEX16VectorSequence **vectorSequence);
415 /** @} */
416 
417 /** @} */
418 /* ---------- end: VectorSequenceFactories_c ---------- */
419 
420 #ifdef __cplusplus
421 }
422 #endif
423 
424 #endif /* _SEQFACTORIES_H */
COMPLEX8VectorSequence * XLALCreateCOMPLEX8VectorSequence(UINT4 length, UINT4 veclen)
INT4VectorSequence * XLALCreateINT4VectorSequence(UINT4 length, UINT4 veclen)
REAL4VectorSequence * XLALCreateVectorSequence(UINT4 length, UINT4 veclen)
void LALSDestroyVectorSequence(LALStatus *status, REAL4VectorSequence **vectorSequence)
void LALU2DestroyVectorSequence(LALStatus *status, UINT2VectorSequence **vectorSequence)
void LALI8DestroyArraySequence(LALStatus *status, INT8ArraySequence **arraySeqence)
void LALU8CreateVectorSequence(LALStatus *status, UINT8VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
COMPLEX16VectorSequence * XLALCreateCOMPLEX16VectorSequence(UINT4 length, UINT4 veclen)
void LALI4DestroyArraySequence(LALStatus *status, INT4ArraySequence **arraySeqence)
void LALDCreateArraySequence(LALStatus *status, REAL8ArraySequence **arraySequence, CreateArraySequenceIn *aSeqParams)
void LALI4DestroyVectorSequence(LALStatus *status, INT4VectorSequence **vectorSequence)
void LALU8CreateArraySequence(LALStatus *status, UINT8ArraySequence **arraySequence, CreateArraySequenceIn *aSeqParams)
REAL8VectorSequence * XLALCreateREAL8VectorSequence(UINT4 length, UINT4 veclen)
void LALU4DestroyVectorSequence(LALStatus *status, UINT4VectorSequence **vectorSequence)
void LALZCreateVectorSequence(LALStatus *status, COMPLEX16VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
UINT4VectorSequence * XLALCreateUINT4VectorSequence(UINT4 length, UINT4 veclen)
void XLALDestroyCOMPLEX16VectorSequence(COMPLEX16VectorSequence *vecseq)
void LALU2CreateArraySequence(LALStatus *status, UINT2ArraySequence **arraySequence, CreateArraySequenceIn *aSeqParams)
void XLALDestroyREAL4VectorSequence(REAL4VectorSequence *vecseq)
void XLALDestroyVectorSequence(REAL4VectorSequence *vecseq)
void LALZCreateArraySequence(LALStatus *status, COMPLEX16ArraySequence **arraySequence, CreateArraySequenceIn *aSeqParams)
INT2VectorSequence * XLALCreateINT2VectorSequence(UINT4 length, UINT4 veclen)
void LALI2DestroyArraySequence(LALStatus *status, INT2ArraySequence **arraySeqence)
UINT8VectorSequence * XLALCreateUINT8VectorSequence(UINT4 length, UINT4 veclen)
void XLALDestroyINT4VectorSequence(INT4VectorSequence *vecseq)
void LALI8CreateVectorSequence(LALStatus *status, INT8VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
void LALU4CreateArraySequence(LALStatus *status, UINT4ArraySequence **arraySequence, CreateArraySequenceIn *aSeqParams)
void LALDestroyVectorSequence(LALStatus *, REAL4VectorSequence **)
void LALI8CreateArraySequence(LALStatus *status, INT8ArraySequence **arraySequence, CreateArraySequenceIn *aSeqParams)
void LALCDestroyArraySequence(LALStatus *status, COMPLEX8ArraySequence **arraySeqence)
void LALDDestroyVectorSequence(LALStatus *status, REAL8VectorSequence **vectorSequence)
void LALCCreateVectorSequence(LALStatus *status, COMPLEX8VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
void LALU8DestroyVectorSequence(LALStatus *status, UINT8VectorSequence **vectorSequence)
void LALI2DestroyVectorSequence(LALStatus *status, INT2VectorSequence **vectorSequence)
void XLALDestroyREAL8VectorSequence(REAL8VectorSequence *vecseq)
void LALI4CreateVectorSequence(LALStatus *status, INT4VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
REAL4VectorSequence * XLALCreateREAL4VectorSequence(UINT4 length, UINT4 veclen)
void LALCreateArraySequence(LALStatus *, REAL4ArraySequence **, CreateArraySequenceIn *)
void XLALDestroyUINT2VectorSequence(UINT2VectorSequence *vecseq)
void LALCDestroyVectorSequence(LALStatus *status, COMPLEX8VectorSequence **vectorSequence)
void LALDestroyArraySequence(LALStatus *, REAL4ArraySequence **)
void LALU8DestroyArraySequence(LALStatus *status, UINT8ArraySequence **arraySeqence)
void LALZDestroyArraySequence(LALStatus *status, COMPLEX16ArraySequence **arraySeqence)
void LALU2DestroyArraySequence(LALStatus *status, UINT2ArraySequence **arraySeqence)
void LALDCreateVectorSequence(LALStatus *status, REAL8VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
void LALSDestroyArraySequence(LALStatus *status, REAL4ArraySequence **arraySeqence)
void LALU4DestroyArraySequence(LALStatus *status, UINT4ArraySequence **arraySeqence)
void XLALDestroyUINT8VectorSequence(UINT8VectorSequence *vecseq)
void LALU2CreateVectorSequence(LALStatus *status, UINT2VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
void LALI4CreateArraySequence(LALStatus *status, INT4ArraySequence **arraySequence, CreateArraySequenceIn *aSeqParams)
void XLALDestroyUINT4VectorSequence(UINT4VectorSequence *vecseq)
void LALU4CreateVectorSequence(LALStatus *status, UINT4VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
UINT2VectorSequence * XLALCreateUINT2VectorSequence(UINT4 length, UINT4 veclen)
void LALDDestroyArraySequence(LALStatus *status, REAL8ArraySequence **arraySeqence)
void LALZDestroyVectorSequence(LALStatus *status, COMPLEX16VectorSequence **vectorSequence)
void XLALDestroyINT8VectorSequence(INT8VectorSequence *vecseq)
INT8VectorSequence * XLALCreateINT8VectorSequence(UINT4 length, UINT4 veclen)
void LALSCreateVectorSequence(LALStatus *status, REAL4VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
void LALCreateVectorSequence(LALStatus *, REAL4VectorSequence **, CreateVectorSequenceIn *)
void LALI2CreateArraySequence(LALStatus *status, INT2ArraySequence **arraySequence, CreateArraySequenceIn *aSeqParams)
void XLALDestroyCOMPLEX8VectorSequence(COMPLEX8VectorSequence *vecseq)
void LALSCreateArraySequence(LALStatus *status, REAL4ArraySequence **arraySequence, CreateArraySequenceIn *aSeqParams)
void XLALDestroyINT2VectorSequence(INT2VectorSequence *vecseq)
void LALI8DestroyVectorSequence(LALStatus *status, INT8VectorSequence **vectorSequence)
void LALCCreateArraySequence(LALStatus *status, COMPLEX8ArraySequence **arraySequence, CreateArraySequenceIn *aSeqParams)
void LALI2CreateVectorSequence(LALStatus *status, INT2VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
uint32_t UINT4
Four-byte unsigned integer.
void XLALDestroyCHARVectorSequence(CHARVectorSequence *vecseq)
CHARVectorSequence * XLALCreateCHARVectorSequence(UINT4 length, UINT4 veclen)
void LALCHARCreateVectorSequence(LALStatus *status, CHARVectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
void LALCHARDestroyVectorSequence(LALStatus *status, CHARVectorSequence **vectorSequence)
Sequence of CHAR Vectors, see DATATYPE-VectorSequence types for more details.
Definition: LALDatatypes.h:261
Sequence of COMPLEX16 multidimensional arrays, see DATATYPE-ArraySequence types for more details.
Definition: LALDatatypes.h:445
Sequence of COMPLEX16 Vectors, see DATATYPE-VectorSequence types for more details.
Definition: LALDatatypes.h:361
Sequence of COMPLEX8 multidimensional arrays, see DATATYPE-ArraySequence types for more details.
Definition: LALDatatypes.h:437
Sequence of COMPLEX8 Vectors, see DATATYPE-VectorSequence types for more details.
Definition: LALDatatypes.h:351
This structure stores the input required for creating an array sequence.
Definition: SeqFactories.h:115
UINT4Vector * dimLength
The dimensions of each array index (the same for every array in the sequence)
Definition: SeqFactories.h:117
UINT4 length
The sequence length.
Definition: SeqFactories.h:116
This structure stores the input required for creating a vector sequence.
Definition: SeqFactories.h:104
UINT4 length
The sequence length.
Definition: SeqFactories.h:105
UINT4 vectorLength
The length of each vector in the sequence.
Definition: SeqFactories.h:106
Sequence of INT2 multidimensional arrays, see DATATYPE-ArraySequence types for more details.
Definition: LALDatatypes.h:373
Sequence of INT2 Vectors, see DATATYPE-VectorSequence types for more details.
Definition: LALDatatypes.h:271
Sequence of INT4 multidimensional arrays, see DATATYPE-ArraySequence types for more details.
Definition: LALDatatypes.h:389
Sequence of INT4 Vectors, see DATATYPE-VectorSequence types for more details.
Definition: LALDatatypes.h:291
Sequence of INT8 multidimensional arrays, see DATATYPE-ArraySequence types for more details.
Definition: LALDatatypes.h:405
Sequence of INT8 Vectors, see DATATYPE-VectorSequence types for more details.
Definition: LALDatatypes.h:311
LAL status structure, see The LALStatus structure for more details.
Definition: LALDatatypes.h:947
Sequence of REAL4 multidimensional arrays, see DATATYPE-ArraySequence types for more details.
Definition: LALDatatypes.h:421
Sequence of REAL4 Vectors, see DATATYPE-VectorSequence types for more details.
Definition: LALDatatypes.h:331
Sequence of REAL8 multidimensional arrays, see DATATYPE-ArraySequence types for more details.
Definition: LALDatatypes.h:429
Sequence of REAL8 Vectors, see DATATYPE-VectorSequence types for more details.
Definition: LALDatatypes.h:341
Sequence of UINT2 multidimensional arrays, see DATATYPE-ArraySequence types for more details.
Definition: LALDatatypes.h:381
Sequence of UINT2 Vectors, see DATATYPE-VectorSequence types for more details.
Definition: LALDatatypes.h:281
Sequence of UINT4 multidimensional arrays, see DATATYPE-ArraySequence types for more details.
Definition: LALDatatypes.h:397
Vector of type UINT4, see DATATYPE-Vector types for more details.
Definition: LALDatatypes.h:118
Sequence of UINT4 Vectors, see DATATYPE-VectorSequence types for more details.
Definition: LALDatatypes.h:301
Sequence of UINT8 multidimensional arrays, see DATATYPE-ArraySequence types for more details.
Definition: LALDatatypes.h:413
Sequence of UINT8 Vectors, see DATATYPE-VectorSequence types for more details.
Definition: LALDatatypes.h:321