NumLinAlg.h

Go to the documentation of this file.
00001 /* -*- mode:c++ -*- */
00002 
00016 #ifndef NUMLINALG_H__
00017 #define NUMLINALG_H__
00018 
00019 #include <iosfwd>
00020 #include <vector>
00021 
00022 namespace hippodraw {
00023 
00026   namespace Numeric {
00027 
00030 std::vector< double >
00031 operator + ( const std::vector< double >& x, const std::vector< double >& y  );
00032 
00035 std::vector< double >
00036 operator - ( const std::vector< double >& x, const std::vector< double >& y  );
00037 
00040 std::vector< double >
00041 operator - ( const std::vector< double >& y  );
00042 
00045 std::vector< std::vector< double > >
00046 operator + ( const std::vector< std::vector< double > >&A,
00047              const std::vector< std::vector< double > >&B );
00048 
00051 std::vector< std::vector< double > >
00052 operator - ( const std::vector< std::vector< double > >&A,
00053              const std::vector< std::vector< double > >&B );
00054 
00057 std::vector< double >
00058 operator * (  double a, const std::vector< double >& x );
00059 
00062 std::vector< double >
00063 operator / ( const std::vector< double >& x, double a );
00064 
00066 std::vector< std::vector< double > >
00067 operator * ( double a, const std::vector< std::vector< double > > & A ) ;
00068 
00070 std::vector< std::vector< double> >
00071 operator / ( const std::vector< std::vector< double> > & A, double a );
00072 
00074 std::vector< double >
00075 operator * ( const std::vector< std::vector< double > > & A,
00076              const std::vector< double > & x );
00077 
00079 std::vector< double >
00080 operator * ( const std::vector< double > & x,
00081              const std::vector< std::vector< double > > & A );
00082 
00084 std::vector< std::vector< double > >
00085 operator * ( const std::vector< std::vector< double > >&A,
00086              const std::vector< std::vector< double > >&B );
00087 
00089 double innerProduct( const std::vector< double > & a,
00090                      const std::vector< double > & b );
00091 
00093 std::vector< std::vector< double > >
00094 outerProduct ( const std::vector< double > & a,
00095                const std::vector< double > & b );
00096 
00098 double quadraticProduct( const std::vector< std::vector< double >  > & A,
00099                          const std::vector< double > x );
00100 
00102 double norm(  const std::vector< double > & a );
00103 
00107 int cholFactor( std::vector< std::vector< double > > & A );
00108 
00110 int cholBackSolve( const std::vector< std::vector< double >  > &  L,
00111                    std::vector< double > & x,
00112                    const std::vector< double > & b );
00113 
00116 int invertMatrix( const std::vector< std::vector< double >  > &  A,
00117                   std::vector< std::vector< double >  > &  Ainv );
00118 
00120 int eye( std::vector< std::vector< double > > & M, int n );
00121 
00123 int write( const std::vector< double >  & x );
00124 
00126 int write( const std::vector< std::vector< double >  > & A );
00127 
00129 int allocateMatrix( std::vector< std::vector< double > >& A, int m, int n );
00130 
00132 int allocateVector( std::vector< double >& x, int n );
00133 
00134   } // namespace Numeric
00135 } // namespace hippodraw
00136 
00137 #endif

Generated for HippoDraw Class Library by doxygen