My Project
dgematrix.hpp
1 //=============================================================================
3 class dgematrix
4 {
5 private:
7  long M;
8  long N;
9  double* Array;
10  double** Darray;
11 
12 public:
14  long const& m;
15  long const& n;
16  double* const& array;
17  double** const& darray;
18 
20  inline dgematrix();
21  inline dgematrix(const dgematrix&);
22  inline dgematrix(const _dgematrix&);
23  inline dgematrix(const dgbmatrix&);
24  inline dgematrix(const _dgbmatrix&);
25  inline dgematrix(const dsymatrix&);
26  inline dgematrix(const _dsymatrix&);
27  inline dgematrix(const dssmatrix&);
28  inline dgematrix(const _dssmatrix&);
29  inline dgematrix(const long&, const long&);
30  inline dgematrix(const char*);
31  inline ~dgematrix(); //destructor
32 
34  inline operator _zgematrix();
35 
37  inline double& operator()(const long&, const long&);
38  inline double operator()(const long&, const long&) const;
39  inline void set(const long&, const long&, const double&) const;
40  inline friend std::ostream& operator<<(std::ostream&, const dgematrix&);
41  inline void write(const char *) const;
42  inline void read(const char *);
43 
45  inline void clear();
46  inline void zero();
47  inline void identity();
48  inline void chsign();
49  inline void copy(const dgematrix&);
50  inline void shallow_copy(const _dgematrix&);
51  inline void resize(const long&, const long&);
52  inline friend void swap(dgematrix&, dgematrix&);
53  inline friend _dgematrix _(dgematrix&);
54 
56  inline friend _dgematrix t(const dgematrix&);
57  inline friend _dgematrix i(const dgematrix&);
58  inline friend void idamax(long&, long&, const dgematrix&);
59  inline friend double damax(const dgematrix&);
60 
62  inline long dgesv(dgematrix&);
63  inline long dgesv(dcovector&);
64  inline long dgels(dgematrix&);
65  inline long dgels(dcovector&);
66  inline long dgels(dgematrix&, drovector&);
67  inline long dgels(dcovector&, double&);
68  inline long dgelss(dcovector&, dcovector&, long&, const double);
69  inline long dgelss(dgematrix&, dcovector&, long&, const double);
70  inline long dgeev(std::vector<double>&, std::vector<double>&);
71  inline long dgeev(std::vector<double>&, std::vector<double>&,
72  std::vector<dcovector>&, std::vector<dcovector>&);
73  inline long dgeev(std::vector<double>&, std::vector<double>&,
74  std::vector<drovector>&, std::vector<drovector>&);
75  inline long dggev(dgematrix&, std::vector<double>&, std::vector<double>&);
76  inline long dggev(dgematrix&, std::vector<double>&, std::vector<double>&,
77  std::vector<dcovector>&, std::vector<dcovector>&);
78  inline long dggev(dgematrix&, std::vector<double>&, std::vector<double>&,
79  std::vector<drovector>&, std::vector<drovector>&);
80  inline long dgesvd(dcovector&, dgematrix&, dgematrix&);
81 
83  inline friend const dgematrix& operator+(const dgematrix&);
84  inline friend _dgematrix operator-(const dgematrix&);
85 
87  inline dgematrix& operator=(const dgematrix&);
88  inline dgematrix& operator+=(const dgematrix&);
89  inline dgematrix& operator-=(const dgematrix&);
90  inline dgematrix& operator*=(const dgematrix&);
92  inline dgematrix& operator=(const _dgematrix&);
93  inline dgematrix& operator+=(const _dgematrix&);
94  inline dgematrix& operator-=(const _dgematrix&);
95  inline dgematrix& operator*=(const _dgematrix&);
97  inline dgematrix& operator=(const dgbmatrix&);
98  inline dgematrix& operator+=(const dgbmatrix&);
99  inline dgematrix& operator-=(const dgbmatrix&);
100  inline dgematrix& operator*=(const dgbmatrix&);
102  inline dgematrix& operator=(const _dgbmatrix&);
103  inline dgematrix& operator+=(const _dgbmatrix&);
104  inline dgematrix& operator-=(const _dgbmatrix&);
105  inline dgematrix& operator*=(const _dgbmatrix&);
107  inline dgematrix& operator=(const dsymatrix& mat);
108  inline dgematrix& operator+=(const dsymatrix& mat);
109  inline dgematrix& operator-=(const dsymatrix& mat);
110  inline dgematrix& operator*=(const dsymatrix& mat);
112  inline dgematrix& operator=(const _dsymatrix& mat);
113  inline dgematrix& operator+=(const _dsymatrix& mat);
114  inline dgematrix& operator-=(const _dsymatrix& mat);
115  inline dgematrix& operator*=(const _dsymatrix& mat);
116 
118  inline dgematrix& operator*=(const double&);
119  inline dgematrix& operator/=(const double&);
120 
122  inline friend _dgematrix operator+(const dgematrix&, const dgematrix&);
123  inline friend _dgematrix operator+(const dgematrix&, const _dgematrix&);
124  inline friend _dgematrix operator+(const _dgematrix&, const dgematrix&);
125 
126  inline friend _dgematrix operator+(const dgematrix&, const dgbmatrix&);
127  inline friend _dgematrix operator+(const dgematrix&, const _dgbmatrix&);
128  inline friend _dgematrix operator+(const dgbmatrix&, const dgematrix&);
129  inline friend _dgematrix operator+(const _dgbmatrix&, const dgematrix&);
130 
131  inline friend _dgematrix operator+(const dgematrix&, const dsymatrix&);
132  inline friend _dgematrix operator+(const dgematrix&, const _dsymatrix&);
133  inline friend _dgematrix operator+(const dsymatrix&, const dgematrix&);
134  inline friend _dgematrix operator+(const _dsymatrix&, const dgematrix&);
135 
136  inline friend _dgematrix operator+(const dgematrix&, const dssmatrix&);
137  inline friend _dgematrix operator+(const dgematrix&, const _dssmatrix&);
138  inline friend _dgematrix operator+(const dssmatrix&, const dgematrix&);
139  inline friend _dgematrix operator+(const _dssmatrix&, const dgematrix&);
140 
142  inline friend _dgematrix operator-(const dgematrix&, const dgematrix&);
143  inline friend _dgematrix operator-(const dgematrix&, const _dgematrix&);
144  inline friend _dgematrix operator-(const _dgematrix&, const dgematrix&);
145 
146  inline friend _dgematrix operator-(const dgematrix&, const dgbmatrix&);
147  inline friend _dgematrix operator-(const dgematrix&, const _dgbmatrix&);
148  inline friend _dgematrix operator-(const dgbmatrix&, const dgematrix&);
149  inline friend _dgematrix operator-(const _dgbmatrix&, const dgematrix&);
150 
151  inline friend _dgematrix operator-(const dgematrix&, const dsymatrix&);
152  inline friend _dgematrix operator-(const dgematrix&, const _dsymatrix&);
153  inline friend _dgematrix operator-(const dsymatrix&, const dgematrix&);
154  inline friend _dgematrix operator-(const _dsymatrix&, const dgematrix&);
155 
156  inline friend _dgematrix operator-(const dgematrix&, const dssmatrix&);
157  inline friend _dgematrix operator-(const dgematrix&, const _dssmatrix&);
158  inline friend _dgematrix operator-(const dssmatrix&, const dgematrix&);
159  inline friend _dgematrix operator-(const _dssmatrix&, const dgematrix&);
160 
162  inline friend _dgematrix operator*(const dgematrix&, const dgematrix&);
163  inline friend _dgematrix operator*(const dgematrix&, const _dgematrix&);
164  inline friend _dgematrix operator*(const _dgematrix&, const dgematrix&);
165 
166  inline friend _dgematrix operator*(const dgematrix&, const dgbmatrix&);
167  inline friend _dgematrix operator*(const dgematrix&, const _dgbmatrix&);
168  inline friend _dgematrix operator*(const dgbmatrix&, const dgematrix&);
169  inline friend _dgematrix operator*(const _dgbmatrix&, const dgematrix&);
170 
171  inline friend _dgematrix operator*(const dsymatrix&, const dgematrix&);
172  inline friend _dgematrix operator*(const _dsymatrix&, const dgematrix&);
173  inline friend _dgematrix operator*(const dgematrix&, const dsymatrix&);
174  inline friend _dgematrix operator*(const dgematrix&, const _dsymatrix&);
175 
176  inline friend _dgematrix operator*(const dssmatrix&, const dgematrix&);
177  inline friend _dgematrix operator*(const _dssmatrix&, const dgematrix&);
178  inline friend _dgematrix operator*(const dgematrix&, const dssmatrix&);
179  inline friend _dgematrix operator*(const dgematrix&, const _dssmatrix&);
180 
181  inline friend _dcovector operator*(const dgematrix&, const dcovector&);
182  inline friend _dcovector operator*(const dgematrix&, const _dcovector&);
183 
184  inline friend _drovector operator*(const drovector&, const dgematrix&);
185  inline friend _drovector operator*(const _drovector&, const dgematrix&);
186 
187  inline friend _dgematrix operator*(const dgematrix&, const double&);
188  inline friend _dgematrix operator*(const double&, const dgematrix&);
189 
191  inline friend _dgematrix operator/(const dgematrix&, const double&);
192 
194  friend class _dgematrix;
195  friend class dgbmatrix;
196  friend class _dgbmatrix;
197  friend class dsymatrix;
198  friend class _dsymatrix;
199  friend class dssmatrix;
200  friend class _dssmatrix;
201  friend class dcovector;
202  friend class _dcovector;
203  friend class drovector;
204  friend class _drovector;
205 };
void clear()
Definition: dgematrix-misc.hpp:3
long dgelss(dcovector &, dcovector &, long &, const double)
Definition: dgematrix-lapack.hpp:304
long dgels(dgematrix &)
Definition: dgematrix-lapack.hpp:76
friend _dgematrix operator*(const dgematrix &, const dgematrix &)
Definition: dgematrix-dgematrix.hpp:153
~dgematrix()
Definition: dgematrix-constructor.hpp:336
void zero()
Definition: dgematrix-misc.hpp:26
double *const & array
1D array to store matrix data (readable)
Definition: dgematrix.hpp:16
long const & n
matrix column size (readable)
Definition: dgematrix.hpp:15
(DO NOT USE) Smart-temporary Real Double-precision Sparse Matrix Class
Definition: _dssmatrix.hpp:3
void resize(const long &, const long &)
Definition: dgematrix-misc.hpp:126
friend _dgematrix t(const dgematrix &)
Definition: dgematrix-calc.hpp:3
friend void swap(dgematrix &, dgematrix &)
Definition: dgematrix-misc.hpp:154
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
dgematrix & operator=(const dgematrix &)
Definition: dgematrix-dgematrix.hpp:3
Real Double-precision Symmetric Matrix Class [L-type (UPLO=L) Strage].
Definition: dsymatrix.hpp:3
void set(const long &, const long &, const double &) const
Definition: dgematrix-io.hpp:53
double **const & darray
array of pointers of column head addresses (readable)
Definition: dgematrix.hpp:17
Real Double-precision Row Vector Class.
Definition: drovector.hpp:3
friend void idamax(long &, long &, const dgematrix &)
Definition: dgematrix-calc.hpp:53
dgematrix & operator*=(const dgematrix &)
Definition: dgematrix-dgematrix.hpp:68
(DO NOT USE) Smart-temporary Complex Double-precision General Dence Matrix Class
Definition: _zgematrix.hpp:3
(DO NOT USE) Smart-temporary Real Double-precision Row Vector Class
Definition: _drovector.hpp:3
long dgesv(dgematrix &)
Definition: dgematrix-lapack.hpp:6
(DO NOT USE) Smart-temporary Real Double-precision General Dence Matrix Class
Definition: _dgematrix.hpp:3
void identity()
Definition: dgematrix-misc.hpp:38
void copy(const dgematrix &)
Definition: dgematrix-misc.hpp:72
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
void shallow_copy(const _dgematrix &)
Definition: dgematrix-misc.hpp:103
long const & m
matrix row size (readable)
Definition: dgematrix.hpp:14
(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
void chsign()
Definition: dgematrix-misc.hpp:60
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
friend double damax(const dgematrix &)
Definition: dgematrix-calc.hpp:67
Real Double-precision Sparse Matrix Class.
Definition: dssmatrix.hpp:3
long dgeev(std::vector< double > &, std::vector< double > &)
Definition: dgematrix-lapack.hpp:410
dgematrix & operator-=(const dgematrix &)
Definition: dgematrix-dgematrix.hpp:45
friend _dgematrix i(const dgematrix &)
Definition: dgematrix-calc.hpp:21
friend _dgematrix _(dgematrix &)
Definition: dgematrix-misc.hpp:176
friend const dgematrix & operator+(const dgematrix &)
Definition: dgematrix-unary.hpp:3
(DO NOT USE) Smart-temporary Real Double-precision Column Vector Class
Definition: _dcovector.hpp:3
dgematrix & operator+=(const dgematrix &)
Definition: dgematrix-dgematrix.hpp:22
dgematrix()
Definition: dgematrix-constructor.hpp:3
friend _dgematrix operator-(const dgematrix &)
Definition: dgematrix-unary.hpp:15
long dgesvd(dcovector &, dgematrix &, dgematrix &)
Definition: dgematrix-lapack.hpp:812
dgematrix & operator/=(const double &)
Definition: dgematrix-double.hpp:16
long dggev(dgematrix &, std::vector< double > &, std::vector< double > &)
Definition: dgematrix-lapack.hpp:591
friend _dgematrix operator/(const dgematrix &, const double &)
Definition: dgematrix-double.hpp:48
double & operator()(const long &, const long &)
Definition: dgematrix-io.hpp:3