My Project
_zgbmatrix.hpp
1 //=============================================================================
3 class _zgbmatrix
4 {
5 public:
7  mutable long M;
8  mutable long N;
9  mutable long KL;
10  mutable long KU;
11  mutable std::complex<double>* Array;
12  mutable std::complex<double>** Darray;
13 
15  inline _zgbmatrix();
16  inline _zgbmatrix(const _zgbmatrix&);
17  inline ~_zgbmatrix(); //destructor
18 
20  inline std::complex<double>& operator()(const long&, const long&) const;
21  inline friend std::ostream& operator<<(std::ostream&, const _zgbmatrix&);
22  inline void write(const char *) const;
23 
25  inline void destroy() const;
26 
28  inline friend _zgbmatrix t(const _zgbmatrix&);
29  inline friend _zgematrix i(const _zgbmatrix&);
30  inline friend _zgbmatrix conj(const _zgbmatrix&);
31  inline friend _zgbmatrix conjt(const _zgbmatrix&);
32 
34  inline friend const _zgbmatrix& operator+(const _zgbmatrix&);
35  inline friend _zgbmatrix operator-(const _zgbmatrix&);
36 
38  inline friend _zgbmatrix operator+(const zgbmatrix&, const zgbmatrix&);
39  inline friend _zgbmatrix operator+(const zgbmatrix&, const _zgbmatrix&);
40  inline friend _zgbmatrix operator+(const _zgbmatrix&, const zgbmatrix&);
41  inline friend _zgbmatrix operator+(const _zgbmatrix&, const _zgbmatrix&);
42 
43  inline friend _zgematrix operator+(const _zgbmatrix&, const zgematrix&);
44  inline friend _zgematrix operator+(const _zgbmatrix&, const _zgematrix&);
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 zhematrix&);
49  inline friend _zgematrix operator+(const _zgbmatrix&, const _zhematrix&);
50  inline friend _zgematrix operator+(const zhematrix&, const _zgbmatrix&);
51  inline friend _zgematrix operator+(const _zhematrix&, const _zgbmatrix&);
52 
54  inline friend _zgbmatrix operator-(const zgbmatrix&, const zgbmatrix&);
55  inline friend _zgbmatrix operator-(const zgbmatrix&, const _zgbmatrix&);
56  inline friend _zgbmatrix operator-(const _zgbmatrix&, const zgbmatrix&);
57  inline friend _zgbmatrix operator-(const _zgbmatrix&, const _zgbmatrix&);
58 
59  inline friend _zgematrix operator-(const _zgbmatrix&, const zgematrix&);
60  inline friend _zgematrix operator-(const _zgbmatrix&, const _zgematrix&);
61  inline friend _zgematrix operator-(const zgematrix&, const _zgbmatrix&);
62  inline friend _zgematrix operator-(const _zgematrix&, const _zgbmatrix&);
63 
64  inline friend _zgematrix operator-(const _zgbmatrix&, const zhematrix&);
65  inline friend _zgematrix operator-(const _zgbmatrix&, const _zhematrix&);
66  inline friend _zgematrix operator-(const zhematrix&, const _zgbmatrix&);
67  inline friend _zgematrix operator-(const _zhematrix&, const _zgbmatrix&);
68 
70  inline friend _zgbmatrix operator*(const zgbmatrix&, const zgbmatrix&);
71  inline friend _zgbmatrix operator*(const zgbmatrix&, const _zgbmatrix&);
72  inline friend _zgbmatrix operator*(const _zgbmatrix&, const zgbmatrix&);
73  inline friend _zgbmatrix operator*(const _zgbmatrix&, const _zgbmatrix&);
74 
75  inline friend _zgematrix operator*(const _zgbmatrix&, const zgematrix&);
76  inline friend _zgematrix operator*(const _zgbmatrix&, const _zgematrix&);
77  inline friend _zgematrix operator*(const zgematrix&, const _zgbmatrix&);
78  inline friend _zgematrix operator*(const _zgematrix&, const _zgbmatrix&);
79 
80  inline friend _zgematrix operator*(const _zgbmatrix&, const zhematrix&);
81  inline friend _zgematrix operator*(const _zgbmatrix&, const _zhematrix&);
82  inline friend _zgematrix operator*(const zhematrix&, const _zgbmatrix&);
83  inline friend _zgematrix operator*(const _zhematrix&, const _zgbmatrix&);
84 
85  inline friend _zcovector operator*(const _zgbmatrix&, const zcovector&);
86  inline friend _zcovector operator*(const _zgbmatrix&, const _zcovector&);
87  inline friend _zrovector operator*(const zrovector&, const _zgbmatrix&);
88  inline friend _zrovector operator*(const _zrovector&, const _zgbmatrix&);
89 
90  inline friend _zgbmatrix operator*(const zgbmatrix&, const double&);
91  inline friend _zgbmatrix operator*(const _zgbmatrix&, const double&);
92  inline friend _zgbmatrix operator*(const double&, const zgbmatrix&);
93  inline friend _zgbmatrix operator*(const double&, const _zgbmatrix&);
94 
95  inline friend _zgbmatrix operator*(const zgbmatrix&, const std::complex<double>&);
96  inline friend _zgbmatrix operator*(const _zgbmatrix&, const std::complex<double>&);
97  inline friend _zgbmatrix operator*(const std::complex<double>&, const zgbmatrix&);
98  inline friend _zgbmatrix operator*(const std::complex<double>&, const _zgbmatrix&);
99 
101  inline friend _zgbmatrix operator/(const zgbmatrix&, const double&);
102  inline friend _zgbmatrix operator/(const _zgbmatrix&, const double&);
103  inline friend _zgbmatrix operator/(const zgbmatrix&, const std::complex<double>&);
104  inline friend _zgbmatrix operator/(const _zgbmatrix&, const std::complex<double>&);
105 
107  friend class zgematrix;
108  friend class _zgematrix;
109  friend class zgbmatrix;
110  friend class zhematrix;
111  friend class _zhematrix;
112  friend class zcovector;
113  friend class _zcovector;
114  friend class zrovector;
115  friend class _zrovector;
116 };
(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Matrix Class
Definition: _zhematrix.hpp:3
std::complex< double > & operator()(const long &, const long &) const
Definition: _zgbmatrix-io.hpp:3
std::complex< double > * Array
1D Array to store matrix data
Definition: _zgbmatrix.hpp:11
~_zgbmatrix()
Definition: _zgbmatrix-constructor.hpp:54
long N
matrix column size
Definition: _zgbmatrix.hpp:8
void destroy() const
Definition: _zgbmatrix-misc.hpp:3
Complex Double-precision General Dence Matrix Class.
Definition: zgematrix.hpp:3
long KU
upper band width
Definition: _zgbmatrix.hpp:10
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
_zgbmatrix()
Definition: _zgbmatrix-constructor.hpp:3
friend _zgbmatrix operator-(const _zgbmatrix &)
Definition: _zgbmatrix-unary.hpp:15
friend _zgbmatrix conj(const _zgbmatrix &)
Definition: _zgbmatrix-calc.hpp:58
Complex Double-precision General Band Matrix Class.
Definition: zgbmatrix.hpp:3
friend _zgbmatrix conjt(const _zgbmatrix &)
Definition: _zgbmatrix-calc.hpp:76
long M
matrix row size
Definition: _zgbmatrix.hpp:7
(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 _zgbmatrix operator/(const zgbmatrix &, const double &)
Definition: zgbmatrix-double.hpp:50
friend const _zgbmatrix & operator+(const _zgbmatrix &)
Definition: _zgbmatrix-unary.hpp:3
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 > ** Darray
array of pointers of column head addresses
Definition: _zgbmatrix.hpp:12
friend _zgbmatrix operator*(const zgbmatrix &, const zgbmatrix &)
Definition: zgbmatrix-zgbmatrix.hpp:228
friend _zgbmatrix t(const _zgbmatrix &)
Definition: _zgbmatrix-calc.hpp:3
long KL
lower band width
Definition: _zgbmatrix.hpp:9
friend _zgematrix i(const _zgbmatrix &)
Definition: _zgbmatrix-calc.hpp:23