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

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

#include "tbci/std_cplx.h"
#include "tbci/f_matrix.h"
#include "tbci/f_bandmatrix.h"
#include "tbci/lapack/lapack_lib.h"
Include dependency graph for lapack_stdcplx.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__ complex< double > > inv (const F_Matrix< CPLX__ complex< double > > &A, int overwriteA)
F_TMatrix< CPLX__ complex< double > > lu_solve (const F_Matrix< CPLX__ complex< double > > &A, const F_Matrix< CPLX__ complex< 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__ complex< double > > &A, Vector< CPLX__ complex< double > > &EW)
 eigenvalues (and eigenvectors) A*EV=EW*EV of general double complex Matrix A
int eig (const F_Matrix< CPLX__ complex< double > > &A, Vector< CPLX__ complex< double > > &EW, F_Matrix< CPLX__ complex< double > > &EV)
int eig (const F_BandMatrix< CPLX__ complex< double > > &A, const F_BandMatrix< CPLX__ complex< double > > &B, double EW_min, double EW_max, Vector< double > &Eigenwerte, F_Matrix< CPLX__ complex< double > > &Eigenvectoren)
 selected eigenvalues -vectors: A*EV=EW*B*EV of hermitean Matrix A, positive definite Matrix B
int eig (const F_Matrix< CPLX__ complex< double > > &A, Vector< double > &EW, F_Matrix< CPLX__ complex< double > > &EVec)
 complex hermitean
int eig (F_Matrix< CPLX__ complex< 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_stdcplx.cpp.

Macro Definition Documentation

◆ LAPACK_INLINE

#define LAPACK_INLINE   inline

Hack: Makes tbcilapack more self-contained.

Definition at line 10 of file lapack_stdcplx.cpp.

Function Documentation

◆ eig() [1/9]

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

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

Definition at line 145 of file lapack_stdcplx.cpp.

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

◆ eig() [2/9]

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

Definition at line 296 of file lapack.cpp.

◆ eig() [3/9]

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

Definition at line 320 of file lapack.cpp.

◆ eig() [4/9]

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

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

Definition at line 100 of file lapack_stdcplx.cpp.

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

◆ eig() [5/9]

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

Definition at line 121 of file lapack_stdcplx.cpp.

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

◆ eig() [6/9]

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

complex hermitean

Definition at line 266 of file lapack_stdcplx.cpp.

References complex, 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.

◆ eig() [8/9]

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

Definition at line 279 of file lapack.cpp.

◆ eig() [9/9]

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

◆ inv() [1/2]

◆ inv() [2/2]

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

Definition at line 181 of file lapack.cpp.

◆ lu_solve() [1/5]

TVector< double > lu_solve ( const F_BandMatrix< double > & A,
const Vector< double > & B )

Definition at line 74 of file lapack.cpp.

◆ lu_solve() [2/5]

◆ lu_solve() [3/5]

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

Definition at line 156 of file lapack.cpp.

◆ lu_solve() [4/5]

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

Definition at line 129 of file lapack.cpp.

◆ lu_solve() [5/5]

TVector< double > lu_solve ( F_BandMatrix< double > & A,
const Vector< double > & B,
integer kl,
integer ku )

Definition at line 105 of file lapack.cpp.

◆ lu_solve_expert()

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.

Definition at line 24 of file lapack.cpp.