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

FreeBSD Manual Pages

  
 
  

home | help
PSSYEVD(l)			       )			    PSSYEVD(l)

NAME
       PSSYEVD	-  compute all the eigenvalues and eigenvectors	of a real sym-
       metric matrix A by calling the recommended sequence of  ScaLAPACK  rou-
       tines

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

	   CHARACTER	   JOBZ, UPLO

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

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

	   REAL		   A( *	), W( *	), WORK( * ), Z( * )

PURPOSE
       PSSYEVD computes	all the	eigenvalues and	eigenvectors of	a real symmet-
       ric matrix A by calling the recommended sequence	of ScaLAPACK routines.
       In its present form, PSSYEVD assumes a homogeneous system and makes  no
       checks  for  consistency	 of the	eigenvalues or eigenvectors across the
       different processes.  Because of	this, it is possible that a  heteroge-
       neous system may	return incorrect results without any error messages.

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 to be operated on, i.e. the or-
	       der of the distributed submatrix	sub( A ). N >= 0.

       A       (local input/workspace) block cyclic REAL array,
	       global dimension	(N, N),	local dimension	( LLD_A,  LOCc(JA+N-1)
	       )  On  entry,  the symmetric matrix A.  If UPLO = 'U', only the
	       upper 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  de-
	       stroyed.

       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.

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

       Z       (local output) REAL array,
	       global  dimension (N, N), local dimension ( LLD_Z, LOCc(JZ+N-1)
	       ) Z contains the	orthonormal eigenvectors of the	symmetric  ma-
	       trix 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)	REAL array,
	       dimension (LWORK) On output, WORK(1) returns the	workspace  re-
	       quired.

       LWORK   (local input) INTEGER
	       LWORK  >= MAX( 1+6*N+2*NP*NQ, TRILWMIN )	+ 2*N TRILWMIN = 3*N +
	       MAX( NB*( NP+1 ), 3*NB )	NP =  NUMROC(  N,  NB,	MYROW,	IAROW,
	       NPROW ) NQ = NUMROC( N, NB, MYCOL, IACOL, NPCOL )

	       If  LWORK = -1, the LWORK is global input and a workspace query
	       is assumed; the routine only calculates the  minimum  size  for
	       the  WORK  array.   The	required  workspace is returned	as the
	       first element of	 WORK  and  no	error  message	is  issued  by
	       PXERBLA.

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

       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:  The
	       algorithm failed	to compute the INFO/(N+1) th eigenvalue	 while
	       working	on  the	 submatrix  lying  in  global rows and columns
	       mod(INFO,N+1).

	       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			    PSSYEVD(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=pssyevd&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help