TBCI Numerical high perf. C++ Library 2.8.0
lapack.cpp File Reference

LU solvers for the Fortran versions of Matrices, wrappers to lapack routines (eigenvalue solvers ...). More...

#include "tbci/cplx.h"
#include "tbci/f_matrix.h"
#include "tbci/f_bandmatrix.h"
#include "tbci/lapack/lapack_lib.h"
Include dependency graph for lapack.cpp:

Go to the source code of this file.

Macros

#define LAPACK_INLINE   inline
 Hack: Makes tbcilapack more self-contained.

Functions

NAMESPACE_TBCI TVector< double > lu_solve_expert (const F_BandMatrix< double > &A, const Vector< double > &B, int equi)
 Solution of linear eqution systems, partial pivoting.
TVector< double > lu_solve (const F_BandMatrix< double > &A, const Vector< double > &B)
TVector< double > lu_solve (F_BandMatrix< double > &A, const Vector< double > &B, integer kl, integer ku)
TVector< double > lu_solve (const F_Matrix< double > &A, const Vector< double > &B, int overwriteA)
F_TMatrix< double > lu_solve (const F_Matrix< double > &A, const F_Matrix< double > &B, int overwriteA)
F_TMatrix< double > inv (const F_Matrix< double > &A, int overwriteA)
F_TMatrix< cplx< double > > inv (const F_Matrix< cplx< double > > &A, int overwriteA)
F_TMatrix< cplx< double > > lu_solve (const F_Matrix< cplx< double > > &A, const F_Matrix< cplx< double > > &B, int overwriteA)
int eig (const F_Matrix< double > &A, Vector< double > &EW)
 eigenvalues (and eigenvectors) A*EV=EW*EV of symmetric double Matrix A
int eig (const F_Matrix< double > &A, Vector< double > &EW, F_Matrix< double > &EV)
int eig (const F_BandMatrix< double > &A, Vector< double > &EW, F_Matrix< double > &EV)
int eig (const F_BandMatrix< double > &A, Vector< double > &EW, F_Matrix< double > &EV, double ew_min, double ew_max)
int eig (const F_Matrix< cplx< double > > &A, Vector< cplx< double > > &EW)
 eigenvalues (and eigenvectors) A*EV=EW*EV of general double complex Matrix A
int eig (const F_Matrix< cplx< double > > &A, Vector< cplx< double > > &EW, F_Matrix< cplx< double > > &EV)
int eig (const F_BandMatrix< cplx< double > > &A, const F_BandMatrix< cplx< double > > &B, double EW_min, double EW_max, Vector< double > &Eigenwerte, F_Matrix< cplx< double > > &Eigenvectoren)
 selected eigenvalues -vectors: A*EV=EW*B*EV of hermitean Matrix A, positive definite Matrix B
int eig (const F_Matrix< cplx< double > > &A, Vector< double > &EW, F_Matrix< cplx< double > > &EVec)
 complex hermitean
int eig (F_Matrix< cplx< double > > A, Vector< double > &EW)

Detailed Description

LU solvers for the Fortran versions of Matrices, wrappers to lapack routines (eigenvalue solvers ...).

Definition in file lapack.cpp.

Macro Definition Documentation

◆ LAPACK_INLINE

#define LAPACK_INLINE   inline

Hack: Makes tbcilapack more self-contained.

Definition at line 10 of file lapack.cpp.

Function Documentation

◆ eig() [1/9]

int eig ( const F_BandMatrix< cplx< double > > & A,
const F_BandMatrix< cplx< double > > & B,
double EW_min,
double EW_max,
Vector< double > & Eigenwerte,
F_Matrix< cplx< double > > & Eigenvectoren )

selected eigenvalues -vectors: A*EV=EW*B*EV of hermitean Matrix A, positive definite Matrix B

Definition at line 419 of file lapack.cpp.

References doublecomplex, doublecomplex::i, i, imag(), own_ev_(), own_ew_(), doublecomplex::r, real, BVector< T >::resize(), STD__, x, and y.

◆ eig() [2/9]

◆ eig() [3/9]

◆ eig() [4/9]

int eig ( const F_Matrix< cplx< double > > & A,
Vector< cplx< double > > & EW )

eigenvalues (and eigenvectors) A*EV=EW*EV of general double complex Matrix A

Definition at line 374 of file lapack.cpp.

References doublecomplex, doublereal, integer, NEW, TBCIDELETE, and zgeev_().

◆ eig() [5/9]

int eig ( const F_Matrix< cplx< double > > & A,
Vector< cplx< double > > & EW,
F_Matrix< cplx< double > > & EV )

Definition at line 395 of file lapack.cpp.

References doublecomplex, doublereal, integer, NEW, TBCIDELETE, and zgeev_().

◆ eig() [6/9]

int eig ( const F_Matrix< cplx< double > > & A,
Vector< double > & EW,
F_Matrix< cplx< double > > & EVec )

complex hermitean

Definition at line 539 of file lapack.cpp.

References doublecomplex, BVector< T >::get_fortran_vector(), integer, STD__, and zheev_().

◆ eig() [7/9]

int eig ( const F_Matrix< double > & A,
Vector< double > & EW )

eigenvalues (and eigenvectors) A*EV=EW*EV of symmetric double Matrix A

Definition at line 263 of file lapack.cpp.

References F_Matrix< T >::columns(), dsyev_(), F_Matrix< T >::get_fortran_matrix(), BVector< T >::get_fortran_vector(), and integer.

◆ eig() [8/9]

int eig ( const F_Matrix< double > & A,
Vector< double > & EW,
F_Matrix< double > & EV )

◆ eig() [9/9]

int eig ( F_Matrix< cplx< double > > A,
Vector< double > & EW )

Definition at line 567 of file lapack.cpp.

References doublecomplex, BVector< T >::get_fortran_vector(), integer, STD__, and zheev_().

◆ inv() [1/2]

◆ inv() [2/2]

◆ lu_solve() [1/5]

◆ lu_solve() [2/5]

F_TMatrix< cplx< double > > lu_solve ( const F_Matrix< cplx< double > > & A,
const F_Matrix< cplx< double > > & B,
int overwriteA )

◆ lu_solve() [3/5]

F_TMatrix< double > lu_solve ( const F_Matrix< double > & A,
const F_Matrix< double > & B,
int overwriteA )

◆ lu_solve() [4/5]

TVector< double > lu_solve ( const F_Matrix< double > & A,
const Vector< double > & B,
int overwriteA )

◆ lu_solve() [5/5]

◆ lu_solve_expert()

NAMESPACE_TBCI TVector< double > lu_solve_expert ( const F_BandMatrix< double > & A,
const Vector< double > & B,
int equi )