Go to the documentation of this file.00001
00002 #ifndef vnl_algo_determinant_h_
00003 #define vnl_algo_determinant_h_
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <vnl/vnl_matrix.h>
00022 #include <vnl/vnl_matrix_fixed.h>
00023
00024
00025 template <class T> T vnl_determinant(T const *row0,
00026 T const *row1);
00027
00028
00029 template <class T> T vnl_determinant(T const *row0,
00030 T const *row1,
00031 T const *row2);
00032
00033
00034 template <class T> T vnl_determinant(T const *row0,
00035 T const *row1,
00036 T const *row2,
00037 T const *row3);
00038
00039
00040
00041
00042
00043 int vnl_determinant(vnl_matrix<int> const &M, bool balance = false);
00044
00045
00046
00047 template <class T>
00048 T vnl_determinant(vnl_matrix<T> const &M, bool balance = false);
00049
00050
00051
00052
00053 template <class T, unsigned m, unsigned n>
00054 inline T vnl_determinant(vnl_matrix_fixed<T,m,n> const &M, bool balance = false)
00055 {
00056 return vnl_determinant( M.as_ref(), balance );
00057 }
00058
00059
00060 #define VNL_DETERMINANT_INSTANTIATE(T) \
00061 extern "you must include vnl/algo/vnl_determinant.txx first"
00062
00063 #endif // vnl_algo_determinant_h_