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