sstebz man page on OpenIndiana

Man page or keyword search:  
man Server   20441 pages
apropos Keyword Search (all sections)
Output format
OpenIndiana logo
[printable version]

sstebz(3P)		    Sun Performance Library		    sstebz(3P)

NAME
       sstebz - compute the eigenvalues of a symmetric tridiagonal matrix T

SYNOPSIS
       SUBROUTINE SSTEBZ(RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, D, E, M,
	     NSPLIT, W, IBLOCK, ISPLIT, WORK, IWORK, INFO)

       CHARACTER * 1 RANGE, ORDER
       INTEGER N, IL, IU, M, NSPLIT, INFO
       INTEGER IBLOCK(*), ISPLIT(*), IWORK(*)
       REAL VL, VU, ABSTOL
       REAL D(*), E(*), W(*), WORK(*)

       SUBROUTINE SSTEBZ_64(RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, D, E,
	     M, NSPLIT, W, IBLOCK, ISPLIT, WORK, IWORK, INFO)

       CHARACTER * 1 RANGE, ORDER
       INTEGER*8 N, IL, IU, M, NSPLIT, INFO
       INTEGER*8 IBLOCK(*), ISPLIT(*), IWORK(*)
       REAL VL, VU, ABSTOL
       REAL D(*), E(*), W(*), WORK(*)

   F95 INTERFACE
       SUBROUTINE STEBZ(RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, D, E, M,
	      NSPLIT, W, IBLOCK, ISPLIT, [WORK], [IWORK], [INFO])

       CHARACTER(LEN=1) :: RANGE, ORDER
       INTEGER :: N, IL, IU, M, NSPLIT, INFO
       INTEGER, DIMENSION(:) :: IBLOCK, ISPLIT, IWORK
       REAL :: VL, VU, ABSTOL
       REAL, DIMENSION(:) :: D, E, W, WORK

       SUBROUTINE STEBZ_64(RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, D, E, M,
	      NSPLIT, W, IBLOCK, ISPLIT, [WORK], [IWORK], [INFO])

       CHARACTER(LEN=1) :: RANGE, ORDER
       INTEGER(8) :: N, IL, IU, M, NSPLIT, INFO
       INTEGER(8), DIMENSION(:) :: IBLOCK, ISPLIT, IWORK
       REAL :: VL, VU, ABSTOL
       REAL, DIMENSION(:) :: D, E, W, WORK

   C INTERFACE
       #include <sunperf.h>

       void  sstebz(char range, char order, int n, float vl, float vu, int il,
		 int iu, float	abstol,	 float	*d,  float  *e,	 int  *m,  int
		 *nsplit, float *w, int *iblock, int *isplit, int *info);

       void sstebz_64(char range, char order, long n, float vl, float vu, long
		 il, long iu, float abstol, float *d, float *e, long *m,  long
		 *nsplit, float *w, long *iblock, long *isplit, long *info);

PURPOSE
       sstebz  computes	 the  eigenvalues of a symmetric tridiagonal matrix T.
       The user may ask for all eigenvalues, all eigenvalues in the  half-open
       interval (VL, VU], or the IL-th through IU-th eigenvalues.

       To avoid overflow, the matrix must be scaled so that its
       largest element is no greater than overflow**(1/2) *
       underflow**(1/4) in absolute value, and for greatest
       accuracy, it should not be much smaller than that.

       See  W. Kahan "Accurate Eigenvalues of a Symmetric Tridiagonal Matrix",
       Report CS41, Computer Science Dept., Stanford
       University, July 21, 1966.

