matrix_tools.h
Go to the documentation of this file.
00001 #ifndef _MAT_H
00002 #define _MAT_H
00003 
00004 #include <gsl/gsl_matrix.h>
00005 #include <gsl/gsl_vector.h>
00006 #include <gsl/gsl_blas.h>
00007 #include <gsl/gsl_linalg.h>
00008 
00009 #include <vector>
00010 using namespace std; 
00011 
00012 //matrix-tools
00013 gsl_matrix * colcat(const gsl_matrix *a,const gsl_matrix *b);
00014 gsl_matrix * rowcat(const gsl_matrix *a,const gsl_matrix *b);
00015 double gsl_det(gsl_matrix * m);
00016 int gsl_inverse(gsl_matrix * m,gsl_matrix * im);
00017 double gsl_inverse_det(gsl_matrix * m,gsl_matrix * im);
00018 int gsl_linsolve_lu(gsl_matrix * A,gsl_vector * b,gsl_vector * x);
00019 int gsl_linsolve_svd(gsl_matrix * A,gsl_vector * b,gsl_vector * x);
00020 
00021 int encaps_gsl_linsolveSVD(vector<vector<double> > &A, vector<double> &b, vector<double> &x);
00022 
00023 int encaps_gsl_linsolveLU(double A[], double b[], double x[], int size);  
00024 void gsl_vector2double(gsl_vector *gsl_v, double *v, size_t size);
00025 void gsl_vector2double_offset(gsl_vector *gsl_v, double *v, size_t size, size_t offset);
00026 void sub_double(double *v, double *vi, size_t size, size_t offset);
00027 void gsl_matrix2double(gsl_matrix *gsl_m, double *m, size_t sizei, size_t sizej);
00028 int gsl_rank_svd(gsl_matrix* A);
00029 int gsl_inverse_svd(gsl_matrix *A, gsl_matrix *invA);
00030 int encaps_gsl_inverse_svd(double *A, double *invA, int noc, int nor);
00031 double gsl_vector_norme(gsl_vector *v);
00032 int gsl_vector_cross_product3D(gsl_vector *A, gsl_vector *B, gsl_vector *AB);
00033 int gsl_vector_create_row(gsl_vector *row, gsl_vector * A, gsl_vector *B);
00034 double norme_diff_vecteur(double *v1, double *v2, size_t size);
00035 
00036 void vect2double(vector<double> &vecA, double *A);
00037 void vectormat2double(vector< vector<double> > &matA, double *A);
00038 
00039 void gsl_dbl2matrix(double *A, gsl_matrix *Matr);
00040 int gsl_matrixprod(gsl_matrix *A, gsl_matrix *B, gsl_matrix *C);
00041 int gsl_matrixvecprod(gsl_matrix *A, gsl_vector *B, gsl_vector *C);
00042 
00043 
00044 
00045 #endif
 All Data Structures Files Functions Variables Typedefs Defines