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 |
}
|