• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Additional Interval Orderings</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="interval_construction.html" title="Interval Construction">
10<link rel="next" href="miscellaneous_interval_functions.html" title="Miscellaneous Interval Functions">
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="interval_construction.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="miscellaneous_interval_functions.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.additional_interval_orderings"></a><a class="link" href="additional_interval_orderings.html" title="Additional Interval Orderings">Additional
28      Interval Orderings</a>
29</h3></div></div></div>
30<p>
31        In addition to the standard orderings <code class="computeroutput"><span class="keyword">operator</span>
32        <span class="special">&lt;</span></code> and rleated <code class="computeroutput"><span class="special">&gt;</span>
33        <span class="special">&lt;=</span> <span class="special">&gt;=</span></code>
34        that you will find in the <a class="link" href="../interface/function_synopsis.html#function_synopsis_table"><span class="emphasis"><em><span class="bold"><strong>librarie's function synopsis</strong></span></em></span></a>, intervals
35        implement some additional orderings that can be useful.
36      </p>
37<div class="informaltable"><table class="table">
38<colgroup>
39<col>
40<col>
41<col>
42<col>
43<col>
44<col>
45<col>
46</colgroup>
47<thead><tr>
48<th>
49                <p>
50                  T
51                </p>
52              </th>
53<th>
54                <p>
55                  discrete<br> _interval
56                </p>
57              </th>
58<th>
59                <p>
60                  continuous<br> _interval
61                </p>
62              </th>
63<th>
64                <p>
65                  right_open<br> _interval
66                </p>
67              </th>
68<th>
69                <p>
70                  left_open<br> _interval
71                </p>
72              </th>
73<th>
74                <p>
75                  closed<br> _interval
76                </p>
77              </th>
78<th>
79                <p>
80                  open<br> _interval
81                </p>
82              </th>
83</tr></thead>
84<tbody>
85<tr>
86<td>
87                <p>
88                  Interval bounds
89                </p>
90              </td>
91<td>
92                <p>
93                  dynamic
94                </p>
95              </td>
96<td>
97                <p>
98                  dynamic
99                </p>
100              </td>
101<td>
102                <p>
103                  static
104                </p>
105              </td>
106<td>
107                <p>
108                  static
109                </p>
110              </td>
111<td>
112                <p>
113                  static
114                </p>
115              </td>
116<td>
117                <p>
118                  static
119                </p>
120              </td>
121</tr>
122<tr>
123<td>
124                <p>
125                  Form
126                </p>
127              </td>
128<td>
129              </td>
130<td>
131              </td>
132<td>
133                <p>
134                  asymmetric
135                </p>
136              </td>
137<td>
138                <p>
139                  asymmetric
140                </p>
141              </td>
142<td>
143                <p>
144                  symmetric
145                </p>
146              </td>
147<td>
148                <p>
149                  symmetric
150                </p>
151              </td>
152</tr>
153<tr>
154<td>
155                <p>
156                  <span class="emphasis"><em><span class="bold"><strong>Orderings</strong></span></em></span>
157                </p>
158              </td>
159<td>
160              </td>
161<td>
162              </td>
163<td>
164              </td>
165<td>
166              </td>
167<td>
168              </td>
169<td>
170              </td>
171</tr>
172<tr>
173<td>
174                <p>
175                  <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">exclusive_less</span><span class="special">(</span><span class="keyword">const</span>
176                  <span class="identifier">T</span><span class="special">&amp;,</span>
177                  <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span></code>
178                </p>
179              </td>
180<td>
181                <p>
182                  1
183                </p>
184              </td>
185<td>
186                <p>
187                  1
188                </p>
189              </td>
190<td>
191                <p>
192                  1
193                </p>
194              </td>
195<td>
196                <p>
197                  1
198                </p>
199              </td>
200<td>
201                <p>
202                  1
203                </p>
204              </td>
205<td>
206                <p>
207                  1
208                </p>
209              </td>
210</tr>
211<tr>
212<td>
213                <p>
214</p>
215<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">lower_less</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
216<span class="keyword">bool</span> <span class="identifier">lower_equal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
217<span class="keyword">bool</span> <span class="identifier">lower_less_equal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
218</pre>
219<p>
220                </p>
221              </td>
222<td>
223                <p>
224                  1
225                </p>
226              </td>
227<td>
228                <p>
229                  1
230                </p>
231              </td>
232<td>
233                <p>
234                  1
235                </p>
236              </td>
237<td>
238                <p>
239                  1
240                </p>
241              </td>
242<td>
243                <p>
244                  1
245                </p>
246              </td>
247<td>
248                <p>
249                  1
250                </p>
251              </td>
252</tr>
253<tr>
254<td>
255                <p>
256</p>
257<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">upper_less</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
258<span class="keyword">bool</span> <span class="identifier">upper_equal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
259<span class="keyword">bool</span> <span class="identifier">upper_less_equal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
260</pre>
261<p>
262                </p>
263              </td>
264<td>
265                <p>
266                  1
267                </p>
268              </td>
269<td>
270                <p>
271                  1
272                </p>
273              </td>
274<td>
275                <p>
276                  1
277                </p>
278              </td>
279<td>
280                <p>
281                  1
282                </p>
283              </td>
284<td>
285                <p>
286                  1
287                </p>
288              </td>
289<td>
290                <p>
291                  1
292                </p>
293              </td>
294</tr>
295</tbody>
296</table></div>
297<p>
298        A central role for the <span class="bold"><strong>icl</strong></span> plays the <code class="computeroutput"><span class="identifier">exclusive_less</span></code> ordering, which is used
299        in all interval containers. The other orderings can be useful to simplify
300        comparison of intervals specifically for dynamically bounded ones.
301      </p>
302<div class="informaltable"><table class="table">
303<colgroup>
304<col>
305<col>
306</colgroup>
307<thead><tr>
308<th>
309                <p>
310                  <span class="emphasis"><em><span class="bold"><strong>Orderings</strong></span></em></span>
311                </p>
312              </th>
313<th>
314                <p>
315                  Description
316                </p>
317              </th>
318</tr></thead>
319<tbody>
320<tr>
321<td>
322                <p>
323                  <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">exclusive_less</span><span class="special">(</span><span class="keyword">const</span>
324                  <span class="identifier">T</span><span class="special">&amp;,</span>
325                  <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span></code>
326                </p>
327              </td>
328<td>
329                <p>
330                  <code class="computeroutput"><span class="identifier">exclusive_less</span><span class="special">(</span><span class="identifier">x1</span><span class="special">,</span> <span class="identifier">x2</span><span class="special">)</span></code> is true if every element of interval
331                  <code class="computeroutput"><span class="identifier">x1</span></code> is less than
332                  every element of interval <code class="computeroutput"><span class="identifier">x2</span></code>
333                  w.r.t. the the intervals <code class="computeroutput"><span class="identifier">Compare</span></code>
334                  ordering
335                </p>
336              </td>
337</tr>
338<tr>
339<td>
340                <p>
341</p>
342<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">lower_less</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
343<span class="keyword">bool</span> <span class="identifier">lower_equal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
344<span class="keyword">bool</span> <span class="identifier">lower_less_equal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
345</pre>
346<p>
347                </p>
348              </td>
349<td>
350                <p>
351                  Compares the beginnings of intervals.
352</p>
353<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">lower_less</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span>  <span class="special">==</span> <span class="keyword">true</span><span class="special">;</span> <span class="comment">// x begins before y</span>
354<span class="identifier">lower_equal</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span><span class="special">;</span> <span class="comment">// x and y begin at the same element</span>
355<span class="identifier">lower_less_equal</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">lower_less</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span> <span class="special">||</span> <span class="identifier">lower_equal</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">);</span>
356</pre>
357<p>
358                </p>
359              </td>
360</tr>
361<tr>
362<td>
363                <p>
364</p>
365<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">upper_less</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
366<span class="keyword">bool</span> <span class="identifier">upper_equal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
367<span class="keyword">bool</span> <span class="identifier">upper_less_equal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;)</span>
368</pre>
369<p>
370                </p>
371              </td>
372<td>
373                <p>
374                  Compares the endings of intervals.
375</p>
376<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">upper_less</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span>  <span class="special">==</span> <span class="keyword">true</span><span class="special">;</span> <span class="comment">// x ends before y</span>
377<span class="identifier">upper_equal</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span><span class="special">;</span> <span class="comment">// x and y end at the same element</span>
378<span class="identifier">upper_less_equal</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">upper_less</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span> <span class="special">||</span> <span class="identifier">upper_equal</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">);</span>
379</pre>
380<p>
381                </p>
382              </td>
383</tr>
384</tbody>
385</table></div>
386<p>
387        <span class="emphasis"><em><span class="bold"><strong>See also . . .</strong></span></em></span>
388      </p>
389<div class="informaltable"><table class="table">
390<colgroup><col></colgroup>
391<thead><tr></tr></thead>
392<tbody><tr><td>
393                <p>
394                  <a class="link" href="equivalences_and_orderings.html" title="Equivalences and Orderings"><span class="emphasis"><em><span class="bold"><strong>Equivalences and Orderings</strong></span></em></span></a>
395                </p>
396              </td></tr></tbody>
397</table></div>
398<p>
399        <span class="emphasis"><em><span class="bold"><strong>Back to section . . .</strong></span></em></span>
400      </p>
401<div class="informaltable"><table class="table">
402<colgroup><col></colgroup>
403<thead><tr></tr></thead>
404<tbody>
405<tr><td>
406                <p>
407                  <a class="link" href="../interface/function_synopsis.html#additional_interval_functions"><span class="emphasis"><em><span class="bold"><strong>Additional interval functions</strong></span></em></span></a>
408                </p>
409              </td></tr>
410<tr><td>
411                <p>
412                  <a class="link" href="../interface/function_synopsis.html#function_synopsis_table"><span class="emphasis"><em><span class="bold"><strong>Function
413                  Synopsis</strong></span></em></span></a>
414                </p>
415              </td></tr>
416<tr><td>
417                <p>
418                  <a class="link" href="../interface.html" title="Interface"><span class="emphasis"><em><span class="bold"><strong>Interface</strong></span></em></span></a>
419                </p>
420              </td></tr>
421</tbody>
422</table></div>
423</div>
424<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
425<td align="left"></td>
426<td align="right"><div class="copyright-footer">Copyright © 2007-2010 Joachim
427      Faulhaber<br>Copyright © 1999-2006 Cortex Software
428      GmbH<p>
429        Distributed under the Boost Software License, Version 1.0. (See accompanying
430        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>)
431      </p>
432</div></td>
433</tr></table>
434<hr>
435<div class="spirit-nav">
436<a accesskey="p" href="interval_construction.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="miscellaneous_interval_functions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
437</div>
438</body>
439</html>
440