| 1 | #ifndef EIGEN_H |
|---|
| 2 | #define EIGEN_H |
|---|
| 3 | |
|---|
| 4 | int eigen(int job, double *A, int n, double *rr, double *ri, |
|---|
| 5 | double *vr, double *vi, double *w); |
|---|
| 6 | void balance(double *mat, int n, int *low, int *hi, double *scale); |
|---|
| 7 | void unbalance(int n, double *vr, double *vi, int low, int hi, |
|---|
| 8 | double *scale); |
|---|
| 9 | int realeig(int job, double *mat, int n,int low, int hi, double *valr, |
|---|
| 10 | double *vali, double *vr, double *vi); |
|---|
| 11 | void elemhess(int job, double *mat, int n, int low, int hi, |
|---|
| 12 | double *vr, double *vi, int *work); |
|---|
| 13 | |
|---|
| 14 | |
|---|
| 15 | /* complex functions */ |
|---|
| 16 | |
|---|
| 17 | typedef struct { double re, im; } complex; |
|---|
| 18 | #define csize(a) (fabs(a.re)+fabs(a.im)) |
|---|
| 19 | |
|---|
| 20 | complex compl (double re,double im); |
|---|
| 21 | complex _conj (complex a); |
|---|
| 22 | complex cplus (complex a, complex b); |
|---|
| 23 | complex cminus (complex a, complex b); |
|---|
| 24 | complex cby (complex a, complex b); |
|---|
| 25 | complex cdiv (complex a,complex b); |
|---|
| 26 | /* complex local_cexp (complex a); */ |
|---|
| 27 | complex cfactor (complex x, double a); |
|---|
| 28 | int cxtoy (complex *x, complex *y, int n); |
|---|
| 29 | int cmatby (complex *a, complex *b, complex *c, int n,int m,int k); |
|---|
| 30 | int cmatout (FILE * fout, complex *x, int n, int m); |
|---|
| 31 | int cmatinv( complex *x, int n, int m, double *space); |
|---|
| 32 | |
|---|
| 33 | |
|---|
| 34 | #endif |
|---|
| 35 | |
|---|