The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

dsytrf (3)
  • >> dsytrf (3) ( Solaris man: Библиотечные вызовы )
  • 
    NAME
         dsytrf - compute  the  factorization  of  a  real  symmetric
         matrix A using the Bunch-Kaufman diagonal pivoting method
    
    SYNOPSIS
         SUBROUTINE DSYTRF( UPLO, N, A, LDA, IPIV, WORK, LWORK,  INFO
                   )
    
         CHARACTER UPLO
    
         INTEGER INFO, LDA, LWORK, N
    
         INTEGER IPIV( * )
    
         DOUBLE PRECISION A( LDA, * ), WORK( LWORK )
    
    
    
         #include <sunperf.h>
    
         void dsytrf(char uplo, int  n,  double  *da,  int  lda,  int
                   *ipivot, int *info) ;
    
    PURPOSE
         DSYTRF computes the factorization of a real symmetric matrix
         A  using  the  Bunch-Kaufman  diagonal pivoting method.  The
         form of the factorization is
    
            A = U*D*U**T  or  A = L*D*L**T
    
         where U (or L) is a product of permutation  and  unit  upper
         (lower)  triangular  matrices,  and D is symmetric and block
         diagonal with 1-by-1 and 2-by-2 diagonal blocks.
    
         This is the blocked version of the algorithm, calling  Level
         3 BLAS.
    
    
    ARGUMENTS
         UPLO      (input) CHARACTER*1
                   = 'U':  Upper triangle of A is stored;
                   = 'L':  Lower triangle of A is stored.
    
         N         (input) INTEGER
                   The order of the matrix A.  N >= 0.
    
         A         (input/output) DOUBLE PRECISION  array,  dimension
                   (LDA,N)
                   On entry, the symmetric matrix A.  If UPLO =  'U',
                   the leading N-by-N upper triangular part of A con-
                   tains the upper triangular part of the  matrix  A,
                   and the strictly lower triangular part of A is not
                   referenced.  If UPLO =  'L',  the  leading  N-by-N
                   lower triangular part of A contains the lower tri-
                   angular part of the matrix  A,  and  the  strictly
                   upper triangular part of A is not referenced.
    
                   On exit, the block diagonal matrix D and the  mul-
                   tipliers  used  to  obtain  the factor U or L (see
                   below for further details).
    
         LDA       (input) INTEGER
                   The leading dimension of  the  array  A.   LDA  >=
                   max(1,N).
    
         IPIV      (output) INTEGER array, dimension (N)
                   Details of the interchanges and the  block  struc-
                   ture  of D.  If IPIV(k) > 0, then rows and columns
                   k and IPIV(k) were interchanged and  D(k,k)  is  a
                   1-by-1  diagonal block.  If UPLO = 'U' and IPIV(k)
                   = IPIV(k-1) < 0, then rows  and  columns  k-1  and
                   -IPIV(k) were interchanged and D(k-1:k,k-1:k) is a
                   2-by-2 diagonal block.  If UPLO = 'L' and  IPIV(k)
                   =  IPIV(k+1)  <  0,  then rows and columns k+1 and
                   -IPIV(k) were interchanged and D(k:k+1,k:k+1) is a
                   2-by-2 diagonal block.
    
         WORK      (workspace/output) DOUBLE PRECISION array,  dimen-
                   sion (LWORK)
                   On exit, if INFO = 0, WORK(1) returns the  optimal
                   LWORK.
    
         LWORK     (input) INTEGER
                   The length of WORK.  LWORK >=1.  For best  perfor-
                   mance  LWORK  >=  N*NB, where NB is the block size
                   returned by ILAENV.
    
         INFO      (output) INTEGER
                   = 0:  successful exit
                   < 0:  if INFO = -i, the i-th argument had an ille-
                   gal 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  divi-
                   sion  by  zero will occur if it is used to solve a
                   system of equations.
    
    FURTHER DETAILS
         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 IPIV(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 IPIV(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).
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру