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