·  Home
+   man pages
 -> Linux -> FreeBSD -> OpenBSD -> NetBSD -> Tru64 Unix -> HP-UX 11i -> IRIX
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

man pages->IRIX man pages -> complib/chpevd (3)
 Title
 Content
 Arch
 Section All Sections 1 - General Commands 2 - System Calls 3 - Subroutines 4 - Special Files 5 - File Formats 6 - Games 7 - Macros and Conventions 8 - Maintenance Commands 9 - Kernel Interface n - New Commands

### Contents

```
CHPEVD(3F)							    CHPEVD(3F)

```

### NAME[Toc][Back]

```     CHPEVD - compute all the eigenvalues and, optionally, eigenvectors	of a
complex Hermitian matrix A	in packed storage
```

### SYNOPSIS[Toc][Back]

```     SUBROUTINE	CHPEVD(	JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, LWORK, RWORK,
LRWORK,	IWORK, LIWORK, INFO )

CHARACTER	JOBZ, UPLO

INTEGER	INFO, LDZ, LIWORK, LRWORK, LWORK, N

INTEGER	IWORK( * )

REAL		RWORK( * ), W( * )

COMPLEX	AP( * ), WORK( * ), Z( LDZ, * )
```

### PURPOSE[Toc][Back]

```     CHPEVD computes all the eigenvalues and, optionally, eigenvectors of a
complex Hermitian matrix A	in packed storage.  If eigenvectors are
desired, it uses a	divide and conquer algorithm.

The divide	and conquer algorithm makes very mild assumptions about
floating point arithmetic.	It will	work on	machines with a	guard digit in
add/subtract, or on those binary machines without guard digits which
subtract like the Cray X-MP, Cray Y-MP, Cray C-90,	or Cray-2. It could
conceivably fail on hexadecimal or	decimal	machines without guard digits,
but we know of none.

```

### ARGUMENTS[Toc][Back]

```     JOBZ    (input) CHARACTER*1
= 'N':  Compute eigenvalues only;
= 'V':  Compute eigenvalues and eigenvectors.

UPLO    (input) CHARACTER*1
= 'U':  Upper triangle of A is stored;
= 'L':  Lower triangle of A is stored.

N	     (input) INTEGER
The order of the matrix A.	 N >= 0.

AP	     (input/output) COMPLEX array, dimension (N*(N+1)/2)
On	entry, the upper or lower triangle of the Hermitian matrix A,
packed columnwise in a linear array.  The j-th column of A	is
stored in the array AP as follows:	 if UPLO = 'U',	AP(i + (j1)*j/2)
= A(i,j) for 1<=i<=j; if UPLO = 'L', AP(i + (j-1)*(2*nj)/2)
= A(i,j) for	j<=i<=n.

On	exit, AP is overwritten	by values generated during the
reduction to tridiagonal form.  If	UPLO = 'U', the	diagonal and

Page 1

CHPEVD(3F)							    CHPEVD(3F)

first superdiagonal of the	tridiagonal matrix T overwrite the
corresponding elements of A, and if UPLO =	'L', the diagonal and
first subdiagonal of T overwrite the corresponding	elements of A.

W	     (output) REAL array, dimension (N)
If	INFO = 0, the eigenvalues in ascending order.

Z	     (output) COMPLEX array, dimension (LDZ, N)
If	JOBZ = 'V', then if INFO = 0, Z	contains the orthonormal
eigenvectors of the matrix	A, with	the i-th column	of Z holding
the eigenvector associated	with W(i).  If JOBZ = 'N', then	Z is
not referenced.

LDZ     (input) INTEGER
The leading dimension of the array	Z.  LDZ	>= 1, and if JOBZ =
'V', LDZ >= max(1,N).

WORK    (workspace/output)	COMPLEX	array, dimension (LWORK)
On	exit, if LWORK > 0, WORK(1) returns the	optimal	LWORK.

LWORK   (input) INTEGER
The dimension of array WORK.  If N	<= 1,		    LWORK must
be	at least 1.  If	JOBZ = 'N' and N > 1, LWORK must be at least
N.	 If JOBZ = 'V' and N > 1, LWORK	must be	at least 2*N.

RWORK   (workspace/output)	REAL array,
dimension (LRWORK)	On exit, if LRWORK > 0,	RWORK(1) returns the
optimal LRWORK.

LRWORK  (input) INTEGER
The dimension of array RWORK.  If N <= 1,		     LRWORK
must be at	least 1.  If JOBZ = 'N'	and N >	1, LRWORK must be at
least N.  If JOBZ = 'V' and N > 1,	LRWORK must be at least	1 +
4*N + 2*N*lg N + 3*N**2 , where lg( N ) = smallest	integer	k such
that 2**k >= N.

IWORK   (workspace/output)	INTEGER	array, dimension (LIWORK)
On	exit, if LIWORK	> 0, IWORK(1) returns the optimal LIWORK.

LIWORK  (input) INTEGER
The dimension of array IWORK.  If JOBZ  = 'N' or N	<= 1, LIWORK
must be at	least 1.  If JOBZ  = 'V' and N > 1, LIWORK must	be at
least 2 + 5*N.

INFO    (output) INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value.
> 0:  if INFO = i,	the algorithm failed to	converge; i offdiagonal
elements of an intermediate tridiagonal form did not
converge to zero.
CHPEVD(3F)							    CHPEVD(3F)

```

