|
SkePU 0.7
|
A matrix container class (2D matrix), internally uses 1D container (std::vector). More...
#include <matrix.h>
Classes | |
| class | col_iterator |
| class | iterator |
| An matrix iterator class that tranverses row-wise. More... | |
| class | proxy_elem |
| A proxy class representing one element of Matrix. More... | |
Public Member Functions | |
| starpu_data_handle | registerMatrix () |
| To register Matrix with StarPU. Does not create partitions of Matrix. | |
| void | unregisterMatrix (bool update=true) |
| starpu_data_handle | registerPartitions (int _xparts=1, int _yparts=1) |
| To register Matrix to StarPU. This method can create partitions of the matrix. | |
| T * | GetArrayRep () |
| void | randomize (int min=0, int max=RAND_MAX) |
| Randomizes the Matrix. | |
| void | save (const std::string &filename) |
| Saves content of Matrix to a file. | |
| void | load (const std::string &filename, int rowWidth, int numRows=0) |
| Loads the Matrix from a file. | |
| ~Matrix () | |
| Matrix (size_type _rows, size_type _cols) | |
| Matrix (size_type _rows, size_type _cols, const T &val) | |
| Matrix (const Matrix< T > ©) | |
| size_type | size () const |
| size_type | total_rows () const |
| size_type | total_cols () const |
| void | change_layout () |
| Matrix< T > & | operator= (Matrix< T > &other) |
| Matrix< T > & | operator= (const T &elem) |
| bool | operator== (const Matrix< T > &c1) |
| bool | operator!= (const Matrix< T > &c1) |
| bool | operator< (const Matrix< T > &c1) |
| bool | operator> (const Matrix< T > &c1) |
| bool | operator<= (const Matrix< T > &c1) |
| bool | operator>= (const Matrix< T > &c1) |
| Matrix< T > & | subsection (size_type row, size_type col, size_type rowWidth, size_type colWidth) |
| iterator | begin () |
| const_iterator | begin () const |
| iterator | begin (unsigned row) |
| const_iterator | begin (unsigned row) const |
| iterator | end () |
| const_iterator | end () const |
| iterator | end (unsigned row) |
| const_iterator | end (unsigned row) const |
| std::pair< const_iterator, const_iterator > | col_iterator_range () |
| col_iterator | col_begin () |
| col_iterator | col_end () |
| size_type | capacity () const |
| void | flush () |
| bool | empty () const |
| void | clear () |
| void | swap (Matrix< T > &from) |
| void | acquireRead () const |
| void | acquireReadWrite () |
| const Matrix< T > & | operator+= (const Matrix< T > &rhs) |
| const Matrix< T > & | operator+= (const T &rhs) |
| const Matrix< T > & | operator-= (const Matrix< T > &rhs) |
| const Matrix< T > & | operator-= (const T &rhs) |
| const Matrix< T > & | operator*= (const Matrix< T > &rhs) |
| const Matrix< T > & | operator*= (const T &rhs) |
| const Matrix< T > & | operator/= (const Matrix< T > &rhs) |
| const Matrix< T > & | operator/= (const T &rhs) |
| const Matrix< T > & | operator%= (const Matrix< T > &rhs) |
| const Matrix< T > & | operator%= (const T &rhs) |
Friends | |
| std::ostream & | operator<< (std::ostream &os, Matrix< T > &matrix) |
| Overloaded stream operator, for testing purposes. | |
A matrix container class (2D matrix), internally uses 1D container (std::vector).
A skepu::Matrix is a 2D container that internally stores in a 1D std::vector. Its interface and behaviour is largely compatible with skepu::Vector and std::vector but with some additions and variations for 2D. Instead of the regular element, it sometimes returns a proxy element so it can distinguish between reads and writes. In this version, it just register/unregister data back to StarPU and does not keep track of data by itself (no lazy memory copying).
| skepu::Matrix< T >::~Matrix | ( | ) | [inline] |
Destructor, used to deallocate memory mainly, device memory.
References skepu::Matrix< T >::total_cols(), and skepu::Matrix< T >::total_rows().

