Blame doc/examples/sortsmall.c

Packit 67cb25
#include <gsl/gsl_rng.h>
Packit 67cb25
#include <gsl/gsl_sort_double.h>
Packit 67cb25
Packit 67cb25
int
Packit 67cb25
main (void)
Packit 67cb25
{
Packit 67cb25
  const gsl_rng_type * T;
Packit 67cb25
  gsl_rng * r;
Packit 67cb25
Packit 67cb25
  size_t i, k = 5, N = 100000;
Packit 67cb25
Packit 67cb25
  double * x = malloc (N * sizeof(double));
Packit 67cb25
  double * small = malloc (k * sizeof(double));
Packit 67cb25
Packit 67cb25
  gsl_rng_env_setup();
Packit 67cb25
Packit 67cb25
  T = gsl_rng_default;
Packit 67cb25
  r = gsl_rng_alloc (T);
Packit 67cb25
Packit 67cb25
  for (i = 0; i < N; i++)
Packit 67cb25
    {
Packit 67cb25
      x[i] = gsl_rng_uniform(r);
Packit 67cb25
    }
Packit 67cb25
Packit 67cb25
  gsl_sort_smallest (small, k, x, 1, N);
Packit 67cb25
Packit 67cb25
  printf ("%zu smallest values from %zu\n", k, N);
Packit 67cb25
Packit 67cb25
  for (i = 0; i < k; i++)
Packit 67cb25
    {
Packit 67cb25
      printf ("%zu: %.18f\n", i, small[i]);
Packit 67cb25
    }
Packit 67cb25
Packit 67cb25
  free (x);
Packit 67cb25
  free (small);
Packit 67cb25
  gsl_rng_free (r);
Packit 67cb25
  return 0;
Packit 67cb25
}