dgebrd man page on OpenIndiana

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

dgebrd(3P)		    Sun Performance Library		    dgebrd(3P)

NAME
       dgebrd  - reduce a general real M-by-N matrix A to upper or lower bidi‐
       agonal form B by an orthogonal transformation

SYNOPSIS
       SUBROUTINE DGEBRD(M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK, INFO)

       INTEGER M, N, LDA, LWORK, INFO
       DOUBLE PRECISION A(LDA,*), D(*), E(*), TAUQ(*), TAUP(*), WORK(*)

       SUBROUTINE DGEBRD_64(M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK,
	     INFO)

       INTEGER*8 M, N, LDA, LWORK, INFO
       DOUBLE PRECISION A(LDA,*), D(*), E(*), TAUQ(*), TAUP(*), WORK(*)

   F95 INTERFACE
       SUBROUTINE GEBRD([M], [N], A, [LDA], D, E, TAUQ, TAUP, [WORK], [LWORK],
	      [INFO])

       INTEGER :: M, N, LDA, LWORK, INFO
       REAL(8), DIMENSION(:) :: D, E, TAUQ, TAUP, WORK
       REAL(8), DIMENSION(:,:) :: A

       SUBROUTINE GEBRD_64([M], [N], A, [LDA], D, E, TAUQ, TAUP, [WORK],
	      [LWORK], [INFO])

       INTEGER(8) :: M, N, LDA, LWORK, INFO
       REAL(8), DIMENSION(:) :: D, E, TAUQ, TAUP, WORK
       REAL(8), DIMENSION(:,:) :: A

   C INTERFACE
       #include <sunperf.h>

       void dgebrd(int m, int n, double *a, int lda,  double  *d,  double  *e,
		 double *tauq, double *taup, int *info);

       void  dgebrd_64(long  m, long n, double *a, long lda, double *d, double
		 *e, double *tauq, double *taup, long *info);

PURPOSE
       dgebrd reduces a general real M-by-N matrix A to upper or lower bidiag‐
       onal form B by an orthogonal transformation: Q**T * A * P = B.

       If m >= n, B is upper bidiagonal; if m < n, B is lower bidiagonal.

ARGUMENTS
       M (input) The number of rows in the matrix A.  M >= 0.

       N (input) The number of columns in the matrix A.	 N >= 0.

       A (input/output)
		 On  entry, the M-by-N general matrix to be reduced.  On exit,
		 if m >= n, the diagonal and the first superdiagonal are over‐
		 written  with	the  upper  bidiagonal	matrix B; the elements
		 below the  diagonal,  with  the  array	 TAUQ,	represent  the
		 orthogonal  matrix  Q	as a product of elementary reflectors,
		 and the elements above	 the  first  superdiagonal,  with  the
		 array TAUP, represent the orthogonal matrix P as a product of
		 elementary reflectors; if m < n, the diagonal and  the	 first
		 subdiagonal  are overwritten with the lower bidiagonal matrix
		 B; the elements below the first subdiagonal, with  the	 array
		 TAUQ,	represent the orthogonal matrix Q as a product of ele‐
		 mentary reflectors, and the elements above the diagonal, with
		 the  array TAUP, represent the orthogonal matrix P as a prod‐
		 uct of elementary reflectors.	See Further Details.

       LDA (input)
		 The leading dimension of the array A.	LDA >= max(1,M).

       D (output)
		 The diagonal elements of the  bidiagonal  matrix  B:  D(i)  =
		 A(i,i).

       E (output)
		 The off-diagonal elements of the bidiagonal matrix B: if m >=
		 n, E(i) = A(i,i+1) for i = 1,2,...,n-1; if  m	<  n,  E(i)  =
		 A(i+1,i) for i = 1,2,...,m-1.

       TAUQ (output)
		 The  scalar factors of the elementary reflectors which repre‐
		 sent the orthogonal matrix Q. See Further Details.

       TAUP (output)
		 The scalar factors of the elementary reflectors which	repre‐
		 sent the orthogonal matrix P. See Further Details.

       WORK (workspace)
		 On exit, if INFO = 0, WORK(1) returns the optimal LWORK.

       LWORK (input)
		 The  length  of  the  array  WORK.  LWORK >= max(1,M,N).  For
		 optimum performance LWORK >= (M+N)*NB, where NB is the	 opti‐
		 mal blocksize.

		 If LWORK = -1, then a workspace query is assumed; the routine
		 only calculates the optimal size of the WORK  array,  returns
		 this value as the first entry of the WORK array, and no error
		 message related to LWORK is issued by XERBLA.

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

FURTHER DETAILS
       The matrices Q and P are represented as products of elementary  reflec‐
       tors:

       If m >= n,

	  Q = H(1) H(2) . . . H(n)  and	 P = G(1) G(2) . . . G(n-1)

       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 real scalars, and v and u are real vectors;
       v(1:i-1) = 0, v(i) = 1, and v(i+1:m) is stored on exit  in  A(i+1:m,i);
       u(1:i)  =  0, u(i+1) = 1, and u(i+2:n) is stored on exit in A(i,i+2:n);
       tauq is stored in TAUQ(i) and taup in TAUP(i).

       If m < n,

	  Q = H(1) H(2) . . . H(m-1)  and  P = G(1) G(2) . . . G(m)

       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 real scalars, and v and	u  are	real  vectors;
       v(1:i)  =  0, v(i+1) = 1, and v(i+2:m) is stored on exit in A(i+2:m,i);
       u(1:i-1) = 0, u(i) = 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).

       The contents of A on exit are illustrated by the following examples:

       m = 6 and n = 5 (m > n):		 m = 5 and n = 6 (m < n):

	 (  d	e   u1	u1  u1 )	   (  d	  u1  u1  u1  u1  u1 )
	 (  v1	d   e	u2  u2 )	   (  e	  d   u2  u2  u2  u2 )
	 (  v1	v2  d	e   u3 )	   (  v1  e   d	  u3  u3  u3 )
	 (  v1	v2  v3	d   e  )	   (  v1  v2  e	  d   u4  u4 )
	 (  v1	v2  v3	v4  d  )	   (  v1  v2  v3  e   d	  u5 )
	 (  v1	v2  v3	v4  v5 )

       where  d	 and  e	 denote	 diagonal  and	off-diagonal elements of B, vi
       denotes an element of the vector defining H(i), and ui  an  element  of
       the vector defining G(i).

				  6 Mar 2009			    dgebrd(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