File: matrix.h

package info (click to toggle)
pdl 1%3A2.4.3-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 8,700 kB
  • ctags: 3,724
  • sloc: perl: 23,874; ansic: 10,952; fortran: 6,374; sh: 75; makefile: 58
file content (54 lines) | stat: -rw-r--r-- 2,139 bytes parent folder | download | duplicates (2)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
 * 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: matrix.h,v $
 * 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      Tridiag(const int, double *, double *, double *, 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_ */