CPPLapack
 All Classes Files Functions Variables Friends Pages
_zgbmatrix.hpp
Go to the documentation of this file.
1 //=============================================================================
2 //! (DO NOT USE) Smart-temporary Complex Double-precision General Band Matrix Class
3 class _zgbmatrix
4 {
5 public:
6  ///////////////////////////////////////////////
7  /////////////////// objects ///////////////////
8  ///////////////////////////////////////////////
9  mutable CPPL_INT m; //!< matrix row size
10  mutable CPPL_INT n; //!< matrix column size
11  mutable CPPL_INT kl; //!< lower band width
12  mutable CPPL_INT ku; //!< upper band width
13  mutable comple* array; //!< 1D array to store matrix data
14  mutable comple** darray; //!< array of pointers of column head addresses
15 
16  ///////////////////////////////////////////////
17  ///////////////// constructors ////////////////
18  ///////////////////////////////////////////////
19  inline _zgbmatrix();
20  inline _zgbmatrix(const _zgbmatrix&);
21  inline ~_zgbmatrix();//destructor
22 
23  ///////////////////////////////////////////////
24  ////////////////// functions //////////////////
25  ///////////////////////////////////////////////
26  //////// cast ////////
27  inline _zgematrix to_zgematrix() const;
28 
29  //////// io ////////
30  inline comple& operator()(const CPPL_INT&, const CPPL_INT&) const;
31  inline friend std::ostream& operator<<(std::ostream&, const _zgbmatrix&);
32  inline void write(const char*) const;
33 
34  //////// misc ////////
35  inline void nullify() const;
36  inline void destroy() const;
37 
38  //////// calc ////////
39  inline friend _zgbmatrix t(const _zgbmatrix&);
40  inline friend _zgematrix i(const _zgbmatrix&);
41  inline friend _zgbmatrix conj(const _zgbmatrix&);
42  inline friend _zgbmatrix conjt(const _zgbmatrix&);
43 
44  ///////////////////////////////////////////////
45  ///////////// numerical operators /////////////
46  ///////////////////////////////////////////////
47  //////// unary ////////
48  inline friend const _zgbmatrix& operator+(const _zgbmatrix&);
49  inline friend _zgbmatrix operator-(const _zgbmatrix&);
50 
51  //////// + ////////
52  inline friend _zgematrix operator+(const _zgbmatrix&, const zgematrix&);
53  inline friend _zgematrix operator+(const _zgbmatrix&, const _zgematrix&);
54  inline friend _zgematrix operator+(const _zgbmatrix&, const zhematrix&);
55  inline friend _zgematrix operator+(const _zgbmatrix&, const _zhematrix&);
56  inline friend _zgbmatrix operator+(const _zgbmatrix&, const zgbmatrix&);
57  inline friend _zgbmatrix operator+(const _zgbmatrix&, const _zgbmatrix&);
58  inline friend _zgematrix operator+(const _zgbmatrix&, const zgsmatrix&);
59  inline friend _zgematrix operator+(const _zgbmatrix&, const _zgsmatrix&);
60  inline friend _zgematrix operator+(const _zgbmatrix&, const zhsmatrix&);
61  inline friend _zgematrix operator+(const _zgbmatrix&, const _zhsmatrix&);
62 
63  //////// - ////////
64  inline friend _zgematrix operator-(const _zgbmatrix&, const zgematrix&);
65  inline friend _zgematrix operator-(const _zgbmatrix&, const _zgematrix&);
66  inline friend _zgematrix operator-(const _zgbmatrix&, const zhematrix&);
67  inline friend _zgematrix operator-(const _zgbmatrix&, const _zhematrix&);
68  inline friend _zgbmatrix operator-(const _zgbmatrix&, const zgbmatrix&);
69  inline friend _zgbmatrix operator-(const _zgbmatrix&, const _zgbmatrix&);
70  inline friend _zgematrix operator-(const _zgbmatrix&, const zgsmatrix&);
71  inline friend _zgematrix operator-(const _zgbmatrix&, const _zgsmatrix&);
72  inline friend _zgematrix operator-(const _zgbmatrix&, const zhsmatrix&);
73  inline friend _zgematrix operator-(const _zgbmatrix&, const _zhsmatrix&);
74 
75  //////// * ////////
76  inline friend _zcovector operator*(const _zgbmatrix&, const zcovector&);
77  inline friend _zcovector operator*(const _zgbmatrix&, const _zcovector&);
78  inline friend _zgematrix operator*(const _zgbmatrix&, const zgematrix&);
79  inline friend _zgematrix operator*(const _zgbmatrix&, const _zgematrix&);
80  inline friend _zgematrix operator*(const _zgbmatrix&, const zhematrix&);
81  inline friend _zgematrix operator*(const _zgbmatrix&, const _zhematrix&);
82  inline friend _zgbmatrix operator*(const _zgbmatrix&, const zgbmatrix&);
83  inline friend _zgbmatrix operator*(const _zgbmatrix&, const _zgbmatrix&);
84  inline friend _zgematrix operator*(const _zgbmatrix&, const zgsmatrix&);
85  inline friend _zgematrix operator*(const _zgbmatrix&, const _zgsmatrix&);
86  inline friend _zgematrix operator*(const _zgbmatrix&, const zhsmatrix&);
87  inline friend _zgematrix operator*(const _zgbmatrix&, const _zhsmatrix&);
88  inline friend _zgbmatrix operator*(const _zgbmatrix&, const double&);
89  inline friend _zgbmatrix operator*(const _zgbmatrix&, const comple&);
90 
91  //////// / ////////
92  inline friend _zgbmatrix operator/(const _zgbmatrix&, const double&);
93  inline friend _zgbmatrix operator/(const _zgbmatrix&, const comple&);
94 
95  //////// double, complex ////////
96  inline friend _zgbmatrix operator*(const double&, const _zgbmatrix&);
97  inline friend _zgbmatrix operator*(const comple&, const _zgbmatrix&);
98 };
CPPL_INT ku
upper band width
Definition: _zgbmatrix.hpp:12
(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Matrix Class
Definition: _zhematrix.hpp:3
Complex Double-precision General Sparse Matrix Class.
Definition: zgsmatrix.hpp:3
comple & operator()(const CPPL_INT &, const CPPL_INT &) const
CPPL_INT kl
lower band width
Definition: _zgbmatrix.hpp:11
void write(const char *) const
void destroy() const
friend std::ostream & operator<<(std::ostream &, const _zgbmatrix &)
_zgematrix to_zgematrix() const
(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class
Definition: _zgsmatrix.hpp:3
Complex Double-precision General Dence Matrix Class.
Definition: zgematrix.hpp:3
(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class
Definition: _zgematrix.hpp:3
friend _zgbmatrix operator-(const _zgbmatrix &)
Complex Double-precision Hermitian Sparse Matrix Class.
Definition: zhsmatrix.hpp:3
friend _zgbmatrix conj(const _zgbmatrix &)
Complex Double-precision General Band Matrix Class.
Definition: zgbmatrix.hpp:3
friend _zgbmatrix conjt(const _zgbmatrix &)
(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
CPPL_INT m
matrix row size
Definition: _zgbmatrix.hpp:9
friend _zgbmatrix operator/(const _zgbmatrix &, const double &)
comple * array
1D array to store matrix data
Definition: _zgbmatrix.hpp:13
void nullify() const
comple ** darray
array of pointers of column head addresses
Definition: _zgbmatrix.hpp:14
friend const _zgbmatrix & operator+(const _zgbmatrix &)
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 _zcovector operator*(const _zgbmatrix &, const zcovector &)
CPPL_INT n
matrix column size
Definition: _zgbmatrix.hpp:10
(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Sparse Matrix Class ...
Definition: _zhsmatrix.hpp:3
friend _zgbmatrix t(const _zgbmatrix &)
friend _zgematrix i(const _zgbmatrix &)