Next: Structured datatypes
Up: Header LALDatatypes.h
Previous: Atomic datatypes codes
  Contents
  Index
Aggregate datatypes
These datatypes store arbitrarily large sets or collections of
primitive datatypes. At this level there is no physical
interpretation assigned to the objects (such as names or units); the
aggregate datatypes simply collect and arrange the primitive
datatypes. The following types of aggregate datatypes are defines:
vectors, arrays, sequences, vector sequences, and array sequences.
<datatype>Vector
This structure stores an ordered set of
elements of type
<datatype>, which can be any primitive datatype. The data are
to be interpreted as being a point in an
-dimensional vector space.
The fields are:
- UINT4 length
- The number of data
.
- <datatype> *data
- Pointer to the data array. The data
are stored sequentially as
data[
].
<datatype>Array
This structure stores a set of elements of type <datatype>,
which can be any primitive datatype, arranged as an
-dimensional
array. That is, each element can be thought of as having
indecies,
, where each index
runs over its own range
. The total number of
elements is then
. In memory the
array is ``flattened'' so that the elements are stored sequentially in
a contiguous block. The fields are:
- UINT4Vector *dimLength
- Pointer to a vector of length
, storing the index ranges
.
- <datatype> *data
- Pointer to the data array. The data
element
is stored as
data[

]; that is,
the index of data[] runs over the entire range of an index
before incrementing
.
<datatype>Sequence
This structure stores an ordered set of
elements of type
<datatype>, which can be any primitive datatype. It is
identical to <datatype>Vector, except that the elements are to
be interpreted as
consecutive elements rather than the components
of an
-dimensional vector. The fields are:
- UINT4 length
- The number of data
.
- <datatype> *data
- Pointer to the data array. The data
are stored sequentially as
data[
].
<datatype>VectorSequence
This structure stores an ordered set of
elements of type
<datatype>Vector, where <datatype> can be any primitive
datatype. Mathematically the sequence can be written as
, where each element
is a vector of length
. In memory the elements are ``flattened''; that is, they are
stored sequentially in a contiguous block of memory. The fields are:
- UINT4 length
- The number of vectors
.
- UINT4 vectorLength
- The length
of each vector.
- <datatype> *data
- Pointer to the data array. The data
element
is stored as data[
];
that is, the index of data[] runs over the internal index of
each vector element before incrementing to the next vector element.
<datatype>ArraySequence
This structure stores an ordered set of
elements of type
<datatype>Array, where <datatype> can be any primitive
datatype. The indexing of an array sequence can get quite
complicated; it helps to read first the documentation for data arrays,
above. Mathematically the data can be written as a set
, where the sequence number
runs from 0 to
, and each array index
runs over its own
range
. The total number of data in a given array
element is then
, and the total
number of data in the sequence is
. In memory the array is
``flattened'' so that the elements are stored sequentially in a
contiguous block. The fields are:
- UINT4 length
- The number
of array elements in the
sequence.
- UINT4 arrayDim
- The number of data
(not the
number of indecies
) in each array element of the sequence.
- UINT4Vector *dimLength
- Pointer to a vector of length
, storing the index ranges
.
- <datatype> *data
- Pointer to the data. The element
is stored as
data[

]; that is,
the index of data[] runs over the internal indecies of each
array element before incrementing to the next array element.
Next: Structured datatypes
Up: Header LALDatatypes.h
Previous: Atomic datatypes codes
  Contents
  Index
LAL test account
2003-10-23