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
}