dsptrf man page on OpenIndiana

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

dsptrf(3P)		    Sun Performance Library		    dsptrf(3P)

NAME
       dsptrf  - compute the factorization of a real symmetric matrix A stored
       in packed format using the Bunch-Kaufman diagonal pivoting method

SYNOPSIS
       SUBROUTINE DSPTRF(UPLO, N, AP, IPIVOT, INFO)

       CHARACTER * 1 UPLO
       INTEGER N, INFO
       INTEGER IPIVOT(*)
       DOUBLE PRECISION AP(*)

       SUBROUTINE DSPTRF_64(UPLO, N, AP, IPIVOT, INFO)

       CHARACTER * 1 UPLO
       INTEGER*8 N, INFO
       INTEGER*8 IPIVOT(*)
       DOUBLE PRECISION AP(*)

   F95 INTERFACE
       SUBROUTINE SPTRF(UPLO, [N], AP, IPIVOT, [INFO])

       CHARACTER(LEN=1) :: UPLO
       INTEGER :: N, INFO
       INTEGER, DIMENSION(:) :: IPIVOT
       REAL(8), DIMENSION(:) :: AP

       SUBROUTINE SPTRF_64(UPLO, [N], AP, IPIVOT, [INFO])

       CHARACTER(LEN=1) :: UPLO
       INTEGER(8) :: N, INFO
       INTEGER(8), DIMENSION(:) :: IPIVOT
       REAL(8), DIMENSION(:) :: AP

   C INTERFACE
       #include <sunperf.h>

       void dsptrf(char uplo, int n, double *ap, int *ipivot, int *info);

       void dsptrf_64(char uplo,  long	n,  double  *ap,  long	*ipivot,  long
		 *info);

PURPOSE
       dsptrf  computes	 the factorization of a real symmetric matrix A stored
       in packed format using the Bunch-Kaufman diagonal pivoting method:

	  A = U*D*U**T	or  A = L*D*L**T

       where U (or L) is a product of permutation and unit upper (lower)  tri‐
       angular matrices, and D is symmetric and block diagonal with 1-by-1 and
       2-by-2 diagonal blocks.

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

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

       AP (input/output)
		 Double precision array, dimension (N*(N+1)/2) On  entry,  the
		 upper	or  lower  triangle  of the symmetric 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 + (j-1)*j/2)
		 = A(i,j) for 1<=i<=j; if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) =
		 A(i,j) for j<=i<=n.

		 On exit, the block diagonal matrix D and the multipliers used
		 to obtain the factor U or L, stored as	 a  packed  triangular
		 matrix overwriting A (see below for further details).

       IPIVOT (output)
		 Integer  array, dimension (N) Details of the interchanges and
		 the block structure of D.  If IPIVOT(k) > 0,  then  rows  and
		 columns  k  and  IPIVOT(k)  were interchanged and D(k,k) is a
		 1-by-1 diagonal  block.   If  UPLO  =	'U'  and  IPIVOT(k)  =
		 IPIVOT(k-1)  <	 0,  then  rows and columns k-1 and -IPIVOT(k)
		 were interchanged and D(k-1:k,k-1:k)  is  a  2-by-2  diagonal
		 block.	  If  UPLO = 'L' and IPIVOT(k) = IPIVOT(k+1) < 0, then
		 rows and columns k+1 and  -IPIVOT(k)  were  interchanged  and
		 D(k:k+1,k:k+1) is a 2-by-2 diagonal block.

       INFO (output)
		 = 0: successful exit
		 < 0: if INFO = -i, the i-th argument had an illegal value
		 >  0: if INFO = i, D(i,i) is exactly zero.  The factorization
		 has been completed,  but  the	block  diagonal	 matrix	 D  is
		 exactly  singular,  and  division by zero will occur if it is
		 used to solve a system of equations.

FURTHER DETAILS
       5-96 - Based on modifications by J. Lewis, Boeing Computer Services
	      Company

       If UPLO = 'U', then A = U*D*U', where
	  U = P(n)*U(n)* ... *P(k)U(k)* ...,
       i.e., U is a product of terms P(k)*U(k), where k decreases from n to  1
       in  steps  of  1 or 2, and D is a block diagonal matrix with 1-by-1 and
       2-by-2 diagonal blocks D(k).  P(k) is a permutation matrix  as  defined
       by  IPIVOT(k), and U(k) is a unit upper triangular matrix, such that if
       the diagonal block D(k) is of order s (s = 1 or 2), then

		  (   I	   v	0   )	k-s
	  U(k) =  (   0	   I	0   )	s
		  (   0	   0	I   )	n-k
		     k-s   s   n-k

       If s = 1, D(k) overwrites A(k,k), and v overwrites A(1:k-1,k).  If s  =
       2,  the	upper  triangle	 of  D(k) overwrites A(k-1,k-1), A(k-1,k), and
       A(k,k), and v overwrites A(1:k-2,k-1:k).

       If UPLO = 'L', then A = L*D*L', where
	  L = P(1)*L(1)* ... *P(k)*L(k)* ...,
       i.e., L is a product of terms P(k)*L(k), where k increases from 1 to  n
       in  steps  of  1 or 2, and D is a block diagonal matrix with 1-by-1 and
       2-by-2 diagonal blocks D(k).  P(k) is a permutation matrix  as  defined
       by  IPIVOT(k), and L(k) is a unit lower triangular matrix, such that if
       the diagonal block D(k) is of order s (s = 1 or 2), then

		  (   I	   0	 0   )	k-1
	  L(k) =  (   0	   I	 0   )	s
		  (   0	   v	 I   )	n-k-s+1
		     k-1   s  n-k-s+1

       If s = 1, D(k) overwrites A(k,k), and v overwrites A(k+1:n,k).  If s  =
       2,  the	lower  triangle	 of  D(k)  overwrites  A(k,k),	A(k+1,k),  and
       A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).

				  6 Mar 2009			    dsptrf(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