En C los subindices de los arreglos unidimensionales (y de los bidimensionales)
empiezan en  0. Por ejemplo, los elementos de un vector de 5 componentes son:

    x[0]
    x[1]
    x[2]
    x[3]
    x[4]

Los elementos de un arreglo bidimensional de tama~no 2 x 3 son:
    
    a[0][0] a[0][1] a[0][2]
    a[1][0] a[1][1] a[1][2]

Los arreglos bidimensionales no son muy adecuados para el trabajo con matrices.
Es preferible hacer asignacion dinamica de memoria con apuntadores sencillos
o con apuntadores dobles (apuntadores a apuntadores).


Las matrices se pueden almacenar de 4 maneras:

  i)   por medio de un apuntador o arreglo sencillo, fila por fila,
       SIN espacio entre fila y fila.

  ii)  por medio de un apuntador o arreglo sencillo, fila por fila,
       CON espacio entre fila y fila.

  iii) por medio de un apuntador doble (apuntador a apuntador).

  iv)  por medio de un apuntador o arreglo sencillo, guardando
       unicamente la parte triangular superior, cuando se trata
       de matrices SIMETRICAS o de matrices TRIANGULARES superiores.

En los tres casos es necesario conocer  m  y  n, valores que
definen el tam~no de la matriz.
En el caso iv), como son matrices cuadradas, 
basta con conocer  n.
 
En el caso ii) es necesario conocer, ademas, el valor  N  que 
indica el numero de posiciones de memoria del arreglo destinados
para cada fila de la matriz. Este valor  N  tambien se puede 
interpretar como el numero de posiciones que es necesario avanzar 
para pasar de un elemento cualquiera, al siguiente elemento en 
la misma columna. Oviamente  N >= n.

Por ejemplo, sea  A  la matriz

  11  12  13  14
  21  22  23  24
  31  32  33  34

m = 3, n = 4.

La matriz se puede almacenar mediante un apuntador sencillo,
con sus filas contiguas, caso i), asi:

11  12  13  14  21  22  23  24  31  32  33  34

En el caso ii), con N = 6, se tendria el siguiente
almacenamiento:

11  12  13  14  X  X  21  22  23  24  X  X  31  32  33  34  X  X

Las matrices  
  
  11  12  13                11  12  13                
  12  22  23		     0  22  23
  13  23  33		     0   0  33

se pueden alamcenar asi:

 11  12  13  22  23  33

Una matriz o un vector no son conjuntos, sin embargo se usara,
en este documento, el termino "elemento" o entrada para el valor
a_ij  o  para  x_j.

Si la matriz  A  m x n, tiene elementos  Aij, 0 <= i < m ,  0 <= j < n, 
y esta almacenada en la forma i), entonces
    
    a[i*n+j] = Aij.
    
Si la matriz  A  m x n, tiene elementos  Aij, 1<=i<=m ,  1<=j<=n, entonces
    
    a[(i-1)*n+j-1] = Aij.    

En lo que sigue, se denotara la traspuesta de una matriz de varias formas:
    At
    A'
    
Las siguientes son las funciones de  algelin.h

Cuando no se especifica el tipo de almacenaiento de la matriz,
se supone que es tipo i).



sumaMatr    suma de matrices.

prodMatr    producto de matrices.

prodMatr1   producto de matrices tipo iii),
            con subindices a partir de 1.

AtA         producto At A.

AtATrS      producto At A, el resultado sera tipo iv).

prodMatrVect producto de una matriz por un vector.

prodAtVect  producto de At por un vector.

matrSTSVec  producto de matriz simetrica tipo iv) por un vector.

creaMatr    asignacion de memoria para una matriz tipo iii).
 
creaMatr1   asignacion de memoria para una matriz tipo iii),
            con subindices a partir de 1.

maxAbsTrSup maximo valor absoluto en una matriz triangular superior.

solTrSup    solucion de un sitema triangular superior.

GaussPP     solucion de  A x = b  por el metodo de Gauss con pivoteo
            parcial.

matrEscRed  matriz escalonada reducida por filas

matrEsc     matriz escalonada  

PALU        factorizacion PA = LU. Tambien calcula el determinante.

solPALU     Solucion de  Ax = b, a partir de la informacion sobre
            la factorizacion PA = LU.

GaussPALU   Metodo de Gauss con pivoteo parcial por medio de
            factorizacion PA = LU.

tridiag     solucion de un sistema tridiagonal.
       
det         determinante.

solChol     solucion de Ax = b por el metodo de Cholesky.

factChol    factorizacion de Cholesky.

solUty      Solucion del sistema  Ut y = b


solCholTS  Solucion por el metodo de Cholesky de una matriz tipo iv) 

factCholTS Factorizacion de Cholesky de una matriz tipo iv) 

inversa    inversa de una matriz tipo  i)

inversa    inversa de una matriz tipo  iii)




