Blame doc/examples/permshuffle.c
|
Packit |
67cb25 |
#include <stdio.h>
|
|
Packit |
67cb25 |
#include <gsl/gsl_rng.h>
|
|
Packit |
67cb25 |
#include <gsl/gsl_randist.h>
|
|
Packit |
67cb25 |
#include <gsl/gsl_permutation.h>
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
int
|
|
Packit |
67cb25 |
main (void)
|
|
Packit |
67cb25 |
{
|
|
Packit |
67cb25 |
const size_t N = 10;
|
|
Packit |
67cb25 |
const gsl_rng_type * T;
|
|
Packit |
67cb25 |
gsl_rng * r;
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
gsl_permutation * p = gsl_permutation_alloc (N);
|
|
Packit |
67cb25 |
gsl_permutation * q = gsl_permutation_alloc (N);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
gsl_rng_env_setup();
|
|
Packit |
67cb25 |
T = gsl_rng_default;
|
|
Packit |
67cb25 |
r = gsl_rng_alloc (T);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
printf ("initial permutation:");
|
|
Packit |
67cb25 |
gsl_permutation_init (p);
|
|
Packit |
67cb25 |
gsl_permutation_fprintf (stdout, p, " %u");
|
|
Packit |
67cb25 |
printf ("\n");
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
printf (" random permutation:");
|
|
Packit |
67cb25 |
gsl_ran_shuffle (r, p->data, N, sizeof(size_t));
|
|
Packit |
67cb25 |
gsl_permutation_fprintf (stdout, p, " %u");
|
|
Packit |
67cb25 |
printf ("\n");
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
printf ("inverse permutation:");
|
|
Packit |
67cb25 |
gsl_permutation_inverse (q, p);
|
|
Packit |
67cb25 |
gsl_permutation_fprintf (stdout, q, " %u");
|
|
Packit |
67cb25 |
printf ("\n");
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
gsl_permutation_free (p);
|
|
Packit |
67cb25 |
gsl_permutation_free (q);
|
|
Packit |
67cb25 |
gsl_rng_free (r);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
return 0;
|
|
Packit |
67cb25 |
}
|