La Matriz Abstracta no Polimorfica:
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Amigas 'defines'
Tipos públicos | Métodos públicos | Métodos protegidos | Métodos privados | Atributos privados | Amigas
Referencia de la plantilla de la Clase Mx::Matrix_List< E >

Matriz muy chirrisquitica almacenada como matriz rala implementada con listas. Más...

#include <Matrix_List.h>

Diagrama de herencias de Mx::Matrix_List< E >
Mx::Matrix_BASE< E >

Lista de todos los miembros.

Tipos públicos

typedef E value_type
 Tipo del objeto almacenado, similar al nombre usado en STL.
typedef value_typereference
 Referencia al objeto almacenado, similar al nombre usado en STL.
typedef const value_typeconst_reference
 Referencia constante al objeto almacenado, similar al nombre usado en STL.

Métodos públicos

 Matrix_List (unsigned m=1, unsigned n=1)
 Constructor de vector.
 Matrix_List (const Matrix_List &o)
 Constructor de copia.
 Matrix_List (const E &V)
 Constructor escalar.
 ~Matrix_List ()
 Destructor.
unsigned rows () const
 Cantidad de filas de la matriz.
unsigned cols () const
 Cantidad de columnas de la matriz.
unsigned size () const
 Cantidad de valores almacenados en la matriz.
unsigned count () const
 Sinónimo de size().
unsigned capacity () const
 Cantidad máxima posible de valores diferentes que pueden ser almacenados en la matriz.
Matrix_Listoperator= (const Matrix_List &o)
Matrix_Listcopy (const Matrix_List &o)
 Copia desde "M".
Matrix_Listmove (Matrix_List &o)
 Traslada el valor de "M" a "*this".
Matrix_Listswap (Matrix_List &o)
 Intercambia los valores de "*this" y "M".
void clear ()
 Deja el valor de "*this" en el valor en que lo inicializa el constructor de vector.
bool equals (const Matrix_List &o) const
 ¿¿¿ A == B ???
E & operator() (unsigned, unsigned)
 Retorna una referencia al elemento [i][j] de la matriz.
const E & operator() (unsigned, unsigned) const
 Retorna una referencia constante al elemento [i][j] de la matriz [CONST].
E & at (unsigned i, unsigned j)
 Retorna una referencia al elemento [i][j] de la matriz.
const E & at (unsigned i, unsigned j) const
 Retorna una referencia constante al elemento [i][j] de la matriz [CONST].
void reShape (unsigned m, unsigned n)
 Le ajusta las dimensiones a la matriz.
void reSize (unsigned m, unsigned n)
 Le cambia las dimensiones a la matriz.
void transpose ()
 Transforma la matriz en su transpuesta.
void setDefault (const E &same)
 Define cuál es el valor almacenado en la mayor parte de la matriz.
const E & getDefault ()
 Valor almacenado en la mayor parte de la matriz.
bool same (const Matrix_BASE &M) const
 Retorna true si "M" comparte su valor con "*this".

Métodos protegidos

Matrix_BASEcopy (const Matrix_BASE &M)
 Copia desde "M".
Matrix_BASEmove (Matrix_BASE &M)
 Traslada el valor de "M" a "*this".
Matrix_BASEswap (Matrix_BASE &M)
 Intercambia los valores de "*this" y "M".
bool equals (const Matrix_BASE &M) const
 ¿¿¿ A == B ???

Métodos privados

void reserve (unsigned n)
 Ajusta la matriz para que pueda almacenar al menos
valores diferentes a getDefault().
void reSize (unsigned newsize)

Atributos privados

std::vector< std::list
< Matrix_List_ColVal< E > > > 
m_VL
 Vector en donde están almacenados los valores de la lista de columnas.
unsigned m_cols
 Cantidad de columnas de la matriz.
m_same
 Valor almacenado en la mayor parte de la Matrix_List.

Amigas

class test_Matrix
 BUnit test.
template<class T >
bool check_ok (const Matrix_List< T > &M)
 Verificación genérica de la invariante de la clase check_ok().
