LAL 7.7.0.1-678514e
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
8extern "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 */
104typedef 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 */
115typedef 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 */
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)
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)
INT2VectorSequence * XLALCreateINT2VectorSequence(UINT4 length, UINT4 veclen)
void LALU4DestroyVectorSequence(LALStatus *status, UINT4VectorSequence **vectorSequence)
void LALZCreateVectorSequence(LALStatus *status, COMPLEX16VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
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)
UINT2VectorSequence * XLALCreateUINT2VectorSequence(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)
UINT4VectorSequence * XLALCreateUINT4VectorSequence(UINT4 length, UINT4 veclen)
void XLALDestroyREAL8VectorSequence(REAL8VectorSequence *vecseq)
void LALI4CreateVectorSequence(LALStatus *status, INT4VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
COMPLEX8VectorSequence * XLALCreateCOMPLEX8VectorSequence(UINT4 length, UINT4 veclen)
void LALCreateArraySequence(LALStatus *, REAL4ArraySequence **, CreateArraySequenceIn *)
void XLALDestroyUINT2VectorSequence(UINT2VectorSequence *vecseq)
void LALCDestroyVectorSequence(LALStatus *status, COMPLEX8VectorSequence **vectorSequence)
void LALDestroyArraySequence(LALStatus *, REAL4ArraySequence **)
INT8VectorSequence * XLALCreateINT8VectorSequence(UINT4 length, UINT4 veclen)
void LALU8DestroyArraySequence(LALStatus *status, UINT8ArraySequence **arraySeqence)
void LALZDestroyArraySequence(LALStatus *status, COMPLEX16ArraySequence **arraySeqence)
void LALU2DestroyArraySequence(LALStatus *status, UINT2ArraySequence **arraySeqence)
INT4VectorSequence * XLALCreateINT4VectorSequence(UINT4 length, UINT4 veclen)
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)
REAL4VectorSequence * XLALCreateREAL4VectorSequence(UINT4 length, UINT4 veclen)
COMPLEX16VectorSequence * XLALCreateCOMPLEX16VectorSequence(UINT4 length, UINT4 veclen)
void XLALDestroyUINT4VectorSequence(UINT4VectorSequence *vecseq)
void LALU4CreateVectorSequence(LALStatus *status, UINT4VectorSequence **vectorSequence, CreateVectorSequenceIn *vSeqParams)
void LALDDestroyArraySequence(LALStatus *status, REAL8ArraySequence **arraySeqence)
void LALZDestroyVectorSequence(LALStatus *status, COMPLEX16VectorSequence **vectorSequence)
void XLALDestroyINT8VectorSequence(INT8VectorSequence *vecseq)
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)
REAL4VectorSequence * XLALCreateVectorSequence(UINT4 length, UINT4 veclen)
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