Użycie biblioteki GSL.

Pliki nagłówkowe:
#include <gsl/gsl_math.h>
#include <gsl/gsl_linalg.h>
#include <gsl/gsl_blas.h>

Kompilacja z opcjami: -lgsl -lgslcblas -lm

Alokacja / zwalnianie pamięci:
gsl_matrix *A = gsl_matrix_calloc(N, N);
gsl_matrix_free(A);
gsl_vector *T = gsl_vector_calloc(N);
gsl_vector_free(T);

Zapis / odczyt wartości:
gsl_matrix_set(A, i, j, value);
gsl_matrix_get(A, i, j);
gsl_vector_set(T, idx, value);
gsl_vector_get(T, idx);

Wektor permutacji:
gsl_permutation *perm=gsl_permutation_alloc(N);
gsl_permutation_free( perm );