template<class MAT >
bool check_ok_Matrix (const MAT &M)
 Verificación genérica de la invariante de la clase check_ok().
template<class MAT >
bool check_ok_Matrix (const MAT &M)
 Verificación genérica de la invariante de la clase check_ok().
template<class MAT >
MAT operator+ (const Matrix_BASE< typename MAT::value_type > &A, const MAT &B)
 A+B
template<class MAT >
MAT operator- (const Matrix_BASE< typename MAT::value_type > &A, const MAT &B)
 A-B
template<class MAT >
MAT operator* (const Matrix_BASE< typename MAT::value_type > &A, const MAT &B)
 Res=A*B
template<class MAT >
bool operator== (const Matrix_BASE< typename MAT::value_type > &A, const MAT &B)
 ¿¿¿ (A == B) ???
template<class MAT >
bool operator!= (const Matrix_BASE< typename MAT::value_type > &A, const MAT &B)
 ¿¿¿ (A != B) ???
template<class MAT >
unsigned count_Matrix (const MAT &M)
 Implementación por defecto para Matrix_BASE<E>::count()
template<class MAT >
void clear_Matrix (MAT &M)
 Implementación por defecto para Matrix_BASE<E>::clear()
template<class MAT >
bool equals_Matrix (const MAT &A, const MAT &B)
 Implementación por defecto para Matrix_BASE<E>::operator==()
template<class MAT >
void add_Matrix (MAT &Res, const MAT &M)
 Implementación por defecto para operator+( Matrix_BASE<E>&, Matrix_BASE<E> )
template<class MAT >
void substract_Matrix (MAT &Res, const MAT &M)
 Implementación por defecto para operator-( Matrix_BASE<E>&, Matrix_BASE<E> )
template<class MAT >
void multiply_Matrix (MAT &Res, const MAT &A, const MAT &B)
 Calcula la multiplicación A * B y almacena el resultado en "Res".
template<class MAT >
MAT::reference at_Matrix (MAT &M, unsigned i, unsigned j)
 Implementación por defecto para Matrix_BASE<E>::at()
template<class MAT >
MAT::const_reference at_Matrix (const MAT &M, unsigned i, unsigned j)
 Implementación por defecto para Matrix_BASE<E>::at() const.

Descripción detallada

template<class E>
class Mx::Matrix_List< E >

Matriz muy chirrisquitica almacenada como matriz rala implementada con listas.

Definición en la línea 69 del archivo Matrix_List.h.


Documentación de los 'Typedef' miembros de la clase

template<class E>
Mx::Matrix_BASE< E >::value_type [inherited]

Tipo del objeto almacenado, similar al nombre usado en STL.

Definición en la línea 47 del archivo Matrix_BASE.h.

template<class E>
Mx::Matrix_BASE< E >::reference [inherited]

Referencia al objeto almacenado, similar al nombre usado en STL.

Definición en la línea 48 del archivo Matrix_BASE.h.

template<class E>
Mx::Matrix_BASE< E >::const_reference [inherited]

Referencia constante al objeto almacenado, similar al nombre usado en STL.

Definición en la línea 49 del archivo Matrix_BASE.h.


Documentación del constructor y destructor

template<class E >
Mx::Matrix_List< E >::Matrix_List ( unsigned  m = 1,
unsigned  n = 1 
)

Constructor de vector.

  • Obtiene suficiente memoria dinámica para almacenas los n * m valores de la matriz.
  • Si "value_type" es uno de los tipos escalares básicos, como lo son int o float, los valores almacenados en la matriz no son inicializados en cero.
  • Si "m" o "n" es cero, la matriz queda vacía.

Definición en la línea 221 del archivo Matrix_List.h.

template<class E >
Mx::Matrix_List< E >::Matrix_List ( const Matrix_List< E > &  o) [inline]

Constructor de copia.

Definición en la línea 235 del archivo Matrix_List.h.

template<class E>
Mx::Matrix_List< E >::Matrix_List ( const E &  V) [inline]

