VERB_code_2.3
zssmatrix.hpp
1 //=============================================================================
3 class zssmatrix
4 {
5 private:
7  long M;
8  long N;
9  long CAP;
10  long VOL;
11  std::complex<double>* Array;
12  long* Indx;
13  long* Jndx;
14 
15 public:
17  long const& m;
18  long const& n;
19  long const& cap;
20  long const& vol;
21  std::complex<double>* const& array;
22  long* const& indx;
23  long* const& jndx;
24 
26  inline zssmatrix();
27  inline zssmatrix(const zssmatrix&);
28  inline zssmatrix(const _zssmatrix&);
29  inline zssmatrix(const long&, const long&, const long&);
30  inline zssmatrix(const char*);
31  inline ~zssmatrix(); //destructor
32 
34  inline operator _zgematrix();
35 
37  inline std::complex<double> operator()(const long&, const long&) const;
38  inline void put(const long&, const long&, const std::complex<double>&);
39  inline void fput(const long&, const long&, const std::complex<double>&);
40  inline void add(const long&, const long&, const std::complex<double>&);
41  inline void sub(const long&, const long&, const std::complex<double>&);
42  inline void mult(const long&, const long&, const std::complex<double>&);
43  inline void div(const long&, const long&, const std::complex<double>&);
44  inline void del(const long&, const long&);
45  inline void fdel(const long&);
46  inline friend std::ostream& operator<<(std::ostream&, const zssmatrix&);
47  inline void write(const char *) const;
48  inline void read(const char *);
49 
51  inline void clear();
52  inline void zero();
53  inline void chsign();
54  inline void copy(const zssmatrix&);
55  inline void shallow_copy(const _zssmatrix&);
56  inline void resize(const long&, const long&, const long&);
57  inline void expand(const long&);
58  inline bool isListed(const long&, const long&);
59  inline long number(const long&, const long&);
60  inline void checkup();
61  inline friend void swap(zssmatrix&, zssmatrix&);
62  inline friend _zssmatrix _(zssmatrix&);
63 
65  inline friend _zssmatrix t(const zssmatrix&);
66  inline friend void idamax(long&, long&, const zssmatrix&);
67  inline friend std::complex<double> damax(const zssmatrix&);
68 
70  inline friend const zssmatrix& operator+(const zssmatrix&);
71  inline friend _zssmatrix operator-(const zssmatrix&);
72 
74  inline zssmatrix& operator=(const zssmatrix&);
75  inline zssmatrix& operator+=(const zssmatrix&);
76  inline zssmatrix& operator-=(const zssmatrix&);
77  inline zssmatrix& operator*=(const zssmatrix&);
79  inline zssmatrix& operator=(const _zssmatrix&);
80  inline zssmatrix& operator+=(const _zssmatrix&);
81  inline zssmatrix& operator-=(const _zssmatrix&);
82  inline zssmatrix& operator*=(const _zssmatrix&);
84  inline zssmatrix& operator*=(const double&);
85  inline zssmatrix& operator/=(const double&);
87  inline zssmatrix& operator*=(const std::complex<double>&);
88  inline zssmatrix& operator/=(const std::complex<double>&);
89 
91  inline friend _zgematrix operator+(const zssmatrix&, const zgematrix&);
92  inline friend _zgematrix operator+(const zssmatrix&, const _zgematrix&);
93  inline friend _zgematrix operator+(const zgematrix&, const zssmatrix&);
94  inline friend _zgematrix operator+(const _zgematrix&, const zssmatrix&);
95 
96  inline friend _zgematrix operator+(const zssmatrix&, const zgbmatrix&);
97  inline friend _zgematrix operator+(const zssmatrix&, const _zgbmatrix&);
98  inline friend _zgematrix operator+(const zgbmatrix&, const zssmatrix&);
99  inline friend _zgematrix operator+(const _zgbmatrix&, const zssmatrix&);
100 
101  inline friend _zgematrix operator+(const zssmatrix&, const zhematrix&);
102  inline friend _zgematrix operator+(const zssmatrix&, const _zhematrix&);
103  inline friend _zgematrix operator+(const zhematrix&, const zssmatrix&);
104  inline friend _zgematrix operator+(const _zhematrix&, const zssmatrix&);
105 
106  inline friend _zssmatrix operator+(const zssmatrix&, const zssmatrix&);
107  inline friend _zssmatrix operator+(const zssmatrix&, const _zssmatrix&);
108  inline friend _zssmatrix operator+(const _zssmatrix&, const zssmatrix&);
109 
111  inline friend _zgematrix operator-(const zssmatrix&, const zgematrix&);
112  inline friend _zgematrix operator-(const zssmatrix&, const _zgematrix&);
113  inline friend _zgematrix operator-(const zgematrix&, const zssmatrix&);
114  inline friend _zgematrix operator-(const _zgematrix&, const zssmatrix&);
115 
116  inline friend _zgematrix operator-(const zssmatrix&, const zgbmatrix&);
117  inline friend _zgematrix operator-(const zssmatrix&, const _zgbmatrix&);
118  inline friend _zgematrix operator-(const zgbmatrix&, const zssmatrix&);
119  inline friend _zgematrix operator-(const _zgbmatrix&, const zssmatrix&);
120 
121  inline friend _zgematrix operator-(const zssmatrix&, const zhematrix&);
122  inline friend _zgematrix operator-(const zssmatrix&, const _zhematrix&);
123  inline friend _zgematrix operator-(const zhematrix&, const zssmatrix&);
124  inline friend _zgematrix operator-(const _zhematrix&, const zssmatrix&);
125 
126  inline friend _zssmatrix operator-(const zssmatrix&, const zssmatrix&);
127  inline friend _zssmatrix operator-(const zssmatrix&, const _zssmatrix&);
128  inline friend _zssmatrix operator-(const _zssmatrix&, const zssmatrix&);
129 
131  inline friend _zgematrix operator*(const zssmatrix&, const zgematrix&);
132  inline friend _zgematrix operator*(const zssmatrix&, const _zgematrix&);
133  inline friend _zgematrix operator*(const zgematrix&, const zssmatrix&);
134  inline friend _zgematrix operator*(const _zgematrix&, const zssmatrix&);
135 
136  inline friend _zgematrix operator*(const zssmatrix&, const zgbmatrix&);
137  inline friend _zgematrix operator*(const zssmatrix&, const _zgbmatrix&);
138  inline friend _zgematrix operator*(const zgbmatrix&, const zssmatrix&);
139  inline friend _zgematrix operator*(const _zgbmatrix&, const zssmatrix&);
140 
141  inline friend _zgematrix operator*(const zhematrix&, const zssmatrix&);
142  inline friend _zgematrix operator*(const _zhematrix&, const zssmatrix&);
143  inline friend _zgematrix operator*(const zssmatrix&, const zhematrix&);
144  inline friend _zgematrix operator*(const zssmatrix&, const _zhematrix&);
145 
146  inline friend _zssmatrix operator*(const zssmatrix&, const zssmatrix&);
147  inline friend _zssmatrix operator*(const zssmatrix&, const _zssmatrix&);
148  inline friend _zssmatrix operator*(const _zssmatrix&, const zssmatrix&);
149 
150  inline friend _zcovector operator*(const zssmatrix&, const zcovector&);
151  inline friend _zcovector operator*(const zssmatrix&, const _zcovector&);
152 
153  inline friend _zrovector operator*(const zrovector&, const zssmatrix&);
154  inline friend _zrovector operator*(const _zrovector&, const zssmatrix&);
155 
156  inline friend _zssmatrix operator*(const zssmatrix&, const double&);
157  inline friend _zssmatrix operator*(const double&, const zssmatrix&);
158  inline friend _zssmatrix operator*(const zssmatrix&, const std::complex<double>&);
159  inline friend _zssmatrix operator*(const std::complex<double>&, const zssmatrix&);
160 
162  inline friend _zssmatrix operator/(const zssmatrix&, const double&);
163  inline friend _zssmatrix operator/(const zssmatrix&, const std::complex<double>&);
164 
166  friend class zgematrix;
167  friend class _zgematrix;
168  friend class zgbmatrix;
169  friend class _zgbmatrix;
170  friend class zhematrix;
171  friend class _zhematrix;
172  friend class _zssmatrix;
173  friend class zcovector;
174  friend class _zcovector;
175  friend class zrovector;
176  friend class _zrovector;
177 };
long const & n
matrix column size (readable)
Definition: zssmatrix.hpp:18
void checkup()
Definition: zssmatrix-misc.hpp:280
friend _zssmatrix operator-(const zssmatrix &)
Definition: zssmatrix-unary.hpp:15
void fdel(const long &)
Definition: zssmatrix-io.hpp:286
zssmatrix & operator-=(const zssmatrix &)
Definition: zssmatrix-zssmatrix.hpp:48
(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Matrix Class
Definition: _zhematrix.hpp:3
void clear()
Definition: zssmatrix-misc.hpp:3
long const & m
matrix row size (readable)
Definition: zssmatrix.hpp:17
void fput(const long &, const long &, const std::complex< double > &)
Definition: zssmatrix-io.hpp:75
void zero()
Definition: zssmatrix-misc.hpp:24
bool isListed(const long &, const long &)
Definition: zssmatrix-misc.hpp:172
(DO NOT USE) Smart-temporary Complex Double-precision Sparse Matrix Class
Definition: _zssmatrix.hpp:3
friend _zgematrix operator*(const zssmatrix &, const zgematrix &)
Definition: zssmatrix-zgematrix.hpp:59
void expand(const long &)
Definition: zssmatrix-misc.hpp:136
zssmatrix & operator/=(const double &)
Definition: zssmatrix-double.hpp:16
void add(const long &, const long &, const std::complex< double > &)
Definition: zssmatrix-io.hpp:120
void chsign()
Definition: zssmatrix-misc.hpp:36
zssmatrix & operator*=(const zssmatrix &)
Definition: zssmatrix-zssmatrix.hpp:74
friend _zssmatrix _(zssmatrix &)
Definition: zssmatrix-misc.hpp:246
friend const zssmatrix & operator+(const zssmatrix &)
Definition: zssmatrix-unary.hpp:3
void copy(const zssmatrix &)
Definition: zssmatrix-misc.hpp:48
friend void swap(zssmatrix &, zssmatrix &)
Definition: zssmatrix-misc.hpp:228
void mult(const long &, const long &, const std::complex< double > &)
Definition: zssmatrix-io.hpp:194
Complex Double-precision General Dence Matrix Class.
Definition: zgematrix.hpp:3
friend _zssmatrix t(const zssmatrix &)
Definition: zssmatrix-calc.hpp:3
void shallow_copy(const _zssmatrix &)
Definition: zssmatrix-misc.hpp:77
zssmatrix()
Definition: zssmatrix-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
long number(const long &, const long &)
Definition: zssmatrix-misc.hpp:200
void sub(const long &, const long &, const std::complex< double > &)
Definition: zssmatrix-io.hpp:157
std::complex< double > operator()(const long &, const long &) const
Definition: zssmatrix-io.hpp:3
Complex Double-precision General Band Matrix Class.
Definition: zgbmatrix.hpp:3
~zssmatrix()
Definition: zssmatrix-constructor.hpp:142
friend std::complex< double > damax(const zssmatrix &)
Definition: zssmatrix-calc.hpp:40
void resize(const long &, const long &, const long &)
Definition: zssmatrix-misc.hpp:104
long *const & indx
1D array to store the i-index of non-zero matrix components (readable)
Definition: zssmatrix.hpp:22
(DO NOT USE) Smart-temporary Complex Double-precision General Band Matrix Class
Definition: _zgbmatrix.hpp:3
long const & cap
the length of data arrays (readable)
Definition: zssmatrix.hpp:19
Complex Double-precision Hermitian Matrix Class [L-type (UPLO=L) Strage].
Definition: zhematrix.hpp:4
zssmatrix & operator=(const zssmatrix &)
Definition: zssmatrix-zssmatrix.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
void div(const long &, const long &, const std::complex< double > &)
Definition: zssmatrix-io.hpp:222
friend _zssmatrix operator/(const zssmatrix &, const double &)
Definition: zssmatrix-double.hpp:51
long *const & jndx
1D array to store the j-index of non-zero matrix components (readable)
Definition: zssmatrix.hpp:23
Complex Double-precision Sparse Matrix Class.
Definition: zssmatrix.hpp:3
void put(const long &, const long &, const std::complex< double > &)
Definition: zssmatrix-io.hpp:38
std::complex< double > *const & array
1D array to store matrix data (readable)
Definition: zssmatrix.hpp:21
void del(const long &, const long &)
Definition: zssmatrix-io.hpp:254
zssmatrix & operator+=(const zssmatrix &)
Definition: zssmatrix-zssmatrix.hpp:22
long const & vol
the number of non-zero components (readable)
Definition: zssmatrix.hpp:20
friend void idamax(long &, long &, const zssmatrix &)
Definition: zssmatrix-calc.hpp:26