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