Constructor escalar.

  • La matriz es escalar de dimensiones 1x1 y valor "V".

Definición en la línea 74 del archivo Matrix_List.h.

template<class E >
Mx::Matrix_List< E >::~Matrix_List ( ) [inline]

Destructor.

Definición en la línea 241 del archivo Matrix_List.h.


Documentación de las funciones miembro

template<class E>
unsigned Mx::Matrix_List< E >::rows ( ) const [inline]

Cantidad de filas de la matriz.

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 79 del archivo Matrix_List.h.

template<class E>
unsigned Mx::Matrix_List< E >::cols ( ) const [inline]

Cantidad de columnas de la matriz.

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 80 del archivo Matrix_List.h.

template<class E>
unsigned Mx::Matrix_List< E >::size ( ) const [inline]

Cantidad de valores almacenados en la matriz.

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 81 del archivo Matrix_List.h.

template<class E>
unsigned Mx::Matrix_List< E >::count ( ) const [inline]

Sinónimo de size().

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 82 del archivo Matrix_List.h.

template<class E>
unsigned Mx::Matrix_List< E >::capacity ( ) const [inline]

Cantidad máxima posible de valores diferentes que pueden ser almacenados en la matriz.

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 83 del archivo Matrix_List.h.

template<class E>
Matrix_List& Mx::Matrix_List< E >::operator= ( const Matrix_List< E > &  o) [inline]

Definición en la línea 85 del archivo Matrix_List.h.

template<class E >
Matrix_List< E > & Mx::Matrix_List< E >::copy ( const Matrix_List< E > &  o)

Copia desde "M".

  • Copia todo el valor de "M" sobre "*this" de forma que el nuevo valor de "*this" sea un duplicado exacto del valor de "M".
  • El valor anterior de "*this" se pierde.
  • El objeto "M" mantiene su valor.
  • Luego de la copia, cuando el valor de "M" cambia, el de "*this" no cambiará, y viceversa, pues la copia es una copia profunda; no es superficial.
  • Si "*this" es "M" su valor no cambia.
  • Después de esta operación siempre es verdadero que *this == M .
Devuelve:
"*this"
Ver también:
http://www.di-mare.com/adolfo/binder/c04.htm#sc05

Definición en la línea 251 del archivo Matrix_List.h.

template<class E >
Matrix_List< E > & Mx::Matrix_List< E >::move ( Matrix_List< E > &  o)

Traslada el valor de "M" a "*this".

  • El valor anterior de "*this" se pierde
  • El nuevo valor de "*this" es el que "M" tuvo
  • "M" queda en el estado en que queda cualquier objeto cuando es inicializardo con el constructor de vector.
  • Si "*this" es "M" entonces su valor no cambia
  • En general, después de esta operación casi nunca ocurre que (*this == M)
Devuelve:
"*this"
Ver también:
http://www.di-mare.com/adolfo/binder/c04.htm#sc07

Definición en la línea 263 del archivo Matrix_List.h.

template<class E >
Matrix_List< E > & Mx::Matrix_List< E >::swap ( Matrix_List< E > &  o)

Intercambia los valores de "*this" y "M".

  • En muchas ocasiones toma menos tiempo esta operación que copy() o move().
Devuelve:
"*this"
Ver también:
http://www.di-mare.com/adolfo/binder/c04.htm#sc08

Definición en la línea 283 del archivo Matrix_List.h.

template<class E >
void Mx::Matrix_List< E >::clear ( )

Deja el valor de "*this" en el valor en que lo inicializa el constructor de vector.

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 292 del archivo Matrix_List.h.

template<class E >
bool Mx::Matrix_List< E >::equals ( const Matrix_List< E > &  o) const [inline]

¿¿¿ A == B ???

Definición en la línea 245 del archivo Matrix_List.h.

template<class E >
E & Mx::Matrix_List< E >::operator() ( unsigned  i,
unsigned  j 
) [inline]

