GNU Scientific Library Reference Manual - Third Edition (v1.12)by M. Galassi, J. Davies, J. Theiler, B. Gough, G. Jungman, P. Alken, M. Booth, F. Rossi Paperback (6"x9"), 592 pages, 60 figures ISBN 0954612078 RRP £24.95 ($39.95) |

## 21.14 2D Histogram allocation

The functions for allocating memory to a 2D histogram follow the style
of `malloc`

and `free`

. In addition they also perform their
own error checking. If there is insufficient memory available to
allocate a histogram then the functions call the error handler (with
an error number of `GSL_ENOMEM`

) in addition to returning a null
pointer. Thus if you use the library error handler to abort your program
then it isn't necessary to check every 2D histogram `alloc`

.

__Function:__gsl_histogram2d ***gsl_histogram2d_alloc***(size_t*`nx`, size_t`ny`)- This function allocates memory for a two-dimensional histogram with
`nx`bins in the x direction and`ny`bins in the y direction. The function returns a pointer to a newly created`gsl_histogram2d`

struct. If insufficient memory is available a null pointer is returned and the error handler is invoked with an error code of`GSL_ENOMEM`

. The bins and ranges must be initialized with one of the functions below before the histogram is ready for use.

__Function:__int**gsl_histogram2d_set_ranges***(gsl_histogram2d **`h`, const double`xrange`[], size_t`xsize`, const double`yrange`[], size_t`ysize`)- This function sets the ranges of the existing histogram
`h`using the arrays`xrange`and`yrange`of size`xsize`and`ysize`respectively. The values of the histogram bins are reset to zero.

__Function:__int**gsl_histogram2d_set_ranges_uniform***(gsl_histogram2d **`h`, double`xmin`, double`xmax`, double`ymin`, double`ymax`)- This function sets the ranges of the existing histogram
`h`to cover the ranges`xmin`to`xmax`and`ymin`to`ymax`uniformly. The values of the histogram bins are reset to zero.

__Function:__void**gsl_histogram2d_free***(gsl_histogram2d **`h`)- This function frees the 2D histogram
`h`and all of the memory associated with it.

ISBN 0954612078 | GNU Scientific Library Reference Manual - Third Edition (v1.12) | See the print edition |