#include <include/EST_TMatrix.h>
Public Member Functions | |
EST_TMatrix () | |
default constructor | |
EST_TMatrix (const EST_TMatrix< T > &m) | |
copy constructor | |
EST_TMatrix (int rows, int cols) | |
"size" constructor | |
EST_TMatrix (int rows, int cols, T *memory, int offset=0, int free_when_destroyed=0) | |
construct from memory supplied by caller | |
~EST_TMatrix () | |
EST_TMatrix. | |
bool | have_rows_before (int n) const |
bool | have_columns_before (int n) const |
void | resize (int rows, int cols, int set=1) |
void | fill (const T &v) |
fill matrix with value v | |
void | fill () |
EST_TMatrix & | operator= (const EST_TMatrix &s) |
assignment operator | |
EST_TMatrix & | add_rows (const EST_TMatrix &s) |
The two versions of what might have been operator +=. | |
EST_TMatrix & | add_columns (const EST_TMatrix &s) |
access | |
Basic access methods for matrices. | |
int | num_rows () const |
return number of rows | |
int | num_columns () const |
return number of columns | |
INLINE const T & | a_no_check (int row, int col) const |
const access with no bounds check, care recommend | |
INLINE T & | a_no_check (int row, int col) |
access with no bounds check, care recommend | |
INLINE const T & | a_no_check_1 (int row, int col) const |
INLINE T & | a_no_check_1 (int row, int col) |
const T & | a_check (int row, int col) const |
const element access function | |
T & | a_check (int row, int col) |
non-const element access function | |
const T & | a (int row, int col) const |
T & | a (int row, int col) |
const T & | operator() (int row, int col) const |
const element access operator | |
T & | operator() (int row, int col) |
non-const element access operator | |
Sub-Matrix/Vector Extraction | |
All of these return matrices and vectors which share memory with the original, so altering values them alters the original. | |
void | row (EST_TVector< T > &rv, int r, int start_c=0, int len=-1) |
Make the vector { rv} a window onto row { r}. | |
void | column (EST_TVector< T > &cv, int c, int start_r=0, int len=-1) |
Make the vector { cv} a window onto column { c}. | |
void | sub_matrix (EST_TMatrix< T > &sm, int r=0, int numr=EST_ALL, int c=0, int numc=EST_ALL) |
Make the matrix { sm} a window into this matrix. | |
Copy in and out | |
Copy data between buffers and the matrix. | |
void | copy_row (int r, T *buf, int offset=0, int num=-1) const |
void | copy_row (int r, EST_TVector< T > &t, int offset=0, int num=-1) const |
void | copy_column (int c, T *buf, int offset=0, int num=-1) const |
void | copy_column (int c, EST_TVector< T > &t, int offset=0, int num=-1) const |
void | set_row (int n, const T *buf, int offset=0, int num=-1) |
void | set_row (int n, const EST_TVector< T > &t, int offset=0, int num=-1) |
void | set_row (int r, const EST_TMatrix< T > &from, int from_r, int from_offset=0, int offset=0, int num=-1) |
void | set_column (int n, const T *buf, int offset=0, int num=-1) |
void | set_column (int n, const EST_TVector< T > &t, int offset=0, int num=-1) |
void | set_column (int c, const EST_TMatrix< T > &from, int from_c, int from_offset=0, int offset=0, int num=-1) |
void | set_memory (T *buffer, int offset, int rows, int columns, int free_when_destroyed=0) |
![]() | |
INLINE unsigned int | vcell_pos (unsigned int c, unsigned int cs) const |
The memory access rule, in one place for easy reference. | |
INLINE unsigned int | vcell_pos (unsigned int c) const |
INLINE unsigned int | vcell_pos_1 (unsigned int c) const |
INLINE const T & | fast_a_v (int c) const |
quick method for returning (x[n]) | |
INLINE T & | fast_a_v (int c) |
INLINE const T & | fast_a_1 (int c) const |
INLINE T & | fast_a_1 (int c) |
void | set_values (const T *data, int step, int start_c, int num_c) |
Get and set values from array. | |
void | get_values (T *data, int step, int start_c, int num_c) const |
void | copy (const EST_TVector< T > &a) |
private copy function, called from all other copying functions. | |
void | copy_data (const EST_TVector< T > &a) |
just copy data, no resizing, no size check. | |
void | just_resize (int new_cols, T **old_vals) |
resize the memory and reset the bounds, but don't set values. | |
void | default_vals () |
sets data and length to default values (0 in both cases). | |
EST_TVector () | |
default constructor | |
EST_TVector (const EST_TVector< T > &v) | |
copy constructor | |
EST_TVector (int n) | |
"size" constructor - make vector of size n. | |
EST_TVector (int, T *memory, int offset=0, int free_when_destroyed=0) | |
construct from memory supplied by caller | |
~EST_TVector () | |
destructor. | |
void | resize (int n, int set=1) |
const T * | memory () const |
T * | memory () |
void | set_memory (T *buffer, int offset, int columns, int free_when_destroyed=0) |
EST_TVector & | operator= (const EST_TVector &s) |
assignment operator | |
void | fill (const T &v) |
Fill entire array will value <parameter>v</parameter>. | |
void | empty () |
Fill vector with default value. | |
int | operator== (const EST_TVector &v) const |
is true if vectors are equal size and all elements are equal. | |
int | operator!= (const EST_TVector &v) const |
is true if vectors are not equal size or a single elements isn't equal. | |
void | copy_section (T *dest, int offset=0, int num=-1) const |
Copy data in and out. Subclassed by SimpleVector for speed. | |
void | set_section (const T *src, int offset=0, int num=-1) |
void | sub_vector (EST_TVector< T > &sv, int start_c=0, int len=-1) |
Create a sub vector. | |
void | integrity () const |
template<> | |
const EST_DMatrix * | def_val |
template<> | |
EST_DMatrix * | error_return |
template<> | |
const EST_DVector * | def_val |
template<> | |
EST_DVector * | error_return |
template<> | |
const EST_FMatrix * | def_val |
template<> | |
EST_FMatrix * | error_return |
INLINE int | num_columns () const |
number of items in vector. | |
INLINE int | length () const |
number of items in vector. | |
INLINE int | n () const |
number of items in vector. | |
INLINE const T & | a_no_check (int n) const |
read-only const access operator: without bounds checking | |
INLINE T & | a_no_check (int n) |
read/write non-const access operator: without bounds checking | |
INLINE const T & | a_no_check_1 (int n) const |
read-only const access operator: without bounds checking | |
INLINE T & | a_no_check_1 (int n) |
read/write non-const access operator: without bounds checking | |
const T & | a_check (int n) const |
read-only const access operator: with bounds checking | |
T & | a_check (int n) |
read/write non-const access operator: with bounds checking | |
const T & | a (int n) const |
T & | a (int n) |
const T & | operator() (int n) const |
read-only const access operator: return reference to nth member | |
T & | operator[] (int n) |
read/write non const access operator: return reference to nth member | |
Protected Member Functions | |
INLINE unsigned int | mcell_pos (int r, int c, int rs, int cs) const |
INLINE unsigned int | mcell_pos (int r, int c) const |
INLINE unsigned int | mcell_pos_1 (int r, int c) const |
INLINE const T & | fast_a_m (int r, int c) const |
quick method for returning { x[m][n]} | |
INLINE T & | fast_a_m (int r, int c) |
INLINE const T & | fast_a_1 (int r, int c) const |
INLINE T & | fast_a_1 (int r, int c) |
void | set_values (const T *data, int r_step, int c_step, int start_r, int num_r, int start_c, int num_c) |
Get and set values from array. | |
void | get_values (T *data, int r_step, int c_step, int start_r, int num_r, int start_c, int num_c) const |
void | copy (const EST_TMatrix< T > &a) |
private resize and copy function. | |
void | copy_data (const EST_TMatrix< T > &a) |
just copy data, no resizing, no size check. | |
void | just_resize (int new_rows, int new_cols, T **old_vals) |
resize the memory and reset the bounds, but don't set values. | |
void | default_vals () |
sets data and length to default values (0 in both cases). | |
Protected Attributes | |
unsigned int | p_num_rows |
Visible shape. | |
unsigned int | p_row_step |
How to access the memory. | |
io | |
EST_read_status | load (const class EST_String &filename) |
load Matrix from file - Not currently implemented. | |
EST_write_status | save (const class EST_String &filename) const |
save Matrix to file { filename} | |
ostream & | operator<< (ostream &st, const EST_TMatrix< T > &a) |
print matrix. | |
Additional Inherited Members | |
![]() | |
T * | p_memory |
unsigned int | p_num_columns |
Visible shape. | |
unsigned int | p_offset |
How to access the memory. | |
unsigned int | p_column_step |
bool | p_sub_matrix |
![]() | |
static const T * | def_val = &def_val_item_ptr |
default value, used for filling matrix after resizing | |
static T * | error_return = &error_return_item_ptr |
Template Matrix class.
This is an extension of the EST_TVector class to two dimensions.
Definition at line 91 of file EST_TMatrix.h.
void EST_TMatrix< T >::resize | ( | int | rows, |
int | cols, | ||
int | set = 1 |
||
) |
resize matrix. If { set=1}, then the current values in the matrix are preserved up to the new size { n}. If the new size exceeds the old size, the rest of the matrix is filled with the { def_val}
Definition at line 250 of file EST_TMatrix.cc.
void EST_TMatrix< T >::copy_row | ( | int | r, |
T * | buf, | ||
int | offset = 0 , |
||
int | num = -1 |
||
) | const |
Copy row { r} of matrix to { buf}. { buf} should be pre-malloced to the correct size.
Definition at line 381 of file EST_TMatrix.cc.
void EST_TMatrix< T >::copy_row | ( | int | r, |
EST_TVector< T > & | t, | ||
int | offset = 0 , |
||
int | num = -1 |
||
) | const |
Copy row <parameter>r</parameter> of matrix to <parameter>buf</parameter>. <parameter>buf</parameter> should be pre-malloced to the correct size.
Definition at line 399 of file EST_TMatrix.cc.
void EST_TMatrix< T >::copy_column | ( | int | c, |
T * | buf, | ||
int | offset = 0 , |
||
int | num = -1 |
||
) | const |
Copy column { c} of matrix to { buf}. { buf} should be pre-malloced to the correct size.
Definition at line 420 of file EST_TMatrix.cc.
void EST_TMatrix< T >::copy_column | ( | int | c, |
EST_TVector< T > & | t, | ||
int | offset = 0 , |
||
int | num = -1 |
||
) | const |
Copy column <parameter>c</parameter> of matrix to <parameter>buf</parameter>. <parameter>buf</parameter> should be pre-malloced to the correct size.
Definition at line 442 of file EST_TMatrix.cc.
void EST_TMatrix< T >::set_row | ( | int | n, |
const T * | buf, | ||
int | offset = 0 , |
||
int | num = -1 |
||
) |
Copy buf into row { n} of matrix.
Definition at line 466 of file EST_TMatrix.cc.
void EST_TMatrix< T >::set_column | ( | int | n, |
const T * | buf, | ||
int | offset = 0 , |
||
int | num = -1 |
||
) |
Copy buf into column { n} of matrix.
Definition at line 478 of file EST_TMatrix.cc.
void EST_TMatrix< T >::set_memory | ( | T * | buffer, |
int | offset, | ||
int | rows, | ||
int | columns, | ||
int | free_when_destroyed = 0 |
||
) |
For when you absolutely have to have access to the memory.
Definition at line 371 of file EST_TMatrix.cc.