]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/icl/doc/html/boost_icl/function_reference/addition.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / icl / doc / html / boost_icl / function_reference / addition.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Addition</title>
5 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
7 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Icl">
8 <link rel="up" href="../function_reference.html" title="Function Reference">
9 <link rel="prev" href="selection.html" title="Selection">
10 <link rel="next" href="subtraction.html" title="Subtraction">
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="selection.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="subtraction.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section boost_icl_function_reference_addition" lang="en">
26 <div class="titlepage"><div><div><h3 class="title">
27 <a name="boost_icl.function_reference.addition"></a><a class="link" href="addition.html" title="Addition">Addition</a>
28 </h3></div></div></div>
29 <div class="toc"><dl>
30 <dt><span class="section"><a href="addition.html#boost_icl.function_reference.addition.synopsis">Synopsis</a></span></dt>
31 <dt><span class="section"><a href="addition.html#boost_icl.function_reference.addition.functions">Functions</a></span></dt>
32 <dt><span class="section"><a href="addition.html#boost_icl.function_reference.addition.inplace_operators">Inplace
33 operators</a></span></dt>
34 <dt><span class="section"><a href="addition.html#boost_icl.function_reference.addition.infix_operators">Infix
35 operators</a></span></dt>
36 </dl></div>
37 <div class="section boost_icl_function_reference_addition_synopsis" lang="en">
38 <div class="titlepage"><div><div><h4 class="title">
39 <a name="boost_icl.function_reference.addition.synopsis"></a><a class="link" href="addition.html#boost_icl.function_reference.addition.synopsis" title="Synopsis">Synopsis</a>
40 </h4></div></div></div>
41 <div class="informaltable"><table class="table">
42 <colgroup>
43 <col>
44 <col>
45 <col>
46 <col>
47 <col>
48 </colgroup>
49 <thead><tr>
50 <th>
51 <p>
52 Addition
53 </p>
54 </th>
55 <th>
56 <p>
57 interval<br> sets
58 </p>
59 </th>
60 <th>
61 <p>
62 interval<br> maps
63 </p>
64 </th>
65 <th>
66 <p>
67 element<br> sets
68 </p>
69 </th>
70 <th>
71 <p>
72 element<br> maps
73 </p>
74 </th>
75 </tr></thead>
76 <tbody>
77 <tr>
78 <td>
79 <p>
80 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
81 <span class="identifier">T</span><span class="special">::</span><span class="identifier">add</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
82 </p>
83 </td>
84 <td>
85 <p>
86 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
87 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
88 </p>
89 </td>
90 <td>
91 <p>
92 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
93 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
94 </p>
95 </td>
96 <td>
97 <p>
98 </p>
99 </td>
100 <td>
101 <p>
102 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
103 </p>
104 </td>
105 </tr>
106 <tr>
107 <td>
108 <p>
109 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
110 <span class="identifier">add</span><span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span>
111 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
112 </p>
113 </td>
114 <td>
115 <p>
116 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
117 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
118 </p>
119 </td>
120 <td>
121 <p>
122 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
123 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
124 </p>
125 </td>
126 <td>
127 <p>
128 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
129 </p>
130 </td>
131 <td>
132 <p>
133 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
134 </p>
135 </td>
136 </tr>
137 <tr>
138 <td>
139 <p>
140 <code class="computeroutput"><span class="identifier">J</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">J</span>
141 <span class="identifier">pos</span><span class="special">,</span>
142 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
143 </p>
144 </td>
145 <td>
146 <p>
147 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
148 </p>
149 </td>
150 <td>
151 <p>
152 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
153 </p>
154 </td>
155 <td>
156 <p>
157 </p>
158 </td>
159 <td>
160 <p>
161 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
162 </p>
163 </td>
164 </tr>
165 <tr>
166 <td>
167 <p>
168 <code class="computeroutput"><span class="identifier">J</span> <span class="identifier">add</span><span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="identifier">J</span>
169 <span class="identifier">pos</span><span class="special">,</span>
170 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
171 </p>
172 </td>
173 <td>
174 <p>
175 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
176 </p>
177 </td>
178 <td>
179 <p>
180 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
181 </p>
182 </td>
183 <td>
184 <p>
185 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
186 </p>
187 </td>
188 <td>
189 <p>
190 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
191 </p>
192 </td>
193 </tr>
194 <tr>
195 <td>
196 <p>
197 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
198 <span class="keyword">operator</span> <span class="special">+=(</span><span class="identifier">T</span><span class="special">&amp;,</span>
199 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
200 </p>
201 </td>
202 <td>
203 <p>
204 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
205 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
206 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
207 </p>
208 </td>
209 <td>
210 <p>
211 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
212 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
213 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
214 </p>
215 </td>
216 <td>
217 <p>
218 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
219 <a class="link" href="../interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a>
220 </p>
221 </td>
222 <td>
223 <p>
224 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
225 <a class="link" href="../interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a>
226 </p>
227 </td>
228 </tr>
229 <tr>
230 <td>
231 <p>
232 <code class="computeroutput"><span class="identifier">T</span> <span class="keyword">operator</span>
233 <span class="special">+</span> <span class="special">(</span><span class="identifier">T</span><span class="special">,</span>
234 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code><br> <code class="computeroutput"><span class="identifier">T</span>
235 <span class="keyword">operator</span> <span class="special">+</span>
236 <span class="special">(</span><span class="keyword">const</span>
237 <span class="identifier">P</span><span class="special">&amp;,</span>
238 <span class="identifier">T</span><span class="special">)</span></code>
239 </p>
240 </td>
241 <td>
242 <p>
243 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
244 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
245 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
246 </p>
247 </td>
248 <td>
249 <p>
250 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
251 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
252 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
253 </p>
254 </td>
255 <td>
256 <p>
257 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
258 <a class="link" href="../interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a>
259 </p>
260 </td>
261 <td>
262 <p>
263 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
264 <a class="link" href="../interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a>
265 </p>
266 </td>
267 </tr>
268 <tr>
269 <td>
270 <p>
271 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
272 <span class="keyword">operator</span> <span class="special">|=(</span>
273 <span class="identifier">T</span><span class="special">&amp;,</span>
274 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
275 </p>
276 </td>
277 <td>
278 <p>
279 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
280 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
281 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
282 </p>
283 </td>
284 <td>
285 <p>
286 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
287 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
288 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
289 </p>
290 </td>
291 <td>
292 <p>
293 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
294 <a class="link" href="../interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a>
295 </p>
296 </td>
297 <td>
298 <p>
299 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
300 <a class="link" href="../interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a>
301 </p>
302 </td>
303 </tr>
304 <tr>
305 <td>
306 <p>
307 <code class="computeroutput"><span class="identifier">T</span> <span class="keyword">operator</span>
308 <span class="special">|</span> <span class="special">(</span><span class="identifier">T</span><span class="special">,</span>
309 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code><br> <code class="computeroutput"><span class="identifier">T</span>
310 <span class="keyword">operator</span> <span class="special">|</span>
311 <span class="special">(</span><span class="keyword">const</span>
312 <span class="identifier">P</span><span class="special">&amp;,</span>
313 <span class="identifier">T</span><span class="special">)</span></code>
314 </p>
315 </td>
316 <td>
317 <p>
318 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
319 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
320 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
321 </p>
322 </td>
323 <td>
324 <p>
325 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
326 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
327 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
328 </p>
329 </td>
330 <td>
331 <p>
332 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
333 <a class="link" href="../interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a>
334 </p>
335 </td>
336 <td>
337 <p>
338 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
339 <a class="link" href="../interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a>
340 </p>
341 </td>
342 </tr>
343 </tbody>
344 </table></div>
345 <p>
346 Functions and operators that implement <span class="emphasis"><em><span class="bold"><strong>Addition</strong></span></em></span>
347 on <span class="bold"><strong>icl</strong></span> objects are given in the table
348 above. <code class="computeroutput"><span class="keyword">operator</span> <span class="special">|=</span></code>
349 and <code class="computeroutput"><span class="keyword">operator</span> <span class="special">|</span></code>
350 are behavioral identical to <code class="computeroutput"><span class="keyword">operator</span>
351 <span class="special">+=</span></code> and <code class="computeroutput"><span class="keyword">operator</span>
352 <span class="special">+</span></code>. This is a redundancy that has
353 been introduced deliberately, because a <span class="emphasis"><em>set union</em></span>
354 semantics is often attached <code class="computeroutput"><span class="identifier">operators</span>
355 <span class="special">|=</span></code> and <code class="computeroutput"><span class="special">|</span></code>.
356 </p>
357 <div class="informaltable"><table class="table">
358 <colgroup>
359 <col>
360 <col>
361 </colgroup>
362 <thead><tr>
363 <th>
364 <p>
365 </p>
366 </th>
367 <th>
368 <p>
369 Description of Addition
370 </p>
371 </th>
372 </tr></thead>
373 <tbody>
374 <tr>
375 <td>
376 <p>
377 <code class="computeroutput"><span class="identifier">Sets</span></code>
378 </p>
379 </td>
380 <td>
381 <p>
382 Addition on Sets implements <span class="emphasis"><em><span class="bold"><strong>set
383 union</strong></span></em></span>
384 </p>
385 </td>
386 </tr>
387 <tr>
388 <td>
389 <p>
390 <code class="computeroutput"><span class="identifier">Maps</span></code>
391 </p>
392 </td>
393 <td>
394 <p>
395 Addition on Maps implements a <span class="emphasis"><em><span class="bold"><strong>map
396 union</strong></span></em></span> function similar to <span class="emphasis"><em>set union</em></span>.
397 If, on insertion of an element value pair <code class="computeroutput"><span class="special">(</span><span class="identifier">k</span><span class="special">,</span><span class="identifier">v</span><span class="special">)</span></code>
398 it's key <code class="computeroutput"><span class="identifier">k</span></code> is in
399 the map already, the addition function is propagated to the associated
400 value. This functionality has been introduced as <span class="emphasis"><em>aggregate
401 on collision</em></span> for element maps and <span class="emphasis"><em>aggregate
402 on overlap</em></span> for interval maps.
403 </p>
404 <p>
405 Find more on <a class="link" href="../concepts/aggrovering.html" title="Addability, Subtractability and Aggregate on Overlap"><span class="emphasis"><em>addability
406 of maps</em></span></a> and related <a class="link" href="../semantics/maps.html" title="Maps"><span class="emphasis"><em>semantic
407 issues</em></span></a> following the links.
408 </p>
409 <p>
410 Examples, demonstrating Addition on interval containers are <a class="link" href="../examples/overlap_counter.html" title="Overlap counter"><span class="emphasis"><em>overlap
411 counter</em></span></a>, <a class="link" href="../examples/party.html" title="Party"><span class="emphasis"><em>party</em></span></a>
412 and <a class="link" href="../examples/partys_height_average.html" title="Party's height average"><span class="emphasis"><em>party's
413 height average.</em></span></a>
414 </p>
415 </td>
416 </tr>
417 </tbody>
418 </table></div>
419 <p>
420 For <code class="computeroutput"><span class="identifier">Sets</span></code> <span class="emphasis"><em><span class="bold"><strong>addition</strong></span></em></span> and <span class="emphasis"><em><span class="bold"><strong>insertion</strong></span></em></span>
421 are implemented identically. Functions <code class="computeroutput"><span class="identifier">add</span></code>
422 and <code class="computeroutput"><span class="identifier">insert</span></code> collapse to
423 the same function. For <code class="computeroutput"><span class="identifier">Maps</span></code>
424 <span class="emphasis"><em><span class="bold"><strong>addition</strong></span></em></span> and <span class="emphasis"><em><span class="bold"><strong>insertion</strong></span></em></span> work differently. Function
425 <code class="computeroutput"><span class="identifier">add</span></code> performs aggregations
426 on collision or overlap, while function <code class="computeroutput"><span class="identifier">insert</span></code>
427 only inserts values that do not yet have key values.
428 </p>
429 </div>
430 <div class="section boost_icl_function_reference_addition_functions" lang="en">
431 <div class="titlepage"><div><div><h4 class="title">
432 <a name="boost_icl.function_reference.addition.functions"></a><a class="link" href="addition.html#boost_icl.function_reference.addition.functions" title="Functions">Functions</a>
433 </h4></div></div></div>
434 <p>
435 The admissible combinations of types for member function <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">add</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
436 can be summarized in the <span class="emphasis"><em><span class="bold"><strong>overload table</strong></span></em></span>
437 below:
438 </p>
439 <p>
440
441 </p>
442 <pre class="programlisting"><span class="comment">// overload table for T\P| e i b p
443 </span><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">add</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span> <span class="special">---+--------</span>
444 <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">add</span><span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span> <span class="identifier">s</span> <span class="special">|</span> <span class="identifier">s</span>
445 <span class="identifier">m</span> <span class="special">|</span> <span class="identifier">m</span>
446 <span class="identifier">S</span> <span class="special">|</span> <span class="identifier">S</span> <span class="identifier">S</span>
447 <span class="identifier">M</span> <span class="special">|</span> <span class="identifier">M</span> <span class="identifier">M</span>
448 </pre>
449 <p>
450 </p>
451 <p>
452 The next table contains complexity characteristics for <code class="computeroutput"><span class="identifier">add</span></code>.
453 </p>
454 <div class="table">
455 <a name="id1155216"></a><p class="title"><b>Table&#160;1.21.&#160;Time Complexity for member function add on icl
456 containers</b></p>
457 <div class="table-contents"><table class="table" summary="Time Complexity for member function add on icl
458 containers">
459 <colgroup>
460 <col>
461 <col>
462 <col>
463 <col>
464 <col>
465 </colgroup>
466 <thead><tr>
467 <th>
468 <p>
469 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
470 <span class="identifier">T</span><span class="special">::</span><span class="identifier">add</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code><br> <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">add</span><span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span>
471 <span class="identifier">P</span><span class="special">&amp;)</span></code>
472 </p>
473 </th>
474 <th>
475 <p>
476 domain<br> type
477 </p>
478 </th>
479 <th>
480 <p>
481 interval<br> type
482 </p>
483 </th>
484 <th>
485 <p>
486 domain<br> mapping<br> type
487 </p>
488 </th>
489 <th>
490 <p>
491 interval<br> mapping<br> type
492 </p>
493 </th>
494 </tr></thead>
495 <tbody>
496 <tr>
497 <td>
498 <p>
499 <a href="http://www.cplusplus.com/reference/stl/set/" target="_top"><code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span></code> </a>
500 </p>
501 </td>
502 <td>
503 <p>
504 <span class="emphasis"><em>O(log n)</em></span>
505 </p>
506 </td>
507 <td>
508 <p>
509 </p>
510 </td>
511 <td>
512 <p>
513 </p>
514 </td>
515 <td>
516 <p>
517 </p>
518 </td>
519 </tr>
520 <tr>
521 <td>
522 <p>
523 <code class="computeroutput"><a class="link" href="../../boost/icl/map.html" title="Class template map">icl::map</a></code>
524 </p>
525 </td>
526 <td>
527 <p>
528 </p>
529 </td>
530 <td>
531 <p>
532 </p>
533 </td>
534 <td>
535 <p>
536 <span class="emphasis"><em>O(log n)</em></span>
537 </p>
538 </td>
539 <td>
540 <p>
541 </p>
542 </td>
543 </tr>
544 <tr>
545 <td>
546 <p>
547 <code class="computeroutput"><a class="link" href="../../boost/icl/interval_set.html" title="Class template interval_set">interval_set</a></code><br>
548 <code class="computeroutput"><a class="link" href="../../boost/icl/separate_interval_set.html" title="Class template separate_interval_set">separate_interval_set</a></code>
549 </p>
550 </td>
551 <td>
552 <p>
553 <span class="emphasis"><em>O(log n)</em></span>
554 </p>
555 </td>
556 <td>
557 <p>
558 <span class="emphasis"><em>amortized<br> O(log n)</em></span>
559 </p>
560 </td>
561 <td>
562 <p>
563 </p>
564 </td>
565 <td>
566 <p>
567 </p>
568 </td>
569 </tr>
570 <tr>
571 <td>
572 <p>
573 <code class="computeroutput"><a class="link" href="../../boost/icl/split_interval_set.html" title="Class template split_interval_set">split_interval_set</a></code>
574 </p>
575 </td>
576 <td>
577 <p>
578 <span class="emphasis"><em>O(log n)</em></span>
579 </p>
580 </td>
581 <td>
582 <p>
583 <span class="emphasis"><em>O(n)</em></span>
584 </p>
585 </td>
586 <td>
587 <p>
588 </p>
589 </td>
590 <td>
591 <p>
592 </p>
593 </td>
594 </tr>
595 <tr>
596 <td>
597 <p>
598 <code class="computeroutput"><a class="link" href="../../boost/icl/interval_map.html" title="Class template interval_map">interval_map</a></code><br>
599 <code class="computeroutput"><a class="link" href="../../boost/icl/split_interval_map.html" title="Class template split_interval_map">split_interval_map</a></code>
600 </p>
601 </td>
602 <td>
603 <p>
604 </p>
605 </td>
606 <td>
607 <p>
608 </p>
609 </td>
610 <td>
611 <p>
612 <span class="emphasis"><em>O(log n)</em></span>
613 </p>
614 </td>
615 <td>
616 <p>
617 <span class="emphasis"><em>O(n)</em></span>
618 </p>
619 </td>
620 </tr>
621 </tbody>
622 </table></div>
623 </div>
624 <br class="table-break"><a name="boost_icl.function_reference.addition.functions.hinted_addition"></a><h6>
625 <a name="id1155640"></a>
626 <a class="link" href="addition.html#boost_icl.function_reference.addition.functions.hinted_addition">Hinted
627 addition</a>
628 </h6>
629 <p>
630 Function <code class="computeroutput"><span class="identifier">J</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">J</span> <span class="identifier">prior</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;</span> <span class="identifier">addend</span><span class="special">)</span></code>
631 allows for an addition in <span class="emphasis"><em><span class="bold"><strong>constant time</strong></span></em></span>,
632 if <code class="computeroutput"><span class="identifier">addend</span></code> can be inserted
633 right after iterator <code class="computeroutput"><span class="identifier">prior</span></code>
634 without collision. If this is not possible the complexity characteristics
635 are as stated for the non hinted addition above. Hinted addition is available
636 for these combinations of types:
637 </p>
638 <pre class="programlisting"><span class="comment">// overload table for addition with hint T\P| e i b p
639 </span><span class="identifier">J</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">J</span> <span class="identifier">prior</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span> <span class="special">---+--------</span>
640 <span class="identifier">J</span> <span class="identifier">add</span><span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="identifier">J</span> <span class="identifier">prior</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span> <span class="identifier">s</span> <span class="special">|</span> <span class="identifier">s</span>
641 <span class="identifier">m</span> <span class="special">|</span> <span class="identifier">m</span>
642 <span class="identifier">S</span> <span class="special">|</span> <span class="identifier">S</span>
643 <span class="identifier">M</span> <span class="special">|</span> <span class="identifier">M</span>
644 </pre>
645 <p>
646 </p>
647 </div>
648 <div class="section boost_icl_function_reference_addition_inplace_operators" lang="en">
649 <div class="titlepage"><div><div><h4 class="title">
650 <a name="boost_icl.function_reference.addition.inplace_operators"></a><a class="link" href="addition.html#boost_icl.function_reference.addition.inplace_operators" title="Inplace operators">Inplace
651 operators</a>
652 </h4></div></div></div>
653 <p>
654 The possible overloads of inplace <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span> <span class="keyword">operator</span>
655 <span class="special">+=</span> <span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code> are given by two tables, that show
656 admissible combinations of types. Row types show instantiations of argument
657 type <code class="computeroutput"><span class="identifier">T</span></code>. Columns types show
658 show instantiations of argument type <code class="computeroutput"><span class="identifier">P</span></code>.
659 If a combination of argument types is possible, the related table cell
660 contains the result type of the operation. <a class="link" href="../interface/function_synopsis.html#element_type">Placeholders</a>
661 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
662 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
663 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
664 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
665 <a class="link" href="../interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a>
666 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
667 <a class="link" href="../interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a>
668 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
669 will be used to denote <span class="emphasis"><em>elements, intervals, element value pairs,
670 interval value pairs, element sets, interval sets, element maps</em></span>
671 and <span class="emphasis"><em>interval maps</em></span>. The first table shows the overloads
672 of <code class="computeroutput"><span class="special">+=</span></code> for <span class="emphasis"><em>element
673 containers</em></span> the second table refers to <span class="emphasis"><em>interval containers</em></span>.
674 </p>
675 <p>
676
677 </p>
678 <pre class="programlisting"><span class="comment">// overload tables for element containers: interval containers:
679 </span><span class="identifier">T</span><span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">+=</span> <span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span> <span class="special">+=</span> <span class="special">|</span> <span class="identifier">e</span> <span class="identifier">b</span> <span class="identifier">s</span> <span class="identifier">m</span> <span class="special">+=</span> <span class="special">|</span> <span class="identifier">e</span> <span class="identifier">i</span> <span class="identifier">b</span> <span class="identifier">p</span> <span class="identifier">S</span> <span class="identifier">M</span>
680 <span class="special">---+--------</span> <span class="special">---+------------</span>
681 <span class="identifier">s</span> <span class="special">|</span> <span class="identifier">s</span> <span class="identifier">s</span> <span class="identifier">S</span> <span class="special">|</span> <span class="identifier">S</span> <span class="identifier">S</span> <span class="identifier">S</span>
682 <span class="identifier">m</span> <span class="special">|</span> <span class="identifier">m</span> <span class="identifier">m</span> <span class="identifier">M</span> <span class="special">|</span> <span class="identifier">M</span> <span class="identifier">M</span> <span class="identifier">M</span>
683 </pre>
684 <p>
685 </p>
686 <p>
687 For the definition of admissible overloads we separate <span class="emphasis"><em>element
688 containers</em></span> from <span class="emphasis"><em>interval containers</em></span>. Within
689 each group all combinations of types are supported for an operation, that
690 are in line with the <span class="bold"><strong>icl's</strong></span> design and
691 the sets of laws, that establish the <span class="bold"><strong>icl's</strong></span>
692 <a class="link" href="../semantics.html" title="Semantics">semantics</a>.
693 </p>
694 <p>
695 Overloads between <span class="emphasis"><em>element containers</em></span> and <span class="emphasis"><em>interval
696 containers</em></span> could also be defined. But this has not been done
697 for pragmatical reasons: Each additional combination of types for an operation
698 enlarges the space of possible overloads. This makes the overload resolution
699 by compilers more complex, error prone and slows down compilation speed.
700 Error messages for unresolvable or ambiguous overloads are difficult to
701 read and understand. Therefore overloading of namespace global functions
702 in the <span class="bold"><strong>icl</strong></span> are limited to a reasonable
703 field of combinations, that are described here.
704 </p>
705 </div>
706 <a name="boost_icl.function_reference.addition.complexity"></a><h5>
707 <a name="id1156317"></a>
708 <a class="link" href="addition.html#boost_icl.function_reference.addition.complexity">Complexity</a>
709 </h5>
710 <p>
711 For different combinations of argument types <code class="computeroutput"><span class="identifier">T</span></code>
712 and <code class="computeroutput"><span class="identifier">P</span></code> different implementations
713 of the <code class="computeroutput"><span class="keyword">operator</span> <span class="special">+=</span></code>
714 are selected. These implementations show different complexity characteristics.
715 If <code class="computeroutput"><span class="identifier">T</span></code> is a container type,
716 the combination of domain elements (<a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>) or element value pairs (<a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>) is faster than a combination of intervals
717 (<a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>)
718 or interval value pairs (<a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>) which in turn is faster than the combination
719 of element or interval containers. The next table shows <span class="emphasis"><em>time complexities</em></span>
720 of addition for <span class="bold"><strong>icl's</strong></span> element containers.
721 </p>
722 <p>
723 Sizes <code class="computeroutput"><span class="identifier">n</span></code> and <code class="computeroutput"><span class="identifier">m</span></code> are in the complexity statements are
724 sizes of objects <code class="computeroutput"><span class="identifier">T</span> <span class="identifier">y</span></code>
725 and <code class="computeroutput"><span class="identifier">P</span> <span class="identifier">x</span></code>:
726
727 </p>
728 <pre class="programlisting"><span class="identifier">n</span> <span class="special">=</span> <span class="identifier">iterative_size</span><span class="special">(</span><span class="identifier">y</span><span class="special">);</span>
729 <span class="identifier">m</span> <span class="special">=</span> <span class="identifier">iterative_size</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span> <span class="comment">//if P is a container type
730 </span></pre>
731 <p>
732 Note, that for an interval container the number of elements <code class="computeroutput"><span class="identifier">T</span><span class="special">::</span><span class="identifier">size</span></code>
733 is different from the number of intervals that you can iterate over. Therefore
734 a function <code class="computeroutput"><span class="identifier">T</span><span class="special">::</span><span class="identifier">iterative_size</span><span class="special">()</span></code>
735 is used that provides the desired kind of size.
736 </p>
737 <div class="table">
738 <a name="id1157636"></a><p class="title"><b>Table&#160;1.22.&#160;Time Complexity for inplace Addition on element
739 containers</b></p>
740 <div class="table-contents"><table class="table" summary="Time Complexity for inplace Addition on element
741 containers">
742 <colgroup>
743 <col>
744 <col>
745 <col>
746 <col>
747 <col>
748 </colgroup>
749 <thead><tr>
750 <th>
751 <p>
752 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
753 <span class="keyword">operator</span> <span class="special">+=</span>
754 <span class="special">(</span><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;</span>
755 <span class="identifier">x</span><span class="special">)</span></code>
756 </p>
757 </th>
758 <th>
759 <p>
760 domain<br> type
761 </p>
762 </th>
763 <th>
764 <p>
765 domain<br> mapping<br> type
766 </p>
767 </th>
768 <th>
769 <p>
770 __ch_icl<span class="underline">sets</span><span class="underline">][</span>_ch_icl<span class="underline">maps</span>_
771 </p>
772 </th>
773 <td class="auto-generated">&#160;</td>
774 </tr></thead>
775 <tbody>
776 <tr>
777 <td>
778 <p>
779 <a href="http://www.cplusplus.com/reference/stl/set/" target="_top"><code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span></code> </a>
780 </p>
781 </td>
782 <td>
783 <p>
784 <span class="emphasis"><em>O(log n)</em></span>
785 </p>
786 </td>
787 <td>
788 <p>
789 </p>
790 </td>
791 <td>
792 <p>
793 <span class="emphasis"><em>O(m)</em></span>
794 </p>
795 </td>
796 <td>
797 <p>
798 </p>
799 </td>
800 </tr>
801 <tr>
802 <td>
803 <p>
804 <code class="computeroutput"><a class="link" href="../../boost/icl/map.html" title="Class template map">icl::map</a></code>
805 </p>
806 </td>
807 <td>
808 <p>
809 </p>
810 </td>
811 <td>
812 <p>
813 <span class="emphasis"><em>O(log n)</em></span>
814 </p>
815 </td>
816 <td>
817 <p>
818 </p>
819 </td>
820 <td>
821 <p>
822 <span class="emphasis"><em>O(m)</em></span>
823 </p>
824 </td>
825 </tr>
826 </tbody>
827 </table></div>
828 </div>
829 <br class="table-break"><p>
830 Time complexity characteristics of inplace addition for interval containers
831 is given by this table.
832 </p>
833 <div class="table">
834 <a name="id1157881"></a><p class="title"><b>Table&#160;1.23.&#160;Time Complexity for inplace Addition on interval
835 containers</b></p>
836 <div class="table-contents"><table class="table" summary="Time Complexity for inplace Addition on interval
837 containers">
838 <colgroup>
839 <col>
840 <col>
841 <col>
842 <col>
843 <col>
844 <col>
845 <col>
846 <col>
847 </colgroup>
848 <thead><tr>
849 <th>
850 <p>
851 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
852 <span class="keyword">operator</span> <span class="special">+=</span>
853 <span class="special">(</span><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;</span>
854 <span class="identifier">x</span><span class="special">)</span></code>
855 </p>
856 </th>
857 <th>
858 <p>
859 </p>
860 </th>
861 <th>
862 <p>
863 domain<br> type
864 </p>
865 </th>
866 <th>
867 <p>
868 interval<br> type
869 </p>
870 </th>
871 <th>
872 <p>
873 domain<br> mapping<br> type
874 </p>
875 </th>
876 <th>
877 <p>
878 interval<br> mapping<br> type
879 </p>
880 </th>
881 <th>
882 <p>
883 interval<br> sets
884 </p>
885 </th>
886 <th>
887 <p>
888 interval<br> maps
889 </p>
890 </th>
891 </tr></thead>
892 <tbody>
893 <tr>
894 <td>
895 <p>
896 interval_sets
897 </p>
898 </td>
899 <td>
900 <p>
901 <code class="computeroutput"><a class="link" href="../../boost/icl/interval_set.html" title="Class template interval_set">interval_set</a></code><br>
902 <code class="computeroutput"><a class="link" href="../../boost/icl/separate_interval_set.html" title="Class template separate_interval_set">separate_interval_set</a></code>
903 </p>
904 </td>
905 <td>
906 <p>
907 <span class="emphasis"><em>O(log n)</em></span>
908 </p>
909 </td>
910 <td>
911 <p>
912 <span class="emphasis"><em>amortized<br> O(log n)</em></span>
913 </p>
914 </td>
915 <td>
916 <p>
917 </p>
918 </td>
919 <td>
920 <p>
921 </p>
922 </td>
923 <td>
924 <p>
925 <span class="emphasis"><em>O(m log(n+m))</em></span>
926 </p>
927 </td>
928 <td>
929 <p>
930 </p>
931 </td>
932 </tr>
933 <tr>
934 <td>
935 <p>
936 </p>
937 </td>
938 <td>
939 <p>
940 <code class="computeroutput"><a class="link" href="../../boost/icl/split_interval_set.html" title="Class template split_interval_set">split_interval_set</a></code>
941 </p>
942 </td>
943 <td>
944 <p>
945 <span class="emphasis"><em>O(log n)</em></span>
946 </p>
947 </td>
948 <td>
949 <p>
950 <span class="emphasis"><em>O(n)</em></span>
951 </p>
952 </td>
953 <td>
954 <p>
955 </p>
956 </td>
957 <td>
958 <p>
959 </p>
960 </td>
961 <td>
962 <p>
963 <span class="emphasis"><em>O(m log(n+m))</em></span>
964 </p>
965 </td>
966 <td>
967 <p>
968 </p>
969 </td>
970 </tr>
971 <tr>
972 <td>
973 <p>
974 interval_maps
975 </p>
976 </td>
977 <td>
978 <p>
979 </p>
980 </td>
981 <td>
982 <p>
983 </p>
984 </td>
985 <td>
986 <p>
987 </p>
988 </td>
989 <td>
990 <p>
991 <span class="emphasis"><em>O(log n)</em></span>
992 </p>
993 </td>
994 <td>
995 <p>
996 <span class="emphasis"><em>O(n)</em></span>
997 </p>
998 </td>
999 <td>
1000 <p>
1001 </p>
1002 </td>
1003 <td>
1004 <p>
1005 <span class="emphasis"><em>O(m log(n+m))</em></span>
1006 </p>
1007 </td>
1008 </tr>
1009 </tbody>
1010 </table></div>
1011 </div>
1012 <br class="table-break"><p>
1013 Since the implementation of element and interval containers is based on the
1014 <a class="link" href="../implementation.html" title="Implementation">link red-black tree implementation</a>
1015 of std::AssociativeContainers, we have a logarithmic complexity for addition
1016 of elements. Addition of intervals or interval value pairs is amortized logarithmic
1017 for <code class="computeroutput"><a class="link" href="../../boost/icl/interval_set.html" title="Class template interval_set">interval_sets</a></code> and
1018 <code class="computeroutput"><a class="link" href="../../boost/icl/separate_interval_set.html" title="Class template separate_interval_set">separate_interval_sets</a></code>
1019 and linear for <code class="computeroutput"><a class="link" href="../../boost/icl/split_interval_set.html" title="Class template split_interval_set">split_interval_sets</a></code>
1020 and <code class="computeroutput"><a class="link" href="../../boost/icl/interval_map.html" title="Class template interval_map">interval_maps</a></code>.
1021 Addition is linear for element containers and loglinear for interval containers.
1022 </p>
1023 <div class="section boost_icl_function_reference_addition_infix_operators" lang="en">
1024 <div class="titlepage"><div><div><h4 class="title">
1025 <a name="boost_icl.function_reference.addition.infix_operators"></a><a class="link" href="addition.html#boost_icl.function_reference.addition.infix_operators" title="Infix operators">Infix
1026 operators</a>
1027 </h4></div></div></div>
1028 <p>
1029 The admissible type combinations for infix <code class="computeroutput"><span class="keyword">operator</span>
1030 <span class="special">+</span></code> are defined by the overload tables
1031 below.
1032 </p>
1033 <p>
1034
1035 </p>
1036 <pre class="programlisting"><span class="comment">// overload tables for element containers: interval containers:
1037 </span><span class="identifier">T</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="identifier">T</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span> <span class="special">+</span> <span class="special">|</span> <span class="identifier">e</span> <span class="identifier">b</span> <span class="identifier">s</span> <span class="identifier">m</span> <span class="special">+</span> <span class="special">|</span> <span class="identifier">e</span> <span class="identifier">i</span> <span class="identifier">b</span> <span class="identifier">p</span> <span class="identifier">S1</span> <span class="identifier">S2</span> <span class="identifier">S3</span> <span class="identifier">M1</span> <span class="identifier">M3</span>
1038 <span class="identifier">T</span> <span class="keyword">operator</span> <span class="special">+</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;,</span> <span class="identifier">T</span><span class="special">)</span> <span class="special">---+--------</span> <span class="special">---+---------------------------</span>
1039 <span class="identifier">e</span> <span class="special">|</span> <span class="identifier">s</span> <span class="identifier">e</span> <span class="special">|</span> <span class="identifier">S1</span> <span class="identifier">S2</span> <span class="identifier">S3</span>
1040 <span class="identifier">b</span> <span class="special">|</span> <span class="identifier">m</span> <span class="identifier">i</span> <span class="special">|</span> <span class="identifier">S1</span> <span class="identifier">S2</span> <span class="identifier">S3</span>
1041 <span class="identifier">s</span> <span class="special">|</span> <span class="identifier">s</span> <span class="identifier">s</span> <span class="identifier">b</span> <span class="special">|</span> <span class="identifier">M1</span> <span class="identifier">M3</span>
1042 <span class="identifier">m</span> <span class="special">|</span> <span class="identifier">m</span> <span class="identifier">m</span> <span class="identifier">p</span> <span class="special">|</span> <span class="identifier">M1</span> <span class="identifier">M3</span>
1043 <span class="identifier">S1</span> <span class="special">|</span> <span class="identifier">S1</span> <span class="identifier">S1</span> <span class="identifier">S1</span> <span class="identifier">S2</span> <span class="identifier">S3</span>
1044 <span class="identifier">S2</span> <span class="special">|</span> <span class="identifier">S2</span> <span class="identifier">S2</span> <span class="identifier">S2</span> <span class="identifier">S2</span> <span class="identifier">S3</span>
1045 <span class="identifier">S3</span> <span class="special">|</span> <span class="identifier">S3</span> <span class="identifier">S3</span> <span class="identifier">S3</span> <span class="identifier">S3</span> <span class="identifier">S3</span>
1046 <span class="identifier">M1</span> <span class="special">|</span> <span class="identifier">M1</span> <span class="identifier">M1</span> <span class="identifier">M1</span> <span class="identifier">M3</span>
1047 <span class="identifier">M3</span> <span class="special">|</span> <span class="identifier">M3</span> <span class="identifier">M3</span> <span class="identifier">M3</span> <span class="identifier">M3</span>
1048 </pre>
1049 <p>
1050 </p>
1051 </div>
1052 <p>
1053 <span class="emphasis"><em><span class="bold"><strong>See also . . .</strong></span></em></span>
1054 </p>
1055 <div class="informaltable"><table class="table">
1056 <colgroup><col></colgroup>
1057 <thead><tr></tr></thead>
1058 <tbody>
1059 <tr><td>
1060 <p>
1061 <a class="link" href="subtraction.html" title="Subtraction"><span class="emphasis"><em><span class="bold"><strong>Subtraction</strong></span></em></span></a>
1062 </p>
1063 </td></tr>
1064 <tr><td>
1065 <p>
1066 <a class="link" href="insertion.html" title="Insertion"><span class="emphasis"><em><span class="bold"><strong>Insertion</strong></span></em></span></a>
1067 </p>
1068 </td></tr>
1069 </tbody>
1070 </table></div>
1071 <p>
1072 <span class="emphasis"><em><span class="bold"><strong>Back to section . . .</strong></span></em></span>
1073 </p>
1074 <div class="informaltable"><table class="table">
1075 <colgroup><col></colgroup>
1076 <thead><tr></tr></thead>
1077 <tbody>
1078 <tr><td>
1079 <p>
1080 <a class="link" href="../interface/function_synopsis.html#function_synopsis_table"><span class="emphasis"><em><span class="bold"><strong>Function
1081 Synopsis</strong></span></em></span></a>
1082 </p>
1083 </td></tr>
1084 <tr><td>
1085 <p>
1086 <a class="link" href="../interface.html" title="Interface"><span class="emphasis"><em><span class="bold"><strong>Interface</strong></span></em></span></a>
1087 </p>
1088 </td></tr>
1089 </tbody>
1090 </table></div>
1091 </div>
1092 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
1093 <td align="left"></td>
1094 <td align="right"><div class="copyright-footer">Copyright &#169; 2007 -2010 Joachim Faulhaber<br>Copyright &#169; 1999 -2006 Cortex Software GmbH<p>
1095 Distributed under the Boost Software License, Version 1.0. (See accompanying
1096 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>)
1097 </p>
1098 </div></td>
1099 </tr></table>
1100 <hr>
1101 <div class="spirit-nav">
1102 <a accesskey="p" href="selection.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="subtraction.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
1103 </div>
1104 </body>
1105 </html>