| skepu::Matrix< T >::Matrix | ( | size_type | _rows, |
| size_type | _cols | ||
| ) | [inline] |
Constructor, used to allocate memory ($_rows * _cols$).
| _rows | Number of rows in the matrix. |
| _cols | Number of columns in the matrix. |
| skepu::Matrix< T >::Matrix | ( | size_type | _rows, |
| size_type | _cols, | ||
| const T & | val | ||
| ) | [inline] |
Constructor, used to allocate memory ($_rows * _cols$). With a value ot initialize all elements.
| _rows | Number of rows in the matrix. |
| _cols | Number of columns in the matrix. |
| val | A value to initialize all elements. |
| skepu::Matrix< T >::Matrix | ( | const Matrix< T > & | copy | ) | [inline] |
Copy Constructor, used to assign copy of another matrix.
| copy | Matrix that is being assigned. |
Update the matrix before assigning it to assign latest copy.
References skepu::Matrix< T >::acquireRead(), skepu::Matrix< T >::total_cols(), and skepu::Matrix< T >::total_rows().

| void skepu::Matrix< T >::acquireRead | ( | ) | const [inline] |
Ensure that data is most updated for reading purpose on CPU
| void skepu::Matrix< T >::acquireReadWrite | ( | ) | [inline] |
Ensure that data is most updated for reading and writing purpose on CPU
| Matrix< T >::iterator skepu::Matrix< T >::begin | ( | ) |
Please refer to the documentation of std::vector and skepu::Matrix::iterator.
| Matrix< T >::const_iterator skepu::Matrix< T >::begin | ( | ) | const |
Please refer to the documentation of std::vector and skepu::Matrix::iterator.
| Matrix< T >::iterator skepu::Matrix< T >::begin | ( | unsigned | row | ) |
Please refer to the documentation of std::vector and skepu::Matrix::iterator. Uses row to get an iterator for that row.
| row | The index of row from where to start iterator. |
| Matrix< T >::const_iterator skepu::Matrix< T >::begin | ( | unsigned | row | ) | const |
Please refer to the documentation of std::vector and skepu::Matrix::iterator. Uses row to get an iterator for that row.
| row | The index of row from where to start iterator. |
| Matrix< T >::size_type skepu::Matrix< T >::capacity | ( | ) | const |
Please refer to the documentation of std::vector.
| void skepu::Matrix< T >::change_layout | ( | ) | [inline] |
A small utility to change rows and columns numbers with each other. A Matrix (4x7) will become (7x4) after this function call without changing the actual values. Not similar to transpose where you actually change the values.
| void skepu::Matrix< T >::clear | ( | ) |
Please refer to the documentation of std::vector. Invalidates all copies before clear.
| Matrix< T >::col_iterator skepu::Matrix< T >::col_begin | ( | ) |
This works by taking a transpose of current matrix.
| Matrix< T >::col_iterator skepu::Matrix< T >::col_end | ( | ) |
This works by taking a transpose of current matrix.
| std::pair< typename Matrix< T >::const_iterator, typename Matrix< T >::const_iterator > skepu::Matrix< T >::col_iterator_range | ( | ) |
This works by taking a transpose of current matrix. Returns begin and end iterator as std::pair. Can be used to make read-onkly traversal.
| bool skepu::Matrix< T >::empty | ( | ) | const |
Please refer to the documentation of std::vector.
| Matrix< T >::iterator skepu::Matrix< T >::end | ( | ) |
Please refer to the documentation of std::vector and skepu::Matrix::iterator.
| Matrix< T >::const_iterator skepu::Matrix< T >::end | ( | ) | const |
Please refer to the documentation of std::vector and skepu::Matrix::iterator.
| Matrix< T >::const_iterator skepu::Matrix< T >::end | ( | unsigned | row | ) | const |
Please refer to the documentation of std::vector and skepu::Matrix::iterator. Get iterator to last element of row.
| row | Index of row the iterator will point to the last element. |
| Matrix< T >::iterator skepu::Matrix< T >::end | ( | unsigned | row | ) |
Please refer to the documentation of std::vector and skepu::Matrix::iterator. Get iterator to last element of row.
| row | Index of row the iterator will point to the last element. |
| void skepu::Matrix< T >::flush | ( | ) |
Flushes the matrix, synchronizing it with the device then release all device allocations.
| T* skepu::Matrix< T >::GetArrayRep | ( | ) | [inline] |
Get array representation
| void skepu::Matrix< T >::load | ( | const std::string & | filename, |
| int | rowWidth, | ||
| int | numRows = 0 |
||
| ) | [inline] |
Loads the Matrix from a file.
Reads a variable number of elements from a file. In the file, all elemets should be in ASCII on one line with whitespace between each element. Mainly for testing purposes.
| filename | Name of file to save to. |
| rowWidth | The width of a row. All rows get same amount of width. |
| numRows | The number of rows to be loaded. Default value 0 means all rows. |
References skepu::Matrix< T >::clear(), and skepu::Matrix< T >::size().

