CPPLapack
 All Classes Files Functions Variables Friends Pages
dgbmatrix.hpp
Go to the documentation of this file.
1 //=============================================================================
2 //! Real Double-precision General Band Matrix Class
3 class dgbmatrix
4 {
5 public:
6  ///////////////////////////////////////////////
7  /////////////////// objects ///////////////////
8  ///////////////////////////////////////////////
9  CPPL_INT m; //!< matrix row size
10  CPPL_INT n; //!< matrix column size
11  CPPL_INT kl; //!< lower band width
12  CPPL_INT ku; //!< upper band width
13  double* array; //!< 1D array to store matrix data
14  double** darray; //!< array of pointers of column head addresses
15 
16  ///////////////////////////////////////////////
17  ///////////////// constructors ////////////////
18  ///////////////////////////////////////////////
19  inline dgbmatrix();
20  inline dgbmatrix(const dgbmatrix&);
21  inline dgbmatrix(const _dgbmatrix&);
22  inline dgbmatrix(const CPPL_INT&, const CPPL_INT&, const CPPL_INT&, const CPPL_INT&);
23  inline dgbmatrix(const char *);
24  inline ~dgbmatrix(); //destructor
25 
26  ///////////////////////////////////////////////
27  ////////////////// functions //////////////////
28  ///////////////////////////////////////////////
29  //////// cast ////////
30  inline _zgbmatrix to_zgbmatrix() const;
31  inline _dgematrix to_dgematrix() const;
32 
33  //////// io ////////
34  inline double& operator()(const CPPL_INT&, const CPPL_INT&);
35  inline double operator()(const CPPL_INT&, const CPPL_INT&) const;
36  inline dgbmatrix& set(const CPPL_INT&, const CPPL_INT&, const double&); //const;
37  inline friend std::ostream& operator<<(std::ostream&, const dgbmatrix&);
38  inline void write(const char*) const;
39  inline void read(const char*);
40 
41  //////// misc ////////
42  inline void clear();
43  inline dgbmatrix& zero();
44  inline dgbmatrix& identity();
45  inline void chsign();
46  inline void copy(const dgbmatrix&);
47  inline void shallow_copy(const _dgbmatrix&);
48  inline dgbmatrix& resize(const CPPL_INT&, const CPPL_INT&, const CPPL_INT&, const CPPL_INT&);
49  inline _drovector row(const CPPL_INT&) const;
50  inline _dcovector col(const CPPL_INT&) const;
51  inline friend void swap(dgbmatrix&, dgbmatrix&);
52  inline friend _dgbmatrix _(dgbmatrix&);
53 
54  //////// calc ////////
55  inline friend _dgbmatrix t(const dgbmatrix&);
56  inline friend _dgematrix i(const dgbmatrix&);
57 
58  //////// lapack ////////
59  inline CPPL_INT dgbsv(dgematrix&);
60  inline CPPL_INT dgbsv(dcovector&);
61 
62  ///////////////////////////////////////////////
63  ///////////// numerical operators /////////////
64  ///////////////////////////////////////////////
65  //////// = ////////
66  inline dgbmatrix& operator=(const dgbmatrix&);
67  inline dgbmatrix& operator=(const _dgbmatrix&);
68 
69  //////// += ////////
70  inline dgbmatrix& operator+=(const dgbmatrix&);
71  inline dgbmatrix& operator+=(const _dgbmatrix&);
72 
73  //////// -= ////////
74  inline dgbmatrix& operator-=(const dgbmatrix&);
75  inline dgbmatrix& operator-=(const _dgbmatrix&);
76 
77  //////// *= ////////
78  inline dgbmatrix& operator*=(const dgbmatrix&);
79  inline dgbmatrix& operator*=(const _dgbmatrix&);
80  inline dgbmatrix& operator*=(const double&);
81 
82  //////// /= ////////
83  inline dgbmatrix& operator/=(const double&);
84 
85  //////// unary ////////
86  inline friend const dgbmatrix& operator+(const dgbmatrix&);
87  inline friend _dgbmatrix operator-(const dgbmatrix&);
88 
89  //////// + ////////
90  inline friend _dgematrix operator+(const dgbmatrix&, const dgematrix&);
91  inline friend _dgematrix operator+(const dgbmatrix&, const _dgematrix&);
92  inline friend _dgematrix operator+(const dgbmatrix&, const dsymatrix&);
93  inline friend _dgematrix operator+(const dgbmatrix&, const _dsymatrix&);
94  inline friend _dgbmatrix operator+(const dgbmatrix&, const dgbmatrix&);
95  inline friend _dgbmatrix operator+(const dgbmatrix&, const _dgbmatrix&);
96  inline friend _dgematrix operator+(const dgbmatrix&, const dgsmatrix&);
97  inline friend _dgematrix operator+(const dgbmatrix&, const _dgsmatrix&);
98  inline friend _dgematrix operator+(const dgbmatrix&, const dssmatrix&);
99  inline friend _dgematrix operator+(const dgbmatrix&, const _dssmatrix&);
100 
101  //////// - ////////
102  inline friend _dgematrix operator-(const dgbmatrix&, const dgematrix&);
103  inline friend _dgematrix operator-(const dgbmatrix&, const _dgematrix&);
104  inline friend _dgematrix operator-(const dgbmatrix&, const dsymatrix&);
105  inline friend _dgematrix operator-(const dgbmatrix&, const _dsymatrix&);
106  inline friend _dgbmatrix operator-(const dgbmatrix&, const dgbmatrix&);
107  inline friend _dgbmatrix operator-(const dgbmatrix&, const _dgbmatrix&);
108  inline friend _dgematrix operator-(const dgbmatrix&, const dgsmatrix&);
109  inline friend _dgematrix operator-(const dgbmatrix&, const _dgsmatrix&);
110  inline friend _dgematrix operator-(const dgbmatrix&, const dssmatrix&);
111  inline friend _dgematrix operator-(const dgbmatrix&, const _dssmatrix&);
112 
113  //////// * ////////
114  inline friend _dcovector operator*(const dgbmatrix&, const dcovector&);
115  inline friend _dcovector operator*(const dgbmatrix&, const _dcovector&);
116  inline friend _dgematrix operator*(const dgbmatrix&, const dgematrix&);
117  inline friend _dgematrix operator*(const dgbmatrix&, const _dgematrix&);
118  inline friend _dgematrix operator*(const dgbmatrix&, const dsymatrix&);
119  inline friend _dgematrix operator*(const dgbmatrix&, const _dsymatrix&);
120  inline friend _dgbmatrix operator*(const dgbmatrix&, const dgbmatrix&);
121  inline friend _dgbmatrix operator*(const dgbmatrix&, const _dgbmatrix&);
122  inline friend _dgematrix operator*(const dgbmatrix&, const dgsmatrix&);
123  inline friend _dgematrix operator*(const dgbmatrix&, const _dgsmatrix&);
124  inline friend _dgematrix operator*(const dgbmatrix&, const dssmatrix&);
125  inline friend _dgematrix operator*(const dgbmatrix&, const _dssmatrix&);
126  inline friend _dgbmatrix operator*(const dgbmatrix&, const double&);
127 
128  //////// / ////////
129  inline friend _dgbmatrix operator/(const dgbmatrix&, const double&);
130 
131  //////// double ////////
132  inline friend _dgbmatrix operator*(const double&, const dgbmatrix&);
133 };
Real Double-precision General Sparse Matrix Class.
Definition: dgsmatrix.hpp:3
_zgbmatrix to_zgbmatrix() const
dgbmatrix & operator=(const dgbmatrix &)
friend _dgbmatrix t(const dgbmatrix &)
friend _dgematrix i(const dgbmatrix &)
CPPL_INT m
matrix row size
Definition: dgbmatrix.hpp:9
friend _dgbmatrix _(dgbmatrix &)
dgbmatrix & set(const CPPL_INT &, const CPPL_INT &, const double &)
friend _dcovector operator*(const dgbmatrix &, const dcovector &)
double ** darray
array of pointers of column head addresses
Definition: dgbmatrix.hpp:14
friend const dgbmatrix & operator+(const dgbmatrix &)
(DO NOT USE) Smart-temporary Real Double-precision Symmetric Sparse Matrix Class
Definition: _dssmatrix.hpp:3
void shallow_copy(const _dgbmatrix &)
friend _dgbmatrix operator/(const dgbmatrix &, const double &)
dgbmatrix & operator/=(const double &)
dgbmatrix & identity()
_dgematrix to_dgematrix() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: dgbmatrix.hpp:11
Real Double-precision Symmetric Matrix Class [l-type (UPLO=l) Strage].
Definition: dsymatrix.hpp:3
(DO NOT USE) Smart-temporary Real Double-precision General Sparse Matrix Class
Definition: _dgsmatrix.hpp:3
CPPL_INT ku
upper band width
Definition: dgbmatrix.hpp:12
double * array
1D array to store matrix data
Definition: dgbmatrix.hpp:13
dgbmatrix & operator+=(const dgbmatrix &)
_dcovector col(const CPPL_INT &) const
friend _dgbmatrix operator-(const dgbmatrix &)
void write(const char *) const
(DO NOT USE) Smart-temporary Real Double-precision Row Vector Class
Definition: _drovector.hpp:3
void read(const char *)
(DO NOT USE) Smart-temporary Real Double-precision General Dence Matrix Class
Definition: _dgematrix.hpp:3
dgbmatrix & resize(const CPPL_INT &, const CPPL_INT &, const CPPL_INT &, const CPPL_INT &)
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
dgbmatrix & operator*=(const dgbmatrix &)
_drovector row(const CPPL_INT &) const
void clear()
CPPL_INT dgbsv(dgematrix &)
void copy(const dgbmatrix &)
(DO NOT USE) Smart-temporary Complex Double-precision General Band Matrix Class
Definition: _zgbmatrix.hpp:3
(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
friend std::ostream & operator<<(std::ostream &, const dgbmatrix &)
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
Real Double-precision Symmetric Sparse Matrix Class.
Definition: dssmatrix.hpp:3
dgbmatrix & zero()
double & operator()(const CPPL_INT &, const CPPL_INT &)
Definition: dgbmatrix-io.hpp:3
CPPL_INT n
matrix column size
Definition: dgbmatrix.hpp:10
(DO NOT USE) Smart-temporary Real Double-precision Column Vector Class
Definition: _dcovector.hpp:3
dgbmatrix & operator-=(const dgbmatrix &)
friend void swap(dgbmatrix &, dgbmatrix &)