24 #include <lal/LALStdlib.h>
54 typedef struct tagUINT4VectorAligned {
70 typedef struct tagREAL4VectorAligned {
86 typedef struct tagREAL8VectorAligned {
102 typedef struct tagCOMPLEX8VectorAligned {
118 typedef struct tagCOMPLEX16VectorAligned {
double complex COMPLEX16
Double-precision floating-point complex number (16 bytes total)
double REAL8
Double precision real floating-point number (8 bytes).
uint32_t UINT4
Four-byte unsigned integer.
float complex COMPLEX8
Single-precision floating-point complex number (8 bytes total)
int32_t INT4
Four-byte signed integer.
float REAL4
Single precision real floating-point number (4 bytes).
COMPLEX8VectorAligned * XLALResizeCOMPLEX8VectorAligned(COMPLEX8VectorAligned *in, const UINT4 length, const UINT4 align)
Resize an existing COMPLEX8VectorAligned struct to length length and alignment align.
UINT4VectorAligned * XLALCreateUINT4VectorAligned(const UINT4 length, const UINT4 align)
Create a new UINT4VectorAligned struct with length length and alignment align.
int XLALVectorSinCosREAL4(REAL4 *out1, REAL4 *out2, const REAL4 *in, const UINT4 len)
Compute over REAL4 vectors out1, out2, in with len elements.
int XLALVectorScaleREAL4(REAL4 *out, REAL4 scalar, const REAL4 *in, const UINT4 len)
Compute over REAL4 vector in with len elements.
int XLALVectorLogREAL4(REAL4 *out, const REAL4 *in, const UINT4 len)
Compute over REAL4 vectors out, in with len elements.
REAL8VectorAligned * XLALResizeREAL8VectorAligned(REAL8VectorAligned *in, const UINT4 length, const UINT4 align)
Resize an existing REAL8VectorAligned struct to length length and alignment align.
void XLALDestroyREAL4VectorAligned(REAL4VectorAligned *in)
Free a REAL4VectorAligned struct.
int XLALVectorRoundREAL4(REAL4 *out, const REAL4 *in, const UINT4 len)
Compute over REAL4 vectors out, in with len elements.
int XLALVectorSubREAL4(REAL4 *out, const REAL4 *in1, const REAL4 *in2, const UINT4 len)
Compute over REAL4 vectors in1 and in2 with len elements.
int XLALVectorSubREAL8(REAL8 *out, const REAL8 *in1, const REAL8 *in2, const UINT4 len)
Compute over REAL8 vectors in1 and in2 with len elements.
COMPLEX8VectorAligned * XLALCreateCOMPLEX8VectorAligned(const UINT4 length, const UINT4 align)
Create a new COMPLEX8VectorAligned struct with length length and alignment align.
int XLALVectorMultiplyCOMPLEX8(COMPLEX8 *out, const COMPLEX8 *in1, const COMPLEX8 *in2, const UINT4 len)
Compute over COMPLEX8 vectors in1 and in2 with len elements.
int XLALVectorAddCOMPLEX8(COMPLEX8 *out, const COMPLEX8 *in1, const COMPLEX8 *in2, const UINT4 len)
Compute over COMPLEX8 vectors in1 and in2 with len elements.
int XLALVectorShiftCOMPLEX8(COMPLEX8 *out, COMPLEX8 scalar, const COMPLEX8 *in, const UINT4 len)
Compute over COMPLEX8 vector in with len elements.
void XLALDestroyREAL8VectorAligned(REAL8VectorAligned *in)
Free a REAL8VectorAligned struct.
int XLALVectorMaxREAL8(REAL8 *out, const REAL8 *in1, const REAL8 *in2, const UINT4 len)
Compute over REAL8 vectors in1 and in2 with len elements.
void XLALDestroyCOMPLEX16VectorAligned(COMPLEX16VectorAligned *in)
Free a COMPLEX16VectorAligned struct.
REAL8VectorAligned * XLALCreateREAL8VectorAligned(const UINT4 length, const UINT4 align)
Create a new REAL8VectorAligned struct with length length and alignment align.
int XLALVectorMultiplyREAL8(REAL8 *out, const REAL8 *in1, const REAL8 *in2, const UINT4 len)
Compute over REAL8 vectors in1 and in2 with len elements.
COMPLEX16VectorAligned * XLALResizeCOMPLEX16VectorAligned(COMPLEX16VectorAligned *in, const UINT4 length, const UINT4 align)
Resize an existing COMPLEX16VectorAligned struct to length length and alignment align.
REAL4VectorAligned * XLALResizeREAL4VectorAligned(REAL4VectorAligned *in, const UINT4 length, const UINT4 align)
Resize an existing REAL4VectorAligned struct to length length and alignment align.
int XLALVectorFindVectorLessEqualREAL4(UINT4 *count, UINT4 *out, const REAL4 *in1, const REAL4 *in2, const UINT4 len)
Count and return indexes (in count and out respectively) of vector elements where .
int XLALVectorINT4FromREAL4(INT4 *out, const REAL4 *in, const UINT4 len)
Cast (i.e.
UINT4VectorAligned * XLALResizeUINT4VectorAligned(UINT4VectorAligned *in, const UINT4 length, const UINT4 align)
Resize an existing UINT4VectorAligned struct to length length and alignment align.
int XLALVectorSinCos2PiREAL4(REAL4 *out1, REAL4 *out2, const REAL4 *in, const UINT4 len)
Compute over REAL4 vectors out1, out2, in with len elements.
void XLALDestroyUINT4VectorAligned(UINT4VectorAligned *in)
Free a UINT4VectorAligned struct.
REAL4VectorAligned * XLALCreateREAL4VectorAligned(const UINT4 length, const UINT4 align)
Create a new REAL4VectorAligned struct with length length and alignment align.
int XLALVectorShiftREAL8(REAL8 *out, REAL8 scalar, const REAL8 *in, const UINT4 len)
Compute over REAL8 vector in with len elements.
int XLALVectorMaxREAL4(REAL4 *out, const REAL4 *in1, const REAL4 *in2, const UINT4 len)
Compute over REAL4 vectors in1 and in2 with len elements.
int XLALVectorScaleREAL8(REAL8 *out, REAL8 scalar, const REAL8 *in, const UINT4 len)
Compute over REAL8 vector in with len elements.
int XLALVectorRoundREAL8(REAL8 *out, const REAL8 *in, const UINT4 len)
Compute over REAL8 vectors out, in with len elements.
int XLALVectorAddREAL4(REAL4 *out, const REAL4 *in1, const REAL4 *in2, const UINT4 len)
Compute over REAL4 vectors in1 and in2 with len elements.
int XLALVectorAddREAL8(REAL8 *out, const REAL8 *in1, const REAL8 *in2, const UINT4 len)
Compute over REAL8 vectors in1 and in2 with len elements.
int XLALVectorExpREAL4(REAL4 *out, const REAL4 *in, const UINT4 len)
Compute over REAL4 vectors out, in with len elements.
void XLALDestroyCOMPLEX8VectorAligned(COMPLEX8VectorAligned *in)
Free a COMPLEX8VectorAligned struct.
int XLALVectorMultiplyREAL4(REAL4 *out, const REAL4 *in1, const REAL4 *in2, const UINT4 len)
Compute over REAL4 vectors in1 and in2 with len elements.
COMPLEX16VectorAligned * XLALCreateCOMPLEX16VectorAligned(const UINT4 length, const UINT4 align)
Create a new COMPLEX16VectorAligned struct with length length and alignment align.
int XLALVectorCosREAL4(REAL4 *out, const REAL4 *in, const UINT4 len)
Compute over REAL4 vectors out, in with len elements.
int XLALVectorShiftREAL4(REAL4 *out, REAL4 scalar, const REAL4 *in, const UINT4 len)
Compute over REAL4 vector in with len elements.
int XLALVectorFindScalarLessEqualREAL4(UINT4 *count, UINT4 *out, REAL4 scalar, const REAL4 *in, const UINT4 len)
Count and return indexes (in count and out respectively) of vector elements where .
int XLALVectorSinREAL4(REAL4 *out, const REAL4 *in, const UINT4 len)
Compute over REAL4 vectors out, in with len elements.
int XLALVectorScaleCOMPLEX8(COMPLEX8 *out, COMPLEX8 scalar, const COMPLEX8 *in, const UINT4 len)
Compute over COMPLEX8 vector in with len elements.
A special COMPLEX16Vector with n-byte aligned memory data array.
COMPLEX16 * data
start of aligned memory block
UINT4 length
number of 'usable' array entries (fully aligned)
COMPLEX16 * data0
actual physical start of memory block, possibly not aligned
A special COMPLEX8Vector with n-byte aligned memory data array.
COMPLEX8 * data
start of aligned memory block
COMPLEX8 * data0
actual physical start of memory block, possibly not aligned
UINT4 length
number of 'usable' array entries (fully aligned)
A special REAL4Vector with n-byte aligned memory data array.
REAL4 * data0
actual physical start of memory block, possibly not aligned
UINT4 length
number of 'usable' array entries (fully aligned)
REAL4 * data
start of aligned memory block
A special REAL8Vector with n-byte aligned memory data array.
REAL8 * data
start of aligned memory block
REAL8 * data0
actual physical start of memory block, possibly not aligned
UINT4 length
number of 'usable' array entries (fully aligned)
A special UINT4Vector with n-byte aligned memory data array.
UINT4 * data0
actual physical start of memory block, possibly not aligned
UINT4 length
number of 'usable' array entries (fully aligned)
UINT4 * data
start of aligned memory block