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
}