www.pudn.com > ica_C.rar > matrix.h
#include#include #include #define EPS 1E-6 #define EPS_HYOUJI 1e-10 #define MAX_ITER 100 #define SCALAR double typedef SCALAR *vector, **matrix; extern void error(char *message); extern vector new_vector(int n); extern matrix new_matrix(int nrow, int ncol); extern void free_vector(vector v); extern void free_matrix(matrix a); extern void zeros(int n, int m, matrix a); extern void eye(int n, matrix a); extern void copy_mat(int n, int m, matrix a, matrix c); extern void printmat(int nrow, int mcol, matrix a); extern void printvec(vector v, int n); extern SCALAR innerproduct(int n, vector u, vector v); extern void sum_mat(int n, int m, matrix a, matrix b, matrix c); extern void sub_mat(int n, int m, matrix a, matrix b, matrix c); extern void multiply(int n, int l, int m, matrix a, matrix b, matrix c); extern void mult_cmp(int n, int l, int m, matrix a_r, matrix a_i, matrix b_r, matrix b_i, matrix c_r, matrix c_i, matrix tmp_r, matrix tmp_i); extern void mult2(int n, matrix a, matrix b); extern SCALAR powvec(int dim, vector data); extern void trans_mat(int n, int m, matrix a, matrix c); extern SCALAR matinv(int n, matrix a, matrix a_inv); extern SCALAR matinv2(int n, matrix a, matrix a_inv); extern SCALAR eig2(SCALAR a, SCALAR b, SCALAR c, SCALAR *x, SCALAR *y); extern SCALAR eig3(matrix A, SCALAR *x, SCALAR *y, SCALAR *z); extern void eigen(int n, matrix a, vector d, vector e); extern SCALAR matinv_complex(int dim, matrix in_r, matrix in_i, matrix out_r,matrix out_i);