viernes, junio 23, 2006

Codigo para representar matrices CSR

En entradas anteriores, traté de explicar que es una matriz en formato CSR[1] y con un ejemplo[2], como se construye un matriz CSR a partir de una matriz densa.

Esta vez coloco código para representar como un tipo de datos definidos por el usuario, matrices en formato CSR.

En lenguaje C como un archivo de cabecera:
#ifndef _MATCSR_H
#define _MATCSR_H

#include
#include

/* CSR user define data */

struct MatCsr{
int n;
unsigned int *ia;
unsigned int *ja;
double *a;
};

typedef struct MatCsr MATCSR;

#endif
Y en Fortran
MODULE CSR_mod

IMPLICIT NONE

PRIVATE

! Define the derived data type for the CSR matrices

TYPE CSR
INTEGER :: N
INTEGER, DIMENSION (:), POINTER :: IA, JA
REAL(KIND=DP), DIMENSION (:), POINTER :: A
END TYPE CSR

PUBLIC :: CSR

END MODULE CSR_mod
Con forme avance, seguiré publicando código que utilice matrices CSR.

0 Comentarios:

Publicar un comentario

Suscribirse a Comentarios de la entrada [Atom]

<< Página Principal