CPPLapack
 All Classes Files Functions Variables Friends
dcovector.hpp
Go to the documentation of this file.
00001 //=============================================================================
00002 //! Real Double-precision Column Vector Class
00003 class dcovector
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 dcovector();
00017   inline dcovector(const dcovector&);
00018   inline dcovector(const _dcovector&);
00019   inline dcovector(const long&, const long=0);
00020   inline dcovector(const char *);
00021   inline ~dcovector(); //destructor
00022   
00023   ///////////////////////////////////////////////
00024   ////////////////// functions //////////////////
00025   ///////////////////////////////////////////////
00026   //////// cast ////////
00027   inline _zcovector to_zcovector() const;
00028   
00029   //////// io ////////
00030   inline double& operator()(const long&);
00031   inline double operator()(const long&) const;
00032   inline dcovector& set(const long&, const double&); //const;
00033   inline friend std::ostream& operator<<(std::ostream&, const dcovector&);
00034   inline void write(const char*) const;
00035   inline void read(const char*);
00036   
00037   //////// calc ////////
00038   inline friend _drovector t(const dcovector&);
00039   inline friend double nrm2(const dcovector&);
00040   inline friend long idamax(const dcovector&);
00041   inline friend double damax(const dcovector&);
00042   
00043   //////// misc ////////
00044   inline void clear();
00045   inline dcovector& zero();
00046   inline void chsign();
00047   inline void copy(const dcovector&);
00048   inline void shallow_copy(const _dcovector&);
00049   inline void alias(const dcovector&);
00050   inline void unalias();
00051   inline dcovector& resize(const long&, const long=0);
00052   inline void stretch(const long&);
00053   inline friend void swap(dcovector&, dcovector&);
00054   inline friend _dcovector _(dcovector&);
00055   
00056   ///////////////////////////////////////////////
00057   ///////////// numerical operators /////////////
00058   ///////////////////////////////////////////////
00059   //////// = ////////
00060   inline dcovector& operator=(const  dcovector&);
00061   inline dcovector& operator=(const _dcovector&);
00062   
00063   //////// += ////////
00064   inline dcovector& operator+=(const  dcovector&);
00065   inline dcovector& operator+=(const _dcovector&);
00066   
00067   //////// -= ////////
00068   inline dcovector& operator-=(const  dcovector&);
00069   inline dcovector& operator-=(const _dcovector&);
00070   
00071   //////// *= ////////
00072   inline dcovector& operator*=(const     double&);
00073   
00074   //////// /= ////////
00075   inline dcovector& operator/=(const     double&);
00076   
00077   //////// unary ////////
00078   inline friend const dcovector& operator+(const dcovector&);
00079   inline friend _dcovector operator-(const dcovector&);
00080   
00081   //////// + ////////
00082   inline friend _dcovector operator+(const  dcovector&, const  dcovector&);
00083   inline friend _dcovector operator+(const  dcovector&, const _dcovector&);
00084   
00085   //////// - ////////
00086   inline friend _dcovector operator-(const  dcovector&, const  dcovector&);
00087   inline friend _dcovector operator-(const  dcovector&, const _dcovector&);
00088   
00089   //////// * ////////
00090   inline friend _dgematrix operator*(const  dcovector&, const  drovector&);
00091   inline friend _dgematrix operator*(const  dcovector&, const _drovector&);
00092   inline friend _dcovector operator*(const  dcovector&, const     double&);
00093   
00094   //////// / ////////
00095   inline friend _dcovector operator/(const  dcovector&, const     double&);
00096   
00097   //////// % ////////
00098   inline friend     double operator%(const  dcovector&, const  dcovector&);
00099   inline friend     double operator%(const  dcovector&, const _dcovector&);
00100   
00101   //////// double ////////
00102   inline friend _dcovector operator*(const     double&, const  dcovector&);
00103 };
 All Classes Files Functions Variables Friends