LFDDH

Computes the determinant of a complex Hermitian positive definite matrix given the RHR Cholesky factorization of the matrix.

Required Arguments

FACT — Complex N by N matrix containing the RHR factorization of the coefficient matrix A as output from routine LFCDH/DLFCDH or LFTDH/DLFTDH.   (Input)

DET1 — Scalar containing the mantissa of the determinant.   (Output)
The value DET1 is normalized so that 1.0 ≤ |DET1| < 10.0 or DET1 = 0.0.

DET2 — Scalar containing the exponent of the determinant.   (Output)
The determinant is returned in the form det(A) = DET1 * 10DET2.

Optional Arguments

NOrder of the matrix.   (Input)
Default: N = size (FACT,2).

LDFACT — Leading dimension of FACT exactly as specified in the dimension statement of the calling program.   (Input)
Default: LDFACT = size (FACT,1).

FORTRAN 90 Interface

Generic:                              CALL LFDDH (FACT, DET1, DET2 [,…])

Specific:                             The specific interface names are S_LFDDH and D_LFDDH.

FORTRAN 77 Interface

Single:                                CALL LFDDH (N, FACT, LDFACT, DET1, DET2)

Double:                              The double precision name is DLFDDH.

Description

Routine LFDDH computes the determinant of a complex Hermitian positive definite coefficient matrix. To compute the determinant, the coefficient matrix must first undergo an RH R factorization. This may be done by calling either LFCDH or LFTDH. The formula det A = det RH det R = (det R)2 is used to compute the determinant. Since the determinant of a triangular matrix is the product of the diagonal elements,

(The matrix R is stored in the upper triangle of FACT.)

LFDDH is based on the LINPACK routine CPODI; see Dongarra et al. (1979).

Example

The determinant is computed for a complex Hermitian positive definite 3 × 3 matrix.

 

      USE LFDDH_INT
      USE LFTDH_INT
      USE UMACH_INT

!                                 Declare variables

      INTEGER    LDA, LDFACT, NOUT

      PARAMETER  (LDA=3, LDFACT=3)

      REAL       DET1, DET2

      COMPLEX    A(LDA,LDA), FACT(LDFACT,LDFACT)

!

!                                 Set values for A

!

!        A =   (  6.0+0.0i   1.0-1.0i   4.0+0.0i )

!              (  1.0+1.0i   7.0+0.0i  -5.0+1.0i )

!              (  4.0+0.0i  -5.0-1.0i  11.0+0.0i )

!

      DATA A /(6.0,0.0), (1.0,1.0), (4.0,0.0), (1.0,-1.0), (7.0,0.0),&

             (-5.0,-1.0), (4.0,0.0), (-5.0,1.0), (11.0,0.0)/

!                                 Factor the matrix

      CALL LFTDH (A, FACT)

!                                 Compute the determinant

      CALL LFDDH (FACT, DET1, DET2)

!                                 Print results

      CALL UMACH (2, NOUT)

      WRITE (NOUT,99999) DET1, DET2

!

99999 FORMAT (' The determinant of A is ',F6.3,' * 10**',F2.0)

      END

Output

 

The determinant of A is  1.400 * 10**2.


Visual Numerics, Inc.
Visual Numerics - Developers of IMSL and PV-WAVE
http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260