Resolucion de sistemas lineales
All Classes Files Functions Variables Typedefs Macros Pages
MatrizBand.hpp
Go to the documentation of this file.
1 // Clase para el trabajar con matrices bandadas de punto flotante //
3 // //
4 // An�lisis y Dise�o y Programaci�n: //
5 // //
6 // Nombre: Antonio Carrillo Ledesma //
7 // E-mail: acl@www.mmc.geofisica.unam.mx //
8 // P�gina: http://www.mmc.geofisica.unam.mx/acl //
9 // //
10 // //
11 // Este programa es software libre. Puede redistribuirlo y/o modificarlo //
12 // bajo los t�rminos de la Licencia P�blica General de GNU seg�n es //
13 // publicada por la Free Software Foundation, bien de la versi�n 2 de //
14 // dicha Licencia o bien (seg�n su elecci�n) de cualquier versi�n //
15 // posterior. //
16 // //
17 // Este programa se distribuye con la esperanza de que sea �til, pero SIN //
18 // NINGUNA GARANT�A, incluso sin la garant�a MERCANTIL impl�cita o sin //
19 // garantizar la CONVENIENCIA PARA UN PROP�SITO PARTICULAR. V�ase la //
20 // Licencia P�blica General de GNU para m�s detalles. //
21 // //
22 // Deber�a haber recibido una copia de la Licencia P�blica General junto //
23 // con este programa. Si no ha sido as�, escriba a la Free Software //
24 // Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU. //
25 // //
26 // //
28 
29 
30 
31 #ifndef __MatrizBand__
32 #define __MatrizBand__
33 
34 
35 #include "MatrizBandDisp.hpp"
36 
37 
40 
47 class MatrizBand : public MatrizBandDisp
48 {
49 private:
50 
52 
55  void solicitaMemoria(const int ren, const int col, const int ban);
56 
58  ldouble **M;
60  int *J;
61 
62 
63 public:
64 
66 
69  MatrizBand(const int ren, const int col, const int ban) : MatrizBandDisp()
70  {
71  solicitaMemoria(ren, col, ban);
72  asignaNombre("SinNombre");
73  }
74 
76 
80  MatrizBand(const int ren, const int col, const int ban, const char *nmb) : MatrizBandDisp()
81  {
82  solicitaMemoria(ren, col, ban);
83  asignaNombre(nmb);
84  }
85 
87  {
88  liberaMemoria();
89  }
90 
92  void liberaMemoria(void);
93 
95 
96  void inicializa(ldouble val)
97  {
98  printf("\nFuncion no implementada en esta clase\n");
99  }
100 
102 
105  void asigna(const int ren, const int col, const ldouble val);
106 
108 
111  ldouble retorna(const int ren, const int col);
112 
114 
116  int retornaNumeroColumnasBanda(int ren);
117 
119 
122  int retornaNumeroColumna(int ren, int ind);
123 
125 
128  inline double retornaValorColumna(int ren, int ind)
129  {
130  return (M[ren][ind]);
131  }
132 
134 
135  void multiplica(ldouble esc);
136 
138 
140  void multiplica(MatrizBand *a, MatrizBand *b);
141 
143 
145  void multiplica(Vector *b, Vector *r);
146 
148  void visualizaMatricesInternas(void);
149 
150 };
151 
152 
157 #endif
MatrizBand(const int ren, const int col, const int ban, const char *nmb)
Constructor de la clase.
Definition: MatrizBand.hpp:80
ldouble retorna(const int ren, const int col)
Retorna el valor del renglon y columna solicitado.
Definition: MatrizBand.cpp:178
Clase base para trabajar con matrices bandadas y dispersas.
Definition: MatrizBandDisp.hpp:44
void asigna(const int ren, const int col, const ldouble val)
Asigna el valor indicado en el renglo y columna solicitado.
Definition: MatrizBand.cpp:98
MatrizBand(const int ren, const int col, const int ban)
Constructor de la clase.
Definition: MatrizBand.hpp:69
Clase para el trabajar con vectores de punto flotante.
Definition: Vector.hpp:47
double ldouble
Define ldouble como double.
Definition: Definiciones.hpp:50
~MatrizBand()
Definition: MatrizBand.hpp:86
double retornaValorColumna(int ren, int ind)
Retorna el valor de la columna cuando se para en el renglon e indice de la banda. ...
Definition: MatrizBand.hpp:128
Definition: MatrizBand.hpp:47
int retornaNumeroColumnasBanda(int ren)
Retorna el n�mero de columnas de la banda para el renglon indicado.
Definition: MatrizBand.cpp:210
void inicializa(ldouble val)
Inicializa la matriz al valor indicado.
Definition: MatrizBand.hpp:96
void asignaNombre(const char *nmb)
Asigna nombre a la matriz.
Definition: Matriz_Base.cpp:42
void multiplica(ldouble esc)
Multiplica la matriz por el escalar pasado como parametro.
Definition: MatrizBand.cpp:254
int retornaNumeroColumna(int ren, int ind)
Retorna el n�mero de columna cuando se para en el renglon e indice de la banda.
Definition: MatrizBand.cpp:235
void visualizaMatricesInternas(void)
Visualiza las matrices internas usadas para soportar a las matrices bandadas.
Definition: MatrizBand.cpp:339
void liberaMemoria(void)
Libera la memoria solicitada para la matriz.
Definition: MatrizBand.cpp:73