/* * matrix.h - misc. routines for manipulating matrices and solving linear * equations. Matrices are assumed to be declared as **double and * allocated by the function MatrixAlloc. A matrix can be freed by * MatrixFree. Similar for vectors. * * (C) Copyright 2001 by NetGroup A/S. All rights reserved. * * $Log$ * Revision 1.1 2006/06/20 15:57:22 djburke * Hopefully a saner way to build Basic/MatrixOps * * Revision 1.1 2005/01/08 09:22:57 zowie * Added non-symmetric matrices to eigens; updated version to 2.4.2cvs. * * Revision 1.1.1.1 2001/07/06 13:39:35 kneth * Initial import of code. * * */ #ifndef SSL_MATRIX_H_ #define SSL_MATRIX_H_ #include "sslib.h" #include "complex.h" extern double **MatrixAlloc(const int); extern double *VectorAlloc(const int); extern int *IntVectorAlloc(const int); extern SSL_Complex *SSL_ComplexVectorAlloc(const int); extern SSL_Complex **SSL_ComplexMatrixAlloc(const int); extern void MatrixMul(const int, double **, double **, double **); extern void Transpose(const int, double **, double **); extern void MatrixFree(const int, double **); extern void VectorFree(const int, double *); extern void IntVectorFree(const int, int *); extern void SSL_ComplexMatrixFree(const int, SSL_Complex **); extern void SSL_ComplexVectorFree(const int, SSL_Complex *); extern void LUfact(const int, double **, int *); extern void LUsubst(const int, double **, int *, double *); extern void GaussSeidel(const int, double **, double *, double *, double, int); extern void Jacobi(const int, double **, double *, double *, double, int); extern double DotProd(const int, double *, double *); extern void MatrixVecProd(const int, double **, double *, double *); extern void MatrixCopy(const int, double **, double **); extern void GSR(const int, double **); extern double L2VectorNorm(const int, double *); extern void InversMatrix(const int, double **, double **); #endif /* SSL_MATRIX_H_ */