hide long namesshow long names
hide short namesshow short names
Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

NAG Toolbox: nag_lapack_dgetrf (f07ad)

Purpose

nag_lapack_dgetrf (f07ad) computes the LULU factorization of a real mm by nn matrix.

Syntax

[a, ipiv, info] = f07ad(a, 'm', m, 'n', n)
[a, ipiv, info] = nag_lapack_dgetrf(a, 'm', m, 'n', n)

Description

nag_lapack_dgetrf (f07ad) forms the LULU factorization of a real mm by nn matrix AA as A = PLUA=PLU, where PP is a permutation matrix, LL is lower triangular with unit diagonal elements (lower trapezoidal if m > nm>n) and UU is upper triangular (upper trapezoidal if m < nm<n). Usually AA is square (m = n)(m=n), and both LL and UU are triangular. The function uses partial pivoting, with row interchanges.

References

Golub G H and Van Loan C F (1996) Matrix Computations (3rd Edition) Johns Hopkins University Press, Baltimore

Parameters

Compulsory Input Parameters

1:     a(lda, : :) – double array
The first dimension of the array a must be at least max (1,m)max(1,m)
The second dimension of the array must be at least max (1,n)max(1,n)
The mm by nn matrix AA.

Optional Input Parameters

1:     m – int64int32nag_int scalar
Default: The first dimension of the array a.
mm, the number of rows of the matrix AA.
Constraint: m0m0.
2:     n – int64int32nag_int scalar
Default: The second dimension of the array a.
nn, the number of columns of the matrix AA.
Constraint: n0n0.

Input Parameters Omitted from the MATLAB Interface

lda

Output Parameters

1:     a(lda, : :) – double array
The first dimension of the array a will be max (1,m)max(1,m)
The second dimension of the array will be max (1,n)max(1,n)
ldamax (1,m)ldamax(1,m).
The factors LL and UU from the factorization A = PLUA=PLU; the unit diagonal elements of LL are not stored.
2:     ipiv(min (m,n)min(m,n)) – int64int32nag_int array
The pivot indices that define the permutation matrix. At the iith step, if ipiv(i) > iipivi>i then row ii of the matrix AA was interchanged with row ipiv(i)ipivi, for i = 1,2,,min (m,n)i=1,2,,min(m,n). ipiv(i)iipivii indicates that, at the iith step, a row interchange was not required.
3:     info – int64int32nag_int scalar
info = 0info=0 unless the function detects an error (see Section [Error Indicators and Warnings]).

Error Indicators and Warnings

Cases prefixed with W are classified as warnings and do not generate an error of type NAG:error_n. See nag_issue_warnings.

  info = iinfo=-i
If info = iinfo=-i, parameter ii had an illegal value on entry. The parameters are numbered as follows:
1: m, 2: n, 3: a, 4: lda, 5: ipiv, 6: info.
It is possible that info refers to a parameter that is omitted from the MATLAB interface. This usually indicates that an error in one of the other input parameters has caused an incorrect value to be inferred.
W INFO > 0INFO>0
If info = iinfo=i, U(i,i)U(i,i) is exactly zero. The factorization has been completed, but the factor UU is exactly singular, and division by zero will occur if it is used to solve a system of equations.

Accuracy

The computed factors LL and UU are the exact factors of a perturbed matrix A + EA+E, where
|E| c (min (m,n)) ε P |L| |U| ,
|E| c ( min(m,n) ) ε P |L| |U| ,
c(n)c(n) is a modest linear function of nn, and εε is the machine precision.

Further Comments

The total number of floating point operations is approximately (2/3)n323n3 if m = nm=n (the usual case), (1/3)n2(3mn)13n2(3m-n) if m > nm>n and (1/3)m2(3nm)13m2(3n-m) if m < nm<n.
A call to this function with m = nm=n may be followed by calls to the functions:
The complex analogue of this function is nag_lapack_zgetrf (f07ar).

Example

function nag_lapack_dgetrf_example
a = [1.8, 2.88, 2.05, -0.89;
     5.25, -2.95, -0.95, -3.8;
     1.58, -2.69, -2.9, -1.04;
     -1.11, -0.66, -0.59, 0.8];
[aOut, ipiv, info] = nag_lapack_dgetrf(a)
 

aOut =

    5.2500   -2.9500   -0.9500   -3.8000
    0.3429    3.8914    2.3757    0.4129
    0.3010   -0.4631   -1.5139    0.2948
   -0.2114   -0.3299    0.0047    0.1314


ipiv =

                    2
                    2
                    3
                    4


info =

                    0


function f07ad_example
a = [1.8, 2.88, 2.05, -0.89;
     5.25, -2.95, -0.95, -3.8;
     1.58, -2.69, -2.9, -1.04;
     -1.11, -0.66, -0.59, 0.8];
[aOut, ipiv, info] = f07ad(a)
 

aOut =

    5.2500   -2.9500   -0.9500   -3.8000
    0.3429    3.8914    2.3757    0.4129
    0.3010   -0.4631   -1.5139    0.2948
   -0.2114   -0.3299    0.0047    0.1314


ipiv =

                    2
                    2
                    3
                    4


info =

                    0



PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2013