Retorna una referencia al elemento [i][j] de la matriz.

  • M(i,j) significa lo que en arreglos es M[i][j].
  • Esta referencia permite cambiar el valor almacenado.
  • M(i,j) = val; // M(i,j) es un "lvalue" (modificable)

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 393 del archivo Matrix_List.h.

template<class E >
const E & Mx::Matrix_List< E >::operator() ( unsigned  i,
unsigned  j 
) const [inline]

Retorna una referencia constante al elemento [i][j] de la matriz [CONST].

  • M(i,j) significa lo que en arreglos es M[i][j].
  • Esta referencia solo permite leer el valor almacenado.
  • val = M(i,j); // M(i,j) es un "rvalue" (const)

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 347 del archivo Matrix_List.h.

template<class E>
E& Mx::Matrix_List< E >::at ( unsigned  i,
unsigned  j 
) [inline]

Retorna una referencia al elemento [i][j] de la matriz.

  • Vefica que en la matriz exista el valor de índices [i][j].
  • Si [i][j] está fuera de rango levanta una excepción de tipo std::out_of_range.
  • Esta referencia permite cambiar el valor almacenado.
  • M.at(i,j) = val; // M.at(i,j) es un "lvalue" (modificable)

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 95 del archivo Matrix_List.h.

template<class E>
const E& Mx::Matrix_List< E >::at ( unsigned  i,
unsigned  j 
) const [inline]

Retorna una referencia constante al elemento [i][j] de la matriz [CONST].

  • Vefica que en la matriz exista el valor de índices [i][j].
  • Si [i][j] está fuera de rango levanta una excepción de tipo std::out_of_range.
  • Esta referencia solo permite leer el valor almacenado.
  • val = M.at(i,j); // M.at(i,j) es un "rvalue" (const)

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 96 del archivo Matrix_List.h.

template<class E >
void Mx::Matrix_List< E >::reShape ( unsigned  m,
unsigned  n 
)

Le ajusta las dimensiones a la matriz.

  • Trata de cambiar las dimensiones de la matriz conservando los valores almacenados actuales. De esta forma, una matriz 4x12 puede ser transformada en 8x6 sin tener que adquirir nueva memoria dinámica, lo que hace que esta operación en algunas ocasiones sea más rápida que reSize(m,n).
  • En muchos casos no es posible reajustar las dimensiones de la matriz.

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 339 del archivo Matrix_List.h.

template<class E >
void Mx::Matrix_List< E >::reSize ( unsigned  m,
unsigned  n 
)

Le cambia las dimensiones a la matriz.

  • Si (m*n == 0) deja la matriz vacía.

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 301 del archivo Matrix_List.h.

template<class E>
void Mx::Matrix_List< E >::transpose ( )

Transforma la matriz en su transpuesta.

Reimplementado de Mx::Matrix_BASE< E >.

template<class E>
void Mx::Matrix_List< E >::setDefault ( const E &  same) [inline]

Define cuál es el valor almacenado en la mayor parte de la matriz.

  • En muchos casos reorganiza al matriz de manera que ocupe menos espacio usando como valor comodín a same.
  • Si same != getDefault() la matriz queda reducida como si hubiera sido invocado clear().

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 421 del archivo Matrix_List.h.

template<class E >
const E & Mx::Matrix_List< E >::getDefault ( ) [inline]

Valor almacenado en la mayor parte de la matriz.

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 415 del archivo Matrix_List.h.

template<class E>
Mx::Matrix_List< E >::reserve ( unsigned  n) [private]

Ajusta la matriz para que pueda almacenar al menos
valores diferentes a getDefault().

template<class E>
void Mx::Matrix_List< E >::reSize ( unsigned  newsize) [private]
template<class E>
Matrix_BASE< E > & Mx::Matrix_BASE< E >::copy ( const Matrix_BASE< E > &  M) [protected, inherited]

Copia desde "M".

  • Copia todo el valor de "M" sobre "*this" de forma que el nuevo valor de "*this" sea un duplicado exacto del valor de "M".
  • El valor anterior de "*this" se pierde.
  • El objeto "M" mantiene su valor.
  • Luego de la copia, cuando el valor de "M" cambia, el de "*this" no cambiará, y viceversa, pues la copia es una copia profunda; no es superficial.
  • Si "*this" es "M" su valor no cambia.
  • Después de esta operación siempre es verdadero que *this == M .
