core/vnl/vnl_matops.h
Go to the documentation of this file.
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_