1 /* 2 * matrix.h - misc. routines for manipulating matrices and solving linear 3 * equations. Matrices are assumed to be declared as **double and 4 * allocated by the function MatrixAlloc. A matrix can be freed by 5 * MatrixFree. Similar for vectors. 6 * 7 * (C) Copyright 2001 by NetGroup A/S. All rights reserved. 8 * 9 * $Log$ 10 * Revision 1.1 2006/06/20 15:57:22 djburke 11 * Hopefully a saner way to build Basic/MatrixOps 12 * 13 * Revision 1.1 2005/01/08 09:22:57 zowie 14 * Added non-symmetric matrices to eigens; updated version to 2.4.2cvs. 15 * 16 * Revision 1.1.1.1 2001/07/06 13:39:35 kneth 17 * Initial import of code. 18 * 19 * 20 */ 21 22 #ifndef SSL_MATRIX_H_ 23 #define SSL_MATRIX_H_ 24 25 #include "sslib.h" 26 #include "complex.h" 27 28 extern double **MatrixAlloc(const int); 29 extern double *VectorAlloc(const int); 30 extern int *IntVectorAlloc(const int); 31 extern SSL_Complex *SSL_ComplexVectorAlloc(const int); 32 extern SSL_Complex **SSL_ComplexMatrixAlloc(const int); 33 extern void MatrixMul(const int, double **, double **, double **); 34 extern void Transpose(const int, double **, double **); 35 extern void MatrixFree(const int, double **); 36 extern void VectorFree(const int, double *); 37 extern void IntVectorFree(const int, int *); 38 extern void SSL_ComplexMatrixFree(const int, SSL_Complex **); 39 extern void SSL_ComplexVectorFree(const int, SSL_Complex *); 40 extern void LUfact(const int, double **, int *); 41 extern void LUsubst(const int, double **, int *, double *); 42 extern void GaussSeidel(const int, double **, double *, double *, double, int); 43 extern void Jacobi(const int, double **, double *, double *, double, int); 44 extern double DotProd(const int, double *, double *); 45 extern void MatrixVecProd(const int, double **, double *, double *); 46 extern void MatrixCopy(const int, double **, double **); 47 extern void GSR(const int, double **); 48 extern double L2VectorNorm(const int, double *); 49 extern void InversMatrix(const int, double **, double **); 50 51 #endif /* SSL_MATRIX_H_ */ 52