#include <tpl_dynMat.H>
Métodos públicos | |
void | set_default_initial_value (const T &value) |
void | swap (DynMatrix &mat) |
void | set_dimension (const size_t __n, const size_t __m) |
Reajusta la dimensión del arreglo. | |
void | allocate () |
Asegura que toda la memoria del arreglo esté apartada. | |
DynMatrix (const size_t __n, const size_t __m, const T &zero=T()) | |
DynMatrix (const DynMatrix< T > &mat) | |
DynMatrix (DynMatrix< T > &&mat) | |
DynMatrix< T > & | operator= (const DynMatrix< T > &mat) |
DynMatrix< T > | operator= (DynMatrix< T > &&mat) |
bool | operator== (const DynMatrix< T > &mat) const |
const size_t & | rows () const |
Retorna la cantidad de filas de la matriz. | |
const size_t & | cols () const |
Retorna la cantidad de columnas de la matriz. | |
const T & | read (const size_t i, const size_t j) const |
Lee el valor de la i fila j columna. | |
T & | write (const size_t i, const size_t j, const T &data) |
T & | access (const size_t i, const size_t j) |
acceso sin verificación de entrada esparcida | |
T & | operator() (const size_t i, const size_t j) |
T & | access (const size_t i, const size_t j) const |
T & | operator() (const size_t i, const size_t j) const |
template<class Operation > | |
bool | traverse (Operation &operation) const |
template<class Operation > | |
bool | traverse (Operation &operation) |
template<class Operation > | |
bool | traverse (Operation &&operation=Operation()) const |
template<class Operation > | |
bool | traverse (Operation &&operation=Operation()) |
Functional_Methods (T) | |
Matriz dinámica.
Esta clase implementa una matriz rectangular de n filas por m columnas, basada en el tipo DynArray, que contiene elementos genérico de tipo T. Puesto que está basada en DynArray, muchos de las entradas que nunca hayan sido escritas consumen espacio de memoria.
Por omisión, las entradas de la matriz albergan el valor DynMatrix<T>::Zero, el cual es el valor que escribe el constructor por omisión del tipo genérico T::T(), lo que exige obligatoriedad en la existencia de este constructor.
El acceso a una entrada de una matriz mat se realiza mediante el operador mat(i, j). Este operador distingue lecturas de escrituras, pero es un poco más lento que el acceso a través de las las primitivas read() o write(). Por otra parte, hay situaciones en que no se puede usar el acceso por el operador (i,j).
Cada entrada i,j no escrita contiene el Zero, independientemente de que ocupe o no memoria.
Cuando una entrada se escribe por primera vez, se verifica si existe memoria apartada para albergar la entrada. Si tal es el caso, simplememte se escribe; de lo contrario, a través de DynArray, se aparta memoria y se escribe con el valor dado. DynArray puede fallar en apartar memoria, en cuyo caso se dispara la excepción std::bad_alloc.
|
inline |
Constructor principal de matrix dinámica.
[in] | __n | número de filas |
[in] | __m | número de columnas |
[in] | zero | valor cero que debe tener una entrada nula o no escrita de la la matriz. Por omisión, se toma el valor T::T(). |
bad_alloc | si no hay suficiente memoria |
|
inline |
Constructor copia.
Crea una nueva matriz dinámica copia eficiente de los elementos de mat.
[in] | mat | matriz a copiar. |
bad_alloc | si no hay suficiente memoria. |
|
inline |
Asignación de matriz.
Asigna a this los elementos de mat.
[in] | mat | matriz a copiar. |
bad_alloc | si no hay suficiente memoria. |
|
inline |
Escribe data en la i fila y j columna
[in] | i | índice de fila |
[in] | j | índice de columna |
[in] | data | dato a escribir en la entrada i,j |
bad_alloc | si no hay suficiente memoria. |