csptrf man page on OpenIndiana

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

csptrf(3P)		    Sun Performance Library		    csptrf(3P)

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

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

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

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

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

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

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

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

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

   C INTERFACE
       #include <sunperf.h>

       void csptrf(char uplo, int n, complex *ap, int *ipivot, int *info);

       void  csptrf_64(char  uplo,  long  n,  complex  *ap, long *ipivot, long
		 *info);

PURPOSE
       csptrf computes the factorization  of  a	 complex  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)
		 Complex 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			    csptrf(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