core/vnl/algo/vnl_adjugate.h
Go to the documentation of this file.
00001 // This is core/vnl/algo/vnl_adjugate.h
00002 #ifndef vnl_adjugate_h_
00003 #define vnl_adjugate_h_
00004 //:
00005 // \file
00006 // \author fsm and Peter Vanroose
00007 //  The adjoint matrix of a square matrix, sometimes also called the adjugate
00008 //  matrix (although that name is also used for the transpose of the complex
00009 //  conjugate), is defined as the matrix whose (i,k)-th entry is the cofactor
00010 //  of the (k,i)-th entry of the given matrix.  The cofactor of entry (k,i)
00011 //  is the determinant of the matrix obtained by deleting row k and column i
00012 //  from the given matrix.
00013 //
00014 //  The adjugate matrix is useful in finding the inverse of a square matrix
00015 //  since det(A) * A_inverse = A_adj.
00016 //
00017 //  In contrast to the inverse matrix, however, calculating the adjoint matrix
00018 //  does not involve divisions, so the adjoint of an integer matrix is integer.
00019 
00020 template <class T> class vnl_matrix;
00021 
00022 template <class T>
00023 void vnl_adjugate(vnl_matrix<T> const &A, vnl_matrix<T> *out);
00024 
00025 template <class T>
00026 vnl_matrix<T> vnl_adjugate(vnl_matrix<T> const &A);
00027 
00028 #endif // vnl_adjugate_h_