00001 #ifndef vnl_matops_h_ 00002 #define vnl_matops_h_ 00003 // This is vxl/vnl/vnl_matops.h 00004 00005 //: \file 00006 // \brief A collection of Matrix operations 00007 // \author Andrew W. Fitzgibbon, Oxford RRG, 05 Aug 96 00008 00009 00010 // Modifications: 00011 // 23 may 97, Peter Vanroose - "NO_COMPLEX" option added 00012 // LSB (Manchester) 23/3/01 Documentation tidied 00013 // 00014 //----------------------------------------------------------------------------- 00015 00016 #include <vnl/vnl_vector.h> 00017 #include <vnl/vnl_matrix.h> 00018 //: A collection of Matrix operations 00019 // A collection of matrix operations, mostly declared 00020 // as static methods. Highlights include the in-place transpose, 00021 // and type conversions. 00022 // matlab_print has been moved to vnl_matlab_print.h. 00023 class vnl_matops { 00024 public: 00025 static double homg_diff(const vnl_matrix<double>& A, const vnl_matrix<double>& B); 00026 00027 //: Laminating 00028 static vnl_matrix<double> cat(const vnl_matrix<double>& A, const vnl_matrix<double>& B); 00029 static vnl_matrix<double> cat(const vnl_matrix<double>& A, const vnl_vector<double>& B); 00030 static vnl_matrix<double> cat(const vnl_vector<double>& A, const vnl_matrix<double>& B); 00031 00032 static vnl_matrix<double> vcat(const vnl_matrix<double>& A, const vnl_matrix<double>& B); 00033 00034 //: Conversions 00035 static vnl_matrix<double> f2d(const vnl_matrix<float>&); 00036 static vnl_matrix<float> d2f(const vnl_matrix<double>&); 00037 static vnl_vector<double> f2d(const vnl_vector<float>&); 00038 static vnl_vector<float> d2f(const vnl_vector<double>&); 00039 }; 00040 00041 #endif // vnl_matops_h_