ARGUMENTS
       RANGE (input)
		 = 'A': ("All")	  all eigenvalues will be found.
		 = 'V': ("Value") all eigenvalues in  the  half-open  interval
		 (VL,  VU]  will be found.  = 'I': ("Index") the IL-th through
		 IU-th eigenvalues (of the entire matrix) will be found.

       ORDER (input)
		 = 'B': ("By Block") the eigenvalues will be grouped by split-
		 off  block  (see IBLOCK, ISPLIT) and ordered from smallest to
		 largest within the block.  = 'E': ("Entire matrix")  the  ei‐
		 genvalues for the entire matrix will be ordered from smallest
		 to largest.

       N (input) The order of the tridiagonal matrix T.	 N >= 0.

       VL (input)
		 If RANGE='V', the lower and upper bounds of the  interval  to
		 be  searched for eigenvalues.	Eigenvalues less than or equal
		 to VL, or greater than VU, will not be returned.   VL	<  VU.
		 Not referenced if RANGE = 'A' or 'I'.

       VU (input)
		 See the description of VL.

       IL (input)
		 If  RANGE='I', the indices (in ascending order) of the small‐
		 est 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'.

       IU (input)
		 See the description of IL.

       ABSTOL (input)
		 The absolute tolerance for the	 eigenvalues.	An  eigenvalue
		 (or  cluster)	is  considered	to  be	located if it has been
		 determined to lie in an interval whose	 width	is  ABSTOL  or
		 less.	 If ABSTOL is less than or equal to zero, then ULP*|T|
		 will be used, where |T| means the 1-norm of T.

		 Eigenvalues will be computed most accurately when  ABSTOL  is
		 set to twice the underflow threshold 2*SLAMCH('S'), not zero.

       D (input) The n diagonal elements of the tridiagonal matrix T.

       E (input) The (n-1) off-diagonal elements of the tridiagonal matrix T.

       M (output)
		 The  actual  number  of eigenvalues found. 0 <= M <= N.  (See
		 also the description of INFO=2,3.)

       NSPLIT (output)
		 The number of diagonal blocks in the matrix T.	 1  <=	NSPLIT
		 <= N.

       W (output)
		 On exit, the first M elements of W will contain the eigenval‐
		 ues.	(SSTEBZ	 may  use  the	remaining  N-M	 elements   as
		 workspace.)

       IBLOCK (output)
		 At  each row/column j where E(j) is zero or small, the matrix
		 T is considered to split into a block	diagonal  matrix.   On
		 exit, if INFO = 0, IBLOCK(i) specifies to which block (from 1
		 to  the  number  of  blocks)  the  eigenvalue	W(i)  belongs.
		 (SSTEBZ may use the remaining N-M elements as workspace.)

       ISPLIT (output)
		 The  splitting points, at which T breaks up into submatrices.
		 The first submatrix consists of rows/columns 1 to  ISPLIT(1),
		 the  second  of  rows/columns	ISPLIT(1)+1 through ISPLIT(2),
		 etc.,	 and   the   NSPLIT-th	 consists   of	  rows/columns
		 ISPLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N.  (Only the first
		 NSPLIT elements will actually be used,	 but  since  the  user
		 cannot	 know  a  priori  what value NSPLIT will have, N words
		 must be reserved for ISPLIT.)

       WORK (workspace)
		 dimension(4*N)

       IWORK (workspace)
		 dimension(3*N)

       INFO (output)
		 = 0:  successful exit
		 < 0:  if INFO = -i, the i-th argument had an illegal value
		 > 0:  some or all of the eigenvalues failed to converge or
		 were not computed:
		 =1 or 3: Bisection failed to converge for  some  eigenvalues;
		 these	eigenvalues  are  flagged  by a negative block number.
		 The effect is that the eigenvalues may not be as accurate  as
		 the  absolute	and  relative  tolerances.   This is generally
		 caused by  unexpectedly  inaccurate  arithmetic.   =2	or  3:
		 RANGE='I' only: Not all of the eigenvalues IL:IU were found.
		 Effect: M < IU+1-IL
		 Cause:	  non-monotonic arithmetic, causing the Sturm sequence
		 to be non-monotonic.  Cure:   recalculate,  using  RANGE='A',
		 and pick
		 out eigenvalues IL:IU.	 = 4:	 RANGE='I', and the Gershgorin
		 interval initially used was too small.	 No  eigenvalues  were
		 computed.

				  6 Mar 2009			    sstebz(3P)
[top]

List of man pages available for OpenIndiana

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net