Basic NxN matrix.
More...
#include <JMatrixND.hh>
|
double * | __p |
| pointer to data
|
|
size_t | __n |
| dimension of matrix
|
|
size_t | __m |
| capacity of matrix
|
|
Basic NxN matrix.
Definition at line 36 of file JMatrixND.hh.
◆ JMatrixND_t() [1/3]
JMATH::JMatrixND_t::JMatrixND_t |
( |
| ) |
|
|
inline |
Default constructor.
Definition at line 40 of file JMatrixND.hh.
40 :
44 {}
double * __p
pointer to data
size_t __m
capacity of matrix
size_t __n
dimension of matrix
◆ JMatrixND_t() [2/3]
JMATH::JMatrixND_t::JMatrixND_t |
( |
const JMatrixND_t & | A | ) |
|
|
inline |
Copy constructor.
- Parameters
-
Definition at line 52 of file JMatrixND.hh.
52 :
54 {
56 }
void set(const JMatrixND_t &A)
Set matrix.
JMatrixND_t()
Default constructor.
◆ JMatrixND_t() [3/3]
Move constructor.
- Parameters
-
Definition at line 64 of file JMatrixND.hh.
64 :
66 {
68 }
void swap(JMatrixND_t &A)
Swap matrices.
◆ ~JMatrixND_t()
JMATH::JMatrixND_t::~JMatrixND_t |
( |
| ) |
|
|
inline |
Destructor.
Definition at line 74 of file JMatrixND.hh.
75 {
77 }
void clear()
Clear memory.
◆ clear()
void JMATH::JMatrixND_t::clear |
( |
| ) |
|
|
inline |
◆ resize()
void JMATH::JMatrixND_t::resize |
( |
const size_t | size | ) |
|
|
inline |
Resize matrix.
Note that this method does not maintain data in the matrix.
- Parameters
-
Definition at line 102 of file JMatrixND.hh.
103 {
105
106 if (size > this->
__m) {
107
110 }
111
114
116 THROW(JNewException,
"JMatrixND::resize(" <<
size <<
"): Memory allocation failure.");
117 }
118 }
119
121 }
122 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
size_t size() const
Get dimension of matrix.
◆ reset()
Set matrix to the null matrix.
- Returns
- this matrix
Definition at line 130 of file JMatrixND.hh.
131 {
132 double* p0 = this->
data();
133 double*
p1 = this->
data();
134
135 if (!this->
empty()) {
136
137 for (
size_t i = this->
size(); i != 0; --i, ++
p1) {
139 }
140
141 for (
size_t i = this->
size(); i != 1; --i,
p1 += this->
size()) {
142 memcpy(
p1, p0, this->
size() *
sizeof(
double));
143 }
144 }
145
146 return *this;
147 }
const double * data() const
Get pointer to data.
bool empty() const
Check emptyness.
◆ set()
Set matrix.
- Parameters
-
Definition at line 155 of file JMatrixND.hh.
156 {
158
159 memcpy(this->
data(), A.data(), A.size() * A.size() *
sizeof(
double));
160 }
void resize(const size_t size)
Resize matrix.
◆ swap()
Swap matrices.
- Parameters
-
Definition at line 168 of file JMatrixND.hh.
169 {
170 using std::swap;
171
175 }
◆ transpose()
Transpose.
- Returns
- this matrix
Definition at line 183 of file JMatrixND.hh.
184 {
185 using std::swap;
186
187 for (
size_t row = 0; row != this->
size(); ++row) {
188 for (size_t col = 0; col != row; ++col) {
189 swap((*
this)(row,col), (*
this)(col,row));
190 }
191 }
192
193 return *this;
194 }
◆ size()
size_t JMATH::JMatrixND_t::size |
( |
| ) |
const |
|
inline |
Get dimension of matrix.
- Returns
- dimension
Definition at line 202 of file JMatrixND.hh.
◆ capacity()
size_t JMATH::JMatrixND_t::capacity |
( |
| ) |
const |
|
inline |
Get capacity of dimension.
- Returns
- capacity
Definition at line 213 of file JMatrixND.hh.
◆ empty()
bool JMATH::JMatrixND_t::empty |
( |
| ) |
const |
|
inline |
Check emptyness.
- Returns
- true if empty; else false
Definition at line 224 of file JMatrixND.hh.
◆ data() [1/2]
const double * JMATH::JMatrixND_t::data |
( |
| ) |
const |
|
inline |
Get pointer to data.
- Returns
- pointer to data.
Definition at line 235 of file JMatrixND.hh.
◆ data() [2/2]
double * JMATH::JMatrixND_t::data |
( |
| ) |
|
|
inline |
Get pointer to data.
- Returns
- pointer to data.
Definition at line 246 of file JMatrixND.hh.
◆ operator[]() [1/2]
const double * JMATH::JMatrixND_t::operator[] |
( |
size_t | row | ) |
const |
|
inline |
Get row data.
- Parameters
-
- Returns
- pointer to row data
Definition at line 258 of file JMatrixND.hh.
◆ operator[]() [2/2]
double * JMATH::JMatrixND_t::operator[] |
( |
size_t | row | ) |
|
|
inline |
Get row data.
- Parameters
-
- Returns
- pointer to row data
Definition at line 270 of file JMatrixND.hh.
◆ operator()() [1/2]
double JMATH::JMatrixND_t::operator() |
( |
const size_t | row, |
|
|
const size_t | col ) const |
|
inline |
Get matrix element.
- Parameters
-
row | row number |
col | column number |
- Returns
- matrix element at (row,col)
Definition at line 283 of file JMatrixND.hh.
284 {
285 return *(
__p + row*
__n + col);
286 }
◆ operator()() [2/2]
double & JMATH::JMatrixND_t::operator() |
( |
const size_t | row, |
|
|
const size_t | col ) |
|
inline |
Get matrix element.
- Parameters
-
row | row number |
col | column number |
- Returns
- matrix element at (row,col)
Definition at line 296 of file JMatrixND.hh.
297 {
298 return *(
__p + row*
__n + col);
299 }
◆ at() [1/2]
double JMATH::JMatrixND_t::at |
( |
size_t | row, |
|
|
size_t | col ) const |
|
inline |
Get matrix element.
- Parameters
-
row | row number |
col | column number |
- Returns
- matrix element at (row,col)
Definition at line 309 of file JMatrixND.hh.
310 {
311 if (row >= this->
size() ||
312 col >= this->
size()) {
313 THROW(JIndexOutOfRange,
"JMatrixND::at(" << row <<
"," << col <<
"): index out of range.");
314 }
315
316 return (*this)(row, col);
317 }
◆ at() [2/2]
double & JMATH::JMatrixND_t::at |
( |
size_t | row, |
|
|
size_t | col ) |
|
inline |
Get matrix element.
- Parameters
-
row | row number |
col | column number |
- Returns
- matrix element at (row,col)
Definition at line 327 of file JMatrixND.hh.
328 {
329 if (row >= this->
size() ||
330 col >= this->
size()) {
331 THROW(JIndexOutOfRange,
"JMatrixND::at(" << row <<
"," << col <<
"): index out of range.");
332 }
333
334 return (*this)(row, col);
335 }
◆ __p
double* JMATH::JMatrixND_t::__p |
|
protected |
◆ __n
size_t JMATH::JMatrixND_t::__n |
|
protected |
◆ __m
size_t JMATH::JMatrixND_t::__m |
|
protected |
The documentation for this struct was generated from the following file: