VERB_code_2.3
dsymatrix.hpp
1 //=============================================================================
3 class dsymatrix
4 {
5 private:
7  long N;
8  double* Array;
9  double** Darray;
10 
11 public:
13  long const& n;
14  double* const& array;
15  double** const& darray;
16 
18  inline dsymatrix();
19  inline dsymatrix(const dsymatrix&);
20  inline dsymatrix(const _dsymatrix&);
21  inline dsymatrix(const dgbmatrix&);
22  inline dsymatrix(const _dgbmatrix&);
23  inline dsymatrix(const long&);
24  inline dsymatrix(const char*);
25  inline ~dsymatrix(); //destructor
26 
28  inline operator _zhematrix();
29 
31  inline double& operator()(const long&, const long&);
32  inline double operator()(const long&, const long&) const;
33  inline void set(const long&, const long&, const double&) const;
34  inline friend std::ostream& operator<<(std::ostream&, const dsymatrix&);
35  inline void write(const char*) const;
36  inline void read(const char*);
37 
39  inline void complete() const;
40  inline void clear();
41  inline void zero();
42  inline void identity();
43  inline void chsign();
44  inline void copy(const dsymatrix&);
45  inline void shallow_copy(const _dsymatrix&);
46  inline void resize(const long&);
47  inline friend void swap(dsymatrix&, dsymatrix&);
48  inline friend _dsymatrix _(dsymatrix&);
49 
51  inline friend _dsymatrix t(const dsymatrix&);
52  inline friend _dgematrix i(const dsymatrix&);
53 
55  inline long dsysv(dgematrix&);
56  inline long dsysv(dcovector&);
57  inline long dsyev(std::vector<double>&, const bool&);
58  inline long dsyev(std::vector<double>&, std::vector<dcovector>&);
59  inline long dsyev(std::vector<double>&, std::vector<drovector>&);
60  inline long dsygv(dsymatrix&, std::vector<double>&);
61  inline long dsygv(dsymatrix&, std::vector<double>&, std::vector<dcovector>&);
62 
64  inline friend const dsymatrix& operator+(const dsymatrix&);
65  inline friend _dsymatrix operator-(const dsymatrix&);
66 
68  inline dsymatrix& operator=(const dsymatrix&);
69  inline dsymatrix& operator+=(const dsymatrix&);
70  inline dsymatrix& operator-=(const dsymatrix&);
71  inline dsymatrix& operator*=(const dsymatrix&);
73  inline dsymatrix& operator=(const _dsymatrix&);
74  inline dsymatrix& operator+=(const _dsymatrix&);
75  inline dsymatrix& operator-=(const _dsymatrix&);
76  inline dsymatrix& operator*=(const _dsymatrix&);
77 
79  inline dsymatrix& operator*=(const double&);
80  inline dsymatrix& operator/=(const double&);
81 
83  inline friend _dsymatrix operator+(const dsymatrix&, const dsymatrix&);
84  inline friend _dsymatrix operator+(const dsymatrix&, const _dsymatrix&);
85  inline friend _dsymatrix operator+(const _dsymatrix&, const dsymatrix&);
86 
87  inline friend _dgematrix operator+(const dsymatrix&, const dgematrix&);
88  inline friend _dgematrix operator+(const dsymatrix&, const _dgematrix&);
89  inline friend _dgematrix operator+(const dgematrix&, const dsymatrix&);
90  inline friend _dgematrix operator+(const _dgematrix&, const dsymatrix&);
91 
92  inline friend _dgematrix operator+(const dsymatrix&, const dgbmatrix&);
93  inline friend _dgematrix operator+(const dsymatrix&, const _dgbmatrix&);
94  inline friend _dgematrix operator+(const dgbmatrix&, const dsymatrix&);
95  inline friend _dgematrix operator+(const _dgbmatrix&, const dsymatrix&);
96 
97  inline friend _dgematrix operator+(const dsymatrix&, const dssmatrix&);
98  inline friend _dgematrix operator+(const dsymatrix&, const _dssmatrix&);
99  inline friend _dgematrix operator+(const dssmatrix&, const dsymatrix&);
100  inline friend _dgematrix operator+(const _dssmatrix&, const dsymatrix&);
101 
103  inline friend _dsymatrix operator-(const dsymatrix&, const dsymatrix&);
104  inline friend _dsymatrix operator-(const dsymatrix&, const _dsymatrix&);
105  inline friend _dsymatrix operator-(const _dsymatrix&, const dsymatrix&);
106 
107  inline friend _dgematrix operator-(const dsymatrix&, const dgematrix&);
108  inline friend _dgematrix operator-(const dsymatrix&, const _dgematrix&);
109  inline friend _dgematrix operator-(const dgematrix&, const dsymatrix&);
110  inline friend _dgematrix operator-(const _dgematrix&, const dsymatrix&);
111 
112  inline friend _dgematrix operator-(const dsymatrix&, const dgbmatrix&);
113  inline friend _dgematrix operator-(const dsymatrix&, const _dgbmatrix&);
114  inline friend _dgematrix operator-(const dgbmatrix&, const dsymatrix&);
115  inline friend _dgematrix operator-(const _dgbmatrix&, const dsymatrix&);
116 
117  inline friend _dgematrix operator-(const dsymatrix&, const dssmatrix&);
118  inline friend _dgematrix operator-(const dsymatrix&, const _dssmatrix&);
119  inline friend _dgematrix operator-(const dssmatrix&, const dsymatrix&);
120  inline friend _dgematrix operator-(const _dssmatrix&, const dsymatrix&);
121 
123  inline friend _dgematrix operator*(const _dsymatrix&, const dsymatrix&);
124  inline friend _dgematrix operator*(const dsymatrix&, const _dsymatrix&);
125  inline friend _dgematrix operator*(const dsymatrix&, const dsymatrix&);
126 
127  inline friend _dgematrix operator*(const dsymatrix&, const dgematrix&);
128  inline friend _dgematrix operator*(const dsymatrix&, const _dgematrix&);
129  inline friend _dgematrix operator*(const dgematrix&, const dsymatrix&);
130  inline friend _dgematrix operator*(const _dgematrix&, const dsymatrix&);
131 
132  inline friend _dgematrix operator*(const dsymatrix&, const dgbmatrix&);
133  inline friend _dgematrix operator*(const dsymatrix&, const _dgbmatrix&);
134  inline friend _dgematrix operator*(const dgbmatrix&, const dsymatrix&);
135  inline friend _dgematrix operator*(const _dgbmatrix&, const dsymatrix&);
136 
137  inline friend _dgematrix operator*(const dsymatrix&, const dssmatrix&);
138  inline friend _dgematrix operator*(const dsymatrix&, const _dssmatrix&);
139  inline friend _dgematrix operator*(const dssmatrix&, const dsymatrix&);
140  inline friend _dgematrix operator*(const _dssmatrix&, const dsymatrix&);
141 
142  inline friend _dcovector operator*(const dsymatrix&, const dcovector&);
143  inline friend _dcovector operator*(const dsymatrix&, const _dcovector&);
144 
145  inline friend _drovector operator*(const drovector&, const dsymatrix&);
146  inline friend _drovector operator*(const _drovector&, const dsymatrix&);
147 
148  inline friend _dsymatrix operator*(const dsymatrix&, const double&);
149  inline friend _dsymatrix operator*(const double&, const dsymatrix&);
150 
152  inline friend _dsymatrix operator/(const dsymatrix&, const double&);
153 
155  friend class dgematrix;
156  friend class _dgematrix;
157  friend class dgbmatrix;
158  friend class _dgbmatrix;
159  friend class _dsymatrix;
160  friend class dssmatrix;
161  friend class _dssmatrix;
162  friend class dcovector;
163  friend class _dcovector;
164  friend class drovector;
165  friend class _drovector;
166 };
dsymatrix & operator-=(const dsymatrix &)
Definition: dsymatrix-dsymatrix.hpp:47
(DO NOT USE) Smart-temporary Complex Double-precision Hermitian Matrix Class
Definition: _zhematrix.hpp:3
friend _dsymatrix t(const dsymatrix &)
Definition: dsymatrix-calc.hpp:3
void identity()
Definition: dsymatrix-misc.hpp:53
friend _dsymatrix _(dsymatrix &)
Definition: dsymatrix-misc.hpp:173
long const & n
matrix column size or row size (readable)
Definition: dsymatrix.hpp:13
dsymatrix & operator/=(const double &)
Definition: dsymatrix-double.hpp:16
long dsysv(dgematrix &)
Definition: dsymatrix-lapack.hpp:6
friend _dsymatrix operator/(const dsymatrix &, const double &)
Definition: dsymatrix-double.hpp:48
friend _dgematrix i(const dsymatrix &)
Definition: dsymatrix-calc.hpp:22
long dsyev(std::vector< double > &, const bool &)
Definition: dsymatrix-lapack.hpp:94
(DO NOT USE) Smart-temporary Real Double-precision Sparse Matrix Class
Definition: _dssmatrix.hpp:3
void set(const long &, const long &, const double &) const
Definition: dsymatrix-io.hpp:63
double **const & darray
array of pointers of column head addresses (readable)
Definition: dsymatrix.hpp:15
void zero()
Definition: dsymatrix-misc.hpp:41
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
long dsygv(dsymatrix &, std::vector< double > &)
Definition: dsymatrix-lapack.hpp:214
Real Double-precision Row Vector Class.
Definition: drovector.hpp:3
void chsign()
Definition: dsymatrix-misc.hpp:66
(DO NOT USE) Smart-temporary Real Double-precision Row Vector Class
Definition: _drovector.hpp:3
(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
dsymatrix & operator+=(const dsymatrix &)
Definition: dsymatrix-dsymatrix.hpp:22
void clear()
Definition: dsymatrix-misc.hpp:19
void shallow_copy(const _dsymatrix &)
Definition: dsymatrix-misc.hpp:108
friend _dgematrix operator*(const _dsymatrix &, const dsymatrix &)
Definition: _dsymatrix-dsymatrix.hpp:51
friend const dsymatrix & operator+(const dsymatrix &)
Definition: dsymatrix-unary.hpp:3
dsymatrix & operator=(const dsymatrix &)
Definition: dsymatrix-dsymatrix.hpp:3
friend void swap(dsymatrix &, dsymatrix &)
Definition: dsymatrix-misc.hpp:157
friend _dsymatrix operator-(const dsymatrix &)
Definition: dsymatrix-unary.hpp:15
dsymatrix()
Definition: dsymatrix-constructor.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
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
void complete() const
Definition: dsymatrix-misc.hpp:3
Real Double-precision Sparse Matrix Class.
Definition: dssmatrix.hpp:3
double & operator()(const long &, const long &)
Definition: dsymatrix-io.hpp:3
void copy(const dsymatrix &)
Definition: dsymatrix-misc.hpp:78
(DO NOT USE) Smart-temporary Real Double-precision Column Vector Class
Definition: _dcovector.hpp:3
~dsymatrix()
Definition: dsymatrix-constructor.hpp:132
double *const & array
1D array to store matrix data (readable)
Definition: dsymatrix.hpp:14
void resize(const long &)
Definition: dsymatrix-misc.hpp:130