# LU class Null safety

For an m-by-n matrix A with m >= n, the LU decomposition is an m-by-n unit lower triangular matrix L, an n-by-n upper triangular matrix U, and a permutation vector piv of length m so that A(piv,:) = L*U. If m < n, then L is m-by-m and U is m-by-n. The LU decomposition with pivoting always exists, even if the matrix is singular, so the constructor will never fail. The primary use of the LU decomposition is in the solution of square systems of simultaneous linear equations. This will fail if isNonsingular() returns false.

# References

1. "Jama". https://math.nist.gov/javanumerics/jama/. Retrieved 2019-07-17.
2. "LU Decomposition in Python and NumPy". https://www.quantstart.com/articles/LU-Decomposition-in-Python-and-NumPy. Retrieved 2019-07-18.

# Examples

``````var lu = LU(Array2d([
Array([4.0, 2.0, 1.0]),
Array([16.0, 4.0, 1.0]),
Array([64.0, 8.0, 1.0])
]));
var l = lu.L();
print(l);
var u = lu.U();
print(u);
``````

## Constructors

LU()
LU Decomposition Structure to access L, U and piv. [...]

## Properties

hashCode int
The hash code for this object. [...]
runtimeType Type
A representation of the runtime type of the object.

## Methods

det()
Determinant return det(A) exception FormatException Matrix must be square
doublePivot()
Return pivot permutation vector as a one-dimensional double array return (double) piv
isNonsingular() bool
Is the matrix nonsingular? return true if U, and hence A, is nonsingular.
L()
Return lower triangular factor return L
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
pivot()
Return pivot permutation vector return piv
solve()
Solve A*X = B [...]
toString()
A string representation of this object. [...]
inherited
U()
Return upper triangular factor return U

## Operators

operator ==(Object other) bool
The equality operator. [...]
inherited