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