VERB_code_2.3
_zgematrix.hpp
1 //=============================================================================
3 class _zgematrix
4 {
5 public:
7  mutable long M;
8  mutable long N;
9  mutable std::complex<double>* Array;
10  mutable std::complex<double>** Darray;
11 
13  inline _zgematrix();
14  inline _zgematrix(const _zgematrix&);
15  inline ~_zgematrix(); //destructor
16 
18  inline std::complex<double>& operator()(const long&, const long&) const;
19  inline friend std::ostream& operator<<(std::ostream&, const zgematrix&);
20  inline void write(const char *) const;
21 
23  inline void destroy() const;
24 
26  inline friend _zgematrix t(const _zgematrix&);
27  inline friend _zgematrix i(const _zgematrix&);
28  inline friend _zgematrix conj(const _zgematrix&);
29  inline friend _zgematrix conjt(const _zgematrix&);
30  inline friend void idamax(long&, long&, const _zgematrix&);
31  inline friend std::complex<double> damax(const _zgematrix&);
32 
34  inline friend const _zgematrix& operator+(const _zgematrix&);
35  inline friend _zgematrix operator-(const _zgematrix&);
36 
38  inline friend _zgematrix operator+(const zgematrix&, const zgematrix&);
39  inline friend _zgematrix operator+(const zgematrix&, const _zgematrix&);
40  inline friend _zgematrix operator+(const _zgematrix&, const zgematrix&);
41  inline friend _zgematrix operator+(const _zgematrix&, const _zgematrix&);
42 
43  inline friend _zgematrix operator+(const zgematrix&, const zgbmatrix&);
44  inline friend _zgematrix operator+(const zgematrix&, const _zgbmatrix&);
45  inline friend _zgematrix operator+(const _zgematrix&, const zgbmatrix&);
46  inline friend _zgematrix operator+(const _zgematrix&, const _zgbmatrix&);
47 
48  inline friend _zgematrix operator+(const zgbmatrix&, const zgematrix&);
49  inline friend _zgematrix operator+(const zgbmatrix&, const _zgematrix&);
50  inline friend _zgematrix operator+(const _zgbmatrix&, const zgematrix&);
51  inline friend _zgematrix operator+(const _zgbmatrix&, const _zgematrix&);
52 
54  inline friend _zgematrix operator-(const zgematrix&);
55 
56  inline friend _zgematrix operator-(const zgematrix&, const zgematrix&);
57  inline friend _zgematrix operator-(const zgematrix&, const _zgematrix&);
58  inline friend _zgematrix operator-(const _zgematrix&, const zgematrix&);
59  inline friend _zgematrix operator-(const _zgematrix&, const _zgematrix&);
60 
61  inline friend _zgematrix operator-(const zgematrix&, const zgbmatrix&);
62  inline friend _zgematrix operator-(const zgematrix&, const _zgbmatrix&);
63  inline friend _zgematrix operator-(const _zgematrix&, const zgbmatrix&);
64  inline friend _zgematrix operator-(const _zgematrix&, const _zgbmatrix&);
65 
66  inline friend _zgematrix operator-(const zgbmatrix&, const zgematrix&);
67  inline friend _zgematrix operator-(const zgbmatrix&, const _zgematrix&);
68  inline friend _zgematrix operator-(const _zgbmatrix&, const zgematrix&);
69  inline friend _zgematrix operator-(const _zgbmatrix&, const _zgematrix&);
70 
72  inline friend _zgematrix operator*(const zgematrix&, const zgematrix&);
73  inline friend _zgematrix operator*(const zgematrix&, const _zgematrix&);
74  inline friend _zgematrix operator*(const _zgematrix&, const zgematrix&);
75  inline friend _zgematrix operator*(const _zgematrix&, const _zgematrix&);
76 
77  inline friend _zgematrix operator*(const zgematrix&, const zgbmatrix&);
78  inline friend _zgematrix operator*(const zgematrix&, const _zgbmatrix&);
79  inline friend _zgematrix operator*(const _zgematrix&, const zgbmatrix&);
80  inline friend _zgematrix operator*(const _zgematrix&, const _zgbmatrix&);
81 
82  inline friend _zgematrix operator*(const zgbmatrix&, const zgematrix&);
83  inline friend _zgematrix operator*(const zgbmatrix&, const _zgematrix&);
84  inline friend _zgematrix operator*(const _zgbmatrix&, const zgematrix&);
85  inline friend _zgematrix operator*(const _zgbmatrix&, const _zgematrix&);
86 
87  inline friend _zgematrix operator*(const zcovector&, const zrovector&);
88  inline friend _zgematrix operator*(const zcovector&, const _zrovector&);
89  inline friend _zgematrix operator*(const _zcovector&, const zrovector&);
90  inline friend _zgematrix operator*(const _zcovector&, const _zrovector&);
91 
92  inline friend _zrovector operator*(const zrovector&, const _zgematrix&);
93  inline friend _zrovector operator*(const _zrovector&, const _zgematrix&);
94  inline friend _zcovector operator*(const _zgematrix&, const zcovector&);
95  inline friend _zcovector operator*(const _zgematrix&, const _zcovector&);
96 
97  inline friend _zgematrix operator*(const zgematrix&, const double&);
98  inline friend _zgematrix operator*(const _zgematrix&, const double&);
99  inline friend _zgematrix operator*(const double&, const zgematrix&);
100  inline friend _zgematrix operator*(const double&, const _zgematrix&);
101 
102  inline friend _zgematrix operator*(const zgematrix&, const std::complex<double>&);
103  inline friend _zgematrix operator*(const _zgematrix&, const std::complex<double>&);
104  inline friend _zgematrix operator*(const std::complex<double>&, const zgematrix&);
105  inline friend _zgematrix operator*(const std::complex<double>&, const _zgematrix&);
106 
107  inline friend _zgematrix operator*(const zhematrix&, const std::complex<double>&);
108  inline friend _zgematrix operator*(const std::complex<double>&, const zhematrix&);
109 
111  inline friend _zgematrix operator/(const zgematrix&, const double&);
112  inline friend _zgematrix operator/(const _zgematrix&, const double&);
113  inline friend _zgematrix operator/(const zgematrix&, const std::complex<double>&);
114  inline friend _zgematrix operator/(const _zgematrix&, const std::complex<double>&);
115  inline friend _zgematrix operator/(const zhematrix&, const std::complex<double>&);
116 
118  friend class zgematrix;
119  friend class zgbmatrix;
120  friend class _zgbmatrix;
121  friend class zhematrix;
122  friend class _zhematrix;
123  friend class zssmatrix;
124  friend class _zssmatrix;
125  friend class zcovector;
126  friend class _zcovector;
127  friend class zrovector;
128  friend class _zrovector;
129 };
std::complex< double > & operator()(const long &, const long &) const
Definition: _zgematrix-io.hpp:3
(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Matrix Class
Definition: _zhematrix.hpp:3
(DO NOT USE) Smart-temporary Complex Double-precision Sparse Matrix Class
Definition: _zssmatrix.hpp:3
long N
matrix column size
Definition: _zgematrix.hpp:8
std::complex< double > * Array
1D Array to store matrix data
Definition: _zgematrix.hpp:9
friend _zgematrix operator*(const zgematrix &, const zgematrix &)
Definition: zgematrix-zgematrix.hpp:153
std::complex< double > ** Darray
array of pointers of column head addresses
Definition: _zgematrix.hpp:10
friend _zgematrix i(const _zgematrix &)
Definition: _zgematrix-calc.hpp:24
friend _zgematrix conjt(const _zgematrix &)
Definition: _zgematrix-calc.hpp:74
friend _zgematrix t(const _zgematrix &)
Definition: _zgematrix-calc.hpp:3
friend _zgematrix operator/(const zgematrix &, const double &)
Definition: zgematrix-double.hpp:48
Complex Double-precision General Dence Matrix Class.
Definition: zgematrix.hpp:3
_zgematrix()
Definition: _zgematrix-constructor.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
(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class
Definition: _zgematrix.hpp:3
void destroy() const
Definition: _zgematrix-misc.hpp:3
Complex Double-precision General Band Matrix Class.
Definition: zgbmatrix.hpp:3
friend _zgematrix conj(const _zgematrix &)
Definition: _zgematrix-calc.hpp:58
friend std::complex< double > damax(const _zgematrix &)
Definition: _zgematrix-calc.hpp:115
(DO NOT USE) Smart-temporary Complex Double-precision General Band Matrix Class
Definition: _zgbmatrix.hpp:3
long M
matrix row size
Definition: _zgematrix.hpp:7
Complex Double-precision Hermitian Matrix Class [L-type (UPLO=L) Strage].
Definition: zhematrix.hpp:4
friend const _zgematrix & operator+(const _zgematrix &)
Definition: _zgematrix-unary.hpp:3
~_zgematrix()
Definition: _zgematrix-constructor.hpp:51
friend _zgematrix operator-(const _zgematrix &)
Definition: _zgematrix-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
friend void idamax(long &, long &, const _zgematrix &)
Definition: _zgematrix-calc.hpp:99
Complex Double-precision Sparse Matrix Class.
Definition: zssmatrix.hpp:3