00001 /*************************************************************************** 00002 matrixutils.h - description 00003 ------------------- 00004 email : georg.martius@web.de 00005 ***************************************************************************/ 00006 // provides utils for matrix calculation using the GSL (gnu scientific library) 00007 00008 #ifndef MATRIXUTILS_H 00009 #define MATRIXUTILS_H 00010 00011 00012 #include "matrix.h" 00013 00014 /** 00015 * namespace for the matrix library 00016 */ 00017 namespace matrix{ 00018 00019 /** 00020 calculates the eigenvalues of the real and symmetric matrix m 00021 and returns them as a column vector in descending order 00022 */ 00023 Matrix eigenValuesRealSym(const Matrix &m); 00024 00025 /** 00026 calculates the eigenvalues and corresponding eigenvectors 00027 of the the real and symmetric matrix m. 00028 The eigenvalues are returned them as a column vector in descending order 00029 and the belonging 00030 eigenvectors are stored in the columns of the matrix eigenvectors. 00031 */ 00032 bool eigenValuesVectorsRealSym(const Matrix &m, Matrix& eigenvalues, Matrix& eigenvectors); 00033 00034 /** 00035 calculates the eigenvalues of the matrix m and returns them as a column vectors 00036 seperated to real and imaginary part in descending order. 00037 */ 00038 bool eigenValues(const Matrix &m, Matrix& vals_real, Matrix& vals_imag); 00039 00040 /** 00041 calculates the eigenvalues and corresponding eigenvectors 00042 of the matrix m. The eigenvalues are returned them as a column vector 00043 in descending order and the belonging 00044 eigenvectors are stored in the columns of the matrix eigenvectors. 00045 Both are seperated into real and imaginary part. 00046 */ 00047 bool eigenValuesVectors(const Matrix &m, Matrix& vals_real, Matrix& vals_imag, 00048 Matrix& vecs_real, Matrix& vecs_imag); 00049 00050 } 00051 00052 #endif