Blame doc/examples/linalglu.c

Packit 67cb25
#include <stdio.h>
Packit 67cb25
#include <gsl/gsl_linalg.h>
Packit 67cb25
Packit 67cb25
int
Packit 67cb25
main (void)
Packit 67cb25
{
Packit 67cb25
  double a_data[] = { 0.18, 0.60, 0.57, 0.96,
Packit 67cb25
                      0.41, 0.24, 0.99, 0.58,
Packit 67cb25
                      0.14, 0.30, 0.97, 0.66,
Packit 67cb25
                      0.51, 0.13, 0.19, 0.85 };
Packit 67cb25
Packit 67cb25
  double b_data[] = { 1.0, 2.0, 3.0, 4.0 };
Packit 67cb25
Packit 67cb25
  gsl_matrix_view m 
Packit 67cb25
    = gsl_matrix_view_array (a_data, 4, 4);
Packit 67cb25
Packit 67cb25
  gsl_vector_view b
Packit 67cb25
    = gsl_vector_view_array (b_data, 4);
Packit 67cb25
Packit 67cb25
  gsl_vector *x = gsl_vector_alloc (4);
Packit 67cb25
  
Packit 67cb25
  int s;
Packit 67cb25
Packit 67cb25
  gsl_permutation * p = gsl_permutation_alloc (4);
Packit 67cb25
Packit 67cb25
  gsl_linalg_LU_decomp (&m.matrix, p, &s);
Packit 67cb25
Packit 67cb25
  gsl_linalg_LU_solve (&m.matrix, p, &b.vector, x);
Packit 67cb25
Packit 67cb25
  printf ("x = \n");
Packit 67cb25
  gsl_vector_fprintf (stdout, x, "%g");
Packit 67cb25
Packit 67cb25
  gsl_permutation_free (p);
Packit 67cb25
  gsl_vector_free (x);
Packit 67cb25
  return 0;
Packit 67cb25
}