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