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
|
TODO
Date: 2006-11-20
http://www.netlib.org/lapack/
http://www.netlib.org/c/meschach/ (not GPL'ed, but excellent implementation!)
la.c: write:
new gmath function old MESCHACH
G_vector_free() free vector memory #define V_FREE(vec) ( v_free(vec), (vec)=(VEC *)NULL )
int v_free(vec)
VEC *vec;
G_vector_sub() Subtract two vectors: VEC *v_sub(vec1,vec2,out)
VEC *vec1,*vec2,*out;
G_vector_norm1() Calculate 1-norm of vector #define v_norm1(x) _v_norm1(x,VNULL)
double _v_norm1(x,scale)
VEC *x, *scale;
G_matrix_scalar_mult() Scalar-matrix multiplication MAT *sm_mlt(scalar,matrix,out)
double scalar;
MAT *matrix,*out;
G_matrix_stdin() stdin read-function "m_input()" #define m_input(mat) m_finput(stdin,mat)
MAT *m_finput(FILE *fp,MAT *out);
G_vector_stdin() stdin read-function "v_input()" #define v_input(vec) v_finput(stdin,vec)
VEC *v_finput(FILE *fp,VEC *out);
Sample text matrix for G_matrix_stdin()
# comment
# enter row by col
Matrix: 4 by 6
row0: 8.87 13.14 11.71 35.85 28.26 10.54
row1: 13.59 20.12 19.61 70.66 34.82 16.35
row2: 28.26 34.82 38.27 40.1 38.27 23.7
row3: 10.54 16.35 23.7 38.98 40.1 38.98
-----------------------------------------------------------------------
eigen.c/jacobi.c:
there are two conflicting
egvorder(), egvorder2()
transpose(), transpose2()
both used in i.pca and i.cca. Header different, functionality identical.
To be merged.
-> some cleanup done by Glynn
|