### NAME[Toc][Back]

```     CHPEVD - compute all the eigenvalues and, optionally, eigenvectors	of a
complex Hermitian matrix A	in packed storage
```

### SYNOPSIS[Toc][Back]

```     SUBROUTINE	CHPEVD(	JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, LWORK, RWORK,
LRWORK,	IWORK, LIWORK, INFO )

CHARACTER	JOBZ, UPLO

INTEGER	INFO, LDZ, LIWORK, LRWORK, LWORK, N

INTEGER	IWORK( * )

REAL		RWORK( * ), W( * )

COMPLEX	AP( * ), WORK( * ), Z( LDZ, * )
```

### PURPOSE[Toc][Back]

```     CHPEVD computes all the eigenvalues and, optionally, eigenvectors of a
complex Hermitian matrix A	in packed storage.  If eigenvectors are
desired, it uses a	divide and conquer algorithm.

The divide	and conquer algorithm makes very mild assumptions about
floating point arithmetic.	It will	work on	machines with a	guard digit in
add/subtract, or on those binary machines without guard digits which
subtract like the Cray X-MP, Cray Y-MP, Cray C-90,	or Cray-2. It could
conceivably fail on hexadecimal or	decimal	machines without guard digits,
but we know of none.

```

### ARGUMENTS[Toc][Back]

```     JOBZ    (input) CHARACTER*1
= 'N':  Compute eigenvalues only;
= 'V':  Compute eigenvalues and eigenvectors.

UPLO    (input) CHARACTER*1
= 'U':  Upper triangle of A is stored;
= 'L':  Lower triangle of A is stored.

N	     (input) INTEGER
The order of the matrix A.	 N >= 0.

AP	     (input/output) COMPLEX array, dimension (N*(N+1)/2)
On	entry, the upper or lower triangle of the Hermitian matrix A,
packed columnwise in a linear array.  The j-th column of A	is
stored in the array AP as follows:	 if UPLO = 'U',	AP(i + (j1)*j/2)
= A(i,j) for 1<=i<=j; if UPLO = 'L', AP(i + (j-1)*(2*nj)/2)
= A(i,j) for	j<=i<=n.

On	exit, AP is overwritten	by values generated during the
reduction to tridiagonal form.  If	UPLO = 'U', the	diagonal and

Page 1

CHPEVD(3F)							    CHPEVD(3F)

first superdiagonal of the	tridiagonal matrix T overwrite the
corresponding elements of A, and if UPLO =	'L', the diagonal and
first subdiagonal of T overwrite the corresponding	elements of A.

W	     (output) REAL array, dimension (N)
If	INFO = 0, the eigenvalues in ascending order.

Z	     (output) COMPLEX array, dimension (LDZ, N)
If	JOBZ = 'V', then if INFO = 0, Z	contains the orthonormal
eigenvectors of the matrix	A, with	the i-th column	of Z holding
the eigenvector associated	with W(i).  If JOBZ = 'N', then	Z is
not referenced.

LDZ     (input) INTEGER
The leading dimension of the array	Z.  LDZ	>= 1, and if JOBZ =
'V', LDZ >= max(1,N).

WORK    (workspace/output)	COMPLEX	array, dimension (LWORK)
On	exit, if LWORK > 0, WORK(1) returns the	optimal	LWORK.

LWORK   (input) INTEGER
The dimension of array WORK.  If N	<= 1,		    LWORK must
be	at least 1.  If	JOBZ = 'N' and N > 1, LWORK must be at least
N.	 If JOBZ = 'V' and N > 1, LWORK	must be	at least 2*N.

RWORK   (workspace/output)	REAL array,
dimension (LRWORK)	On exit, if LRWORK > 0,	RWORK(1) returns the
optimal LRWORK.

LRWORK  (input) INTEGER
The dimension of array RWORK.  If N <= 1,		     LRWORK
must be at	least 1.  If JOBZ = 'N'	and N >	1, LRWORK must be at
least N.  If JOBZ = 'V' and N > 1,	LRWORK must be at least	1 +
4*N + 2*N*lg N + 3*N**2 , where lg( N ) = smallest	integer	k such
that 2**k >= N.

IWORK   (workspace/output)	INTEGER	array, dimension (LIWORK)
On	exit, if LIWORK	> 0, IWORK(1) returns the optimal LIWORK.

LIWORK  (input) INTEGER
The dimension of array IWORK.  If JOBZ  = 'N' or N	<= 1, LIWORK
must be at	least 1.  If JOBZ  = 'V' and N > 1, LIWORK must	be at
least 2 + 5*N.

INFO    (output) INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value.
> 0:  if INFO = i,	the algorithm failed to	converge; i offdiagonal
elements of an intermediate tridiagonal form did not
converge to zero.

PPPPaaaaggggeeee 2222```
[ Back ]
Similar pages