diff options
Diffstat (limited to 'include/gensvm_matrix.h')
| -rw-r--r-- | include/gensvm_matrix.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/gensvm_matrix.h b/include/gensvm_matrix.h new file mode 100644 index 0000000..01be3da --- /dev/null +++ b/include/gensvm_matrix.h @@ -0,0 +1,37 @@ +/** + * @file gensvm_matrix.h + * @author Gertjan van den Burg + * @date August, 2013 + * @brief Header file for gensvm_matrix.c + * + * @details + * Contains function declarations for functions useful for dealing with matrices. + * + */ + +#ifndef GENSVM_MATRIX_H +#define GENSVM_MATRIX_H + +#include "globals.h" + +// Set a matrix element (RowMajor) +#define matrix_set(M, cols, i, j, val) M[(i)*(cols)+j] = val + +// Get a matrix element (RowMajor) +#define matrix_get(M, cols, i, j) M[(i)*(cols)+j] + +// Add to a matrix element (RowMajor) +#define matrix_add(M, cols, i, j, val) M[(i)*(cols)+j] += val + +// Multiply a matrix element (RowMajor) +#define matrix_mul(M, cols, i, j, val) M[(i)*(cols)+j] *= val + +// Set a 3D matrix element (N2 = second dim, N3 = third dim, RowMajor) +#define matrix3_set(M, N2, N3, i, j, k, val) M[k+(N3)*(j+(N2)*(i))] = val + +// Get a 3D matrix element (N2 = second dim, N3 = third dim, RowMajor) +#define matrix3_get(M, N2, N3, i, j, k) M[k+(N3)*(j+(N2)*(i))] + +void print_matrix(double *M, long rows, long cols); + +#endif |
