forked from 1chipML/1chipML
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmatrix.h
32 lines (27 loc) · 1.18 KB
/
matrix.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef MATRIX_H
#define MATRIX_H
typedef unsigned int matrix_size;
typedef double matrix_real_number;
#ifdef __cplusplus
extern "C" {
#endif
matrix_size coordToIndex(const matrix_size row, const matrix_size col,
const matrix_size size);
matrix_size isDiagonal(const matrix_size index, const matrix_size size);
void matrixMultiply(const matrix_real_number* firstMatrix,
const matrix_real_number* secondMatrix,
const matrix_size size[3], matrix_real_number* output,
const matrix_size transposeFirstMatrix);
void createIdentityMatrix(const matrix_size size, matrix_real_number* output);
void vectorScale(matrix_real_number* vector, matrix_size nbElements,
matrix_real_number scale);
void vectorSubstract(matrix_real_number* vector1, matrix_real_number* vector2,
matrix_size dim);
void makeUnitVector(matrix_real_number* vector, matrix_size nbElements);
matrix_real_number computeNorm(matrix_real_number* vector, matrix_size length);
void matrixTranspose(matrix_real_number* input, matrix_real_number* output,
matrix_size* dims);
#ifdef __cplusplus
}
#endif
#endif