67 #include <lal/LALStdlib.h>
68 #include <lal/MatrixUtils.h>
73 UINT4 i, j, k, ni, nj, nk;
74 UINT4 ij, ik, kj, in, kn;
75 REAL8 *outData, *in1Data, *in2Data;
115 for ( i = 0, in = 0, kn = 0; i < ni; i++, in += nj, kn += nk ) {
116 for ( j = 0, ij = in; j < nj; j++, ij++ ) {
118 for ( k = 0, ik = kn, kj = j; k < nk; k++, ik++, kj += nj ) {
119 outData[ij] += in1Data[ik]*in2Data[kj];
132 REAL8 *outData, *in1Data;
161 for ( i = 0, in = 0; i < ni; i++, in += nj ) {
162 for ( j = 0, ij = in, ji = i; j < nj; j++, ij++, ji += ni ) {
163 outData[ij] = in1Data[ji];
#define ASSERT(assertion, statusptr, code, mesg)
#define INITSTATUS(statusptr)
#define RETURN(statusptr)
#define MATRIXUTILSH_MSGEDIM
#define MATRIXUTILSH_MSGENUL
double REAL8
Double precision real floating-point number (8 bytes).
uint32_t UINT4
Four-byte unsigned integer.
void LALDMatrixMultiply(LALStatus *stat, REAL8Array *out, REAL8Array *in1, REAL8Array *in2)
void LALDMatrixTranspose(LALStatus *stat, REAL8Array *out, REAL8Array *in1)
#define MATRIXUTILSH_ENUL
Unexpected null pointer in arguments.
#define MATRIXUTILSH_EDIM
Bad matrix dimensions.
LAL status structure, see The LALStatus structure for more details.
Multidimentional array of REAL8, see DATATYPE-Array types for more details.
UINT4Vector * dimLength
Vector of array dimensions.
REAL8 * data
Pointer to the data array.
UINT4 length
Number of elements in array.
UINT4 * data
Pointer to the data array.