From e8810fbc6194b56afbf9bac631b6e78ae3b92fb5 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 20 Sep 2016 17:07:25 +0200 Subject: Change globals.h to gensvm_globals.h Conformity! --- include/gensvm_globals.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 include/gensvm_globals.h (limited to 'include/gensvm_globals.h') diff --git a/include/gensvm_globals.h b/include/gensvm_globals.h new file mode 100644 index 0000000..96d3b38 --- /dev/null +++ b/include/gensvm_globals.h @@ -0,0 +1,59 @@ +/** + * @file globals.h + * @author Gertjan van den Burg + * @date January, 2014 + * @brief Global definitions + * + * @details + * This header file contains defines and includes which are used in many + * parts of the program. Most notably, it includes the gensvm_memory.h header + * which defines functions for safe memory allocation. + * + * Furthermore, a maximum and minimum function are defined here. These + * functions have their own include guards, to ensure potential linked + * libraries don't conflict with these definitions. + * + */ + +#ifndef GENSVM_GLOBALS_H +#define GENSVM_GLOBALS_H + +#include "gensvm_memory.h" +#include "gensvm_types.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#define MAX_LINE_LENGTH 1024 + +#ifndef MIN_MAX_DEFINE +#define MIN_MAX_DEFINE +#define maximum(a, b) (a) > (b) ? (a) : (b) +#define minimum(a, b) (a) < (b) ? (a) : (b) +#endif + +// 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))] + +#endif -- cgit v1.2.3