1 |
gezelter |
2 |
#ifndef __MATVEC3_H__ |
2 |
|
|
#define __MATVEC3_H__ |
3 |
|
|
|
4 |
|
|
#include <math.h> |
5 |
tim |
3 |
#include "utils/simError.h" |
6 |
gezelter |
2 |
#ifdef __cplusplus |
7 |
|
|
extern "C" { |
8 |
|
|
#endif |
9 |
|
|
|
10 |
|
|
void identityMat3(double A[3][3]); |
11 |
|
|
void swapVectors3(double v1[3], double v2[3]); |
12 |
|
|
static double norm3(const double x[3]){ return sqrt(x[0]*x[0] + x[1]*x[1] + x[2]*x[2]); }; |
13 |
|
|
double normalize3(double x[3]); |
14 |
|
|
void matMul3(double a[3][3], double b[3][3], double out[3][3]); |
15 |
|
|
void matVecMul3(double m[3][3], double inVec[3], double outVec[3]); |
16 |
|
|
double matDet3(double m[3][3]); |
17 |
|
|
void invertMat3(double in[3][3], double out[3][3]); |
18 |
|
|
void transposeMat3(double in[3][3], double out[3][3]); |
19 |
|
|
void printMat3(double A[3][3]); |
20 |
|
|
void printMat9(double A[9]); |
21 |
|
|
double matTrace3(double m[3][3]); |
22 |
|
|
void crossProduct3(double a[3],double b[3], double out[3]); |
23 |
|
|
double dotProduct3(double a[3], double b[3]); |
24 |
|
|
void diagonalize3x3(const double A[3][3],double w[3],double V[3][3]); |
25 |
|
|
int JacobiN(double **a, int n, double *w, double **v); |
26 |
|
|
|
27 |
|
|
#ifdef __cplusplus |
28 |
|
|
} |
29 |
|
|
#endif |
30 |
|
|
|
31 |
|
|
#endif |