Matriz chirrisquitica de adolfo@di-mare.com. Más...
Clases | |
| class | Matrix | 
| Esta es una clase matriz muy chirrisquitica que puede cambiar dinámicamente de tamaño.  Más... | |
| class | Sparse_Matrix | 
| Esta es una clase matriz muy chirrisquitica almacenada como una matriz rala.  Más... | |
| class | Matrix_List_ColVal | 
| Clase privada para implementar la lista de valores de cada fila.  Más... | |
| class | Matrix_List | 
| Esta es una clase matriz muy chirrisquitica almacenada como una matriz rala implementada con listas.  Más... | |
| class | Matrix_Map | 
| Esta es una clase matriz muy chirrisquitica almacenada como una matriz rala implementada con Map.  Más... | |
| class | Matrix_Sparse | 
| Esta es una clase matriz muy chirrisquitica almacenada como una matriz rala.  Más... | |
Funciones | |
| template<class T > | |
| bool | check_ok (const Matrix< T > &M) | 
| Verifica la invariante de la clase.  Más... | |
| template<class E > | |
| std::ostream & | operator<< (std::ostream &COUT, const Matrix< E > &M) | 
Graba en el flujo COUT el valor de M[][].  Más... | |
| template<class E > | |
| std::istream & | operator>> (std::istream &CIN, Matrix< E > &M) | 
Obtiene del flujo CIN el valor para M[][].  Más... | |
| template<class MAT > | |
| bool | isSquare (const MAT &M) | 
Retorna "true" si la matriz M[][] es una matriz cuadrada.  Más... | |
| template<class MAT > | |
| bool | isDiagonal (const MAT &M) | 
Retorna "true" si la matriz M[][] es una matriz diagonal.  Más... | |
| template<class MAT > | |
| bool | isScalar (const MAT &M) | 
Retorna "true" si la matriz M[][] es escalar.  Más... | |
| template<class MAT > | |
| bool | isUnit (const MAT &M) | 
Retorna "true" si la matriz M[][] es unitaria.  Más... | |
| template<class MAT > | |
| void | setUnit (MAT &M, unsigned n) | 
Convierte a M[][] en una matriz identidad de tamaño n x n.  Más... | |
| template<class MAT > | |
| bool | isNull (const MAT &M) | 
Retorna "true" si la matriz M[][] es nula.  Más... | |
| template<class MAT > | |
| bool | isSymmetric (const MAT &M) | 
Retorna "true" si la matriz M[][] es simétrica.  Más... | |
| template<class MAT > | |
| bool | isUpperTriangular (const MAT &M) | 
Retorna "true" si la matriz M[][] es triangular superior.  Más... | |
| template<class MAT > | |
| bool | isLowerTriangular (const MAT &M) | 
Retorna "true" si la matriz M[][] es triangular inferior.  Más... | |
| template<class T > | |
| bool | check_ok (const Sparse_Matrix< T > &M) | 
| Verifica la invariante de la clase.  Más... | |
| template<class E > | |
| std::ostream & | operator<< (std::ostream &COUT, const Sparse_Matrix< E > &M) | 
Graba en el flujo COUT el valor de M[][].  Más... | |
| template<class E > | |
| std::istream & | operator>> (std::istream &CIN, Sparse_Matrix< E > &M) | 
Obtiene del flujo CIN el valor para M[][].  Más... | |
| template<class T > | |
| bool | check_ok (const Matrix_List< T > &M) | 
| Verifica la invariante de la clase.  Más... | |
| template<class E > | |
| std::ostream & | operator<< (std::ostream &COUT, const Matrix_List< E > &M) | 
Graba en el flujo COUT el valor de M[][].  Más... | |
| template<class E > | |
| std::istream & | operator>> (std::istream &CIN, Matrix_List< E > &M) | 
Obtiene del flujo CIN el valor para M[][].  Más... | |
| template<class T > | |
| bool | check_ok (const Matrix_Map< T > &M) | 
| Verifica la invariante de la clase.  Más... | |
| template<class E > | |
| std::ostream & | operator<< (std::ostream &COUT, const Matrix_Map< E > &M) | 
Graba en el flujo COUT el valor de M[][].  Más... | |
| template<class E > | |
| std::istream & | operator>> (std::istream &CIN, Matrix_Map< E > &M) | 
Obtiene del flujo CIN el valor para M[][].  Más... | |
| template<class T > | |
| bool | check_ok (const Matrix_Sparse< T > &M) | 
| Verifica la invariante de la clase.  Más... | |
| template<class E > | |
| std::ostream & | operator<< (std::ostream &COUT, const Matrix_Sparse< E > &M) | 
Graba en el flujo COUT el valor de M[][].  Más... | |
| template<class E > | |
| std::istream & | operator>> (std::istream &CIN, Matrix_Sparse< E > &M) | 
Obtiene del flujo CIN el valor para M[][].  Más... | |
Matriz chirrisquitica de adolfo@di-mare.com.
| bool Mx::check_ok | ( | const Matrix< T > & | M | ) | 
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
\par <em>Rep</em> Modelo de la clase
Ok() 
(M.m_rows == 0) <==> (M.m_cols == 0)(M.m_rows == 0) <==> (M.m_val == 0)check_ok( m_val[k] ) | std::ostream& Mx::operator<< | ( | std::ostream & | COUT, | 
| const Matrix< E > & | M | ||
| ) | 
| std::istream& Mx::operator>> | ( | std::istream & | CIN, | 
| Matrix< E > & | M | ||
| ) | 
| bool Mx::isSquare | ( | const MAT & | M | ) | 
Retorna "true" si la matriz M[][] es una matriz cuadrada. 
Definición en la línea 34 del archivo Matrix_Lib.h.
| bool Mx::isDiagonal | ( | const MAT & | M | ) | 
Retorna "true" si la matriz M[][] es una matriz diagonal. 
Definición en la línea 45 del archivo Matrix_Lib.h.
| bool Mx::isScalar | ( | const MAT & | M | ) | 
Retorna "true" si la matriz M[][] es escalar. 
Definición en la línea 70 del archivo Matrix_Lib.h.
      
  | 
  inline | 
