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

```
DCHEX(3F)							     DCHEX(3F)

```

### NAME[Toc][Back]

```     DCHEX   - DCHEX updates the Cholesky factorization

A = TRANS(R)*R

of	a positive definite matrix A of	order P	under diagonal permutations of
the form

TRANS(E)*A*E

where E is	a permutation matrix.  Specifically, given an upper triangular
matrix R and a permutation	matrix E (which	is specified by	K, L, and
JOB), DCHEX determines an orthogonal matrix U such	that

U*R*E =	RR,

where RR is upper triangular.  At the users option, the transformation U
will be multiplied	into the array Z.  If A	= TRANS(X)*X, so that R	is the
triangular	part of	the QR factorization of	X, then	RR is the triangular
part of the QR factorization of X*E, i.e. X with its columns permuted.
For a less	terse description of what DCHEX	does and how it	may be
applied, see the LINPACK guide.

The matrix	Q is determined	as the product U(L-K)*...*U(1) of plane
rotations of the form

(    C(I)	S(I) )
(		     ) ,
(    -S(I)	C(I) )

where C(I)	is double precision.  The rows these rotations operate on are
described below.

There are two types of permutations, which	are determined by the value of
JOB.

1.	Right circular shift (JOB = 1).

The columns are	rearranged in the following order.

1,...,K-1,L,K,K+1,...,L-1,L+1,...,P.

U is the product of L-K	rotations U(I),	where U(I)
acts in	the (L-I,L-I+1)-plane.

2.	Left circular shift (JOB = 2).
The columns are	rearranged in the following order

1,...,K-1,K+1,K+2,...,L,K,L+1,...,P.

U is the product of L-K	rotations U(I),	where U(I)
acts in	the (K+I-1,K+I)-plane.

Page 1

DCHEX(3F)							     DCHEX(3F)

```

### SYNOPSYS[Toc][Back]

```      SUBROUTINE DCHEX(R,LDR,P,K,L,Z,LDZ,NZ,C,S,JOB)
```

### DESCRIPTION[Toc][Back]

```     On	Entry

R DOUBLE PRECISION(LDR,P),	where LDR .GE. P.
R contains the upper triangular	factor
that is	to be updated.	Elements of R
below the diagonal are not referenced.

LDR INTEGER.
LDR is the leading dimension of	the array R.

P INTEGER.
P is the order of the matrix R.

K INTEGER.
K is the first column to be permuted.

L INTEGER.
L is the last column to	be permuted.
L must be strictly greater than	K.

Z DOUBLE PRECISION(LDZ,N)Z), where	LDZ .GE. P.
Z is an	array of NZ P-vectors into which the
transformation U is multiplied.	 Z is
not referenced if NZ = 0.

LDZ INTEGER.
LDZ is the leading dimension of	the array Z.

NZ	INTEGER.
NZ is the number of columns of the matrix Z.

JOB INTEGER.
JOB determines the type	of permutation.
JOB = 1	 right circular	shift.
JOB = 2	 left circular shift.  On Return

R contains	the updated factor.

Z contains	the updated matrix Z.

C DOUBLE PRECISION(P).
C contains the cosines of the transforming rotations.

S DOUBLE PRECISION(P).
S contains the sines of	the transforming rotations.  LINPACK.  This
version dated 08/14/78 .  G. W. Stewart, University of Maryland, Argonne
National Lab.

Page 2

DCHEX(3F)							     DCHEX(3F)

DCHEX uses	the following functions	and subroutines. BLAS DROTG Fortran
MIN0

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