·  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/cgebrd (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

```
CGEBRD(3F)							    CGEBRD(3F)

```

### NAME[Toc][Back]

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

### SYNOPSIS[Toc][Back]

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

INTEGER	INFO, LDA, LWORK, M, N

REAL		D( * ),	E( * )

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

### PURPOSE[Toc][Back]

```     CGEBRD 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 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) REAL array, dimension (min(M,N))
The diagonal elements of the bidiagonal matrix B:	D(i) = A(i,i).

E	     (output) REAL 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

CGEBRD(3F)							    CGEBRD(3F)

TAUQ    (output) COMPLEX array dimension (min(M,N))
The scalar	factors	of the elementary reflectors which represent
the unitary matrix	Q. See Further Details.	 TAUP	 (output)
COMPLEX 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 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

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

```

### NAME[Toc][Back]

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

### SYNOPSIS[Toc][Back]

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

INTEGER	INFO, LDA, LWORK, M, N

REAL		D( * ),	E( * )

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

### PURPOSE[Toc][Back]

```     CGEBRD 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 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) REAL array, dimension (min(M,N))
The diagonal elements of the bidiagonal matrix B:	D(i) = A(i,i).

E	     (output) REAL 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

CGEBRD(3F)							    CGEBRD(3F)

TAUQ    (output) COMPLEX array dimension (min(M,N))
The scalar	factors	of the elementary reflectors which represent
the unitary matrix	Q. See Further Details.	 TAUP	 (output)
COMPLEX 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 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

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