Retorna "true" si la matriz M[][] es unitaria. 
Definición en la línea 91 del archivo Matrix_Lib.h.
| void Mx::setUnit | ( | MAT & | M, | 
| unsigned | n | ||
| ) | 
Convierte a M[][] en una matriz identidad de tamaño n x n. 
Definición en la línea 104 del archivo Matrix_Lib.h.
| bool Mx::isNull | ( | const MAT & | M | ) | 
Retorna "true" si la matriz M[][] es nula. 
Definición en la línea 123 del archivo Matrix_Lib.h.
| bool Mx::isSymmetric | ( | const MAT & | M | ) | 
Retorna "true" si la matriz M[][] es simétrica. 
Definición en la línea 143 del archivo Matrix_Lib.h.
| bool Mx::isUpperTriangular | ( | const MAT & | M | ) | 
Retorna "true" si la matriz M[][] es triangular superior. 
Definición en la línea 165 del archivo Matrix_Lib.h.
| bool Mx::isLowerTriangular | ( | const MAT & | M | ) | 
Retorna "true" si la matriz M[][] es triangular inferior. 
Definición en la línea 189 del archivo Matrix_Lib.h.
| bool Mx::check_ok | ( | const Sparse_Matrix< T > & | M | ) | 
Verifica la invariante de la clase.
- El campo \c m_same indica cuál es el valor que se repite más en toda la matriz. - Usualmente \c same es el neutro aditivo \c value_type(). - No existe un constructor explícito para darle a \c m_same su valor inicial, que es siempre inicializado en \c value_type(). Para cambiarlo es necesario invocar el método \c setgetDefault(). - Los vectores \c m_I[], \c m_J[] y \c m_val[] son vectores paralelos, todos de longitud \c Sparse_Matrix::m_capacity. - La cantidad máxima de valores diferente que pueden ser almacenados en la matriz es \c Sparse_Matrix::m_capacity. - El largo de estos vectores aumenta cuando se hace referencia a un valor M(i,j) mediante la versión que no es \c const del \c operator()(i,j). O sea, que es ese método el encargado de agregar valores en \c m_val[], pues el operador homónimo \c const operator()(i,j) nunca agrega nada y, como es \c const, en general retorna una referencia constante a \c m_same. - 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_capacity. - 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
Ok() (m_capacity == 0) <==> (m_I == 0)(m_capacity == 0) <==> (m_J == 0)(m_capacity == 0) <==> (m_val == 0)(m_rows == 0) ==> (m_capacity == 0)(m_cols == 0) ==> (m_capacity == 0)(m_capacity != 0) <==> (m_I != 0)(m_capacity != 0) <==> (m_J != 0)(m_capacity != 0) <==> (m_val != 0)(m_rows == 0) <==> (m_cols == 0)( m_size <= m_capacity )check_ok (m_same)( (0<=m_I[k]) && (m_I[k] < m_rows) ) k = [0..m_size-1]( (0<=m_J[k]) && (m_J[k] < m_cols) ) k = [0..m_size-1]check_ok( m_val[k] ) Definición en la línea 149 del archivo Sparse_Matrix.h.
| std::ostream& Mx::operator<< | ( | std::ostream & | COUT, | 
| const Sparse_Matrix< E > & | M | ||
| ) | 
Graba en el flujo COUT el valor de M[][]. 
Definición en la línea 797 del archivo Sparse_Matrix.h.
| std::istream& Mx::operator>> | ( | std::istream & | CIN, | 
| Sparse_Matrix< E > & | M | ||
| ) | 
Obtiene del flujo CIN el valor para M[][]. 
Definición en la línea 810 del archivo Sparse_Matrix.h.
| bool Mx::check_ok | ( | const Matrix_List< T > & | M | ) | 
Verifica la invariante de la clase.
- El campo \c m_same indica cuál es el valor que se repite más en toda la matriz. - Usualmente \c m_same es el neutro aditivo \c value_type(). - No existe un constructor explícito para darle a \c m_same su valor inicial, que es siempre inicializado en \c value_type(). Para cambiarlo es necesario invocar el método \c setgetDefault(). - El vector \c m_VL[] contiene las listas de valores almacenados en la matriz. Cualquiera de estas listas puede estar vacía; aún todas pueden ser listas vacías. - La cantidad de columnas de la matriz es el valor fijo es \c m_cols. - El largo de las listas de valores cambia cuando se hace referencia a un valor M(i,j) mediante la versión que no es \c const del \c operator()(i,j). O sea, que es ese método el encargado de agregar valores en \c m_VL[], pues el operador homónimo \c const operator()(i,j) nunca agrega nada y, como es \c const, en general retorna una referencia constante a \c m_same. - Es posible que la matriz tenga dimensiones nulas, lo que implica que el vector \c m_VL[] está vacío. - No hace falta alacenar la cantidad de valores de la matriz porque se siempre es \c m_VL.size(). el valor \c 0 (cero) al campo \c m_capacity. \par <em>Rep</em> Modelo de la clase
Ok() (m_cols == 0) <==> (m_VL.empty())check_ok( M.m_same )check_ok( M(i,j) ) Definición en la línea 162 del archivo Matrix_List.h.
| std::ostream& Mx::operator<< | ( | std::ostream & | COUT, | 
| const Matrix_List< E > & | M | ||
| ) | 
Graba en el flujo COUT el valor de M[][]. 
Definición en la línea 613 del archivo Matrix_List.h.
| std::istream& Mx::operator>> | ( | std::istream & | CIN, | 
| Matrix_List< E > & | M | ||
| ) | 
Obtiene del flujo CIN el valor para M[][]. 
Definición en la línea 626 del archivo Matrix_List.h.
| bool Mx::check_ok | ( | const Matrix_Map< T > & | M | ) | 
Verifica la invariante de la clase.
- El campo \c m_same indica cuál es el valor que se repite más en toda la matriz. - Usualmente \c m_same es el neutro aditivo \c value_type(). - No existe un constructor explícito para darle a \c m_same su valor inicial, que es siempre inicializado en \c value_type(). Para cambiarlo es necesario invocar el método \c setgetDefault(). - El vector \c m_dicc contiene las listas de valores almacenados en la matriz. Cualquiera de estas listas puede estar vacía; aún todas pueden ser listas vacías. - La cantidad de columnas de la matriz es el valor fijo es \c m_cols. - El largo de las listas de valores cambia cuando se hace referencia a un valor M(i,j) mediante la versión que no es \c const del \c operator()(i,j). O sea, que es ese método el encargado de agregar valores en \c m_dicc, pues el operador homónimo \c const operator()(i,j) nunca agrega nada y, como es \c const, en general retorna una referencia constante a \c m_same. - Es posible que la matriz tenga dimensiones nulas, lo que implica que el vector \c m_dicc está vacío. - No hace falta alacenar la cantidad de valores de la matriz porque se siempre es \c m_VL.size(). el valor \c 0 (cero) al campo \c m_capacity. \par <em>Rep</em> Modelo de la clase
- http://www.di-mare.com/adolfo/binder/c03.htm#k1-Rep \remark Libera al programador de implementar el método \c Ok() - http://www.di-mare.com/adolfo/binder/c04.htm#sc11
(m_cols == 0) <==> (m_dicc.empty())check_ok( M.m_same )check_ok( M(i,j) ) Definición en la línea 164 del archivo Matrix_Map.h.
| std::ostream& Mx::operator<< | ( | std::ostream & | COUT, | 
| const Matrix_Map< E > & | M | ||
| ) | 
Graba en el flujo COUT el valor de M[][]. 
Definición en la línea 593 del archivo Matrix_Map.h.
| std::istream& Mx::operator>> | ( | std::istream & | CIN, | 
| Matrix_Map< E > & | M | ||
| ) | 
Obtiene del flujo CIN el valor para M[][]. 
Definición en la línea 606 del archivo Matrix_Map.h.
| bool Mx::check_ok | ( | const Matrix_Sparse< T > & | M | ) | 
Verifica la invariante de la clase.
- El campo \c m_same indica cuál es el valor que se repite más en toda la matriz. - Usualmente \c same es el neutro aditivo \c value_type(). - No existe un constructor explícito para darle a \c m_same su valor inicial, que es siempre inicializado en \c value_type(). Para cambiarlo es necesario invocar el método \c setgetDefault(). - Los vectores \c m_I[], \c m_J[] y \c m_val[] son vectores paralelos, todos de longitud \c Matrix_Sparse::m_capacity. - La cantidad máxima de valores diferente que pueden ser almacenados en la matriz es \c Matrix_Sparse::m_capacity. - El largo de estos vectores aumenta cuando se hace referencia a un valor M(i,j) mediante la versión que no es \c const del \c operator()(i,j). O sea, que es ese método el encargado de agregar valores en \c m_val[], pues el operador homónimo \c const operator()(i,j) nunca agrega nada y, como es \c const, en general retorna una referencia constante a \c m_same. - 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_capacity. - 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
Ok() (m_capacity == 0) <==> (m_I == 0)(m_capacity == 0) <==> (m_J == 0)(m_capacity == 0) <==> (m_val == 0)(m_rows == 0) ==> (m_capacity == 0)(m_cols == 0) ==> (m_capacity == 0)(m_capacity != 0) <==> (m_I != 0)(m_capacity != 0) <==> (m_J != 0)(m_capacity != 0) <==> (m_val != 0)(m_rows == 0) <==> (m_cols == 0)( m_size <= m_capacity )check_ok (m_same)( (0<=m_I[k]) && (m_I[k] < m_rows) ) k = [0..m_size-1]( (0<=m_J[k]) && (m_J[k] < m_cols) ) k = [0..m_size-1]check_ok( m_val[k] ) Definición en la línea 149 del archivo Matrix_Sparse.h.
| std::ostream& Mx::operator<< | ( | std::ostream & | COUT, | 
| const Matrix_Sparse< E > & | M | ||
| ) | 
Graba en el flujo COUT el valor de M[][]. 
Definición en la línea 797 del archivo Matrix_Sparse.h.
| std::istream& Mx::operator>> | ( | std::istream & | CIN, | 
| Matrix_Sparse< E > & | M | ||
| ) | 
Obtiene del flujo CIN el valor para M[][]. 
Definición en la línea 810 del archivo Matrix_Sparse.h.
 1.8.5