| bool skepu::Matrix< T >::operator!= | ( | const Matrix< T > & | c1 | ) |
Please refer to the documentation of std::vector.
References skepu::Matrix< T >::acquireRead().

| const Matrix< T > & skepu::Matrix< T >::operator%= | ( | const Matrix< T > & | rhs | ) |
Taking Mod with rhs matrix, element wise to current matrix. Two matrices must be of same size.
| rhs | The value which is used in taking mod to current matrix. |
References skepu::Matrix< T >::acquireRead().

| const Matrix< T > & skepu::Matrix< T >::operator%= | ( | const T & | rhs | ) |
Taking Mod with a scalar value to all elements in the current matrix.
| rhs | The value which is used in taking mod to current matrix. |
| const Matrix< T > & skepu::Matrix< T >::operator*= | ( | const T & | rhs | ) |
Multiplies a scalar value to all elements in the current matrix.
| rhs | The value which is used in multiplication to current matrix. |
| const Matrix< T > & skepu::Matrix< T >::operator*= | ( | const Matrix< T > & | rhs | ) |
Multiplies rhs matrix operation element wise to current matrix. Two matrices must be of same size. NB it is not matrix multiplication
| rhs | The matrix which is used in multiplication to current matrix. |
References skepu::Matrix< T >::acquireRead().

| const Matrix< T > & skepu::Matrix< T >::operator+= | ( | const Matrix< T > & | rhs | ) |
Add rhs matrix operation element wise to current matrix. Two matrices must be of same size.
| rhs | The matrix which is used in addition to current matrix. |
References skepu::Matrix< T >::acquireRead().

| const Matrix< T > & skepu::Matrix< T >::operator+= | ( | const T & | rhs | ) |
Adds a scalar value to all elements in the current matrix.
| rhs | The value which is used in addition to current matrix. |
| const Matrix< T > & skepu::Matrix< T >::operator-= | ( | const Matrix< T > & | rhs | ) |
Subtract rhs matrix operation element wise to current matrix. Two matrices must be of same size.
| rhs | The matrix which is used in subtraction to current matrix. |
References skepu::Matrix< T >::acquireRead().

| const Matrix< T > & skepu::Matrix< T >::operator-= | ( | const T & | rhs | ) |
Subtracts a scalar value to all elements in the current matrix.
| rhs | The value which is used in subtraction to current matrix. |
| const Matrix< T > & skepu::Matrix< T >::operator/= | ( | const Matrix< T > & | rhs | ) |
Divides rhs matrix operation element wise to current matrix. Two matrices must be of same size. NB it is not matrix multiplication
| rhs | The matrix which is used in division to current matrix. |
References skepu::Matrix< T >::acquireRead().

