TBCI Numerical high perf. C++ Library  2.8.0
lapack.h
Go to the documentation of this file.
1 
5 /* $Id: lapack.h,v 1.6.2.3 2019/05/28 11:13:02 garloff Exp $ */
6 
7 #ifndef TBCI_LAPACK_H
8 #define TBCI_LAPACK_H
9 
10 #include "tbci/basics.h"
11 #include "tbci/cplx.h"
12 #include "tbci/vector.h"
13 #include "tbci/f_matrix.h"
14 #include "tbci/f_bandmatrix.h"
15 
17 
19 
20 
21 //************ Linear Equation systems ***************************************************
22 // double
23 F_TMatrix<double> inv(const F_Matrix<double>& A, int overwriteA=0);
24 F_TMatrix<double> lu_solve(const F_Matrix<double>& A, const F_Matrix<double>& B, int overwriteA=0);
25 TVector<double> lu_solve(const F_Matrix<double>& A, const Vector<double>& B, int overwriteA=0);
26 TVector<double> lu_solve(const F_BandMatrix<double>& A, const Vector<double>& B); //Kopiert A
27 TVector<double> lu_solve_expert(const F_BandMatrix<double>& A, const Vector<double>& B, int equilibrate=1); //A,B ueberschreiben
28 TVector<double> lu_solve(F_BandMatrix<double>& A, const Vector<double>& B, int num_lower, int num_upper); //Ueberschreibt A
29 
30 // complex
31 F_TMatrix<COMPLEX_DOUBLE> inv(const F_Matrix<COMPLEX_DOUBLE>& A, int overwriteA=0);
33 
34 
35 //************ Standard Eigenvalue problems **********************************************
36 // eigenvalues (and eigenvectors) A*EV=EW*EV of symmetric double Matrix A
37 int eig(const F_Matrix<double>& A, Vector<double>& EW);
38 int eig(const F_Matrix<double>& A, Vector<double>& EW, F_Matrix<double>& EV);
41  double ew_min, double ew_max);
42 
43 // eigenvalues (and eigenvectors) A*EV=EW*EV of hermitean complex Matrix A
45 int eig(const F_Matrix<cplx<double> >& A, Vector<double>& EW, F_Matrix<cplx<double> >& EVec);
46 
47 // eigenvalues (and eigenvectors) A*EV=EW*EV of general complex Matrix A
50 
51 
52 //************ Generalized Eigenvalue problems ******************************************
53 int eig(const F_BandMatrix<cplx<double> >& A, const F_BandMatrix<cplx<double> >& B,
54  double EW_min, double EW_max,
55  Vector<double>& Eigenwerte, F_Matrix<cplx<double> >& Eigenvectoren);
56 
58 #endif /* TBCI_LAPACK_H */
Our own complex class.
Definition: cplx.h:48
F_TMatrix< double > inv(const F_Matrix< double > &A, int overwriteA=0)
Definition: lapack.cpp:181
#define NAMESPACE_TBCI
Definition: basics.h:317
F_TMatrix< double > lu_solve(const F_Matrix< double > &A, const F_Matrix< double > &B, int overwriteA=0)
Definition: lapack.cpp:156
NAMESPACE_TBCI typedef cplx< double > COMPLEX_DOUBLE
Definition: lapack.h:18
TVector< double > lu_solve_expert(const F_BandMatrix< double > &A, const Vector< double > &B, int equilibrate=1)
Solution of linear eqution systems, partial pivoting.
Definition: lapack.cpp:24
C++ class for banded matrices using band storage in a one-dimensional array.
Definition: f_bandmatrix.h:46
Temporary Base Class (non referable!) (acc.
Definition: bvector.h:50
Temporary Base Class Idiom: Class TVector is used for temporary variables.
Definition: bvector.h:52
#define NAMESPACE_END
Definition: basics.h:323
Definition: bvector.h:54
int eig(const F_Matrix< double > &A, Vector< double > &EW)
eigenvalues (and eigenvectors) A*EV=EW*EV of symmetric double Matrix A
Definition: lapack.cpp:263