Devuelve:
"*this"
Ver también:
http://www.di-mare.com/adolfo/binder/c04.htm#sc05
template<class E>
Matrix_BASE< E > & Mx::Matrix_BASE< E >::move ( Matrix_BASE< E > &  M) [protected, inherited]

Traslada el valor de "M" a "*this".

  • El valor anterior de "*this" se pierde
  • El nuevo valor de "*this" es el que "M" tuvo
  • "M" queda en el estado en que queda cualquier objeto cuando es inicializardo con el constructor de vector.
  • Si "*this" es "M" entonces su valor no cambia
  • En general, después de esta operación casi nunca ocurre que (*this == M)
Devuelve:
"*this"
Ver también:
http://www.di-mare.com/adolfo/binder/c04.htm#sc07
template<class E>
Matrix_BASE< E > & Mx::Matrix_BASE< E >::swap ( Matrix_BASE< E > &  M) [protected, inherited]

Intercambia los valores de "*this" y "M".

  • En muchas ocasiones toma menos tiempo esta operación que copy() o move().
Devuelve:
"*this"
Ver también:
http://www.di-mare.com/adolfo/binder/c04.htm#sc08
template<class E>
bool Mx::Matrix_BASE< E >::same ( const Matrix_BASE< E > &  M) const [inline, inherited]

Retorna true si "M" comparte su valor con "*this".

Definición en la línea 68 del archivo Matrix_BASE.h.

template<class E>
bool Mx::Matrix_BASE< E >::equals ( const Matrix_BASE< E > &  M) const [protected, inherited]

¿¿¿ A == B ???


Documentación de las funciones relacionadas y clases amigas

template<class E>
friend class test_Matrix [friend]

BUnit test.

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 106 del archivo Matrix_List.h.

template<class E>
template<class T >
bool check_ok ( const Matrix_List< T > &  M) [friend]

Verificación genérica de la invariante de la clase check_ok().

Comentarios:
Libera al programador de implementar el método Ok()
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
m_VL<list<>>  _______
    +---+    /       \
  0 | *-|---| 1 , 'a' |
    +---+    \_______/                      0 1 2 3 4 5 6
  1 | ? |   M(0,1)=='a'                 0 / - a - - - - - \
    +---+                               1 | - - - - - - - |
  2 | ? |     _______       _______     2 | - - - - - - - |
    +---+    /       \     /       \    3 | - c - - - b - |
  3 | *-|---| 5 , 'b' |---| 1 , 'c' |   4 \ - - - - - - - /
    +---+    \_______/     \_______/
  4 | ? |   M(3,5)=='b'   M(3,1)=='c'
    +---+
        m_same == '-'    rows() == m_VL.size()  m_cols == 7

Definición en la línea 187 del archivo Matrix_List.h.

template<class E>
template<class MAT >
bool check_ok_Matrix ( const MAT &  M) [friend, inherited]

Verificación genérica de la invariante de la clase check_ok().

Comentarios:
Libera al programador de implementar el método Ok()
  • check_ok(): (M.rows() == 0) <==> (M.cols() == 0)

Definición en la línea 140 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
bool check_ok_Matrix ( const MAT &  M) [friend, inherited]

Verificación genérica de la invariante de la clase check_ok().

Comentarios:
Libera al programador de implementar el método Ok()
  • check_ok(): (M.rows() == 0) <==> (M.cols() == 0)

Definición en la línea 140 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
MAT operator+ ( const Matrix_BASE< typename MAT::value_type > &  A,
const MAT &  B 
) [friend, inherited]

A+B

Definición en la línea 368 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
MAT operator- ( const Matrix_BASE< typename MAT::value_type > &  A,
const MAT &  B 
) [friend, inherited]

A-B

