dlatps man page on Scientific

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

DLATPS(1)	    LAPACK auxiliary routine (version 3.2)	     DLATPS(1)

NAME
       DLATPS  -  solves  one of the triangular systems	  A *x = s*b or A'*x =
       s*b  with scaling to prevent overflow, where A is  an  upper  or	 lower
       triangular matrix stored in packed form

SYNOPSIS
       SUBROUTINE DLATPS( UPLO,	 TRANS,	 DIAG, NORMIN, N, AP, X, SCALE, CNORM,
			  INFO )

	   CHARACTER	  DIAG, NORMIN, TRANS, UPLO

	   INTEGER	  INFO, N

	   DOUBLE	  PRECISION SCALE

	   DOUBLE	  PRECISION AP( * ), CNORM( * ), X( * )

PURPOSE
       DLATPS solves one of the triangular systems transpose of A, x and b are
       n-element  vectors,  and	 s  is	a scaling factor, usually less than or
       equal to 1, chosen so that the components of x will be  less  than  the
       overflow	 threshold.   If the unscaled problem will not cause overflow,
       the Level 2 BLAS routine DTPSV is called. If the matrix A  is  singular
       (A(j,j)	= 0 for some j), then s is set to 0 and a non-trivial solution
       to A*x = 0 is returned.

ARGUMENTS
       UPLO    (input) CHARACTER*1
	       Specifies whether the matrix A is upper or lower triangular.  =
	       'U':  Upper triangular
	       = 'L':  Lower triangular

       TRANS   (input) CHARACTER*1
	       Specifies  the  operation  applied to A.	 = 'N':	 Solve A * x =
	       s*b  (No transpose)
	       = 'T':  Solve A'* x = s*b  (Transpose)
	       = 'C':  Solve A'* x = s*b  (Conjugate transpose = Transpose)

       DIAG    (input) CHARACTER*1
	       Specifies whether or not the matrix A is	 unit  triangular.   =
	       'N':  Non-unit triangular
	       = 'U':  Unit triangular

       NORMIN  (input) CHARACTER*1
	       Specifies  whether  CNORM  has  been set or not.	 = 'Y':	 CNORM
	       contains the column norms on entry
	       = 'N':  CNORM is not set on entry.  On exit, the norms will  be
	       computed and stored in CNORM.

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

       AP      (input) DOUBLE PRECISION array, dimension (N*(N+1)/2)
	       The  upper or lower triangular 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.

       X       (input/output) DOUBLE PRECISION array, dimension (N)
	       On  entry,  the right hand side b of the triangular system.  On
	       exit, X is overwritten by the solution vector x.

       SCALE   (output) DOUBLE PRECISION
	       The scaling factor s for the triangular system A * x = s*b   or
	       A'*  x  = s*b.  If SCALE = 0, the matrix A is singular or badly
	       scaled, and the vector x is an exact or approximate solution to
	       A*x = 0.

       CNORM   (input or output) DOUBLE PRECISION array, dimension (N)
	       If  NORMIN  = 'Y', CNORM is an input argument and CNORM(j) con‐
	       tains the norm of the off-diagonal part of the j-th  column  of
	       A.   If	TRANS = 'N', CNORM(j) must be greater than or equal to
	       the infinity-norm, and if TRANS = 'T' or 'C', CNORM(j) must  be
	       greater than or equal to the 1-norm.  If NORMIN = 'N', CNORM is
	       an output argument and CNORM(j) returns the 1-norm of the  off‐
	       diagonal part of the j-th column of A.

       INFO    (output) INTEGER
	       = 0:  successful exit
	       < 0:  if INFO = -k, the k-th argument had an illegal value

FURTHER DETAILS
       A rough bound on x is computed; if that is less than overflow, DTPSV is
       called, otherwise, specific code is  used  which	 checks	 for  possible
       overflow or divide-by-zero at every operation.
       A  columnwise  scheme is used for solving A*x = b.  The basic algorithm
       if A is lower triangular is
	    x[1:n] := b[1:n]
	    for j = 1, ..., n
		 x(j) := x(j) / A(j,j)
		 x[j+1:n] := x[j+1:n] - x(j) * A[j+1:n,j]
	    end
       Define bounds on the components of x after j iterations of the loop:
	  M(j) = bound on x[1:j]
	  G(j) = bound on x[j+1:n]
       Initially, let M(0) = 0 and G(0) = max{x(i), i=1,...,n}.
       Then for iteration j+1 we have
	  M(j+1) <= G(j) / | A(j+1,j+1) |
	  G(j+1) <= G(j) + M(j+1) * | A[j+2:n,j+1] |
		 <= G(j) ( 1 + CNORM(j+1) / | A(j+1,j+1) | )
       where CNORM(j+1) is greater than or equal to the infinity-norm of  col‐
       umn j+1 of A, not counting the diagonal.	 Hence
	  G(j) <= G(0) product ( 1 + CNORM(i) / | A(i,i) | )
		       1<=i<=j
       and
	  |x(j)| <= ( G(0) / |A(j,j)| ) product ( 1 + CNORM(i) / |A(i,i)| )
					1<=i< j
       Since  |x(j)|  <=  M(j),	 we  use the Level 2 BLAS routine DTPSV if the
       reciprocal of the largest M(j), j=1,..,n, is larger than
       max(underflow, 1/overflow).
       The bound on x(j) is also used to determine when a step in the  column‐
       wise method can be performed without fear of overflow.  If the computed
       bound is greater than a large constant, x is scaled  to	prevent	 over‐
       flow,  but  if the bound overflows, x is set to 0, x(j) to 1, and scale
       to 0, and a non-trivial solution to A*x = 0  is	found.	 Similarly,  a
       row-wise	 scheme	 is used to solve A'*x = b.  The basic algorithm for A
       upper triangular is
	    for j = 1, ..., n
		 x(j) := ( b(j) - A[1:j-1,j]' * x[1:j-1] ) / A(j,j)
	    end
       We simultaneously compute two bounds
	    G(j) = bound on ( b(i) - A[1:i-1,i]' * x[1:i-1] ), 1<=i<=j
	    M(j) = bound on x(i), 1<=i<=j
       The initial values are G(0) = 0, M(0) = max{b(i), i=1,..,n}, and we add
       the  constraint G(j) >= G(j-1) and M(j) >= M(j-1) for j >= 1.  Then the
       bound on x(j) is
	    M(j) <= M(j-1) * ( 1 + CNORM(j) ) / | A(j,j) |
		 <= M(0) * product ( ( 1 + CNORM(i) ) / |A(i,i)| )
			   1<=i<=j
       and we can safely call DTPSV if 1/M(n) and 1/G(n) are both greater than
       max(underflow, 1/overflow).

 LAPACK auxiliary routine (versioNovember 2008			     DLATPS(1)
[top]

List of man pages available for Scientific

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