VERB_code_2.3
zhematrix.hpp
1 //=============================================================================
3 
4 class zhematrix
5 {
6 private:
8  long N;
9  std::complex<double>* Array;
10  std::complex<double>** Darray;
11 
12 public:
14  long const& n;
15  std::complex<double>* const& array;
16  std::complex<double>** const& darray;
17 
19  inline zhematrix();
20  inline zhematrix(const zhematrix&);
21  inline zhematrix(const _zhematrix&);
22  inline zhematrix(const zgbmatrix&);
23  inline zhematrix(const _zgbmatrix&);
24  inline zhematrix(const long&);
25  inline zhematrix(const char*);
26  inline ~zhematrix(); //destructor
27 
29  inline __zhecomplex operator()(const long&, const long&);
30  inline std::complex<double> operator()(const long&, const long&) const;
31  inline void set(const long&, const long&, const std::complex<double>&) const;
32  inline friend std::ostream& operator<<(std::ostream&, const zhematrix&);
33  inline void write(const char*) const;
34  inline void read(const char*);
35 
37  inline void complete() const;
38  inline void clear();
39  inline void zero();
40  inline void identity();
41  inline void chsign();
42  inline void copy(const zhematrix&);
43  inline void shallow_copy(const _zhematrix&);
44  inline void resize(const long&);
45  inline friend void swap(zhematrix&, zhematrix&);
46  inline friend _zhematrix _(zhematrix&);
47 
49  inline friend _zhematrix t(const zhematrix&);
50  inline friend _zgematrix i(const zhematrix&);
51  inline friend _zhematrix conj(const zhematrix&);
52  inline friend _zhematrix conjt(const zhematrix&);
53 
55  inline long zhesv(zgematrix&);
56  inline long zhesv(zcovector&);
57  inline long zheev(std::vector<double>&, const bool&);
58  inline long zheev(std::vector<double>&, std::vector<zcovector>&);
59  inline long zheev(std::vector<double>&, std::vector<zrovector>&);
60 
62  inline friend const zhematrix& operator+(const zhematrix&);
63  inline friend _zhematrix operator-(const zhematrix&);
64 
66  inline zhematrix& operator=(const zhematrix&);
67  inline zhematrix& operator+=(const zhematrix&);
68  inline zhematrix& operator-=(const zhematrix&);
69  inline zhematrix& operator*=(const zhematrix&);
71  inline zhematrix& operator=(const _zhematrix&);
72  inline zhematrix& operator+=(const _zhematrix&);
73  inline zhematrix& operator-=(const _zhematrix&);
74  inline zhematrix& operator*=(const _zhematrix&);
76  inline zhematrix& operator*=(const double&);
77  inline zhematrix& operator/=(const double&);
78 
80  inline friend _zhematrix operator+(const zhematrix&, const zhematrix&);
81  inline friend _zhematrix operator+(const zhematrix&, const _zhematrix&);
82  inline friend _zhematrix operator+(const _zhematrix&, const zhematrix&);
83 
84  inline friend _zgematrix operator+(const zhematrix&, const zgematrix&);
85  inline friend _zgematrix operator+(const zhematrix&, const _zgematrix&);
86  inline friend _zgematrix operator+(const zgematrix&, const zhematrix&);
87  inline friend _zgematrix operator+(const _zgematrix&, const zhematrix&);
88 
89  inline friend _zgematrix operator+(const zhematrix&, const zgbmatrix&);
90  inline friend _zgematrix operator+(const zhematrix&, const _zgbmatrix&);
91  inline friend _zgematrix operator+(const zgbmatrix&, const zhematrix&);
92  inline friend _zgematrix operator+(const _zgbmatrix&, const zhematrix&);
93 
94  inline friend _zgematrix operator+(const zhematrix&, const zssmatrix&);
95  inline friend _zgematrix operator+(const zhematrix&, const _zssmatrix&);
96  inline friend _zgematrix operator+(const zssmatrix&, const zhematrix&);
97  inline friend _zgematrix operator+(const _zssmatrix&, const zhematrix&);
98 
100  inline friend _zhematrix operator-(const zhematrix&, const zhematrix&);
101  inline friend _zhematrix operator-(const zhematrix&, const _zhematrix&);
102  inline friend _zhematrix operator-(const _zhematrix&, const zhematrix&);
103 
104  inline friend _zgematrix operator-(const zhematrix&, const zgematrix&);
105  inline friend _zgematrix operator-(const zhematrix&, const _zgematrix&);
106  inline friend _zgematrix operator-(const zgematrix&, const zhematrix&);
107  inline friend _zgematrix operator-(const _zgematrix&, const zhematrix&);
108 
109  inline friend _zgematrix operator-(const zhematrix&, const zgbmatrix&);
110  inline friend _zgematrix operator-(const zhematrix&, const _zgbmatrix&);
111  inline friend _zgematrix operator-(const zgbmatrix&, const zhematrix&);
112  inline friend _zgematrix operator-(const _zgbmatrix&, const zhematrix&);
113 
114  inline friend _zgematrix operator-(const zhematrix&, const zssmatrix&);
115  inline friend _zgematrix operator-(const zhematrix&, const _zssmatrix&);
116  inline friend _zgematrix operator-(const zssmatrix&, const zhematrix&);
117  inline friend _zgematrix operator-(const _zssmatrix&, const zhematrix&);
118 
120  inline friend _zgematrix operator*(const _zhematrix&, const zhematrix&);
121  inline friend _zgematrix operator*(const zhematrix&, const _zhematrix&);
122  inline friend _zgematrix operator*(const zhematrix&, const zhematrix&);
123 
124  inline friend _zgematrix operator*(const zhematrix&, const zgematrix&);
125  inline friend _zgematrix operator*(const zhematrix&, const _zgematrix&);
126  inline friend _zgematrix operator*(const zgematrix&, const zhematrix&);
127  inline friend _zgematrix operator*(const _zgematrix&, const zhematrix&);
128 
129  inline friend _zgematrix operator*(const zhematrix&, const zgbmatrix&);
130  inline friend _zgematrix operator*(const zhematrix&, const _zgbmatrix&);
131  inline friend _zgematrix operator*(const zgbmatrix&, const zhematrix&);
132  inline friend _zgematrix operator*(const _zgbmatrix&, const zhematrix&);
133 
134  inline friend _zgematrix operator*(const zhematrix&, const zssmatrix&);
135  inline friend _zgematrix operator*(const zhematrix&, const _zssmatrix&);
136  inline friend _zgematrix operator*(const zssmatrix&, const zhematrix&);
137  inline friend _zgematrix operator*(const _zssmatrix&, const zhematrix&);
138 
139  inline friend _zcovector operator*(const zhematrix&, const zcovector&);
140  inline friend _zcovector operator*(const zhematrix&, const _zcovector&);
141 
142  inline friend _zrovector operator*(const zrovector&, const zhematrix&);
143  inline friend _zrovector operator*(const _zrovector&, const zhematrix&);
144 
145  inline friend _zhematrix operator*(const zhematrix&, const double&);
146  inline friend _zhematrix operator*(const double&, const zhematrix&);
147  inline friend _zgematrix operator*(const zhematrix&, const std::complex<double>&);
148  inline friend _zgematrix operator*(const std::complex<double>&, const zhematrix&);
149 
151  inline friend _zhematrix operator/(const zhematrix&, const double&);
152  inline friend _zgematrix operator/(const zhematrix&, const std::complex<double>&);
153 
155  friend class zgematrix;
156  friend class _zgematrix;
157  friend class zgbmatrix;
158  friend class _zgbmatrix;
159  friend class _zhematrix;
160  friend class zcovector;
161  friend class _zcovector;
162  friend class zrovector;
163  friend class _zrovector;
164 };
__zhecomplex operator()(const long &, const long &)
Definition: zhematrix-io.hpp:3
(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Matrix Class
Definition: _zhematrix.hpp:3
void shallow_copy(const _zhematrix &)
Definition: zhematrix-misc.hpp:125
zhematrix & operator+=(const zhematrix &)
Definition: zhematrix-zhematrix.hpp:22
friend _zhematrix t(const zhematrix &)
Definition: zhematrix-calc.hpp:3
void clear()
Definition: zhematrix-misc.hpp:26
friend _zhematrix operator-(const zhematrix &)
Definition: zhematrix-unary.hpp:15
friend _zhematrix conj(const zhematrix &)
Definition: zhematrix-calc.hpp:41
(DO NOT USE) Smart-temporary Complex Double-precision Sparse Matrix Class
Definition: _zssmatrix.hpp:3
zhematrix()
Definition: zhematrix-constructor.hpp:3
void complete() const
Definition: zhematrix-misc.hpp:3
long zheev(std::vector< double > &, const bool &)
Definition: zhematrix-lapack.hpp:94
friend _zgematrix operator*(const _zhematrix &, const zhematrix &)
Definition: _zhematrix-zhematrix.hpp:59
Complex Double-precision General Dence Matrix Class.
Definition: zgematrix.hpp:3
void identity()
Definition: zhematrix-misc.hpp:62
void copy(const zhematrix &)
Definition: zhematrix-misc.hpp:95
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
long const & n
matrix column size or row size (readable)
Definition: zhematrix.hpp:14
friend void swap(zhematrix &, zhematrix &)
Definition: zhematrix-misc.hpp:174
(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class
Definition: _zgematrix.hpp:3
~zhematrix()
Definition: zhematrix-constructor.hpp:131
friend _zgematrix i(const zhematrix &)
Definition: zhematrix-calc.hpp:20
void chsign()
Definition: zhematrix-misc.hpp:79
Complex Double-precision General Band Matrix Class.
Definition: zgbmatrix.hpp:3
zhematrix & operator/=(const double &)
Definition: zhematrix-double.hpp:16
friend _zhematrix _(zhematrix &)
Definition: zhematrix-misc.hpp:190
(DO NOT USE) Smart-temporary Complex Double-precision General Band Matrix Class
Definition: _zgbmatrix.hpp:3
zhematrix & operator=(const zhematrix &)
Definition: zhematrix-zhematrix.hpp:3
Complex Double-precision Hermitian Matrix Class [L-type (UPLO=L) Strage].
Definition: zhematrix.hpp:4
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
std::complex< double > *const & array
1D array to store matrix data (readable)
Definition: zhematrix.hpp:15
zhematrix & operator-=(const zhematrix &)
Definition: zhematrix-zhematrix.hpp:48
Complex Double-precision Sparse Matrix Class.
Definition: zssmatrix.hpp:3
void set(const long &, const long &, const std::complex< double > &) const
Definition: zhematrix-io.hpp:57
friend _zhematrix conjt(const zhematrix &)
Definition: zhematrix-calc.hpp:58
std::complex< double > **const & darray
array of pointers of column head addresses (readable)
Definition: zhematrix.hpp:16
void resize(const long &)
Definition: zhematrix-misc.hpp:147
void zero()
Definition: zhematrix-misc.hpp:48
long zhesv(zgematrix &)
Definition: zhematrix-lapack.hpp:6
friend _zhematrix operator/(const zhematrix &, const double &)
Definition: zhematrix-double.hpp:48
(DO NOT USE) Shaddow Complex-double Class for zhematrix
Definition: __zhecomplex.hpp:3
friend const zhematrix & operator+(const zhematrix &)
Definition: zhematrix-unary.hpp:3