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