Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

lapack.h

Go to the documentation of this file.
00001 // lapack.h header file for the lapack declarations
00002 //
00004 
00005 
00006 extern "C" 
00007 {
00008         // LAPACK driver routines follow
00009 
00010         // routine to solve a general system of linear equations (simple driver)
00011 #ifdef _WIN32
00012 #       define dgesv_ DGESV
00013 #else
00014 #define DGESV dgesv_
00015 #endif
00016         int dgesv_(int *n, int *nrhs, double *a, int *lda, int *ipiv, double *b, int *ldb, int *info); 
00017 
00018         // routine to get eigenvalues and (left and right)eigenvectors of a general matrix.
00019         // char argument !!! special attention for windows (stilil to be done)
00020 #ifdef _WIN32
00021 #       define dgeev_ DGEEV
00022 #else
00023 #define DGEEV dgeev_
00024 #endif
00025         int dgeev_(char* jobvl,char* jobvr,int* n, double* a, int* lda,double* wr,double* wi, double* vl, 
00026                            int* ldvl, double* vr, int* ldvr, double* work, int* lwork, int* info);
00027 
00028         // routine to get generalized eigenvalues and eigenvectors for a system of 2 symmetric matrices.
00029 #ifdef _WIN32
00030 #       define dsygv_ DSYGV
00031 #else
00032 #define DSYGV dsygv_
00033 #endif
00034         int dsygv_(int *itype, char *jobz, char *uplo, int *n, double *a, int *lda, double *b, int *ldb, double *w, double *work, int *lwork, int *info );
00035 
00036 
00037         // routines for computing minimum norm solution to a possibly singular or degenerate linear system using singular value decomposition. dgelsd is faster than the older dgelss, but needs more workspace
00038 #ifdef _WIN32
00039 #       define dgelss_ DGELSS
00040 #else
00041 #define DGELSS dgelss_
00042 #endif
00043         int dgelss_(int *m, int *n, int *nrhs, double *a, int *lda, double *b, int *ldb, double *s, double *rcond, int *rank, double *work, int *lwork, int *info);
00044 
00045 #ifdef _WIN32
00046 #       define dgelsd_ DGELSD
00047 #else
00048 #define DGELSD dgelsd_
00049 #endif
00050         int dgelsd_(int *m, int *n, int *nrhs, double *a, int *lda, double *b, int *ldb, double *s, double *rcond, int *rank, double *work, int *lwork, int *iwork, int *info);
00051 
00052         // routine for eigenvectors and eigenvalues of a symmetric matrix
00053 #ifdef _WIN32
00054 #       define dsyev_ DSYEV
00055 #else
00056 #define DSYEV dsyev_
00057 #endif
00058         int dsyev_(char* jobz,char* uplo,int* n,double* fa,int* lda,double* w, double* work,int* lwork,int* info);
00059 
00060 
00061         // routine for solving a real symmetric indefinite system of linear equations AX=B (simple driver) 
00062 #ifdef _WIN32
00063 #       define dsysv_ DSYSV
00064 #else
00065 #define DSYSV dsysv_    
00066 #endif
00067         int dsysv_(char* uplo,int* n,int *nrhs,double *a,int *lda,int *ipiv,double *b,int *ldb,double *work, int *lwork,int *info);
00068 
00069 
00070         // routine for doing LU factorization of general m x n matrix
00071 #ifdef _WIN32
00072 #       define dgetrf_ DGETRF
00073 #else
00074 #define DGETRF dgetrf_
00075 #endif
00076         int dgetrf_( int *m, int *n, double *a, int *lda, int *ipiv, int *info );
00077 
00078         // routine to compute the inverse of a matrix using the LU factorization provided by dgetrf
00079 #ifdef _WIN32
00080 #       define dgetri_ DGETRI
00081 #else
00082 #define DGETRI dgetri_
00083 #endif
00084         int dgetri_( int *n, double *a, int *lda, int *ipiv, double *work, int *lwork, int *info );
00085 
00086         //reduces a real general rectangular matrix to real bidiagonal form by an orthogonal transformation
00087 #ifdef _WIN32
00088 #define dgebrd_ DGEBRD
00089 #else 
00090 #define DGEBRD dgebrd_
00091 #endif
00092         void dgebrd_( int *m, int *n, double *a, int *lda, double *d, double *e, double *tauq, double *taup, double *work, int *lwork, int *info );
00093 
00094         //Generates the orthogonal transformation matrices from a reduction to bidiagonal form determined by SGEBRD
00095 #ifdef _WIN32
00096 #define dorgbr_ DORGBR
00097 #else 
00098 #define DORGBR dorgbr_
00099 #endif
00100 
00101         void dorgbr_( char *vect, int *m, int *n, int *k, double *a, int *lda, double *tau, double *work, int *lwork, int *info );
00102 
00103         //Computes the singular value decomposition (SVD) of a real bidiagonal matrix, using the bidiagonal QR algorithm
00104 #ifdef _WIN32
00105 #define dbdsqr_ DBDSQR
00106 #else 
00107 #define DBDSQR dbdsqr_
00108 #endif
00109 
00110         void dbdsqr_( char *uplo, int *n, int *ncvt, int *nru, int *ncc, double *d, double *e, double *vt, int *ldvt, double *u, int *ldu, double *c, int *ldc, double *work, int *info );
00111 
00112         //Solves a real general system of linear equations AX=B, A**T X=B or A**H X=B, using the LU factorization computed by DGETRF
00113 #ifdef _WIN32
00114 #define dgetrs_ DGETRS
00115 #else 
00116 #define DGETRS dgetrs_
00117 #endif
00118 
00119         void dgetrs_( char *trans, int *n, int *nrhs, double *a, int *lda, int *ipiv, double *b, int *ldb, int *info );
00120 
00121         //Computes the Cholesky factorization of a real symmetric positive definite matrix
00122 #ifdef _WIN32
00123 #define dpotrf_ DPOTRF
00124 #else 
00125 #define DPOTRF dpotrf_
00126 #endif
00127 
00128         void dpotrf_( char *uplo, int * n, double *a, int *lda, int *info );
00129 
00130         //Computes a QR factorization with column pivoting of a general rectangular matrix
00131 #ifdef _WIN32
00132 #define dgeqpf_ DGEQPF
00133 #else 
00134 #define DGEQPF dgeqpf_
00135 #endif
00136 
00137         void dgeqpf_( int *m, int *n, double *a, int *lda, int *jpvt, double *tau, double *work, int *info );
00138 
00139 
00140 }

Generated on Mon Nov 3 09:37:55 2003 by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002