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

Esta es una clase matriz muy chirrisquitica que puede cambiar dinámicamente de tamaño. Más...

#include <Matrix_Dense.h>

Diagrama de herencias de Mx::Matrix_Dense< 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_Dense (unsigned m=1, unsigned n=1)
 Constructor de vector.
 Matrix_Dense (const Matrix_Dense &o)
 Constructor de copia.
 Matrix_Dense (const E &V)
 Constructor escalar.
 ~Matrix_Dense ()
 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_Denseoperator= (const Matrix_Dense &o)
Matrix_Densecopy (const Matrix_Dense &o)
 Copia desde "M".
Matrix_Densemove (Matrix_Dense &o)
 Traslada el valor de "M" a "*this".
Matrix_Denseswap (Matrix_Dense &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_Dense &o) const
 ¿¿¿ A == B ???
E & operator() (unsigned, unsigned)
 Referencia constante al objeto almacenado, similar al nombre usado en STL. Matrix_BASE<E>::operator()(unsigned,unsigned)
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 ???

Atributos privados

Matrix_BASE< E >::value_typem_val
 Vector de valores de la matriz.
unsigned m_rows
 Cantidad de filas de la matriz.
unsigned m_cols
 Cantidad de columnas de la matriz.

Amigas

class test_Matrix
 BUnit test.
template<class T >
bool check_ok (const Matrix_Dense< T > &M)
 Verifica la invariante de la clase.
template<class T >
void add_Matrix (Matrix_Dense< T > &Res, const Matrix_Dense< T > &M)
 Implementación por defecto para operator+( Matrix_BASE<E>&, Matrix_BASE<E> )
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_Dense< E >

Esta es una clase matriz muy chirrisquitica que puede cambiar dinámicamente de tamaño.

Definición en la línea 35 del archivo Matrix_Dense.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_Dense< E >::Matrix_Dense ( unsigned  m = 1,
unsigned  n = 1 
) [inline]

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 167 del archivo Matrix_Dense.h.

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

Constructor de copia.

Definición en la línea 180 del archivo Matrix_Dense.h.

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

Constructor escalar.

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

Definición en la línea 40 del archivo Matrix_Dense.h.

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

Destructor.

Destructor.

Definición en la línea 204 del archivo Matrix_Dense.h.


Documentación de las funciones miembro

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

Cantidad de filas de la matriz.

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 45 del archivo Matrix_Dense.h.

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

Cantidad de columnas de la matriz.

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 46 del archivo Matrix_Dense.h.

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

Cantidad de valores almacenados en la matriz.

Reimplementado de Mx::Matrix_BASE< E >.

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

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

Sinónimo de size().

Reimplementado de Mx::Matrix_BASE< E >.

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

template<class E>
unsigned Mx::Matrix_Dense< 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 49 del archivo Matrix_Dense.h.

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

Definición en la línea 51 del archivo Matrix_Dense.h.

template<class E >
Matrix_Dense< E > & Mx::Matrix_Dense< E >::copy ( const Matrix_Dense< 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 233 del archivo Matrix_Dense.h.

template<class E >
Matrix_Dense< E > & Mx::Matrix_Dense< E >::move ( Matrix_Dense< 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 267 del archivo Matrix_Dense.h.

template<class E >
Matrix_Dense< E > & Mx::Matrix_Dense< E >::swap ( Matrix_Dense< E > &  o) [inline]

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 291 del archivo Matrix_Dense.h.

template<class E >
void Mx::Matrix_Dense< E >::clear ( ) [inline]

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 300 del archivo Matrix_Dense.h.

template<class E >
bool Mx::Matrix_Dense< E >::equals ( const Matrix_Dense< E > &  o) const

¿¿¿ A == B ???

Definición en la línea 213 del archivo Matrix_Dense.h.

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

Referencia constante al objeto almacenado, similar al nombre usado en STL. Matrix_BASE<E>::operator()(unsigned,unsigned)

Matrix_BASE<E>::operator()(unsigned,unsigned)

Reimplementado de Mx::Matrix_BASE< E >.

Definición en la línea 383 del archivo Matrix_Dense.h.

template<class E >
const E & Mx::Matrix_Dense< 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 373 del archivo Matrix_Dense.h.

template<class E>
E& Mx::Matrix_Dense< 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 61 del archivo Matrix_Dense.h.

template<class E>
const E& Mx::Matrix_Dense< 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 62 del archivo Matrix_Dense.h.

template<class E >
void Mx::Matrix_Dense< 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 363 del archivo Matrix_Dense.h.

template<class E >
void Mx::Matrix_Dense< 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 306 del archivo Matrix_Dense.h.

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

Transforma la matriz en su transpuesta.

Reimplementado de Mx::Matrix_BASE< E >.

template<class E>
void Mx::Matrix_Dense< 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 68 del archivo Matrix_Dense.h.

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

Valor almacenado en la mayor parte de la matriz.

Reimplementado de Mx::Matrix_BASE< E >.

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

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 72 del archivo Matrix_Dense.h.

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

Verifica la invariante de la clase.

{{  // Rep ==> Diagrama de la clase
    +---+                                         /         \
    | 2 |  M(i,j) ==> m_val[ (i * m_cols) + j ]   | 0 1 2 3 |   m_rows == 2
    +---+  (almacenamiento por filas)             | 4 5 6 7 |   m_cols == 4
    | 4 |                                         \         /
    +---+   +---+---+---+---+---+---+---+---+
    | *-|-->| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    +---+   +---+---+---+---+---+---+---+---+

    +---+
    | 4 |  M(i,j) ==> m_val[ i + (j * m_rows) ]   / a e \
    +---+  (almacenamiento por columnas)          | b f |   m_rows == 4
    | 2 |                                         | c g |   m_cols == 2
    +---+   +---+---+---+---+---+---+---+---+     \ d h /
    | *-|-->| a | b | c | d | e | f | g | h |
    +---+   +---+---+---+---+---+---+---+---+
}}
Comentarios:
Libera al programador de implementar el método Ok()

  • check_ok(): (M.m_rows == 0) <==> (M.m_cols == 0)

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

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

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 394 del archivo Matrix_Dense.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>
template< class E > Mx::Matrix_Dense< E >::m_val [private]

Vector de valores de la matriz.

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

template<class E>
template< class E > Mx::Matrix_Dense< E >::m_rows [private]

Cantidad de filas de la matriz.

Definición en la línea 75 del archivo Matrix_Dense.h.

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

Cantidad de columnas de la matriz.

Definición en la línea 76 del archivo Matrix_Dense.h.


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