|
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) |
|
template<typename T>
class Aleph::DynMatrix< 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.
- Ver también
- DynArray