Esta es una clase matriz muy chirrisquitica que puede cambiar dinámicamente de tamaño.
Más...
|
| Matrix (unsigned m=1, unsigned n=1) |
| Constructor de vector. Más...
|
|
| Matrix (const Matrix &o) |
| Constructor de copia. Más...
|
|
| Matrix (const value_type V) |
| Matriz escalar de valor V . Más...
|
|
| ~Matrix () |
| Destructor. Más...
|
|
unsigned | rows () const |
| Cantidad de filas de la matriz. Más...
|
|
unsigned | cols () const |
| Cantidad de columnas de la Matriz. Más...
|
|
unsigned | size () const |
| Cantidad de valores almacenados en la matriz. Más...
|
|
unsigned | count () const |
| Cantidad de valores almacenados en la matriz. Más...
|
|
size_type | capacity () const |
| Cantidad máxima posible de valores diferentes que pueden ser almacenados en la matriz. Más...
|
|
Matrix & | operator= (const Matrix &o) |
| Sinónimo de this->copy(o) Más...
|
|
Matrix & | copy (const Matrix &o) |
| Copia desde "o" . Más...
|
|
Matrix & | move (Matrix &o) |
| Traslada el valor de "o" a "*this" . Más...
|
|
Matrix & | swap (Matrix &o) |
| Intercambia los valores de "*this" y "o" . Más...
|
|
bool | equals (const Matrix &o) const |
| ¿¿¿ (*this==o) ??? Más...
|
|
bool | same (const Matrix &o) const |
| Retorna true si "o" comparte sus valores con "*this" . Más...
|
|
reference | operator() (unsigned, unsigned) |
| Retorna una referencia al elemento [i,j] de la matriz. Más...
|
|
const_reference | operator() (unsigned, unsigned) const |
| Retorna una referencia al elemento [i,j] de la matriz ( const ). Más...
|
|
reference | at (unsigned m, unsigned n) |
| Retorna operator()(m,n) . Más...
|
|
const_reference | at (unsigned m, unsigned n) const |
| Retorna operator()(m,n) "const" . Más...
|
|
void | reSize (unsigned, unsigned) |
| Le cambia las dimensiones a la matriz. Más...
|
|
void | reShape (unsigned, unsigned) |
| Le ajusta las dimensiones a la matriz. Más...
|
|
void | transpose () |
| Transpone la matriz. Más...
|
|
template<class E>
class Mx::Matrix< E >
Esta es una clase matriz muy chirrisquitica que puede cambiar dinámicamente de tamaño.
- La matriz tiene tamaño
rows()
x cols()
- Se le puede cambiar el tamaño dinámicamente con el método
reSize()
.
- La clase
E
debe incluir un neutro para la adición, cuyo valor debe poderse obtener invocando el convertidor Sparse_Matrix<E>::value_type()
.
- Las operaciones aritméticas "+" "-" "*" deben estar definidas para
Matrix<E>::value_type
y debe existir el valor Matrix<E>::value_type()
y también Matrix<E>::value_type(1)
(para matrices unitarias)
- Los valores de la matriz pueden estar almacenados por filas o por columnas, según quede implementado el método
Matrix<E>::operator(unsigned, unsigned)
- Ver también
- http://www.oonumerics.org/oon/
Definición en la línea 63 del archivo Matrix.h.
template<class E>
template<class T >
bool check_ok |
( |
const Matrix< T > & |
M | ) |
|
|
friend |
Verifica la invariante de la clase.
- Es posible que la matriz tenga dimensiones nulas, lo que implica que todos los
punteros a los vectors paralelos deben ser nulos. Este hecho se marca dándolo
el valor \c 0 (cero) al campo \c m_val.
- Las matrices quedan almacenadas en un vector de tamaño [M x N].
- En todos los algoritmos, "m" o "m_rows" es la cantidad de filas == \c rows()
- En todos los algoritmos, "n" o "m_cols" es la cantidad de columnas == \c cols()
\par <em>Rep</em> Modelo de la clase
+---+ / \
+---+ (almacenamiento por filas) | 4 5 6 7 |
m_cols == 4
| 4 | \ /
+---+ +---+---+---+---+---+---+---+---+
| *-|-->| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+---+ +---+---+---+---+---+---+---+---+
\par <em>Rep</em> Modelo de la clase
+---+
+---+ (almacenamiento por columnas) | b f |
m_rows == 4
+---+ +---+---+---+---+---+---+---+---+ \ d h /
| *-|-->| a | b | c | d | e | f | g | h |
+---+ +---+---+---+---+---+---+---+---+
- Invariante:
(M.m_rows == 0) <==> (M.m_cols == 0)
- Invariante:
(M.m_rows == 0) <==> (M.m_val == 0)
- Invariante:
check_ok( m_val[k] )
Definición en la línea 170 del archivo Matrix.h.