Blame doc/examples/histogram2d.c
|
Packit |
67cb25 |
#include <stdio.h>
|
|
Packit |
67cb25 |
#include <gsl/gsl_rng.h>
|
|
Packit |
67cb25 |
#include <gsl/gsl_histogram2d.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 |
gsl_histogram2d * h = gsl_histogram2d_alloc (10, 10);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
gsl_histogram2d_set_ranges_uniform (h,
|
|
Packit |
67cb25 |
0.0, 1.0,
|
|
Packit |
67cb25 |
0.0, 1.0);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
gsl_histogram2d_accumulate (h, 0.3, 0.3, 1);
|
|
Packit |
67cb25 |
gsl_histogram2d_accumulate (h, 0.8, 0.1, 5);
|
|
Packit |
67cb25 |
gsl_histogram2d_accumulate (h, 0.7, 0.9, 0.5);
|
|
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 |
{
|
|
Packit |
67cb25 |
int i;
|
|
Packit |
67cb25 |
gsl_histogram2d_pdf * p
|
|
Packit |
67cb25 |
= gsl_histogram2d_pdf_alloc (h->nx, h->ny);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
gsl_histogram2d_pdf_init (p, h);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
for (i = 0; i < 1000; i++) {
|
|
Packit |
67cb25 |
double x, y;
|
|
Packit |
67cb25 |
double u = gsl_rng_uniform (r);
|
|
Packit |
67cb25 |
double v = gsl_rng_uniform (r);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
gsl_histogram2d_pdf_sample (p, u, v, &x, &y);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
printf ("%g %g\n", x, y);
|
|
Packit |
67cb25 |
}
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
gsl_histogram2d_pdf_free (p);
|
|
Packit |
67cb25 |
}
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
gsl_histogram2d_free (h);
|
|
Packit |
67cb25 |
gsl_rng_free (r);
|
|
Packit |
67cb25 |
|
|
Packit |
67cb25 |
return 0;
|
|
Packit |
67cb25 |
}
|