VERB_code_2.3
dssmatrix.hpp
1 //=============================================================================
3 class dssmatrix
4 {
5 private:
7  long M;
8  long N;
9  long CAP;
10  long VOL;
11  double* Array;
12  long* Indx;
13  long* Jndx;
14 
15 public:
17  long const& m;
18  long const& n;
19  long const& cap;
20  long const& vol;
21  double* const& array;
22  long* const& indx;
23  long* const& jndx;
24 
26  inline dssmatrix();
27  inline dssmatrix(const dssmatrix&);
28  inline dssmatrix(const _dssmatrix&);
29  inline dssmatrix(const long&, const long&, const long&);
30  inline dssmatrix(const char*);
31  inline ~dssmatrix(); //destructor
32 
34  inline operator _zssmatrix();
35 
37  inline double operator()(const long&, const long&) const;
38  inline void put(const long&, const long&, const double&);
39  inline void fput(const long&, const long&, const double&);
40  inline void add(const long&, const long&, const double&);
41  inline void sub(const long&, const long&, const double&);
42  inline void mult(const long&, const long&, const double&);
43  inline void div(const long&, const long&, const double&);
44  inline void del(const long&, const long&);
45  inline void fdel(const long&);
46  inline friend std::ostream& operator<<(std::ostream&, const dssmatrix&);
47  inline void write(const char *) const;
48  inline void read(const char *);
49 
51  inline void clear();
52  inline void zero();
53  inline void chsign();
54  inline void copy(const dssmatrix&);
55  inline void shallow_copy(const _dssmatrix&);
56  inline void resize(const long&, const long&, const long&);
57  inline void expand(const long&);
58  inline bool isListed(const long&, const long&);
59  inline long number(const long&, const long&);
60  inline void checkup();
61  inline friend void swap(dssmatrix&, dssmatrix&);
62  inline friend _dssmatrix _(dssmatrix&);
63 
65  inline friend _dssmatrix t(const dssmatrix&);
66  inline friend void idamax(long&, long&, const dssmatrix&);
67  inline friend double damax(const dssmatrix&);
68 
70  inline friend const dssmatrix& operator+(const dssmatrix&);
71  inline friend _dssmatrix operator-(const dssmatrix&);
72 
74  inline dssmatrix& operator=(const dssmatrix&);
75  inline dssmatrix& operator+=(const dssmatrix&);
76  inline dssmatrix& operator-=(const dssmatrix&);
77  inline dssmatrix& operator*=(const dssmatrix&);
78 
80  inline dssmatrix& operator=(const _dssmatrix&);
81  inline dssmatrix& operator+=(const _dssmatrix&);
82  inline dssmatrix& operator-=(const _dssmatrix&);
83  inline dssmatrix& operator*=(const _dssmatrix&);
84 
86  inline dssmatrix& operator*=(const double&);
87  inline dssmatrix& operator/=(const double&);
88 
90  inline friend _dgematrix operator+(const dssmatrix&, const dgematrix&);
91  inline friend _dgematrix operator+(const dssmatrix&, const _dgematrix&);
92  inline friend _dgematrix operator+(const dgematrix&, const dssmatrix&);
93  inline friend _dgematrix operator+(const _dgematrix&, const dssmatrix&);
94 
95  inline friend _dgematrix operator+(const dssmatrix&, const dgbmatrix&);
96  inline friend _dgematrix operator+(const dssmatrix&, const _dgbmatrix&);
97  inline friend _dgematrix operator+(const dgbmatrix&, const dssmatrix&);
98  inline friend _dgematrix operator+(const _dgbmatrix&, const dssmatrix&);
99 
100  inline friend _dgematrix operator+(const dssmatrix&, const dsymatrix&);
101  inline friend _dgematrix operator+(const dssmatrix&, const _dsymatrix&);
102  inline friend _dgematrix operator+(const dsymatrix&, const dssmatrix&);
103  inline friend _dgematrix operator+(const _dsymatrix&, const dssmatrix&);
104 
105  inline friend _dssmatrix operator+(const dssmatrix&, const dssmatrix&);
106  inline friend _dssmatrix operator+(const dssmatrix&, const _dssmatrix&);
107  inline friend _dssmatrix operator+(const _dssmatrix&, const dssmatrix&);
108 
110  inline friend _dgematrix operator-(const dssmatrix&, const dgematrix&);
111  inline friend _dgematrix operator-(const dssmatrix&, const _dgematrix&);
112  inline friend _dgematrix operator-(const dgematrix&, const dssmatrix&);
113  inline friend _dgematrix operator-(const _dgematrix&, const dssmatrix&);
114 
115  inline friend _dgematrix operator-(const dssmatrix&, const dgbmatrix&);
116  inline friend _dgematrix operator-(const dssmatrix&, const _dgbmatrix&);
117  inline friend _dgematrix operator-(const dgbmatrix&, const dssmatrix&);
118  inline friend _dgematrix operator-(const _dgbmatrix&, const dssmatrix&);
119 
120  inline friend _dgematrix operator-(const dssmatrix&, const dsymatrix&);
121  inline friend _dgematrix operator-(const dssmatrix&, const _dsymatrix&);
122  inline friend _dgematrix operator-(const dsymatrix&, const dssmatrix&);
123  inline friend _dgematrix operator-(const _dsymatrix&, const dssmatrix&);
124 
125  inline friend _dssmatrix operator-(const dssmatrix&, const dssmatrix&);
126  inline friend _dssmatrix operator-(const dssmatrix&, const _dssmatrix&);
127  inline friend _dssmatrix operator-(const _dssmatrix&, const dssmatrix&);
128 
130  inline friend _dgematrix operator*(const dssmatrix&, const dgematrix&);
131  inline friend _dgematrix operator*(const dssmatrix&, const _dgematrix&);
132  inline friend _dgematrix operator*(const dgematrix&, const dssmatrix&);
133  inline friend _dgematrix operator*(const _dgematrix&, const dssmatrix&);
134 
135  inline friend _dgematrix operator*(const dssmatrix&, const dgbmatrix&);
136  inline friend _dgematrix operator*(const dssmatrix&, const _dgbmatrix&);
137  inline friend _dgematrix operator*(const dgbmatrix&, const dssmatrix&);
138  inline friend _dgematrix operator*(const _dgbmatrix&, const dssmatrix&);
139 
140  inline friend _dgematrix operator*(const dsymatrix&, const dssmatrix&);
141  inline friend _dgematrix operator*(const _dsymatrix&, const dssmatrix&);
142  inline friend _dgematrix operator*(const dssmatrix&, const dsymatrix&);
143  inline friend _dgematrix operator*(const dssmatrix&, const _dsymatrix&);
144 
145  inline friend _dssmatrix operator*(const dssmatrix&, const dssmatrix&);
146  inline friend _dssmatrix operator*(const dssmatrix&, const _dssmatrix&);
147  inline friend _dssmatrix operator*(const _dssmatrix&, const dssmatrix&);
148 
149  inline friend _dcovector operator*(const dssmatrix&, const dcovector&);
150  inline friend _dcovector operator*(const dssmatrix&, const _dcovector&);
151 
152  inline friend _drovector operator*(const drovector&, const dssmatrix&);
153  inline friend _drovector operator*(const _drovector&, const dssmatrix&);
154 
155  inline friend _dssmatrix operator*(const dssmatrix&, const double&);
156  inline friend _dssmatrix operator*(const double&, const dssmatrix&);
157 
159  inline friend _dssmatrix operator/(const dssmatrix&, const double&);
160 
162  friend class dgematrix;
163  friend class _dgematrix;
164  friend class dgbmatrix;
165  friend class _dgbmatrix;
166  friend class dsymatrix;
167  friend class _dsymatrix;
168  friend class _dssmatrix;
169  friend class dcovector;
170  friend class _dcovector;
171  friend class drovector;
172  friend class _drovector;
173 };
void zero()
Definition: dssmatrix-misc.hpp:24
void copy(const dssmatrix &)
Definition: dssmatrix-misc.hpp:48
void checkup()
Definition: dssmatrix-misc.hpp:282
double operator()(const long &, const long &) const
Definition: dssmatrix-io.hpp:3
dssmatrix()
Definition: dssmatrix-constructor.hpp:3
(DO NOT USE) Smart-temporary Complex Double-precision Sparse Matrix Class
Definition: _zssmatrix.hpp:3
(DO NOT USE) Smart-temporary Real Double-precision Sparse Matrix Class
Definition: _dssmatrix.hpp:3
friend void swap(dssmatrix &, dssmatrix &)
Definition: dssmatrix-misc.hpp:228
friend _dssmatrix operator/(const dssmatrix &, const double &)
Definition: dssmatrix-double.hpp:51
void chsign()
Definition: dssmatrix-misc.hpp:36
void div(const long &, const long &, const double &)
Definition: dssmatrix-io.hpp:222
dssmatrix & operator+=(const dssmatrix &)
Definition: dssmatrix-dssmatrix.hpp:22
friend _dgematrix operator*(const dssmatrix &, const dgematrix &)
Definition: dssmatrix-dgematrix.hpp:59
dssmatrix & operator/=(const double &)
Definition: dssmatrix-double.hpp:16
friend void idamax(long &, long &, const dssmatrix &)
Definition: dssmatrix-calc.hpp:26
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
void shallow_copy(const _dssmatrix &)
Definition: dssmatrix-misc.hpp:77
Real Double-precision Row Vector Class.
Definition: drovector.hpp:3
friend _dssmatrix operator-(const dssmatrix &)
Definition: dssmatrix-unary.hpp:15
bool isListed(const long &, const long &)
Definition: dssmatrix-misc.hpp:172
double *const & array
1D array to store matrix data (readable)
Definition: dssmatrix.hpp:21
long const & m
matrix row size (readable)
Definition: dssmatrix.hpp:17
void del(const long &, const long &)
Definition: dssmatrix-io.hpp:254
void sub(const long &, const long &, const double &)
Definition: dssmatrix-io.hpp:157
long *const & jndx
1D array to store the j-index of non-zero matrix components (readable)
Definition: dssmatrix.hpp:23
(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
long *const & indx
1D array to store the i-index of non-zero matrix components (readable)
Definition: dssmatrix.hpp:22
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
void clear()
Definition: dssmatrix-misc.hpp:3
long const & n
matrix column size (readable)
Definition: dssmatrix.hpp:18
long number(const long &, const long &)
Definition: dssmatrix-misc.hpp:200
friend double damax(const dssmatrix &)
Definition: dssmatrix-calc.hpp:40
long const & cap
the length of data arrays (readable)
Definition: dssmatrix.hpp:19
dssmatrix & operator=(const dssmatrix &)
Definition: dssmatrix-dssmatrix.hpp:3
long const & vol
the number of non-zero components (readable)
Definition: dssmatrix.hpp:20
void mult(const long &, const long &, const double &)
Definition: dssmatrix-io.hpp:194
void add(const long &, const long &, const double &)
Definition: dssmatrix-io.hpp:120
(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
friend _dssmatrix _(dssmatrix &)
Definition: dssmatrix-misc.hpp:246
dssmatrix & operator-=(const dssmatrix &)
Definition: dssmatrix-dssmatrix.hpp:48
Real Double-precision Sparse Matrix Class.
Definition: dssmatrix.hpp:3
dssmatrix & operator*=(const dssmatrix &)
Definition: dssmatrix-dssmatrix.hpp:74
void fdel(const long &)
Definition: dssmatrix-io.hpp:286
~dssmatrix()
Definition: dssmatrix-constructor.hpp:142
void fput(const long &, const long &, const double &)
Definition: dssmatrix-io.hpp:75
(DO NOT USE) Smart-temporary Real Double-precision Column Vector Class
Definition: _dcovector.hpp:3
void resize(const long &, const long &, const long &)
Definition: dssmatrix-misc.hpp:104
void put(const long &, const long &, const double &)
Definition: dssmatrix-io.hpp:38
friend const dssmatrix & operator+(const dssmatrix &)
Definition: dssmatrix-unary.hpp:3
void expand(const long &)
Definition: dssmatrix-misc.hpp:136
friend _dssmatrix t(const dssmatrix &)
Definition: dssmatrix-calc.hpp:3