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