lkptr
|
Matriz chirrisquitica de adolfo@di-mare.com. More...
Classes | |
class | Matrix |
Esta es una clase matriz muy chirrisquitica que puede cambiar dinámicamente de tamaño. More... | |
class | RefMatrix |
Empaque alrededor de Matrix que usa lkptr<X> para mejorar la implementación de los operadores aritméticos. More... | |
Functions | |
template<class T > | |
bool | check_ok (const Matrix< T > &M) |
Verifica la invariante de la clase. | |
template<class E > | |
std::ostream & | operator<< (std::ostream &COUT, const Matrix< E > &M) |
Graba en el flujo COUT el valor de M [][]. | |
template<class E > | |
std::istream & | operator>> (std::istream &CIN, Matrix< E > &M) |
Obtiene del flujo CIN el valor para M [][]. | |
template<class Mat > | |
bool | isSquare (const Mat &M) |
Retorna "true" si la matriz M [][] es una matriz cuadrada. | |
template<class Mat > | |
bool | isDiagonal (const Mat &M) |
Retorna "true" si la matriz M [][] es una matriz diagonal. | |
template<class Mat > | |
bool | isScalar (const Mat &M) |
Retorna "true" si la matriz M [][] es escalar. | |
template<class Mat > | |
bool | isUnit (const Mat &M) |
Retorna "true" si la matriz M [][] es unitaria. | |
template<class Mat > | |
void | setUnit (const Mat &M, unsigned n) |
Convierte a M [][] en una matriz identidad de tamaño n x n . | |
template<class Mat > | |
bool | isNull (const Mat &M) |
Retorna "true" si la matriz M [][] es nula. | |
template<class Mat > | |
bool | isSymmetric (const Mat &M) |
Retorna "true" si la matriz M [][] es simétrica. | |
template<class Mat > | |
bool | isUpperTiangular (const Mat &M) |
Retorna "true" si la matriz M [][] es triangular superior. | |
template<class Mat > | |
bool | isLowerTiangular (const Mat &M) |
Retorna "true" si la matriz M [][] es triangular inferior. |
Matriz chirrisquitica de adolfo@di-mare.com.
bool Mx::check_ok | ( | const Matrix< T > & | M | ) |
Verifica la invariante de la clase.
0
(cero) al campo m_val
.rows()
cols()
+---+ / \ | 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 | +---+ +---+---+---+---+---+---+---+---+
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.
Definition at line 19 of file Matrix_Lib.h.
bool Mx::isDiagonal | ( | const Mat & | M | ) |
Retorna "true"
si la matriz M
[][] es una matriz diagonal.
Definition at line 25 of file Matrix_Lib.h.
bool Mx::isScalar | ( | const Mat & | M | ) |
Retorna "true"
si la matriz M
[][] es escalar.
Definition at line 45 of file Matrix_Lib.h.
bool Mx::isUnit | ( | const Mat & | M | ) | [inline] |
Retorna "true"
si la matriz M
[][] es unitaria.
Definition at line 61 of file Matrix_Lib.h.
void Mx::setUnit | ( | const Mat & | M, |
unsigned | n | ||
) |
Convierte a M
[][] en una matriz identidad de tamaño n
x n
.
Definition at line 69 of file Matrix_Lib.h.
bool Mx::isNull | ( | const Mat & | M | ) |
Retorna "true"
si la matriz M
[][] es nula.
Definition at line 83 of file Matrix_Lib.h.
bool Mx::isSymmetric | ( | const Mat & | M | ) |
Retorna "true"
si la matriz M
[][] es simétrica.
Definition at line 98 of file Matrix_Lib.h.
bool Mx::isUpperTiangular | ( | const Mat & | M | ) |
Retorna "true"
si la matriz M
[][] es triangular superior.
Definition at line 115 of file Matrix_Lib.h.
bool Mx::isLowerTiangular | ( | const Mat & | M | ) |
Retorna "true"
si la matriz M
[][] es triangular inferior.
Definition at line 134 of file Matrix_Lib.h.