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