org.ejml.alg.dense.misc
Class NaiveDeterminant

java.lang.Object
  extended by org.ejml.alg.dense.misc.NaiveDeterminant

public class NaiveDeterminant
extends Object

Computes the determinant using different very simple and computationally expensive algorithms.

Author:
Peter Abeles

Constructor Summary
NaiveDeterminant()
           
 
Method Summary
static double leibniz(DenseMatrix64F mat)
           Computes the determinant of the matrix using Leibniz's formula
static double recursive(DenseMatrix64F mat)
           A simple and inefficient algorithm for computing the determinant.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NaiveDeterminant

public NaiveDeterminant()
Method Detail

leibniz

public static double leibniz(DenseMatrix64F mat)

Computes the determinant of the matrix using Leibniz's formula

A direct implementation of Leibniz determinant equation. This is of little practical use because of its slow runtime of O(n!) where n is the width of the matrix. LU decomposition should be used instead. One advantage of Leibniz's equation is how simplistic it is.

det(A) = Sum( σ in Sn ; sgn(σ) Prod( i = 1 to n ; ai,σ(i)) )

Parameters:
mat - The matrix whose determinant is computed.
Returns:
The value of the determinant

recursive

public static double recursive(DenseMatrix64F mat)

A simple and inefficient algorithm for computing the determinant. This should never be used. It is at least two orders of magnitude slower than DeterminantFromMinor. This is included to provide a point of comparision for other algorithms.

Parameters:
mat - The matrix that the determinant is to be computed from
Returns:
The determinant.


Copyright © 2012. All Rights Reserved.