CPPLapack
 All Classes Files Functions Variables Friends
zrovector.hpp
Go to the documentation of this file.
00001 //=============================================================================
00002 //! Complex Double-precision Row Vector Class
00003 class zrovector
00004 {
00005 public:
00006   ///////////////////////////////////////////////
00007   /////////////////// objects ///////////////////
00008   ///////////////////////////////////////////////
00009   long l; //!< vector size
00010   comple* array; //!< 1D array to store vector data
00011   
00012   ///////////////////////////////////////////////
00013   ///////////////// constructors ////////////////
00014   ///////////////////////////////////////////////
00015   inline zrovector();
00016   inline zrovector(const zrovector&);
00017   inline zrovector(const _zrovector&);
00018   inline zrovector(const long&);
00019   inline zrovector(const char*);
00020   inline ~zrovector(); //destructor
00021   
00022   ///////////////////////////////////////////////
00023   ////////////////// functions //////////////////
00024   ///////////////////////////////////////////////
00025   //////// cast ////////
00026   
00027   //////// io ////////
00028   inline comple& operator()(const long&);
00029   inline comple operator()(const long&) const;
00030   inline zrovector& set(const long&, const comple&);
00031   inline friend std::ostream& operator<<(std::ostream&, const zrovector&);
00032   inline void write(const char*) const;
00033   inline void read(const char*);
00034  
00035   //////// calc ////////
00036   inline friend _zcovector t(const zrovector&);
00037   inline friend _zrovector conj(const zrovector&);
00038   inline friend _zcovector conjt(const zrovector&);
00039   inline friend double nrm2(const zrovector&);
00040   inline friend long idamax(const zrovector&);
00041   inline friend comple damax(const zrovector&);
00042 
00043   //////// misc ////////
00044   inline void clear();
00045   inline zrovector& zero();
00046   inline void chsign();
00047   inline void copy(const zrovector&);
00048   inline void shallow_copy(const _zrovector&);
00049   inline void alias(const zrovector&);
00050   inline void unalias();
00051   inline void resize(const long&);
00052   inline friend void swap(zrovector&, zrovector&);
00053   inline friend _zrovector _(zrovector&);
00054   
00055   ///////////////////////////////////////////////
00056   ///////////// numerical operators /////////////
00057   ///////////////////////////////////////////////
00058   //////// = ////////
00059   inline zrovector& operator=(const  zrovector&);
00060   inline zrovector& operator=(const _zrovector&);
00061   
00062   //////// += ////////
00063   inline zrovector& operator+=(const  zrovector&);
00064   inline zrovector& operator+=(const _zrovector&);
00065   
00066   //////// -= ////////
00067   inline zrovector& operator-=(const  zrovector&);
00068   inline zrovector& operator-=(const _zrovector&);
00069   
00070   //////// *= ////////
00071   inline zrovector& operator*=(const     double&);
00072   inline zrovector& operator*=(const     comple&);
00073   
00074   //////// /= ////////
00075   inline zrovector& operator/=(const     double&);
00076   inline zrovector& operator/=(const     comple&);
00077   
00078   //////// unary ////////
00079   inline friend const zrovector& operator+(const zrovector&);
00080   inline friend _zrovector operator-(const  zrovector&);
00081   
00082   //////// + ////////
00083   inline friend _zrovector operator+(const  zrovector&, const  zrovector&);
00084   inline friend _zrovector operator+(const  zrovector&, const _zrovector&);
00085   
00086   //////// - ////////
00087   inline friend _zrovector operator-(const  zrovector&, const  zrovector&);
00088   inline friend _zrovector operator-(const  zrovector&, const _zrovector&);
00089   
00090   //////// * ////////
00091   inline friend     comple operator*(const  zrovector&, const  zcovector&);
00092   inline friend     comple operator*(const  zrovector&, const _zcovector&);
00093   inline friend _zrovector operator*(const  zrovector&, const  zgematrix&);
00094   inline friend _zrovector operator*(const  zrovector&, const _zgematrix&);
00095   inline friend _zrovector operator*(const  zrovector&, const  zhematrix&);
00096   inline friend _zrovector operator*(const  zrovector&, const _zhematrix&);
00097   inline friend _zrovector operator*(const  zrovector&, const  zgbmatrix&);
00098   inline friend _zrovector operator*(const  zrovector&, const _zgbmatrix&);
00099   inline friend _zrovector operator*(const  zrovector&, const  zgsmatrix&);
00100   inline friend _zrovector operator*(const  zrovector&, const _zgsmatrix&);
00101   inline friend _zrovector operator*(const  zrovector&, const  zhsmatrix&);
00102   inline friend _zrovector operator*(const  zrovector&, const _zhsmatrix&);
00103   inline friend _zrovector operator*(const  zrovector&, const     double&);
00104   inline friend _zrovector operator*(const  zrovector&, const     comple&);
00105   
00106   //////// / ////////
00107   inline friend _zrovector operator/(const  zrovector&, const     double&);
00108   inline friend _zrovector operator/(const  zrovector&, const     comple&);
00109   
00110   //////// % ////////
00111   inline friend     comple operator%(const  zrovector&, const  zrovector&);
00112   inline friend     comple operator%(const  zrovector&, const _zrovector&);
00113   
00114   //////// double, comple ////////
00115   inline friend _zrovector operator*(const     double&, const  zrovector&);
00116   inline friend _zrovector operator*(const     comple&, const  zrovector&);
00117 };
 All Classes Files Functions Variables Friends