My Project
dgbmatrix.hpp
1 //=============================================================================
3 class dgbmatrix
4 {
5 private:
7  long M;
8  long N;
9  long KL;
10  long KU;
11  double* Array;
12  double** Darray;
13 
14 public:
16  long const& m;
17  long const& n;
18  long const& kl;
19  long const& ku;
20  double* const& array;
21  double** const& darray;
22 
24  inline dgbmatrix();
25  inline dgbmatrix(const dgbmatrix&);
26  inline dgbmatrix(const _dgbmatrix&);
27  inline dgbmatrix(const long&, const long&, const long&, const long&);
28  inline dgbmatrix(const char *);
29  inline ~dgbmatrix(); //destructor
30 
32  inline operator _zgbmatrix();
33 
35  inline double& operator()(const long&, const long&);
36  inline double operator()(const long&, const long&) const;
37  inline void set(const long&, const long&, const double&) const;
38  inline friend std::ostream& operator<<(std::ostream&, const dgbmatrix&);
39  inline void write(const char *) const;
40  inline void read(const char *);
41 
43  inline void clear();
44  inline void zero();
45  inline void identity();
46  inline void chsign();
47  inline void copy(const dgbmatrix&);
48  inline void shallow_copy(const _dgbmatrix&);
49  inline void resize(const long&, const long&, const long&, const long&);
50  inline friend void swap(dgbmatrix&, dgbmatrix&);
51  inline friend _dgbmatrix _(dgbmatrix&);
52 
54  inline friend _dgbmatrix t(const dgbmatrix&);
55  inline friend _dgematrix i(const dgbmatrix&);
56 
58  inline long dgbsv(dgematrix&);
59  inline long dgbsv(dcovector&);
60 
62  inline friend const dgbmatrix& operator+(const dgbmatrix&);
63  inline friend _dgbmatrix operator-(const dgbmatrix&);
64 
66  inline dgbmatrix& operator=(const dgbmatrix&);
67  inline dgbmatrix& operator+=(const dgbmatrix&);
68  inline dgbmatrix& operator-=(const dgbmatrix&);
69  inline dgbmatrix& operator*=(const dgbmatrix&);
71  inline dgbmatrix& operator=(const _dgbmatrix&);
72  inline dgbmatrix& operator+=(const _dgbmatrix&);
73  inline dgbmatrix& operator-=(const _dgbmatrix&);
74  inline dgbmatrix& operator*=(const _dgbmatrix&);
75 
77  inline dgbmatrix& operator*=(const double&);
78  inline dgbmatrix& operator/=(const double&);
79 
81  inline friend _dgbmatrix operator+(const dgbmatrix&, const dgbmatrix&);
82  inline friend _dgbmatrix operator+(const dgbmatrix&, const _dgbmatrix&);
83  inline friend _dgbmatrix operator+(const _dgbmatrix&, const dgbmatrix&);
84 
85  inline friend _dgematrix operator+(const dgbmatrix&, const dgematrix&);
86  inline friend _dgematrix operator+(const dgbmatrix&, const _dgematrix&);
87  inline friend _dgematrix operator+(const dgematrix&, const dgbmatrix&);
88  inline friend _dgematrix operator+(const _dgematrix&, const dgbmatrix&);
89 
90  inline friend _dgematrix operator+(const dgbmatrix&, const dsymatrix&);
91  inline friend _dgematrix operator+(const dgbmatrix&, const _dsymatrix&);
92  inline friend _dgematrix operator+(const dsymatrix&, const dgbmatrix&);
93  inline friend _dgematrix operator+(const _dsymatrix&, const dgbmatrix&);
94 
95  inline friend _dgematrix operator+(const dgbmatrix&, const dssmatrix&);
96  inline friend _dgematrix operator+(const dgbmatrix&, const _dssmatrix&);
97  inline friend _dgematrix operator+(const dssmatrix&, const dgbmatrix&);
98  inline friend _dgematrix operator+(const _dssmatrix&, const dgbmatrix&);
99 
101  inline friend _dgbmatrix operator-(const dgbmatrix&, const dgbmatrix&);
102  inline friend _dgbmatrix operator-(const dgbmatrix&, const _dgbmatrix&);
103  inline friend _dgbmatrix operator-(const _dgbmatrix&, const dgbmatrix&);
104 
105  inline friend _dgematrix operator-(const dgbmatrix&, const dgematrix&);
106  inline friend _dgematrix operator-(const dgbmatrix&, const _dgematrix&);
107  inline friend _dgematrix operator-(const dgematrix&, const dgbmatrix&);
108  inline friend _dgematrix operator-(const _dgematrix&, const dgbmatrix&);
109 
110  inline friend _dgematrix operator-(const dgbmatrix&, const dsymatrix&);
111  inline friend _dgematrix operator-(const dgbmatrix&, const _dsymatrix&);
112  inline friend _dgematrix operator-(const dsymatrix&, const dgbmatrix&);
113  inline friend _dgematrix operator-(const _dsymatrix&, const dgbmatrix&);
114 
115  inline friend _dgematrix operator-(const dgbmatrix&, const dssmatrix&);
116  inline friend _dgematrix operator-(const dgbmatrix&, const _dssmatrix&);
117  inline friend _dgematrix operator-(const dssmatrix&, const dgbmatrix&);
118  inline friend _dgematrix operator-(const _dssmatrix&, const dgbmatrix&);
119 
121  inline friend _dgbmatrix operator*(const dgbmatrix&, const dgbmatrix&);
122  inline friend _dgbmatrix operator*(const dgbmatrix&, const _dgbmatrix&);
123  inline friend _dgbmatrix operator*(const _dgbmatrix&, const dgbmatrix&);
124 
125  inline friend _dgematrix operator*(const dgbmatrix&, const dgematrix&);
126  inline friend _dgematrix operator*(const dgbmatrix&, const _dgematrix&);
127  inline friend _dgematrix operator*(const dgematrix&, const dgbmatrix&);
128  inline friend _dgematrix operator*(const _dgematrix&, const dgbmatrix&);
129 
130  inline friend _dgematrix operator*(const dgbmatrix&, const dsymatrix&);
131  inline friend _dgematrix operator*(const dgbmatrix&, const _dsymatrix&);
132  inline friend _dgematrix operator*(const dsymatrix&, const dgbmatrix&);
133  inline friend _dgematrix operator*(const _dsymatrix&, const dgbmatrix&);
134 
135  inline friend _dgematrix operator*(const dgbmatrix&, const dssmatrix&);
136  inline friend _dgematrix operator*(const dgbmatrix&, const _dssmatrix&);
137  inline friend _dgematrix operator*(const dssmatrix&, const dgbmatrix&);
138  inline friend _dgematrix operator*(const _dssmatrix&, const dgbmatrix&);
139 
140  inline friend _dcovector operator*(const dgbmatrix&, const dcovector&);
141  inline friend _dcovector operator*(const dgbmatrix&, const _dcovector&);
142 
143  inline friend _drovector operator*(const drovector&, const dgbmatrix&);
144  inline friend _drovector operator*(const _drovector&, const dgbmatrix&);
145 
146  inline friend _dgbmatrix operator*(const dgbmatrix&, const double&);
147  inline friend _dgbmatrix operator*(const double&, const dgbmatrix&);
148 
150  inline friend _dgbmatrix operator/(const dgbmatrix&, const double&);
151 
153  friend class dgematrix;
154  friend class _dgematrix;
155  friend class _dgbmatrix;
156  friend class dsymatrix;
157  friend class _dsymatrix;
158  friend class dssmatrix;
159  friend class _dssmatrix;
160  friend class dcovector;
161  friend class _dcovector;
162  friend class drovector;
163  friend class _drovector;
164 };
double **const & darray
array of pointers of column head addresses (readable)
Definition: dgbmatrix.hpp:21
dgbmatrix & operator=(const dgbmatrix &)
Definition: dgbmatrix-dgbmatrix.hpp:4
friend _dgbmatrix t(const dgbmatrix &)
Definition: dgbmatrix-calc.hpp:3
friend _dgematrix i(const dgbmatrix &)
Definition: dgbmatrix-calc.hpp:22
friend _dgbmatrix _(dgbmatrix &)
Definition: dgbmatrix-misc.hpp:183
double *const & array
1D array to store matrix data (readable)
Definition: dgbmatrix.hpp:20
friend const dgbmatrix & operator+(const dgbmatrix &)
Definition: dgbmatrix-unary.hpp:3
(DO NOT USE) Smart-temporary Real Double-precision Sparse Matrix Class
Definition: _dssmatrix.hpp:3
void shallow_copy(const _dgbmatrix &)
Definition: dgbmatrix-misc.hpp:107
friend _dgbmatrix operator/(const dgbmatrix &, const double &)
Definition: dgbmatrix-double.hpp:50
dgbmatrix & operator/=(const double &)
Definition: dgbmatrix-double.hpp:16
double & operator()(const long &, const long &)
Definition: dgbmatrix-io.hpp:3
long const & kl
lower band width (readable)
Definition: dgbmatrix.hpp:18
long const & m
matrix row size (readable)
Definition: dgbmatrix.hpp:16
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
Real Double-precision Symmetric Matrix Class [L-type (UPLO=L) Strage].
Definition: dsymatrix.hpp:3
dgbmatrix & operator+=(const dgbmatrix &)
Definition: dgbmatrix-dgbmatrix.hpp:24
Real Double-precision Row Vector Class.
Definition: drovector.hpp:3
friend _dgbmatrix operator-(const dgbmatrix &)
Definition: dgbmatrix-unary.hpp:15
friend _dgbmatrix operator*(const dgbmatrix &, const dgbmatrix &)
Definition: dgbmatrix-dgbmatrix.hpp:228
void set(const long &, const long &, const double &) const
Definition: dgbmatrix-io.hpp:53
(DO NOT USE) Smart-temporary Real Double-precision Row Vector Class
Definition: _drovector.hpp:3
~dgbmatrix()
Definition: dgbmatrix-constructor.hpp:146
(DO NOT USE) Smart-temporary Real Double-precision General Dence Matrix Class
Definition: _dgematrix.hpp:3
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
dgbmatrix & operator*=(const dgbmatrix &)
Definition: dgbmatrix-dgbmatrix.hpp:121
void clear()
Definition: dgbmatrix-misc.hpp:3
void identity()
Definition: dgbmatrix-misc.hpp:41
void copy(const dgbmatrix &)
Definition: dgbmatrix-misc.hpp:74
void zero()
Definition: dgbmatrix-misc.hpp:29
void chsign()
Definition: dgbmatrix-misc.hpp:63
long const & ku
upper band width (readable)
Definition: dgbmatrix.hpp:19
(DO NOT USE) Smart-temporary Complex Double-precision General Band Matrix Class
Definition: _zgbmatrix.hpp:3
long const & n
matrix column size (readable)
Definition: dgbmatrix.hpp:17
(DO NOT USE) Smart-temporary Real Double-precision General Band Matrix Class
Definition: _dgbmatrix.hpp:3
(DO NOT USE) Smart-temporary Real Double-precision Symmetric Matrix Class
Definition: _dsymatrix.hpp:3
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
dgbmatrix()
Definition: dgbmatrix-constructor.hpp:3
void resize(const long &, const long &, const long &, const long &)
Definition: dgbmatrix-misc.hpp:132
Real Double-precision Sparse Matrix Class.
Definition: dssmatrix.hpp:3
long dgbsv(dgematrix &)
Definition: dgbmatrix-lapack.hpp:5
(DO NOT USE) Smart-temporary Real Double-precision Column Vector Class
Definition: _dcovector.hpp:3
dgbmatrix & operator-=(const dgbmatrix &)
Definition: dgbmatrix-dgbmatrix.hpp:73
friend void swap(dgbmatrix &, dgbmatrix &)
Definition: dgbmatrix-misc.hpp:167