Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PZHEEVD(l)			       )			    PZHEEVD(l)

NAME
       PZHEEVD	-  compute all the eigenvalues and eigenvectors	of a Hermitian
       matrix A	by using a divide and conquer algorithm

SYNOPSIS
       SUBROUTINE PZHEEVD( JOBZ, UPLO, N, A, IA, JA, DESCA, W, Z, IZ, JZ,  DE-
			   SCZ,	 WORK,	LWORK,	RWORK,	LRWORK,	IWORK, LIWORK,
			   INFO	)

	   CHARACTER	   JOBZ, UPLO

	   INTEGER	   IA, INFO, IZ, JA, JZ, LIWORK, LRWORK, LWORK,	N

	   INTEGER	   DESCA( * ), DESCZ( *	), IWORK( * )

	   DOUBLE	   PRECISION RWORK( * ), W( * )

	   COMPLEX*16	   A( *	), WORK( * ), Z( * )

PURPOSE
       PZHEEVD computes	all the	eigenvalues and	eigenvectors  of  a  Hermitian
       matrix A	by using a divide and conquer algorithm.

ARGUMENTS
       NP  =  the number of rows local to a given process.  NQ = the number of
       columns local to	a given	process.

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

       UPLO    (global input) CHARACTER*1
	       Specifies whether the upper or lower  triangular	 part  of  the
	       symmetric matrix	A is stored:
	       = 'U':  Upper triangular
	       = 'L':  Lower triangular

       N       (global input) INTEGER
	       The number of rows and columns of the matrix A.	N >= 0.

       A       (local input/workspace) block cyclic COMPLEX*16 array,
	       global  dimension (N, N), local dimension ( LLD_A, LOCc(JA+N-1)
	       )

	       On entry, the symmetric matrix A.  If UPLO = 'U', only the  up-
	       per  triangular part of A is used to define the elements	of the
	       symmetric matrix.  If UPLO = 'L',  only	the  lower  triangular
	       part  of	 A is used to define the elements of the symmetric ma-
	       trix.

	       On exit,	the lower triangle (if UPLO='L') or the	upper triangle
	       (if UPLO='U') of	A, including the diagonal, is destroyed.

       IA      (global input) INTEGER
	       A's global row index, which points to the beginning of the sub-
	       matrix which is to be operated on.

       JA      (global input) INTEGER
	       A's global column index,	which points to	the beginning  of  the
	       submatrix which is to be	operated on.

       DESCA   (global and local input)	INTEGER	array of dimension DLEN_.
	       The  array  descriptor for the distributed matrix A.  If	DESCA(
	       CTXT_ ) is incorrect, PZHEEV cannot guarantee correct error re-
	       porting.

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

       Z       (local output) COMPLEX*16 array,
	       global  dimension (N, N), local dimension ( LLD_Z, LOCc(JZ+N-1)
	       ) Z contains the	orthonormal eigenvectors of the	matrix A.

       IZ      (global input) INTEGER
	       Z's global row index, which points to the beginning of the sub-
	       matrix which is to be operated on.

       JZ      (global input) INTEGER
	       Z's  global  column index, which	points to the beginning	of the
	       submatrix which is to be	operated on.

       DESCZ   (global and local input)	INTEGER	array of dimension DLEN_.
	       The array descriptor for	 the  distributed  matrix  Z.	DESCZ(
	       CTXT_ ) must equal DESCA( CTXT_ )

       WORK    (local workspace/output)	COMPLEX*16 array,
	       dimension  (LWORK)  On  output,	WORK(1)	 returns the workspace
	       needed for the computation.

       LWORK   (local input) INTEGER
	       If eigenvectors are requested: LWORK = N	+ ( NP0	+ MQ0 +	NB ) *
	       NB,  with  NP0 =	NUMROC(	MAX( N,	NB, 2 ), NB, 0,	0, NPROW ) MQ0
	       = NUMROC( MAX( N, NB, 2 ), NB, 0, 0, NPCOL )

	       If LWORK	= -1, then LWORK is global input and a workspace query
	       is  assumed;  the  routine calculates the size for all work ar-
	       rays. Each of these values is returned in the  first  entry  of
	       the corresponding work array, and no error message is issued by
	       PXERBLA.

       RWORK   (local workspace/output)	DOUBLE PRECISION array,
	       dimension  (LRWORK)  On	output	RWORK(1)  returns   the	  real
	       workspace needed	to guarantee completion.  If the input parame-
	       ters are	incorrect, RWORK(1) may	also be	incorrect.

       LRWORK  (local input) INTEGER
	       Size of RWORK array.  RWORK >= 1	+ 8*N +	2*NP*NQ, NP =  NUMROC(
	       N,  NB, MYROW, IAROW, NPROW ) NQ	= NUMROC( N, NB, MYCOL,	IACOL,
	       NPCOL )

       IWORK   (local workspace/output)	INTEGER	array, dimension (LIWORK)
	       On output IWORK(1) returns the integer workspace	needed.

       LIWORK  (input) INTEGER
	       The dimension of	the array IWORK.  LIWORK = 7*N + 8*NPCOL + 2

       INFO    (global output) INTEGER
	       = 0:  successful	exit
	       < 0:  If	the i-th argument is an	array and the j-entry  had  an
	       illegal	value, then INFO = -(i*100+j), if the i-th argument is
	       a scalar	and had	an illegal value, then INFO = -i.   >  0:   If
	       INFO  =	1  through N, the i(th)	eigenvalue did not converge in
	       PDLAED3.

	       Alignment requirements ======================

	       The distributed submatrices sub(	A ), sub( Z ) must verify some
	       alignment properties, namely the	following expression should be
	       true:  (	 MB_A.EQ.NB_A.EQ.MB_Z.EQ.NB_Z  .AND.  IROFFA.EQ.ICOFFA
	       .AND.   IROFFA.EQ.0 .AND.IROFFA.EQ.IROFFZ. AND. IAROW.EQ.IZROW)
	       with IROFFA = MOD( IA-1,	MB_A ) and ICOFFA = MOD( JA-1, NB_A ).

FURTHER	DETAILS
       Contributed by Francoise	Tisseur, University of Manchester.

       Reference:  F. Tisseur and J. Dongarra, "A Parallel Divide and
		   Conquer Algorithm for the Symmetric Eigenvalue Problem
		   on Distributed Memory Architectures",
		   SIAM	J. Sci.	Comput., 6:20 (1999), pp. 2223--2236.
		   (see	also LAPACK Working Note 132)
		     http://www.netlib.org/lapack/lawns/lawn132.ps

ScaLAPACK version 1.7		13 August 2001			    PZHEEVD(l)

NAME | SYNOPSIS | PURPOSE | ARGUMENTS | FURTHER DETAILS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=pzheevd&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help