·  Home
+   man pages
 -> Linux -> FreeBSD -> OpenBSD -> NetBSD -> Tru64 Unix -> HP-UX 11i -> IRIX
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

man pages->IRIX man pages -> complib/zgebrd (3)
 Title
 Content
 Arch
 Section All Sections 1 - General Commands 2 - System Calls 3 - Subroutines 4 - Special Files 5 - File Formats 6 - Games 7 - Macros and Conventions 8 - Maintenance Commands 9 - Kernel Interface n - New Commands

### Contents

```
ZGEBRD(3F)							    ZGEBRD(3F)

```

### NAME[Toc][Back]

```     ZGEBRD - reduce a general complex M-by-N matrix A to upper	or lower
bidiagonal	form B by a unitary transformation
```

### SYNOPSIS[Toc][Back]

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

INTEGER	INFO, LDA, LWORK, M, N

DOUBLE		PRECISION D( * ), E( * )

COMPLEX*16	A( LDA,	* ), TAUP( * ),	TAUQ( *	), WORK( LWORK )
```

### PURPOSE[Toc][Back]

```     ZGEBRD reduces a general complex M-by-N matrix A to upper or lower
bidiagonal	form B by a unitary transformation: Q**H * A * P = B.

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

```

### ARGUMENTS[Toc][Back]

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

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

A	     (input/output) COMPLEX*16 array, dimension	(LDA,N)
On	entry, the M-by-N general matrix to be reduced.	 On exit, if m
>=	n, the diagonal	and the	first superdiagonal are	overwritten
with the upper bidiagonal matrix B; the elements below the
diagonal, with the	array TAUQ, represent the unitary matrix Q as
a product of elementary reflectors, and the elements above	the
first superdiagonal, with the array TAUP, represent the unitary
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	unitary	matrix Q as a product
of	elementary reflectors, and the elements	above the diagonal,
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	(min(M,N))
The diagonal elements of the bidiagonal matrix B:	D(i) = A(i,i).

E	     (output) DOUBLE PRECISION array, dimension	(min(M,N)-1)
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.

Page 1

ZGEBRD(3F)							    ZGEBRD(3F)

TAUQ    (output) COMPLEX*16 array dimension (min(M,N))
The scalar	factors	of the elementary reflectors which represent
the unitary matrix	Q. See Further Details.	 TAUP	 (output)
COMPLEX*16	array, dimension (min(M,N)) The	scalar factors of the
elementary	reflectors which represent the unitary matrix P. See
Further Details.  WORK    (workspace/output) COMPLEX*16 array,
dimension (LWORK) On exit,	if INFO	= 0, WORK(1) returns the
optimal LWORK.

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

INFO    (output) INTEGER
= 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
reflectors:

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 complex scalars, and v and	u are complex 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 complex scalars, and v and	u are complex 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 )

Page 2

ZGEBRD(3F)							    ZGEBRD(3F)

(  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).
ZGEBRD(3F)							    ZGEBRD(3F)

```

### NAME[Toc][Back]

```     ZGEBRD - reduce a general complex M-by-N matrix A to upper	or lower
bidiagonal	form B by a unitary transformation
```

### SYNOPSIS[Toc][Back]

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

INTEGER	INFO, LDA, LWORK, M, N

DOUBLE		PRECISION D( * ), E( * )

COMPLEX*16	A( LDA,	* ), TAUP( * ),	TAUQ( *	), WORK( LWORK )
```

### PURPOSE[Toc][Back]

```     ZGEBRD reduces a general complex M-by-N matrix A to upper or lower
bidiagonal	form B by a unitary transformation: Q**H * A * P = B.

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

```

### ARGUMENTS[Toc][Back]

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

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

A	     (input/output) COMPLEX*16 array, dimension	(LDA,N)
On	entry, the M-by-N general matrix to be reduced.	 On exit, if m
>=	n, the diagonal	and the	first superdiagonal are	overwritten
with the upper bidiagonal matrix B; the elements below the
diagonal, with the	array TAUQ, represent the unitary matrix Q as
a product of elementary reflectors, and the elements above	the
first superdiagonal, with the array TAUP, represent the unitary
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	unitary	matrix Q as a product
of	elementary reflectors, and the elements	above the diagonal,
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	(min(M,N))
The diagonal elements of the bidiagonal matrix B:	D(i) = A(i,i).

E	     (output) DOUBLE PRECISION array, dimension	(min(M,N)-1)
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.

Page 1

ZGEBRD(3F)							    ZGEBRD(3F)

TAUQ    (output) COMPLEX*16 array dimension (min(M,N))
The scalar	factors	of the elementary reflectors which represent
the unitary matrix	Q. See Further Details.	 TAUP	 (output)
COMPLEX*16	array, dimension (min(M,N)) The	scalar factors of the
elementary	reflectors which represent the unitary matrix P. See
Further Details.  WORK    (workspace/output) COMPLEX*16 array,
dimension (LWORK) On exit,	if INFO	= 0, WORK(1) returns the
optimal LWORK.

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

INFO    (output) INTEGER
= 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
reflectors:

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 complex scalars, and v and	u are complex 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 complex scalars, and v and	u are complex 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 )

Page 2

ZGEBRD(3F)							    ZGEBRD(3F)

(  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).

PPPPaaaaggggeeee 3333```
[ Back ]
Similar pages