The OpenNET Project / Index page

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

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

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

chetf2 (3)
  • >> chetf2 (3) ( Solaris man: Библиотечные вызовы )
  • 
    NAME
         chetf2 - compute the factorization of  a  complex  Hermitian
         matrix A using the Bunch-Kaufman diagonal pivoting method
    
    SYNOPSIS
         SUBROUTINE CHETF2( UPLO, N, A, LDA, IPIV, INFO )
    
         CHARACTER UPLO
    
         INTEGER INFO, LDA, N
    
         INTEGER IPIV( * )
    
         COMPLEX A( LDA, * )
    
    
    
         #include <sunperf.h>
    
         void chetf2(char uplo, int n,  complex  *ca,  int  lda,  int
                   *ipivot, int *info) ;
    
    PURPOSE
         CHETF2 computes the factorization  of  a  complex  Hermitian
         matrix A using the Bunch-Kaufman diagonal pivoting method:
    
            A = U*D*U'  or  A = L*D*L'
    
         where U (or L) is a product of permutation  and  unit  upper
         (lower)  triangular  matrices, U' is the conjugate transpose
         of U, and D is Hermitian and block diagonal with 1-by-1  and
         2-by-2 diagonal blocks.
    
         This is the unblocked  version  of  the  algorithm,  calling
         Level 2 BLAS.
    
    
    ARGUMENTS
         UPLO      (input) CHARACTER*1
                   Specifies whether the upper  or  lower  triangular
                   part of the Hermitian matrix A is stored:
                   = 'U':  Upper triangular
                   = 'L':  Lower triangular
    
         N         (input) INTEGER
                   The order of the matrix A.  N >= 0.
    
         A         (input/output) COMPLEX array, dimension (LDA,N)
                   On entry, the Hermitian 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.
    
         INFO      (output) INTEGER
                   = 0: successful exit
                   < 0: if INFO = -k, the k-th argument had an  ille-
                   gal value
                   > 0: if INFO = k, D(k,k)  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
    Добавить, Поддержать, Вебмастеру