The OpenNET Project / Index page

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

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

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

zlabrd (3)
  • >> zlabrd (3) ( Solaris man: Библиотечные вызовы )
  • 
    NAME
         zlabrd - reduce the first NB rows and columns of  a  complex
         general  m  by  n matrix A to upper or lower real bidiagonal
         form by a unitary transformation Q' * A * P, and returns the
         matrices  X  and Y which are needed to apply the transforma-
         tion to the unreduced part of A
    
    SYNOPSIS
         SUBROUTINE ZLABRD( M, N, NB, A, LDA, D, E,  TAUQ,  TAUP,  X,
                   LDX, Y, LDY )
    
         INTEGER LDA, LDX, LDY, M, N, NB
    
         DOUBLE PRECISION D( * ), E( * )
    
         COMPLEX*16 A( LDA, * ), TAUP( * ), TAUQ( * ), X( LDX,  *  ),
                   Y( LDY, * )
    
    
    
         #include <sunperf.h>
    
         void zlabrd(int m, int n, int  nb,  doublecomplex  *za,  int
                   lda,  double  *d,  double *e, doublecomplex *tauq,
                   doublecomplex *taup, doublecomplex *zx,  int  ldx,
                   doublecomplex *zy, int *ldy) ;
    
    PURPOSE
         ZLABRD reduces the first NB rows and columns  of  a  complex
         general  m  by  n matrix A to upper or lower real bidiagonal
         form by a unitary transformation Q' * A * P, and returns the
         matrices  X  and Y which are needed to apply the transforma-
         tion to the unreduced part of A.
    
         If m >= n, A is reduced to upper bidiagonal form; if m <  n,
         to lower bidiagonal form.
    
         This is an auxiliary routine called by ZGEBRD
    
    
    ARGUMENTS
         M         (input) INTEGER
                   The number of rows in the matrix A.
    
         N         (input) INTEGER
                   The number of columns in the matrix A.
    
         NB        (input) INTEGER
                   The number of leading rows and columns of A to  be
                   reduced.
    
         A         (input/output) COMPLEX*16 array, dimension (LDA,N)
                   On entry, the m by n general matrix to be reduced.
                   On  exit,  the  first  NB  rows and columns of the
                   matrix are overwritten; the rest of the  array  is
                   unchanged.   If  m >= n, elements on and below the
                   diagonal in the first NB columns, with  the  array
                   TAUQ,  represent the unitary matrix Q as a product
                   of elementary reflectors; and elements  above  the
                   diagonal  in  the  first  NB  rows, with the array
                   TAUP, represent the unitary matrix P as a  product
                   of  elementary  reflectors.   If  m  < n, elements
                   below the diagonal in the first NB  columns,  with
                   the  array TAUQ, represent the unitary matrix Q as
                   a product of elementary reflectors,  and  elements
                   on  and  above  the diagonal in the first NB rows,
                   with the array TAUP, represent the unitary  matrix
                   P  as  a  product  of  elementary reflectors.  See
                   Further  Details.   LDA      (input)  INTEGER  The
                   leading   dimension   of  the  array  A.   LDA  >=
                   max(1,M).
    
         D         (output) DOUBLE PRECISION array, dimension (NB)
                   The diagonal elements of the  first  NB  rows  and
                   columns of the reduced matrix.  D(i) = A(i,i).
    
         E         (output) DOUBLE PRECISION array, dimension (NB)
                   The off-diagonal elements of the first NB rows and
                   columns of the reduced matrix.
    
         TAUQ      (output) COMPLEX*16 array dimension (NB)
                   The scalar factors of  the  elementary  reflectors
                   which  represent the unitary matrix Q. See Further
                   Details.   TAUP     (output)   COMPLEX*16   array,
                   dimension  (NB)  The scalar factors of the elemen-
                   tary reflectors which represent the unitary matrix
                   P.  See  Further  Details.   X       (output) COM-
                   PLEX*16  array,  dimension  (LDX,NB)  The  m-by-nb
                   matrix  X required to update the unreduced part of
                   A.
    
         LDX       (input) INTEGER
                   The leading dimension  of  the  array  X.  LDX  >=
                   max(1,M).
    
         Y         (output) COMPLEX*16 array, dimension (LDY,NB)
                   The n-by-nb matrix Y required to update the  unre-
                   duced part of A.
    
         LDY       (output) INTEGER
                   The leading dimension  of  the  array  Y.  LDY  >=
                   max(1,N).
    
    
    FURTHER DETAILS
         The matrices Q and P are represented as products of  elemen-
         tary reflectors:
    
            Q = H(1) H(2) . . . H(nb)  and  P = G(1) G(2) . . . G(nb)
    
         Each H(i) and G(i) has the form:
    
            H(i) = I - tauq * v * v'  and G(i) = I - taup * u * u'
    
         where tauq and taup are complex scalars, and  v  and  u  are
         complex vectors.
    
         If m >= n, v(1:i-1) = 0, v(i) = 1, and v(i:m) is  stored  on
         exit  in  A(i:m,i);  u(1:i) = 0, u(i+1) = 1, and u(i+1:n) is
         stored on exit in A(i,i+1:n); tauq is stored in TAUQ(i)  and
         taup in TAUP(i).
    
         If m < n, v(1:i) = 0, v(i+1) = 1, and v(i+1:m) is stored  on
         exit  in  A(i+2:m,i);  u(1:i-1) = 0, u(i) = 1, and u(i:n) is
         stored on exit in A(i,i+1:n); tauq is stored in TAUQ(i)  and
         taup in TAUP(i).
    
         The elements of the vectors v and u together form the  m-by-
         nb matrix V and the nb-by-n matrix U' which are needed, with
         X and Y, to apply the transformation to the  unreduced  part
         of  the  matrix, using a block update of the form:  A := A -
         V*Y' - X*U'.
    
         The contents of A on exit are illustrated by the following examples with nb
         = 2:
    
         m = 6 and n = 5 (m > n):          m = 5 and n = 6 (m < n):
    
           (  1   1   u1  u1  u1 )           (  1   u1  u1  u1  u1  u1 )
           (  v1  1   1   u2  u2 )           (  1   1   u2  u2  u2  u2 )
           (  v1  v2  a   a   a  )           (  v1  1   a   a   a   a  )
           (  v1  v2  a   a   a  )           (  v1  v2  a   a   a   a  )
           (  v1  v2  a   a   a  )           (  v1  v2  a   a   a   a  )
           (  v1  v2  a   a   a  )
    
         where a denotes an element of the original matrix  which  is
         unchanged,  vi  denotes  an  element  of the vector defining
         H(i), and ui an element of the vector defining G(i).
    
    
    
    


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




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

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