CPPLapack
 All Classes Files Functions Variables Friends Pages
drovector.hpp
Go to the documentation of this file.
1 //=============================================================================
2 //! Real Double-precision Row Vector Class
3 class drovector
4 {
5 public:
6  ///////////////////////////////////////////////
7  /////////////////// objects ///////////////////
8  ///////////////////////////////////////////////
9  CPPL_INT l; //!< vector size
10  CPPL_INT cap; //!< vector capacity
11  double* array; //!< 1D array to store vector data
12 
13  ///////////////////////////////////////////////
14  ///////////////// constructors ////////////////
15  ///////////////////////////////////////////////
16  inline drovector();
17  inline drovector(const drovector&);
18  inline drovector(const _drovector&);
19  inline drovector(const CPPL_INT&, const CPPL_INT=0);
20  inline drovector(const char*);
21  inline ~drovector(); //destructor
22 
23  ///////////////////////////////////////////////
24  ////////////////// functions //////////////////
25  ///////////////////////////////////////////////
26  //////// cast ////////
27  inline _zrovector to_zrovector() const;
28 
29  //////// io ////////
30  inline double& operator()(const CPPL_INT&);
31  inline double operator()(const CPPL_INT&) const;
32  inline drovector& set(const CPPL_INT&, const double&); //const;
33  inline friend std::ostream& operator<<(std::ostream&, const drovector&);
34  inline void write(const char*) const;
35  inline void read(const char*);
36 
37  //////// calc ////////
38  inline friend _dcovector t(const drovector&);
39  inline friend double nrm2(const drovector&);
40  inline friend CPPL_INT idamax(const drovector&);
41  inline friend double damax(const drovector&);
42 
43  //////// misc ////////
44  inline void clear();
45  inline drovector& zero();
46  inline void chsign();
47  inline void copy(const drovector&);
48  inline void shallow_copy(const _drovector&);
49  inline void alias(const drovector&);
50  inline void unalias();
51  inline drovector& resize(const CPPL_INT&, const CPPL_INT=0);
52  inline void stretch(const CPPL_INT&);
53  inline friend void swap(drovector&, drovector&);
54  inline friend _drovector _(drovector&);
55 
56  ///////////////////////////////////////////////
57  ///////////// numerical operators /////////////
58  ///////////////////////////////////////////////
59  //////// = ////////
60  inline drovector& operator=(const drovector&);
61  inline drovector& operator=(const _drovector&);
62 
63  //////// += ///
64  inline drovector& operator+=(const drovector&);
65  inline drovector& operator+=(const _drovector&);
66 
67  //////// -= ////////
68  inline drovector& operator-=(const drovector&);
69  inline drovector& operator-=(const _drovector&);
70 
71  //////// *= ////////
72  inline drovector& operator*=(const double&);
73 
74  //////// /= ////////
75  inline drovector& operator/=(const double&);
76 
77  //////// unary ////////
78  inline friend const drovector& operator+(const drovector&);
79  inline friend _drovector operator-(const drovector&);
80 
81  //////// + ////////
82  inline friend _drovector operator+(const drovector&, const drovector&);
83  inline friend _drovector operator+(const drovector&, const _drovector&);
84 
85  //////// - ////////
86  inline friend _drovector operator-(const drovector&, const drovector&);
87  inline friend _drovector operator-(const drovector&, const _drovector&);
88 
89  //////// * ////////
90  inline friend double operator*(const drovector&, const dcovector&);
91  inline friend double operator*(const drovector&, const _dcovector&);
92  inline friend _drovector operator*(const drovector&, const dgematrix&);
93  inline friend _drovector operator*(const drovector&, const _dgematrix&);
94  inline friend _drovector operator*(const drovector&, const dsymatrix&);
95  inline friend _drovector operator*(const drovector&, const _dsymatrix&);
96  inline friend _drovector operator*(const drovector&, const dgbmatrix&);
97  inline friend _drovector operator*(const drovector&, const _dgbmatrix&);
98  inline friend _drovector operator*(const drovector&, const dgsmatrix&);
99  inline friend _drovector operator*(const drovector&, const _dgsmatrix&);
100  inline friend _drovector operator*(const drovector&, const dssmatrix&);
101  inline friend _drovector operator*(const drovector&, const _dssmatrix&);
102  inline friend _drovector operator*(const drovector&, const double&);
103 
104  //////// / ////////
105  inline friend _drovector operator/(const drovector&, const double&);
106 
107  //////// % ////////
108  inline friend double operator%(const drovector&, const drovector&);
109  inline friend double operator%(const drovector&, const _drovector&);
110 
111  //////// double ////////
112  inline friend _drovector operator*(const double&, const drovector&);
113 
114  //////// hadamard ////////
115  inline friend _drovector hadamard(const drovector&, const drovector&);
116 };
Real Double-precision General Sparse Matrix Class.
Definition: dgsmatrix.hpp:3
double * array
1D array to store vector data
Definition: drovector.hpp:11
friend double nrm2(const drovector &)
void clear()
(DO NOT USE) Smart-temporary Real Double-precision Symmetric Sparse Matrix Class
Definition: _dssmatrix.hpp:3
_zrovector to_zrovector() const
drovector & operator/=(const double &)
double & operator()(const CPPL_INT &)
Definition: drovector-io.hpp:3
friend double operator*(const drovector &, const dcovector &)
CPPL_INT l
vector size
Definition: drovector.hpp:9
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT cap
vector capacity
Definition: drovector.hpp:10
Real Double-precision Symmetric Matrix Class [l-type (UPLO=l) Strage].
Definition: dsymatrix.hpp:3
(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class
Definition: _dgsmatrix.hpp:3
friend _drovector _(drovector &)
Real Double-precision Row Vector Class.
Definition: drovector.hpp:3
friend _drovector operator/(const drovector &, const double &)
void write(const char *) const
(DO NOT USE) Smart-temporary Complex Double-precision Row Vector Class
Definition: _zrovector.hpp:3
friend CPPL_INT idamax(const drovector &)
void stretch(const CPPL_INT &)
drovector & zero()
(DO NOT USE) Smart-temporary Real Double-precision Row Vector Class
Definition: _drovector.hpp:3
(DO NOT USE) Smart-temporary Real Double-precision General Dence Matrix Class
Definition: _dgematrix.hpp:3
friend double operator%(const drovector &, const drovector &)
friend double damax(const drovector &)
drovector & resize(const CPPL_INT &, const CPPL_INT=0)
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
drovector & operator*=(const double &)
void alias(const drovector &)
friend std::ostream & operator<<(std::ostream &, const drovector &)
drovector & set(const CPPL_INT &, const double &)
void unalias()
friend const drovector & operator+(const drovector &)
void read(const char *)
friend void swap(drovector &, drovector &)
drovector & operator-=(const drovector &)
(DO NOT USE) Smart-temporary Real Double-precision General Band Matrix Class
Definition: _dgbmatrix.hpp:3
(DO NOT USE) Smart-temporary Real Double-precision Symmetric Matrix Class
Definition: _dsymatrix.hpp:3
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
friend _drovector hadamard(const drovector &, const drovector &)
void copy(const drovector &)
void shallow_copy(const _drovector &)
Real Double-precision Symmetric Sparse Matrix Class.
Definition: dssmatrix.hpp:3
(DO NOT USE) Smart-temporary Real Double-precision Column Vector Class
Definition: _dcovector.hpp:3
drovector & operator+=(const drovector &)
friend _drovector operator-(const drovector &)
friend _dcovector t(const drovector &)
drovector & operator=(const drovector &)