| const Matrix< T > & skepu::Matrix< T >::operator/= | ( | const T & | rhs | ) |
Divides a scalar value to all elements in the current matrix.
| rhs | The value which is used in division to current matrix. |
| bool skepu::Matrix< T >::operator< | ( | const Matrix< T > & | c1 | ) |
Please refer to the documentation of std::vector.
References skepu::Matrix< T >::acquireRead().

| bool skepu::Matrix< T >::operator<= | ( | const Matrix< T > & | c1 | ) |
Please refer to the documentation of std::vector.
References skepu::Matrix< T >::acquireRead().

| Matrix< T > & skepu::Matrix< T >::operator= | ( | const T & | elem | ) |
To initialize a matrix with some scalar value.
| elem | The element you want to assign to all matrix. |
| Matrix< T > & skepu::Matrix< T >::operator= | ( | Matrix< T > & | other | ) |
copy matrix,,, copy row and column count as well along with data
References skepu::Matrix< T >::acquireRead().

| bool skepu::Matrix< T >::operator== | ( | const Matrix< T > & | c1 | ) |
Please refer to the documentation of std::vector.
References skepu::Matrix< T >::acquireRead().

| bool skepu::Matrix< T >::operator> | ( | const Matrix< T > & | c1 | ) |
Please refer to the documentation of std::vector.
References skepu::Matrix< T >::acquireRead().

| bool skepu::Matrix< T >::operator>= | ( | const Matrix< T > & | c1 | ) |
Please refer to the documentation of std::vector.
References skepu::Matrix< T >::acquireRead().

| void skepu::Matrix< T >::randomize | ( | int | min = 0, |
| int | max = RAND_MAX |
||
| ) | [inline] |
Randomizes the Matrix.
Sets each element of the Matrix to a random number between min and max. The numbers are generated as integers but are cast to the type of the matrix.
| min | The smallest number an element can become. |
| max | The largest number an element can become. |
References skepu::Matrix< T >::size(), and skepu::Matrix< T >::unregisterMatrix().

| void skepu::Matrix< T >::save | ( | const std::string & | filename | ) | [inline] |
Saves content of Matrix to a file.
Outputs the matrix as text on one line with space between elements to the specified file. Mainly for testing purposes.
| filename | Name of file to save to. |
| size_type skepu::Matrix< T >::size | ( | ) | const [inline] |
| Matrix< T > & skepu::Matrix< T >::subsection | ( | size_type | row, |
| size_type | col, | ||
| size_type | rowWidth, | ||
| size_type | colWidth | ||
| ) |
To get a subsection of matrix. This will creat a separate copy.
| row | Index of row to get. |
| rowWidth | Width of the row of new Matrix. |
| col | Index of column to get. |
| colWidth | Width of column of new Matrix. |
References skepu::Matrix< T >::total_cols(), and skepu::Matrix< T >::total_rows().

| void skepu::Matrix< T >::swap | ( | Matrix< T > & | from | ) |
Please refer to the documentation of std::vector. Updates and invalidate both Matrices before swapping.
References skepu::Matrix< T >::unregisterMatrix().

| size_type skepu::Matrix< T >::total_cols | ( | ) | const [inline] |
| size_type skepu::Matrix< T >::total_rows | ( | ) | const [inline] |
| void skepu::Matrix< T >::unregisterMatrix | ( | bool | update = true | ) | [inline] |
Used to unregister data handle with StarPU (pass "false" to not ensure most updated value is returned back)
| std::ostream& operator<< | ( | std::ostream & | os, |
| Matrix< T > & | matrix | ||
| ) | [friend] |
Overloaded stream operator, for testing purposes.
Outputs the matrix rowwise having one row on each line.
1.7.4