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_zgetrf (f07ar)

Purpose

nag_lapack_zgetrf (f07ar) computes the LULU factorization of a complex mm by nn matrix.

Syntax

[a, ipiv, info] = f07ar(a, 'm', m, 'n', n)
[a, ipiv, info] = nag_lapack_zgetrf(a, 'm', m, 'n', n)

Description

nag_lapack_zgetrf (f07ar) forms the LULU factorization of a complex 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, : :) – complex 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, : :) – complex 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 real floating point operations is approximately (8/3)n383n3 if m = nm=n (the usual case), (4/3)n2(3mn)43n2(3m-n) if m > nm>n and (4/3)m2(3nm)43m2(3n-m) if m < nm<n.
A call to this function with m = nm=n may be followed by calls to the functions:
The real analogue of this function is nag_lapack_dgetrf (f07ad).

Example

function nag_lapack_zgetrf_example
a = [ -1.34 + 2.55i,  0.28 + 3.17i,  -6.39 - 2.2i,  0.72 - 0.92i;
      -0.17 - 1.41i,  3.31 - 0.15i,  -0.15 + 1.34i,  1.29 + 1.38i;
      -3.29 - 2.39i,  -1.91 + 4.42i,  -0.14 - 1.35i,  1.72 + 1.35i;
      2.41 + 0.39i,  -0.56 + 1.47i, ...
     -0.83 - 0.69i,  -1.96 + 0.67i];
[aOut, ipiv, info] = nag_lapack_zgetrf(a)
 

aOut =

  -3.2900 - 2.3900i  -1.9100 + 4.4200i  -0.1400 - 1.3500i   1.7200 + 1.3500i
   0.2376 + 0.2560i   4.8952 - 0.7114i  -0.4623 + 1.6966i   1.2269 + 0.6190i
  -0.1020 - 0.7010i  -0.6691 + 0.3689i  -5.1414 - 1.1300i   0.9983 + 0.3850i
  -0.5359 + 0.2707i  -0.2040 + 0.8601i   0.0082 + 0.1211i   0.1482 - 0.1252i


ipiv =

                    3
                    2
                    3
                    4


info =

                    0


function f07ar_example
a = [ -1.34 + 2.55i,  0.28 + 3.17i,  -6.39 - 2.2i,  0.72 - 0.92i;
      -0.17 - 1.41i,  3.31 - 0.15i,  -0.15 + 1.34i,  1.29 + 1.38i;
      -3.29 - 2.39i,  -1.91 + 4.42i,  -0.14 - 1.35i,  1.72 + 1.35i;
      2.41 + 0.39i,  -0.56 + 1.47i, ...
     -0.83 - 0.69i,  -1.96 + 0.67i];
[aOut, ipiv, info] = f07ar(a)
 

aOut =

  -3.2900 - 2.3900i  -1.9100 + 4.4200i  -0.1400 - 1.3500i   1.7200 + 1.3500i
   0.2376 + 0.2560i   4.8952 - 0.7114i  -0.4623 + 1.6966i   1.2269 + 0.6190i
  -0.1020 - 0.7010i  -0.6691 + 0.3689i  -5.1414 - 1.1300i   0.9983 + 0.3850i
  -0.5359 + 0.2707i  -0.2040 + 0.8601i   0.0082 + 0.1211i   0.1482 - 0.1252i


ipiv =

                    3
                    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