core/vnl/algo/vnl_real_eigensystem.h
Go to the documentation of this file.
00001 // This is core/vnl/algo/vnl_real_eigensystem.h
00002 #ifndef vnl_real_eigensystem_h_
00003 #define vnl_real_eigensystem_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 // \file
00009 // \brief Extract eigensystem of non-symmetric matrix M, using EISPACK
00010 // \author Andrew W. Fitzgibbon, Oxford RRG
00011 // \date   23 Jan 97
00012 //
00013 // \verbatim
00014 //  Modifications
00015 //   dac (Manchester) 28/03/2001: tidied up documentation
00016 // \endverbatim
00017 //
00018 
00019 #include <vcl_complex.h>
00020 #include <vnl/vnl_matrix.h>
00021 #include <vnl/vnl_diag_matrix.h>
00022 
00023 //: Extract eigensystem of asymmetric matrix M, using the EISPACK routine
00024 //  vnl_eigensystem is a full-bore real eigensystem.  If your matrix
00025 //  is symmetric, it is \e much better to use \sa vnl_symmetric_eigensystem.
00026 
00027 class vnl_real_eigensystem
00028 {
00029  public:
00030   vnl_real_eigensystem(vnl_matrix<double> const& M);
00031 
00032  public:
00033   vnl_matrix<double> Vreal;
00034 
00035   //: Output matrix of eigenvectors, which will in general be complex.
00036   vnl_matrix<vcl_complex<double> > V;
00037 
00038   //: Output diagonal matrix of eigenvalues.
00039   vnl_diag_matrix<vcl_complex<double> > D;
00040 };
00041 
00042 #endif // vnl_real_eigensystem_h_