Parallel Colt 0.9.4

cern.colt.matrix.tdouble.algo.decomposition
Class SparseDoubleLUDecomposition

java.lang.Object
  extended by cern.colt.matrix.tdouble.algo.decomposition.SparseDoubleLUDecomposition

public class SparseDoubleLUDecomposition
extends Object

For a square matrix A, the LU decomposition is an unit lower triangular matrix L, an upper triangular matrix U, and a permutation vector piv so that A(piv,:) = L*U

The LU decomposition with pivoting always exists, even if the matrix is singular. 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.

Author:
Piotr Wendykier (piotr.wendykier@gmail.com)

Constructor Summary
SparseDoubleLUDecomposition(DoubleMatrix2D A, int order, boolean checkIfSingular)
          Constructs and returns a new LU Decomposition object; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.
 
Method Summary
 double det()
          Returns the determinant, det(A).
 DoubleMatrix2D getL()
          Returns the lower triangular factor, L.
 int[] getPivot()
          Returns a copy of the pivot permutation vector.
 edu.emory.mathcs.csparsej.tdouble.Dcs_common.Dcss getSymbolicAnalysis()
          Returns a copy of the symbolic LU analysis object
 DoubleMatrix2D getU()
          Returns the upper triangular factor, U.
 boolean isNonsingular()
          Returns whether the matrix is nonsingular (has an inverse).
 void solve(DoubleMatrix1D b)
          Solves A*x = b(in-place).
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SparseDoubleLUDecomposition

public SparseDoubleLUDecomposition(DoubleMatrix2D A,
                                   int order,
                                   boolean checkIfSingular)
Constructs and returns a new LU Decomposition object; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.

Parameters:
A - Square matrix
order - ordering option (0 to 3); 0: natural ordering, 1: amd(A+A'), 2: amd(S'*S), 3: amd(A'*A)
checkIfSingular - if true, then the singularity test (based on Dulmage-Mendelsohn decomposition) is performed.
Throws:
IllegalArgumentException - if A is not square or is not sparse.
IllegalArgumentException - if order is not in [0,3]
Method Detail

det

public double det()
Returns the determinant, det(A).


getL

public DoubleMatrix2D getL()
Returns the lower triangular factor, L.

Returns:
L

getPivot

public int[] getPivot()
Returns a copy of the pivot permutation vector.

Returns:
piv

getU

public DoubleMatrix2D getU()
Returns the upper triangular factor, U.

Returns:
U

getSymbolicAnalysis

public edu.emory.mathcs.csparsej.tdouble.Dcs_common.Dcss getSymbolicAnalysis()
Returns a copy of the symbolic LU analysis object

Returns:
symbolic LU analysis

isNonsingular

public boolean isNonsingular()
Returns whether the matrix is nonsingular (has an inverse).

Returns:
true if U, and hence A, is nonsingular; false otherwise.

solve

public void solve(DoubleMatrix1D b)
Solves A*x = b(in-place). Upon return b is overridden with the result x.

Parameters:
b - A vector with of size A.rows();
Throws:
IllegalArgumentException - if b.size() != A.rows() or if A is singular.

Parallel Colt 0.9.4

Jump to the Parallel Colt Homepage