• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Range</title>
5<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="../../index.html" title="Chapter 1. Boost.Icl">
8<link rel="up" href="../function_reference.html" title="Function Reference">
9<link rel="prev" href="size.html" title="Size">
10<link rel="next" href="selection.html" title="Selection">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%"><tr>
14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15<td align="center"><a href="../../../../../../index.html">Home</a></td>
16<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
20</tr></table>
21<hr>
22<div class="spirit-nav">
23<a accesskey="p" href="size.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function_reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="selection.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h3 class="title">
27<a name="boost_icl.function_reference.range"></a><a class="link" href="range.html" title="Range">Range</a>
28</h3></div></div></div>
29<div class="informaltable"><table class="table">
30<colgroup>
31<col>
32<col>
33<col>
34<col>
35<col>
36</colgroup>
37<thead><tr>
38<th>
39                <p>
40                  <span class="emphasis"><em><span class="bold"><strong>Range</strong></span></em></span>
41                </p>
42              </th>
43<th>
44                <p>
45                  intervals
46                </p>
47              </th>
48<th>
49                <p>
50                  interval<br> sets
51                </p>
52              </th>
53<th>
54                <p>
55                  interval<br> maps
56                </p>
57              </th>
58<th>
59                <p>
60                  condition
61                </p>
62              </th>
63</tr></thead>
64<tbody>
65<tr>
66<td>
67                <p>
68                  <code class="computeroutput"><span class="identifier">interval_type</span> <span class="identifier">hull</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span></code>
69                </p>
70              </td>
71<td>
72              </td>
73<td>
74                <p>
75                  <span class="emphasis"><em>O(1)</em></span>
76                </p>
77              </td>
78<td>
79                <p>
80                  <span class="emphasis"><em>O(1)</em></span>
81                </p>
82              </td>
83<td>
84              </td>
85</tr>
86<tr>
87<td>
88                <p>
89                  <code class="computeroutput"><span class="identifier">T</span> <span class="identifier">hull</span><span class="special">(</span><span class="keyword">const</span>
90                  <span class="identifier">T</span><span class="special">&amp;,</span>
91                  <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span></code>
92                </p>
93              </td>
94<td>
95                <p>
96                  <span class="emphasis"><em>O(1)</em></span>
97                </p>
98              </td>
99<td>
100              </td>
101<td>
102              </td>
103<td>
104              </td>
105</tr>
106<tr>
107<td>
108                <p>
109                  <code class="computeroutput"><span class="identifier">domain_type</span> <span class="identifier">lower</span><span class="special">(</span><span class="keyword">const</span>
110                  <span class="identifier">T</span><span class="special">&amp;)</span></code>
111                </p>
112              </td>
113<td>
114                <p>
115                  <span class="emphasis"><em>O(1)</em></span>
116                </p>
117              </td>
118<td>
119                <p>
120                  <span class="emphasis"><em>O(1)</em></span>
121                </p>
122              </td>
123<td>
124                <p>
125                  <span class="emphasis"><em>O(1)</em></span>
126                </p>
127              </td>
128<td>
129              </td>
130</tr>
131<tr>
132<td>
133                <p>
134                  <code class="computeroutput"><span class="identifier">domain_type</span> <span class="identifier">upper</span><span class="special">(</span><span class="keyword">const</span>
135                  <span class="identifier">T</span><span class="special">&amp;)</span></code>
136                </p>
137              </td>
138<td>
139                <p>
140                  <span class="emphasis"><em>O(1)</em></span>
141                </p>
142              </td>
143<td>
144                <p>
145                  <span class="emphasis"><em>O(1)</em></span>
146                </p>
147              </td>
148<td>
149                <p>
150                  <span class="emphasis"><em>O(1)</em></span>
151                </p>
152              </td>
153<td>
154              </td>
155</tr>
156<tr>
157<td>
158                <p>
159                  <code class="computeroutput"><span class="identifier">domain_type</span> <span class="identifier">first</span><span class="special">(</span><span class="keyword">const</span>
160                  <span class="identifier">T</span><span class="special">&amp;)</span></code>
161                </p>
162              </td>
163<td>
164                <p>
165                  <span class="emphasis"><em>O(1)</em></span>
166                </p>
167              </td>
168<td>
169                <p>
170                  <span class="emphasis"><em>O(1)</em></span>
171                </p>
172              </td>
173<td>
174                <p>
175                  <span class="emphasis"><em>O(1)</em></span>
176                </p>
177              </td>
178<td>
179                <p>
180                  <code class="computeroutput"><span class="identifier">is_discrete</span><span class="special">&lt;</span><span class="identifier">domain_type</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
181                </p>
182              </td>
183</tr>
184<tr>
185<td>
186                <p>
187                  <code class="computeroutput"><span class="identifier">domain_type</span> <span class="identifier">last</span><span class="special">(</span><span class="keyword">const</span>
188                  <span class="identifier">T</span><span class="special">&amp;)</span></code>
189                </p>
190              </td>
191<td>
192                <p>
193                  <span class="emphasis"><em>O(1)</em></span>
194                </p>
195              </td>
196<td>
197                <p>
198                  <span class="emphasis"><em>O(1)</em></span>
199                </p>
200              </td>
201<td>
202                <p>
203                  <span class="emphasis"><em>O(1)</em></span>
204                </p>
205              </td>
206<td>
207                <p>
208                  <code class="computeroutput"><span class="identifier">is_discrete</span><span class="special">&lt;</span><span class="identifier">domain_type</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
209                </p>
210              </td>
211</tr>
212</tbody>
213</table></div>
214<p>
215        The table above shows the availability of functions <code class="computeroutput"><span class="identifier">hull</span></code>,
216        <code class="computeroutput"><span class="identifier">lower</span></code>, <code class="computeroutput"><span class="identifier">upper</span></code>,
217        <code class="computeroutput"><span class="identifier">first</span></code> and <code class="computeroutput"><span class="identifier">last</span></code>
218        on intervals and interval containers that are all of <span class="emphasis"><em><span class="bold"><strong>constant time complexity</strong></span></em></span>. Find the functions
219        description and some simple properties below.
220      </p>
221<div class="informaltable"><table class="table">
222<colgroup>
223<col>
224<col>
225<col>
226</colgroup>
227<thead><tr>
228<th>
229                <p>
230                  <span class="emphasis"><em><span class="bold"><strong>Range</strong></span></em></span>
231                </p>
232              </th>
233<th>
234                <p>
235                  Types
236                </p>
237              </th>
238<th>
239                <p>
240                  Description
241                </p>
242              </th>
243</tr></thead>
244<tbody>
245<tr>
246<td>
247                <p>
248                  <code class="computeroutput"><span class="identifier">interval_type</span> <span class="identifier">hull</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span></code>
249                </p>
250              </td>
251<td>
252                <p>
253                  <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
254                  <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
255                </p>
256              </td>
257<td>
258                <p>
259                  <code class="computeroutput"><span class="identifier">hull</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
260                  returns the smallest interval that contains all intervals of an
261                  interval container <code class="computeroutput"><span class="identifier">x</span></code>.
262                </p>
263              </td>
264</tr>
265<tr>
266<td>
267                <p>
268                  <code class="computeroutput"><span class="identifier">T</span> <span class="identifier">hull</span><span class="special">(</span><span class="keyword">const</span>
269                  <span class="identifier">T</span><span class="special">&amp;,</span>
270                  <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span></code>
271                </p>
272              </td>
273<td>
274                <p>
275                  <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
276                  <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
277                </p>
278              </td>
279<td>
280                <p>
281                  <code class="computeroutput"><span class="identifier">hull</span><span class="special">(</span><span class="identifier">i</span><span class="special">,</span><span class="identifier">j</span><span class="special">)</span></code>
282                  returns the smallest interval that contains intervals <code class="computeroutput"><span class="identifier">i</span></code> abd 'j'.
283                </p>
284              </td>
285</tr>
286<tr>
287<td>
288                <p>
289                  <code class="computeroutput"><span class="identifier">domain_type</span> <span class="identifier">lower</span><span class="special">(</span><span class="keyword">const</span>
290                  <span class="identifier">T</span><span class="special">&amp;)</span></code>
291                </p>
292              </td>
293<td>
294                <p>
295                  <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
296                  <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
297                  <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
298                </p>
299              </td>
300<td>
301                <p>
302                  <code class="computeroutput"><span class="identifier">lower</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
303                  returns the lower bound of an interval or interval container <code class="computeroutput"><span class="identifier">x</span></code>.
304                </p>
305              </td>
306</tr>
307<tr>
308<td>
309                <p>
310                  <code class="computeroutput"><span class="identifier">domain_type</span> <span class="identifier">upper</span><span class="special">(</span><span class="keyword">const</span>
311                  <span class="identifier">T</span><span class="special">&amp;)</span></code>
312                </p>
313              </td>
314<td>
315                <p>
316                  <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
317                  <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
318                  <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
319                </p>
320              </td>
321<td>
322                <p>
323                  <code class="computeroutput"><span class="identifier">upper</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
324                  returns the upper bound of an interval or interval container <code class="computeroutput"><span class="identifier">x</span></code>.
325                </p>
326              </td>
327</tr>
328<tr>
329<td>
330                <p>
331                  <code class="computeroutput"><span class="identifier">domain_type</span> <span class="identifier">first</span><span class="special">(</span><span class="keyword">const</span>
332                  <span class="identifier">T</span><span class="special">&amp;)</span></code>
333                </p>
334              </td>
335<td>
336                <p>
337                  <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
338                  <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
339                  <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
340                </p>
341              </td>
342<td>
343                <p>
344                  <code class="computeroutput"><span class="identifier">first</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
345                  returns the first element of an interval or interval container
346                  <code class="computeroutput"><span class="identifier">x</span></code>. <code class="computeroutput"><span class="identifier">first</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span></code> is defined for a discrete
347                  <code class="computeroutput"><span class="identifier">domain_type</span></code> only.
348                </p>
349              </td>
350</tr>
351<tr>
352<td>
353                <p>
354                  <code class="computeroutput"><span class="identifier">domain_type</span> <span class="identifier">last</span><span class="special">(</span><span class="keyword">const</span>
355                  <span class="identifier">T</span><span class="special">&amp;)</span></code>
356                </p>
357              </td>
358<td>
359                <p>
360                  <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
361                  <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
362                  <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
363                </p>
364              </td>
365<td>
366                <p>
367                  <code class="computeroutput"><span class="identifier">last</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
368                  returns the last element of an interval or interval container
369                  <code class="computeroutput"><span class="identifier">x</span></code>. <code class="computeroutput"><span class="identifier">last</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span></code> is defined for a discrete
370                  <code class="computeroutput"><span class="identifier">domain_type</span></code> only.
371                </p>
372              </td>
373</tr>
374</tbody>
375</table></div>
376<p>
377</p>
378<pre class="programlisting"><span class="comment">// for interval_containers x:</span>
379<span class="identifier">lower</span><span class="special">(</span><span class="identifier">hull</span><span class="special">(</span><span class="identifier">x</span><span class="special">))</span> <span class="special">==</span> <span class="identifier">lower</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span>
380<span class="identifier">upper</span><span class="special">(</span><span class="identifier">hull</span><span class="special">(</span><span class="identifier">x</span><span class="special">))</span> <span class="special">==</span> <span class="identifier">upper</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span>
381<span class="identifier">first</span><span class="special">(</span><span class="identifier">hull</span><span class="special">(</span><span class="identifier">x</span><span class="special">))</span> <span class="special">==</span> <span class="identifier">first</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span>
382<span class="identifier">last</span><span class="special">(</span><span class="identifier">hull</span><span class="special">(</span><span class="identifier">x</span><span class="special">))</span>  <span class="special">==</span> <span class="identifier">last</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span>
383</pre>
384<p>
385      </p>
386<p>
387        <span class="emphasis"><em><span class="bold"><strong>Back to section . . .</strong></span></em></span>
388      </p>
389<div class="informaltable"><table class="table">
390<colgroup><col></colgroup>
391<thead><tr></tr></thead>
392<tbody>
393<tr><td>
394                <p>
395                  <a class="link" href="../interface/function_synopsis.html#function_synopsis_table"><span class="emphasis"><em><span class="bold"><strong>Function
396                  Synopsis</strong></span></em></span></a>
397                </p>
398              </td></tr>
399<tr><td>
400                <p>
401                  <a class="link" href="../interface.html" title="Interface"><span class="emphasis"><em><span class="bold"><strong>Interface</strong></span></em></span></a>
402                </p>
403              </td></tr>
404</tbody>
405</table></div>
406</div>
407<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
408<td align="left"></td>
409<td align="right"><div class="copyright-footer">Copyright © 2007-2010 Joachim
410      Faulhaber<br>Copyright © 1999-2006 Cortex Software
411      GmbH<p>
412        Distributed under the Boost Software License, Version 1.0. (See accompanying
413        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
414      </p>
415</div></td>
416</tr></table>
417<hr>
418<div class="spirit-nav">
419<a accesskey="p" href="size.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function_reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="selection.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
420</div>
421</body>
422</html>
423