Definición en la línea 448 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
MAT operator* ( const Matrix_BASE< typename MAT::value_type > &  A,
const MAT &  B 
) [friend, inherited]

Res=A*B

Definición en la línea 454 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
bool operator== ( const Matrix_BASE< typename MAT::value_type > &  A,
const MAT &  B 
) [friend, inherited]

¿¿¿ (A == B) ???

Definición en la línea 460 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
bool operator!= ( const Matrix_BASE< typename MAT::value_type > &  A,
const MAT &  B 
) [friend, inherited]

¿¿¿ (A != B) ???

Definición en la línea 466 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
unsigned count_Matrix ( const MAT &  M) [friend, inherited]

Implementación por defecto para Matrix_BASE<E>::count()

Definición en la línea 167 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
void clear_Matrix ( MAT &  M) [friend, inherited]

Implementación por defecto para Matrix_BASE<E>::clear()

Definición en la línea 178 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
bool equals_Matrix ( const MAT &  A,
const MAT &  B 
) [friend, inherited]

Implementación por defecto para Matrix_BASE<E>::operator==()

Definición en la línea 190 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
void add_Matrix ( MAT &  Res,
const MAT &  M 
) [friend, inherited]

Implementación por defecto para operator+( Matrix_BASE<E>&, Matrix_BASE<E> )

Precondición:
  • "*this" y "M" deben tener las mismas dimensiones.
  • rows() == M.rows() && cols() == M.cols() .
Comentarios:
  • Esta es la implementación para Matrix_BASE<E> operator+( Matrix_BASE<E>&, Matrix_BASE<E> ) .
  • El compilador tiene problemas en compilar un función amiga ("friend") definida con plantillas si esa función amiga no está definida (implementada) dentro de la declaración de la clase. Para solventar esta deficiencia existe esta función que realiza el trabajo, aunque es poco cómodo de usar.

Definición en la línea 239 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
void substract_Matrix ( MAT &  Res,
const MAT &  M 
) [friend, inherited]

Implementación por defecto para operator-( Matrix_BASE<E>&, Matrix_BASE<E> )

Definición en la línea 259 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
void multiply_Matrix ( MAT &  Res,
const MAT &  A,
const MAT &  B 
) [friend, inherited]

Calcula la multiplicación A * B y almacena el resultado en "Res".

  • Las dimensiones de "*this" se ajustan de manera que:
    Res.rows() == A.rows() && Res.cols() == B.cols()
  • Esta es la implementación de Matrix_BASE<E> operator*() .
Precondición:
  • "A" y "B" deben tener dimensiones compatibles.
  • A.cols() == B.rows() .
  • La multiplicación se hace [Fila x Columna], lo que implica que la cantidad de valores en la filas de "A" debe ser igual a la cantidad de columnas de "B".
Complejidad:
O( A.cols() * B.cols() * A.cols() )

Definición en la línea 307 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
MAT::reference at_Matrix ( MAT &  M,
unsigned  i,
unsigned  j 
) [friend, inherited]

Implementación por defecto para Matrix_BASE<E>::at()

Definición en la línea 335 del archivo Matrix_BASE.h.

template<class E>
template<class MAT >
MAT::const_reference at_Matrix ( const MAT &  M,
unsigned  i,
unsigned  j 
) [friend, inherited]

Implementación por defecto para Matrix_BASE<E>::at() const.

Definición en la línea 354 del archivo Matrix_BASE.h.


Documentación de los datos miembro

template<class E>
Mx::Matrix_List< E >::m_VL [private]

Vector en donde están almacenados los valores de la lista de columnas.

Definición en la línea 108 del archivo Matrix_List.h.

template<class E>
Mx::Matrix_List< E >::m_cols [private]

Cantidad de columnas de la matriz.

Definición en la línea 109 del archivo Matrix_List.h.

template<class E>
Mx::Matrix_List< E >::m_same [private]

Valor almacenado en la mayor parte de la Matrix_List.

Definición en la línea 110 del archivo Matrix_List.h.


La documentación para esta clase fue generada a partir del siguiente fichero: