#include "lapack/f2c.h"
#include <stdio.h>

Go to the source code of this file.
Defines | |
| #define | integer long int |
| #define | doublereal double |
| #define | doublecomplex __complex__ double |
| #define | real float |
| #define | complex __complex__ float |
Functions | |
| long int | own_ew_ (long int *job, long int *up, long int *n, long int *m, __complex__ double *ab, long int *ldab, __complex__ double *bb, long int *ldbb, double *vl, double *vu, double *w, __complex__ double *q, long int *ldq, __complex__ double *work, double *rwork, long int *iwork) |
| -- AHLAND driver routine (version 2.0) -- Modified LAPACK-ROUTINE for the calculation of selected Eigenvalues, | |
| long int | own_ev_ (long int *n, long int *m, double *w, __complex__ double *z, long int *ldz, __complex__ double *q, long int *ldq, __complex__ double *work, double *rwork, long int *iwork, long int *ifail) |
| -- AHLAND driver routine (version 2.0) -- | |
Variables | |
| static long int | c__9 = 9 |
| static long int | c__1 = 1 |
| static double | c_b14 = 1. |
| static __complex__ double | c_b26 = {0.,0.} |
| static __complex__ double | c_b27 = {1.,0.} |
Definition in file own_lapack_routines.cpp.
| #define complex __complex__ float |
Definition at line 21 of file own_lapack_routines.cpp.
| #define doublecomplex __complex__ double |
Definition at line 19 of file own_lapack_routines.cpp.
| #define doublereal double |
Definition at line 18 of file own_lapack_routines.cpp.
Referenced by aradd_(), armult_(), arsub_(), arydiv_(), bits_(), chgf_(), cmpmul_(), conhyp_(), conv21_(), d1mach_(), dgamln_(), eadd_(), ecpdiv_(), ecpmul_(), TBCI::eig(), esub_(), MAIN__(), myzabs_(), own_ev_(), own_ew_(), store_(), zacai_(), zacon_(), zairy_(), zasyi_(), zbesh_(), zbesi_(), zbesj_(), zbesk_(), zbesy_(), zbinu_(), zbknu_(), zbuni_(), zbunk_(), zdiv_(), zexp_(), zkscl_(), zlog_(), zmlri_(), zmlt_(), zrati_(), zs1s2_(), zseri_(), zshch_(), zsqrt_(), zuchk_(), zunhj_(), zuni1_(), zuni2_(), zunik_(), zunk1_(), zunk2_(), zuoik_(), and zwrsk_().
| #define integer long int |
Definition at line 17 of file own_lapack_routines.cpp.
Referenced by aradd_(), armult_(), arsub_(), arydiv_(), bits_(), cgamma_(), chgf_(), conhyp_(), d1mach_(), dgamln_(), TBCI::eig(), i1mach_(), TBCI::inv(), TBCI::lu_solve(), TBCI::lu_solve_expert(), MAIN__(), own_ev_(), own_ew_(), xerror_(), zacai_(), zacon_(), zairy_(), zasyi_(), zbesh_(), zbesi_(), zbesj_(), zbesk_(), zbesy_(), zbinu_(), zbknu_(), zbuni_(), zkscl_(), zmlri_(), zrati_(), zs1s2_(), zseri_(), zunhj_(), zuni1_(), zuni2_(), zunik_(), zunk1_(), zunk2_(), zuoik_(), and zwrsk_().
| #define real float |
Definition at line 20 of file own_lapack_routines.cpp.
Referenced by cgamma_(), dgamln_(), TBCI::eig(), TBCI::sign(), zacai_(), zacon_(), zairy_(), zasyi_(), zbesh_(), zbesi_(), zbesj_(), zbesk_(), zbesy_(), zbinu_(), zbknu_(), zbuni_(), zmlri_(), zrati_(), zseri_(), zuni1_(), zuni2_(), zunk1_(), zunk2_(), and zuoik_().
| long int own_ev_ | ( | long int * | n, | |
| long int * | m, | |||
| double * | w, | |||
| __complex__ double * | z, | |||
| long int * | ldz, | |||
| __complex__ double * | q, | |||
| long int * | ldq, | |||
| __complex__ double * | work, | |||
| double * | rwork, | |||
| long int * | iwork, | |||
| long int * | ifail | |||
| ) |
-- AHLAND driver routine (version 2.0) --
Modified LAPACK-ROUTINE for the calculation of selected Eigenvalues
Version 2.0, Andreas Ahland 14.8.96
.. Scalar Arguments .. .. .. Array Arguments .. ..
Purpose:
========
Calculates the Eigenvectors. ew has to be called before.
The variables are described in own_ew_() .
| IFAIL | (output) INTEGER array, dimension (M) If JOBZ == 'V', then if INFO == 0, the first M elements of IFAIL are zero. If INFO > 0, then IFAIL contains the indices of the eigenvectors that failed to converge. If JOBZ == 'N', then IFAIL is not referenced. | |
| Z | (output) COMPLEX*16 array, dimension (LDZ, max(1,M)) If JOBZ == 'V', then if INFO == 0, the first M columns of Z contain the orthonormal eigenvectors of the matrix A corresponding to the selected eigenvalues, with the i -th column of Z holding the eigenvector associated with W(i). If an eigenvector fails to converge, then that column of Z contains the latest approximation to the eigenvector, and the index of the eigenvector is returned in IFAIL. If JOBZ == 'N', then Z is not referenced. Note: the user must ensure that at least max(1,M) columns are supplied in the array Z; if RANGE == 'V', the exact value of M is not known in advance and an upper bound must be used. | |
| LDZ | (input) INTEGER The leading dimension of the array Z. LDZ >= 1, and if JOBZ == 'V', LDZ >= N. |
Definition at line 452 of file own_lapack_routines.cpp.
References doublereal, and integer.
Referenced by TBCI::eig().
| long int own_ew_ | ( | long int * | job, | |
| long int * | up, | |||
| long int * | n, | |||
| long int * | m, | |||
| __complex__ double * | ab, | |||
| long int * | ldab, | |||
| __complex__ double * | bb, | |||
| long int * | ldbb, | |||
| double * | vl, | |||
| double * | vu, | |||
| double * | w, | |||
| __complex__ double * | q, | |||
| long int * | ldq, | |||
| __complex__ double * | work, | |||
| double * | rwork, | |||
| long int * | iwork | |||
| ) |
-- AHLAND driver routine (version 2.0) -- Modified LAPACK-ROUTINE for the calculation of selected Eigenvalues,
Eigenvalues are calculated using the ev routine Version 2.0, Andreas Ahland 14.8.96
.. Scalar Arguments .. .. .. Array Arguments .. ..
| JOB | (input) INTEGER = '0': Compute eigenvalues only; = '1': Compute eigenvalues and eigenvectors. | |
| UP | (input) INTEGER = '1': Upper triangles of A and B are stored; = '0': Lower triangles of A and B are stored. | |
| N | (input) INTEGER The order of the matrices A and B. N >= 0. | |
| M | (output) INTEGER The total number of eigenvalues found. 0 <= M <= N. If RANGE == 'A', M = N, and if RANGE == 'I', M = IU-IL+1. | |
| AB | (input/output) COMPLEX*16 array, dimension (LDAB, N) On entry, the upper or lower triangle of the Hermitian band matrix A, stored in the first ka+1 rows of the array. The j -th column of A is stored in the j -th column of the array AB as follows: if UPLO == 'U', AB(ka+1+i-j,j) = A(i,j) for max(1,j-ka)<=i<=j; if UPLO == 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+ka). On exit, the contents of AB are destroyed. | |
| LDAB | (input) INTEGER The leading dimension of the array AB. LDAB >= KA+1. | |
| BB | (input/output) COMPLEX*16 array, dimension (LDBB, N) On entry, the upper or lower triangle of the Hermitian band matrix B, stored in the first kb+1 rows of the array. The j -th column of B is stored in the j -th column of the array BB as follows: if UPLO == 'U', BB(kb+1+i-j,j) = B(i,j) for max(1,j-kb)<=i<=j; if UPLO == 'L', BB(1+i-j,j) = B(i,j) for j<=i<=min(n,j+kb). On exit, the factor S from the split Cholesky factorization B = S**H*S, as returned by ZPBSTF. | |
| LDBB | (input) INTEGER The leading dimension of the array BB. LDBB >= KB+1. | |
| Q | (output) COMPLEX*16 array, dimension (LDQ, N) If JOBZ == 'V', the N -by-N unitary matrix used in the reduction to tridiagonal form. If JOBZ == 'N', the array Q is not referenced. | |
| VL | (input) DOUBLE PRECISION | |
| VU | (input) DOUBLE PRECISION If RANGE == 'V', the lower and upper bounds of the interval to be searched for eigenvalues. VL < VU . Not referenced if RANGE == 'A' or 'I'. | |
| IL | (input) INTEGER | |
| IU | (input) INTEGER If RANGE == 'I', the indices (in ascending order) of the smallest and largest eigenvalues to be returned. 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N == 0. Not referenced if RANGE == 'A' or 'V'. | |
| W | (output) DOUBLE PRECISION array, dimension (N) The first M elements contain the selected eigenvalues in ascending order. | |
| Q | complex*16 array, dimension (ldq,N), stores the transformation | |
| LDQ | (input) INTEGER The leading dimension of the array Q. If JOBZ == 'V', then LDQ >= max(1,N). | |
| WORK | (workspace) COMPLEX*16 array, dimension (N) | |
| RWORK | (workspace) DOUBLE PRECISION array, dimension (7*N) | |
| IWORK | (workspace) INTEGER array, dimension (3*N) |
.. Local Scalars ..
| ABSTOL | (input) DOUBLE PRECISION |
ABSTOL + EPS * max( |a|,|b| ) ,
where EPS is the machine precision. If ABSTOL is less than or equal to zero, then EPS*|T| will be used in its place, where |T| is the 1-norm of the tridiagonal matrix obtained by reducing AB to tridiagonal form.
Eigenvalues will be computed most accurately when ABSTOL is set to twice the underflow threshold 2*DLAMCH('S'), not zero.
If this routine returns with INFO>0, indicating that some eigenvectors did not converge, try setting ABSTOL to 2*DLAMCH('S').
See "Computing Small Singular Values of Bidiagonal Matrices with Guaranteed High Relative Accuracy," by Demmel and Kahan, LAPACK Working Note #3.
Definition at line 170 of file own_lapack_routines.cpp.
References dlamch_(), do_lio(), doublereal, e_wsle(), integer, min, s_wsle(), sqrt(), TRUE_, and xerbla_().
Referenced by TBCI::eig().
long int c__1 = 1 [static] |
Definition at line 27 of file own_lapack_routines.cpp.
Referenced by d1mach_(), xerror_(), zacai_(), zacon_(), zairy_(), zasyi_(), zbesh_(), zbesi_(), zbesj_(), zbesk_(), zbesy_(), zbinu_(), zbknu_(), zbuni_(), zmlri_(), zseri_(), zunhj_(), zuni1_(), zuni2_(), zunik_(), zunk1_(), zunk2_(), zuoik_(), and zwrsk_().
long int c__9 = 9 [static] |
double c_b14 = 1. [static] |
Definition at line 28 of file own_lapack_routines.cpp.
__complex__ double c_b26 = {0.,0.} [static] |
Definition at line 29 of file own_lapack_routines.cpp.
__complex__ double c_b27 = {1.,0.} [static] |
Definition at line 30 of file own_lapack_routines.cpp.
1.5.6