File: Histogram-allocation.html

package info (click to toggle)
gsl-ref-html 2.3-1
  • links: PTS
  • area: non-free
  • in suites: bullseye, buster, sid
  • size: 6,876 kB
  • ctags: 4,574
  • sloc: makefile: 35
file content (155 lines) | stat: -rw-r--r-- 7,501 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 The GSL Team.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Free Software
Needs Free Documentation", the Front-Cover text being "A GNU Manual",
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled "GNU Free Documentation
License".

(a) The Back-Cover Text is: "You have the freedom to copy and modify this
GNU Manual." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library &ndash; Reference Manual: Histogram allocation</title>

<meta name="description" content="GNU Scientific Library &ndash; Reference Manual: Histogram allocation">
<meta name="keywords" content="GNU Scientific Library &ndash; Reference Manual: Histogram allocation">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="Histograms.html#Histograms" rel="up" title="Histograms">
<link href="Copying-Histograms.html#Copying-Histograms" rel="next" title="Copying Histograms">
<link href="The-histogram-struct.html#The-histogram-struct" rel="previous" title="The histogram struct">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Histogram-allocation"></a>
<div class="header">
<p>
Next: <a href="Copying-Histograms.html#Copying-Histograms" accesskey="n" rel="next">Copying Histograms</a>, Previous: <a href="The-histogram-struct.html#The-histogram-struct" accesskey="p" rel="previous">The histogram struct</a>, Up: <a href="Histograms.html#Histograms" accesskey="u" rel="up">Histograms</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Histogram-allocation-1"></a>
<h3 class="section">23.2 Histogram allocation</h3>
<p>The functions for allocating memory to a histogram follow the style of
<code>malloc</code> and <code>free</code>.  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 <code>GSL_ENOMEM</code>) in addition to returning a null pointer.
Thus if you use the library error handler to abort your program then it
isn&rsquo;t necessary to check every histogram <code>alloc</code>.
</p>
<dl>
<dt><a name="index-gsl_005fhistogram_005falloc"></a>Function: <em>gsl_histogram *</em> <strong>gsl_histogram_alloc</strong> <em>(size_t <var>n</var>)</em></dt>
<dd><p>This function allocates memory for a histogram with <var>n</var> bins, and
returns a pointer to a newly created <code>gsl_histogram</code> struct.  If
insufficient memory is available a null pointer is returned and the
error handler is invoked with an error code of <code>GSL_ENOMEM</code>. The
bins and ranges are not initialized, and should be prepared using one of
the range-setting functions below in order to make the histogram ready
for use.
</p></dd></dl>






<dl>
<dt><a name="index-gsl_005fhistogram_005fset_005franges"></a>Function: <em>int</em> <strong>gsl_histogram_set_ranges</strong> <em>(gsl_histogram * <var>h</var>, const double <var>range</var>[], size_t <var>size</var>)</em></dt>
<dd><p>This function sets the ranges of the existing histogram <var>h</var> using
the array <var>range</var> of size <var>size</var>.  The values of the histogram
bins are reset to zero.  The <code>range</code> array should contain the
desired bin limits.  The ranges can be arbitrary, subject to the
restriction that they are monotonically increasing.
</p>
<p>The following example shows how to create a histogram with logarithmic
bins with ranges [1,10), [10,100) and [100,1000).
</p>
<div class="example">
<pre class="example">gsl_histogram * h = gsl_histogram_alloc (3);

/* bin[0] covers the range 1 &lt;= x &lt; 10 */
/* bin[1] covers the range 10 &lt;= x &lt; 100 */
/* bin[2] covers the range 100 &lt;= x &lt; 1000 */

double range[4] = { 1.0, 10.0, 100.0, 1000.0 };

gsl_histogram_set_ranges (h, range, 4);
</pre></div>

<p>Note that the size of the <var>range</var> array should be defined to be one
element bigger than the number of bins.  The additional element is
required for the upper value of the final bin.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fhistogram_005fset_005franges_005funiform"></a>Function: <em>int</em> <strong>gsl_histogram_set_ranges_uniform</strong> <em>(gsl_histogram * <var>h</var>, double <var>xmin</var>, double <var>xmax</var>)</em></dt>
<dd><p>This function sets the ranges of the existing histogram <var>h</var> to cover
the range <var>xmin</var> to <var>xmax</var> uniformly.  The values of the
histogram bins are reset to zero.  The bin ranges are shown in the table
below,
</p><div class="display">
<pre class="display">bin[0] corresponds to xmin &lt;= x &lt; xmin + d
bin[1] corresponds to xmin + d &lt;= x &lt; xmin + 2 d
......
bin[n-1] corresponds to xmin + (n-1)d &lt;= x &lt; xmax
</pre></div>

<p>where <em>d</em> is the bin spacing, <em>d = (xmax-xmin)/n</em>.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fhistogram_005ffree"></a>Function: <em>void</em> <strong>gsl_histogram_free</strong> <em>(gsl_histogram * <var>h</var>)</em></dt>
<dd><p>This function frees the histogram <var>h</var> and all of the memory
associated with it.
</p></dd></dl>

<hr>
<div class="header">
<p>
Next: <a href="Copying-Histograms.html#Copying-Histograms" accesskey="n" rel="next">Copying Histograms</a>, Previous: <a href="The-histogram-struct.html#The-histogram-struct" accesskey="p" rel="previous">The histogram struct</a>, Up: <a href="Histograms.html#Histograms" accesskey="u" rel="up">Histograms</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>