My Project
zrovector.hpp
1 //=============================================================================
3 class zrovector
4 {
5 private:
7  long L;
8  std::complex<double>* Array;
9 
10 public:
12  long const& l;
13  std::complex<double>* const &array;
14 
16  inline zrovector();
17  inline zrovector(const zrovector&);
18  inline zrovector(const _zrovector&);
19  inline zrovector(const long&);
20  inline zrovector(const char*);
21  inline ~zrovector(); //destructor
22 
24  inline std::complex<double>& operator()(const long&);
25  inline std::complex<double> operator()(const long&) const;
26  inline void set(const long&, const std::complex<double>&) const;
27  inline friend std::ostream& operator<<(std::ostream&, const zrovector&);
28  inline void write(const char *) const;
29  inline void read(const char *);
30 
32  inline friend _zcovector t(const zrovector&);
33  inline friend _zrovector conj(const zrovector&);
34  inline friend _zcovector conjt(const zrovector&);
35  inline friend double nrm2(const zrovector&);
36  inline friend long idamax(const zrovector&);
37  inline friend std::complex<double> damax(const zrovector&);
38 
40  inline void clear();
41  inline void zero();
42  inline void chsign();
43  inline void copy(const zrovector&);
44  inline void shallow_copy(const _zrovector&);
45  inline void resize(const long&);
46  inline friend void swap(zrovector&, zrovector&);
47  inline friend _zrovector _(zrovector&);
48 
50  inline friend const zrovector& operator+(const zrovector&);
51  inline friend _zrovector operator-(const zrovector&);
52 
54  inline zrovector& operator=(const zrovector&);
55  inline zrovector& operator+=(const zrovector&);
56  inline zrovector& operator-=(const zrovector&);
58  inline zrovector& operator=(const _zrovector&);
59  inline zrovector& operator+=(const _zrovector&);
60  inline zrovector& operator-=(const _zrovector&);
62  inline zrovector& operator*=(const double&);
63  inline zrovector& operator/=(const double&);
65  inline zrovector& operator*=(const std::complex<double>&);
66  inline zrovector& operator/=(const std::complex<double>&);
67 
69  inline friend _zrovector operator+(const zrovector&, const zrovector&);
70  inline friend _zrovector operator+(const zrovector&, const _zrovector&);
71  inline friend _zrovector operator+(const _zrovector&, const zrovector&);
72 
74  inline friend _zrovector operator-(const zrovector&, const zrovector&);
75  inline friend _zrovector operator-(const zrovector&, const _zrovector&);
76  inline friend _zrovector operator-(const _zrovector&, const zrovector&);
77 
79  inline friend _zrovector operator*(const zrovector&, const zgematrix&);
80  inline friend _zrovector operator*(const zrovector&, const _zgematrix&);
81  inline friend _zrovector operator*(const zrovector&, const _zgbmatrix&);
82  inline friend _zrovector operator*(const zrovector&, const zgbmatrix&);
83  inline friend _zrovector operator*(const zrovector&, const zhematrix&);
84  inline friend _zrovector operator*(const zrovector&, const _zhematrix&);
85  inline friend _zrovector operator*(const zrovector&, const zssmatrix&);
86  inline friend _zrovector operator*(const zrovector&, const _zssmatrix&);
87 
88  inline friend _zgematrix operator*(const zcovector&, const zrovector&);
89  inline friend _zgematrix operator*(const _zcovector&, const zrovector&);
90 
91  inline friend std::complex<double> operator*(const zrovector&, const zcovector&);
92  inline friend std::complex<double> operator*(const zrovector&, const _zcovector&);
93 
94  inline friend _zrovector operator*(const zrovector&, const double&);
95  inline friend _zrovector operator*(const double&, const zrovector&);
96 
97  inline friend _zrovector operator*(const zrovector&, const std::complex<double>&);
98  inline friend _zrovector operator*(const std::complex<double>&, const zrovector&);
99 
101  inline friend _zrovector operator/(const zrovector&, const double&);
102  inline friend _zrovector operator/(const zrovector&, const std::complex<double>&);
103 
105  inline friend std::complex<double> operator%(const zrovector&, const zrovector&);
106  inline friend std::complex<double> operator%(const zrovector&, const _zrovector&);
107  inline friend std::complex<double> operator%(const _zrovector&, const zrovector&);
108 
110  friend class zgematrix;
111  friend class _zgematrix;
112  friend class zgbmatrix;
113  friend class _zgbmatrix;
114  friend class zhematrix;
115  friend class _zhematrix;
116  friend class zssmatrix;
117  friend class _zssmatrix;
118  friend class zcovector;
119  friend class _zcovector;
120  friend class _zrovector;
121 };
friend _zrovector _(zrovector &)
Definition: zrovector-misc.hpp:131
void shallow_copy(const _zrovector &)
Definition: zrovector-misc.hpp:73
zrovector & operator-=(const zrovector &)
Definition: zrovector-zrovector.hpp:46
(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Matrix Class
Definition: _zhematrix.hpp:3
friend std::complex< double > operator%(const zrovector &, const zrovector &)
Definition: zrovector-zrovector.hpp:131
(DO NOT USE) Smart-temporary Complex Double-precision Sparse Matrix Class
Definition: _zssmatrix.hpp:3
std::complex< double > & operator()(const long &)
Definition: zrovector-io.hpp:3
friend _zrovector operator/(const zrovector &, const double &)
Definition: zrovector-double.hpp:48
zrovector & operator+=(const zrovector &)
Definition: zrovector-zrovector.hpp:22
friend _zcovector conjt(const zrovector &)
Definition: zrovector-calc.hpp:33
friend _zrovector conj(const zrovector &)
Definition: zrovector-calc.hpp:18
void clear()
Definition: zrovector-misc.hpp:3
friend std::complex< double > damax(const zrovector &)
Definition: zrovector-calc.hpp:77
friend void swap(zrovector &, zrovector &)
Definition: zrovector-misc.hpp:116
Complex Double-precision General Dence Matrix Class.
Definition: zgematrix.hpp:3
Complex Double-precision Row Vector Class.
Definition: zrovector.hpp:3
(DO NOT USE) Smart-temporary Complex Double-precision Row Vector Class
Definition: _zrovector.hpp:3
friend double nrm2(const zrovector &)
Definition: zrovector-calc.hpp:52
void resize(const long &)
Definition: zrovector-misc.hpp:93
(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class
Definition: _zgematrix.hpp:3
zrovector & operator*=(const double &)
Definition: zrovector-double.hpp:3
void set(const long &, const std::complex< double > &) const
Definition: zrovector-io.hpp:53
~zrovector()
Definition: zrovector-constructor.hpp:122
zrovector & operator=(const zrovector &)
Definition: zrovector-zrovector.hpp:3
Complex Double-precision General Band Matrix Class.
Definition: zgbmatrix.hpp:3
zrovector()
Definition: zrovector-constructor.hpp:3
long const & l
vector size (readable)
Definition: zrovector.hpp:12
(DO NOT USE) Smart-temporary Complex Double-precision General Band Matrix Class
Definition: _zgbmatrix.hpp:3
Complex Double-precision Hermitian Matrix Class [L-type (UPLO=L) Strage].
Definition: zhematrix.hpp:4
friend const zrovector & operator+(const zrovector &)
Definition: zrovector-unary.hpp:3
std::complex< double > *const & array
1D array to store vector data (readable)
Definition: zrovector.hpp:13
friend _zrovector operator*(const zrovector &, const zgematrix &)
Definition: zrovector-zgematrix.hpp:3
void zero()
Definition: zrovector-misc.hpp:23
zrovector & operator/=(const double &)
Definition: zrovector-double.hpp:16
void chsign()
Definition: zrovector-misc.hpp:35
friend _zrovector operator-(const zrovector &)
Definition: zrovector-unary.hpp:15
Complex Double-precision Column Vector Class.
Definition: zcovector.hpp:3
(DO NOT USE) Smart-temporary Complex Double-precision Column Vector Class
Definition: _zcovector.hpp:3
Complex Double-precision Sparse Matrix Class.
Definition: zssmatrix.hpp:3
void copy(const zrovector &)
Definition: zrovector-misc.hpp:47
friend long idamax(const zrovector &)
Definition: zrovector-calc.hpp:65
friend _zcovector t(const zrovector &)
Definition: zrovector-calc.hpp:3