Blame doc/examples/matrixw.c
|
Packit |
67cb25 |
#include <stdio.h>
|
|
Packit |
67cb25 |
#include <gsl/gsl_matrix.h>
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
int
|
|
Packit |
67cb25 |
main (void)
|
|
Packit |
67cb25 |
{
|
|
Packit |
67cb25 |
int i, j, k = 0;
|
|
Packit |
67cb25 |
gsl_matrix * m = gsl_matrix_alloc (100, 100);
|
|
Packit |
67cb25 |
gsl_matrix * a = gsl_matrix_alloc (100, 100);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
for (i = 0; i < 100; i++)
|
|
Packit |
67cb25 |
for (j = 0; j < 100; j++)
|
|
Packit |
67cb25 |
gsl_matrix_set (m, i, j, 0.23 + i + j);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
{
|
|
Packit |
67cb25 |
FILE * f = fopen ("test.dat", "wb");
|
|
Packit |
67cb25 |
gsl_matrix_fwrite (f, m);
|
|
Packit |
67cb25 |
fclose (f);
|
|
Packit |
67cb25 |
}
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
{
|
|
Packit |
67cb25 |
FILE * f = fopen ("test.dat", "rb");
|
|
Packit |
67cb25 |
gsl_matrix_fread (f, a);
|
|
Packit |
67cb25 |
fclose (f);
|
|
Packit |
67cb25 |
}
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
for (i = 0; i < 100; i++)
|
|
Packit |
67cb25 |
for (j = 0; j < 100; j++)
|
|
Packit |
67cb25 |
{
|
|
Packit |
67cb25 |
double mij = gsl_matrix_get (m, i, j);
|
|
Packit |
67cb25 |
double aij = gsl_matrix_get (a, i, j);
|
|
Packit |
67cb25 |
if (mij != aij) k++;
|
|
Packit |
67cb25 |
}
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
gsl_matrix_free (m);
|
|
Packit |
67cb25 |
gsl_matrix_free (a);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
printf ("differences = %d (should be zero)\n", k);
|
|
Packit |
67cb25 |
return (k > 0);
|
|
Packit |
67cb25 |
}
|