CPPLapack
 All Classes Files Functions Variables Friends
_zhematrix.hpp
Go to the documentation of this file.
00001 //=============================================================================
00002 //! (DO NOT USE) Smart-temporary Complex Double-precision Hermitian Matrix Class
00003 class _zhematrix
00004 {
00005 public:
00006   ///////////////////////////////////////////////
00007   /////////////////// objects ///////////////////
00008   ///////////////////////////////////////////////
00009   mutable long const& m;//!< matrix row and size
00010   mutable long n; //!< matrix column size
00011   mutable comple* array; //!< 1D array to store matrix data
00012   mutable comple** darray; //!< array of pointers of column head addresses
00013   
00014   ///////////////////////////////////////////////
00015   ///////////////// constructors ////////////////
00016   ///////////////////////////////////////////////
00017   inline _zhematrix();
00018   inline _zhematrix(const _zhematrix&);
00019   inline ~_zhematrix(); //destructor
00020   
00021   ///////////////////////////////////////////////
00022   ////////////////// functions //////////////////
00023   ///////////////////////////////////////////////
00024   //////// cast ////////
00025   inline _zgematrix to_zgematrix() const;
00026   
00027   //////// io ////////
00028   inline zhecomplex operator()(const long&, const long&) const;
00029   inline friend std::ostream& operator<<(std::ostream&, const zhematrix&);
00030   inline void write(const char*) const;
00031   
00032   //////// misc ////////
00033   inline void nullify() const;
00034   inline void destroy() const;
00035   inline void complete() const;
00036   
00037   //////// calc ////////
00038   inline friend _zhematrix t(const _zhematrix&);
00039   inline friend _zgematrix i(const _zhematrix&);
00040   
00041   ///////////////////////////////////////////////
00042   ///////////// numerical operators /////////////
00043   ///////////////////////////////////////////////
00044   //////// unary ////////
00045   inline friend const _zhematrix& operator+(const _zhematrix&);
00046   inline friend _zhematrix operator-(const _zhematrix&);
00047   
00048   //////// + ////////
00049   inline friend _zgematrix operator+(const _zhematrix&, const  zgematrix&);
00050   inline friend _zgematrix operator+(const _zhematrix&, const _zgematrix&);
00051   inline friend _zhematrix operator+(const _zhematrix&, const  zhematrix&);
00052   inline friend _zhematrix operator+(const _zhematrix&, const _zhematrix&);
00053   inline friend _zgematrix operator+(const _zhematrix&, const  zgbmatrix&);
00054   inline friend _zgematrix operator+(const _zhematrix&, const _zgbmatrix&);
00055   inline friend _zgematrix operator+(const _zhematrix&, const  zgsmatrix&);
00056   inline friend _zgematrix operator+(const _zhematrix&, const _zgsmatrix&);
00057   inline friend _zhematrix operator+(const _zhematrix&, const  zhsmatrix&);
00058   inline friend _zhematrix operator+(const _zhematrix&, const _zhsmatrix&);
00059   
00060   //////// - ////////
00061   inline friend _zgematrix operator-(const _zhematrix&, const  zgematrix&);  
00062   inline friend _zgematrix operator-(const _zhematrix&, const _zgematrix&);
00063   inline friend _zhematrix operator-(const _zhematrix&, const  zhematrix&);
00064   inline friend _zhematrix operator-(const _zhematrix&, const _zhematrix&);
00065   inline friend _zgematrix operator-(const _zhematrix&, const  zgbmatrix&);  
00066   inline friend _zgematrix operator-(const _zhematrix&, const _zgbmatrix&);
00067   inline friend _zgematrix operator-(const _zhematrix&, const  zgsmatrix&);
00068   inline friend _zgematrix operator-(const _zhematrix&, const _zgsmatrix&);
00069   inline friend _zhematrix operator-(const _zhematrix&, const  zhsmatrix&);
00070   inline friend _zhematrix operator-(const _zhematrix&, const _zhsmatrix&);
00071   
00072   //////// * ////////
00073   inline friend _zcovector operator*(const _zhematrix&, const  zcovector&);
00074   inline friend _zcovector operator*(const _zhematrix&, const _zcovector&);
00075   inline friend _zgematrix operator*(const _zhematrix&, const  zgematrix&);
00076   inline friend _zgematrix operator*(const _zhematrix&, const _zgematrix&);
00077   inline friend _zgematrix operator*(const _zhematrix&, const  zhematrix&);
00078   inline friend _zgematrix operator*(const _zhematrix&, const _zhematrix&);
00079   inline friend _zgematrix operator*(const _zhematrix&, const  zgbmatrix&);
00080   inline friend _zgematrix operator*(const _zhematrix&, const _zgbmatrix&);
00081   inline friend _zgematrix operator*(const _zhematrix&, const  zgsmatrix&);
00082   inline friend _zgematrix operator*(const _zhematrix&, const _zgsmatrix&);
00083   inline friend _zgematrix operator*(const _zhematrix&, const  zhsmatrix&);
00084   inline friend _zgematrix operator*(const _zhematrix&, const _zhsmatrix&);
00085   inline friend _zhematrix operator*(const _zhematrix&, const     double&);
00086   inline friend _zgematrix operator*(const _zhematrix&, const     comple&);
00087   
00088   //////// / ////////
00089   inline friend _zhematrix operator/(const _zhematrix&, const     double&);
00090   inline friend _zgematrix operator/(const _zhematrix&, const     comple&);
00091   
00092   //////// double, complex ////////
00093   inline friend _zhematrix operator*(const     double&, const _zhematrix&);
00094   inline friend _zgematrix operator*(const     comple&, const _zhematrix&);
00095 };
 All Classes Files Functions Variables Friends