DecompositionOperations<TReal, TComplex>.LUDecompose Method

Definition

Namespace: Extreme.Mathematics.LinearAlgebra.Implementation
Assembly: Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.23

Overload List

LUDecompose(Int32, Int32, Array2D<TReal>, Array1D<Int32>, Int32) Computes an LU decomposition of a general M-by-N matrix A using partial pivoting with row interchanges.

The decomposition has the form

A = P * L * U

where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n).

This is the right-looking Level 3 BLAS version of the algorithm.

LUDecompose(Int32, Int32, Array2D<TComplex>, Array1D<Int32>, Int32) ZGETRF computes an LU decomposition of a general M-by-N matrix A using partial pivoting with row interchanges.

The decomposition has the form

A = P * L * U

where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n).

This is the right-looking Level 3 BLAS version of the algorithm.

LUDecompose(Int32, Int32, Array2D<TReal>, Array1D<Int32>, Int32)

Computes an LU decomposition of a general M-by-N matrix A using partial pivoting with row interchanges.

The decomposition has the form

A = P * L * U

where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n).

This is the right-looking Level 3 BLAS version of the algorithm.

C#
public abstract void LUDecompose(
	int m,
	int n,
	Array2D<TReal> a,
	Array1D<int> ipiv,
	out int info
)

Parameters

m  Int32
An integer specifying the number of rows of the matrix a. Must be greater than or equal to zero.
n  Int32
An integer specifying the number of columns of the matrix a. Must be greater than or equal to zero.
a  Array2D<TReal>
TReal array specifying the m-by-n matrix to be factored. On exit, the factors L and U from the decomposition A = P*L*U; the unit diagonal elements of L are not stored.
ipiv  Array1D<Int32>
Integer array of length min(m,n) that will hold the pivot indexes. Row i of the matrix was interchanged with row ipiv[i].
info  Int32
Reference to an integer containing a result code. Zero indicates success. Greater than zero indicates U(i,i) is exactly zero. The decomposition has been completed, but the factor U is exactly singular, and division by zero will occur if it is used to solve a system of equations.

LUDecompose(Int32, Int32, Array2D<TComplex>, Array1D<Int32>, Int32)

ZGETRF computes an LU decomposition of a general M-by-N matrix A using partial pivoting with row interchanges.

The decomposition has the form

A = P * L * U

where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n).

This is the right-looking Level 3 BLAS version of the algorithm.

C#
public abstract void LUDecompose(
	int m,
	int n,
	Array2D<TComplex> a,
	Array1D<int> ipiv,
	out int info
)

Parameters

m  Int32
An integer specifying the number of rows of the matrix a. Must be greater than or equal to zero.
n  Int32
An integer specifying the number of columns of the matrix a. Must be greater than or equal to zero.
a  Array2D<TComplex>
complex TReal-precision array specifying the m-by-n matrix to be factored. On exit, the factors L and U from the decomposition A = P*L*U; the unit diagonal elements of L are not stored.
ipiv  Array1D<Int32>
Integer array of length min(m,n) that will hold the pivot indexes. Row i of the matrix was interchanged with row ipiv[i].
info  Int32
Reference to an integer containing a result code. Zero indicates success. Greater than zero indicates U(i,i) is exactly zero. The decomposition has been completed, but the factor U is exactly singular, and division by zero will occur if it is used to solve a system of equations.

See Also