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