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">&)</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">&,</span> 91 <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&)</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">&)</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">&)</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">&)</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"><</span><span class="identifier">domain_type</span><span class="special">>::</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">&)</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"><</span><span class="identifier">domain_type</span><span class="special">>::</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">&)</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">&,</span> 270 <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&)</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">&)</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">&)</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">&)</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">&)</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">&)</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">&)</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