Macros | Functions
vnl_determinant.h File Reference

calculates the determinant of a matrix More...

#include <vnl/vnl_matrix.h>
#include <vnl/vnl_matrix_fixed.h>
#include <vnl/algo/vnl_algo_export.h>

Go to the source code of this file.

Macros

#define VNL_DETERMINANT_INSTANTIATE(T)   extern "you must include vnl/algo/vnl_determinant.hxx first"
 

Functions

template<class T >
vnl_determinant (T const *row0, T const *row1)
 direct evaluation for 2x2 matrix. More...
 
template<class T >
vnl_determinant (T const *row0, T const *row1, T const *row2)
 direct evaluation for 3x3 matrix. More...
 
template<class T >
vnl_determinant (T const *row0, T const *row1, T const *row2, T const *row3)
 direct evaluation for 4x4 matrix. More...
 
int VNL_ALGO_EXPORT vnl_determinant (vnl_matrix< int > const &M, bool balance=false)
 
template<class T >
vnl_determinant (vnl_matrix< T > const &M, bool balance=false)
 evaluation using direct methods for sizes of 2x2, 3x3, and 4x4 or qr decomposition for other matrices. More...
 
template<class T , unsigned m, unsigned n>
vnl_determinant (vnl_matrix_fixed< T, m, n > const &M, bool balance=false)
 evaluation using direct methods for sizes of 2x2, 3x3, and 4x4 or qr decomposition for other matrices. More...
 

Detailed Description

calculates the determinant of a matrix

Author
fsm

Evaluation of determinants of any size. For small matrices, will use the direct routines (no netlib) but for larger matrices, a matrix decomposition such as SVD or QR will be used.

  Modifications
   dac (Manchester) 26/03/2001: tidied up documentation
   Feb.2002 - Peter Vanroose - brief doxygen comment placed on single line
   Sep.2003 - Peter Vanroose - specialisation for int added

Definition in file vnl_determinant.h.

Macro Definition Documentation

◆ VNL_DETERMINANT_INSTANTIATE

#define VNL_DETERMINANT_INSTANTIATE (   T)    extern "you must include vnl/algo/vnl_determinant.hxx first"

Definition at line 61 of file vnl_determinant.h.

Function Documentation

◆ vnl_determinant() [1/6]

template<class T >
T vnl_determinant ( T const *  row0,
T const *  row1 
)

direct evaluation for 2x2 matrix.

Definition at line 16 of file vnl_determinant.hxx.

◆ vnl_determinant() [2/6]

template<class T >
T vnl_determinant ( T const *  row0,
T const *  row1,
T const *  row2 
)

direct evaluation for 3x3 matrix.

Definition at line 22 of file vnl_determinant.hxx.

◆ vnl_determinant() [3/6]

template<class T >
T vnl_determinant ( T const *  row0,
T const *  row1,
T const *  row2,
T const *  row3 
)

direct evaluation for 4x4 matrix.

Definition at line 34 of file vnl_determinant.hxx.

◆ vnl_determinant() [4/6]

int VNL_ALGO_EXPORT vnl_determinant ( vnl_matrix< int > const &  M,
bool  balance = false 
)

Definition at line 4 of file vnl_determinant.cxx.

◆ vnl_determinant() [5/6]

template<class T >
T vnl_determinant ( vnl_matrix< T > const &  M,
bool  balance = false 
)

evaluation using direct methods for sizes of 2x2, 3x3, and 4x4 or qr decomposition for other matrices.

Definition at line 66 of file vnl_determinant.hxx.

◆ vnl_determinant() [6/6]

template<class T , unsigned m, unsigned n>
T vnl_determinant ( vnl_matrix_fixed< T, m, n > const &  M,
bool  balance = false 
)
inline

evaluation using direct methods for sizes of 2x2, 3x3, and 4x4 or qr decomposition for other matrices.

convenience overload from vnl_matrix<T> variant

Definition at line 55 of file vnl_determinant.h.