~ubuntu-branches/ubuntu/trusty/bmagic/trusty

« back to all changes in this revision

Viewing changes to doc/html/a00124.html

  • Committer: Bazaar Package Importer
  • Author(s): Roberto C. Sanchez
  • Date: 2010-04-08 16:47:58 UTC
  • mfrom: (4.1.7 sid)
  • Revision ID: james.westby@ubuntu.com-20100408164758-3vu6wmrk1dnzqnnj
Tags: 3.6.4-1
* New upstream release
* Update to Standards-Version 3.8.4 (no changes)

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
<html xmlns="http://www.w3.org/1999/xhtml">
3
3
<head>
4
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
 
<title>BitMagic: Set algorithms</title>
 
5
<title>BitMagic: Processor specific optimizations for SSE4.2 instructions</title>
6
6
<link href="tabs.css" rel="stylesheet" type="text/css"/>
7
7
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
8
</head>
21
21
  </div>
22
22
</div>
23
23
<div class="contents">
24
 
<h1>Set algorithms<br/>
 
24
<h1>Processor specific optimizations for SSE4.2 instructions<br/>
25
25
<small>
26
 
[<a class="el" href="a00117.html">BitMagic C++ Library</a>]</small>
 
26
[<a class="el" href="a00118.html">BitMagic C++ Library</a>]</small>
27
27
</h1>
28
28
<p><div class="dynheader">
29
 
Collaboration diagram for Set algorithms:</div>
 
29
Collaboration diagram for Processor specific optimizations for SSE4.2 instructions:</div>
30
30
<div class="dynsection">
31
31
<center><table><tr><td><img src="a00124.png" border="0" alt="" usemap="#a00124_map"/>
32
32
<map name="a00124_map" id="a00124">
33
 
<area shape="rect" href="a00117.html" title="For more information please visit: http://bmagic.sourceforge.net." alt="" coords="5,5,149,35"/><area shape="rect" href="a00125.html" title="Distance metrics" alt="" coords="352,5,472,35"/></map></td></tr></table></center>
 
33
<area shape="rect" href="a00118.html" title="For more information please visit: http://bmagic.sourceforge.net." alt="" coords="5,5,149,35"/></map></td></tr></table></center>
34
34
</div>
35
35
</p>
36
36
<table border="0" cellpadding="0" cellspacing="0">
37
 
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
38
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">bm::random_subset&lt; BV &gt;</a></td></tr>
39
 
<tr><td colspan="2"><h2>Modules</h2></td></tr>
40
 
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html">Distance metrics</a></td></tr>
41
37
<tr><td colspan="2"><h2>Functions</h2></td></tr>
42
 
<tr><td class="memTemplParams" colspan="2">template&lt;class BV , class It &gt; </td></tr>
43
 
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#ga54ff78528c99ae3ca443eb99ba44785b">bm::combine_or</a> (BV &amp;bv, It first, It last)</td></tr>
44
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">OR Combine bitvector and the iterable sequence.  <a href="#ga54ff78528c99ae3ca443eb99ba44785b"></a><br/></td></tr>
45
 
<tr><td class="memTemplParams" colspan="2">template&lt;class BV , class It &gt; </td></tr>
46
 
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#ga3cb362aee03de6a321495100ae5c8375">bm::combine_xor</a> (BV &amp;bv, It first, It last)</td></tr>
47
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">XOR Combine bitvector and the iterable sequence.  <a href="#ga3cb362aee03de6a321495100ae5c8375"></a><br/></td></tr>
48
 
<tr><td class="memTemplParams" colspan="2">template&lt;class BV , class It &gt; </td></tr>
49
 
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#gab88c5bf51484323e0139aa789d7f0b98">bm::combine_sub</a> (BV &amp;bv, It first, It last)</td></tr>
50
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SUB Combine bitvector and the iterable sequence.  <a href="#gab88c5bf51484323e0139aa789d7f0b98"></a><br/></td></tr>
51
 
<tr><td class="memTemplParams" colspan="2">template&lt;class BV , class It &gt; </td></tr>
52
 
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#ga22922f71bd1eec8a5b663dc77b90cf6c">bm::combine_and_sorted</a> (BV &amp;bv, It first, It last)</td></tr>
53
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">AND Combine bitvector and the iterable sequence.  <a href="#ga22922f71bd1eec8a5b663dc77b90cf6c"></a><br/></td></tr>
54
 
<tr><td class="memTemplParams" colspan="2">template&lt;class BV , class It &gt; </td></tr>
55
 
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#ga819bdab57a624a08456ea79161b9c5d2">bm::combine_and</a> (BV &amp;bv, It first, It last)</td></tr>
56
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">AND Combine bitvector and the iterable sequence.  <a href="#ga819bdab57a624a08456ea79161b9c5d2"></a><br/></td></tr>
57
 
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
58
 
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#gac7a59d3bc266310ec127cb3efadb0d33">bm::count_intervals</a> (const BV &amp;bv)</td></tr>
59
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute number of bit intervals (GAPs) in the bitvector.  <a href="#gac7a59d3bc266310ec127cb3efadb0d33"></a><br/></td></tr>
60
 
<tr><td class="memTemplParams" colspan="2">template&lt;class BV , class It &gt; </td></tr>
61
 
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#gacd88ed9539553dd93419b7029e8a4584">bm::export_array</a> (BV &amp;bv, It first, It last)</td></tr>
62
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Export bitset from an array of binary data representing the bit vector.  <a href="#gacd88ed9539553dd93419b7029e8a4584"></a><br/></td></tr>
 
38
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html#ga266ed6594dc786e46c1f353443dc41fe">bm::sse4_bit_count</a> (const __m128i *block, const __m128i *block_end)</td></tr>
 
39
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html#gad686391db4cdc6382ae6785f62981474">bm::sse4_bit_block_calc_count_change</a> (const __m128i *BMRESTRICT block, const __m128i *BMRESTRICT block_end, unsigned *BMRESTRICT bit_count)</td></tr>
63
40
</table>
64
 
<hr/><a name="_details"></a><h2>Detailed Description</h2>
65
 
<p>Set algorithms </p>
66
41
<hr/><h2>Function Documentation</h2>
67
 
<a class="anchor" id="ga819bdab57a624a08456ea79161b9c5d2"></a><!-- doxytag: member="bm::combine_and" ref="ga819bdab57a624a08456ea79161b9c5d2" args="(BV &amp;bv, It first, It last)" -->
68
 
<div class="memitem">
69
 
<div class="memproto">
70
 
<div class="memtemplate">
71
 
template&lt;class BV , class It &gt; </div>
72
 
      <table class="memname">
73
 
        <tr>
74
 
          <td class="memname">void bm::combine_and </td>
75
 
          <td>(</td>
76
 
          <td class="paramtype">BV &amp;&nbsp;</td>
77
 
          <td class="paramname"> <em>bv</em>, </td>
78
 
        </tr>
79
 
        <tr>
80
 
          <td class="paramkey"></td>
81
 
          <td></td>
82
 
          <td class="paramtype">It&nbsp;</td>
83
 
          <td class="paramname"> <em>first</em>, </td>
84
 
        </tr>
85
 
        <tr>
86
 
          <td class="paramkey"></td>
87
 
          <td></td>
88
 
          <td class="paramtype">It&nbsp;</td>
89
 
          <td class="paramname"> <em>last</em></td><td>&nbsp;</td>
90
 
        </tr>
91
 
        <tr>
92
 
          <td></td>
93
 
          <td>)</td>
94
 
          <td></td><td></td><td><code> [inline]</code></td>
95
 
        </tr>
96
 
      </table>
97
 
</div>
98
 
<div class="memdoc">
99
 
 
100
 
<p>AND Combine bitvector and the iterable sequence. </p>
101
 
<p>Algorithm combines <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a> with sequence of integers (represents another set). When the agrument set is sorted this method can give serious increase in performance.</p>
102
 
<dl><dt><b>Parameters:</b></dt><dd>
103
 
  <table border="0" cellspacing="2" cellpadding="0">
104
 
    <tr><td valign="top"></td><td valign="top"><em>bv</em>&nbsp;</td><td>- destination bitvector </td></tr>
105
 
    <tr><td valign="top"></td><td valign="top"><em>first</em>&nbsp;</td><td>- first element of the iterated sequence </td></tr>
106
 
    <tr><td valign="top"></td><td valign="top"><em>last</em>&nbsp;</td><td>- last element of the iterated sequence</td></tr>
107
 
  </table>
108
 
  </dd>
109
 
</dl>
110
 
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00124.html#ga22922f71bd1eec8a5b663dc77b90cf6c" title="AND Combine bitvector and the iterable sequence.">combine_and_sorted</a> </dd></dl>
111
 
 
112
 
<p>Definition at line <a class="el" href="a00089_source.html#l01382">1382</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
113
 
 
114
 
<p>References <a class="el" href="a00089_source.html#l01105">bm::combine_or()</a>.</p>
115
 
 
116
 
</div>
117
 
</div>
118
 
<a class="anchor" id="ga22922f71bd1eec8a5b663dc77b90cf6c"></a><!-- doxytag: member="bm::combine_and_sorted" ref="ga22922f71bd1eec8a5b663dc77b90cf6c" args="(BV &amp;bv, It first, It last)" -->
119
 
<div class="memitem">
120
 
<div class="memproto">
121
 
<div class="memtemplate">
122
 
template&lt;class BV , class It &gt; </div>
123
 
      <table class="memname">
124
 
        <tr>
125
 
          <td class="memname">void bm::combine_and_sorted </td>
126
 
          <td>(</td>
127
 
          <td class="paramtype">BV &amp;&nbsp;</td>
128
 
          <td class="paramname"> <em>bv</em>, </td>
129
 
        </tr>
130
 
        <tr>
131
 
          <td class="paramkey"></td>
132
 
          <td></td>
133
 
          <td class="paramtype">It&nbsp;</td>
134
 
          <td class="paramname"> <em>first</em>, </td>
135
 
        </tr>
136
 
        <tr>
137
 
          <td class="paramkey"></td>
138
 
          <td></td>
139
 
          <td class="paramtype">It&nbsp;</td>
140
 
          <td class="paramname"> <em>last</em></td><td>&nbsp;</td>
141
 
        </tr>
142
 
        <tr>
143
 
          <td></td>
144
 
          <td>)</td>
145
 
          <td></td><td></td><td><code> [inline]</code></td>
146
 
        </tr>
147
 
      </table>
148
 
</div>
149
 
<div class="memdoc">
150
 
 
151
 
<p>AND Combine bitvector and the iterable sequence. </p>
152
 
<p>Algorithm combines <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a> with sorted sequence of integers (represents another set).</p>
153
 
<dl><dt><b>Parameters:</b></dt><dd>
154
 
  <table border="0" cellspacing="2" cellpadding="0">
155
 
    <tr><td valign="top"></td><td valign="top"><em>bv</em>&nbsp;</td><td>- destination bitvector </td></tr>
156
 
    <tr><td valign="top"></td><td valign="top"><em>first</em>&nbsp;</td><td>- first element of the iterated sequence </td></tr>
157
 
    <tr><td valign="top"></td><td valign="top"><em>last</em>&nbsp;</td><td>- last element of the iterated sequence </td></tr>
158
 
  </table>
159
 
  </dd>
160
 
</dl>
161
 
 
162
 
<p>Definition at line <a class="el" href="a00089_source.html#l01350">1350</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
163
 
 
164
 
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>.</p>
165
 
 
166
 
</div>
167
 
</div>
168
 
<a class="anchor" id="ga54ff78528c99ae3ca443eb99ba44785b"></a><!-- doxytag: member="bm::combine_or" ref="ga54ff78528c99ae3ca443eb99ba44785b" args="(BV &amp;bv, It first, It last)" -->
169
 
<div class="memitem">
170
 
<div class="memproto">
171
 
<div class="memtemplate">
172
 
template&lt;class BV , class It &gt; </div>
173
 
      <table class="memname">
174
 
        <tr>
175
 
          <td class="memname">void bm::combine_or </td>
176
 
          <td>(</td>
177
 
          <td class="paramtype">BV &amp;&nbsp;</td>
178
 
          <td class="paramname"> <em>bv</em>, </td>
179
 
        </tr>
180
 
        <tr>
181
 
          <td class="paramkey"></td>
182
 
          <td></td>
183
 
          <td class="paramtype">It&nbsp;</td>
184
 
          <td class="paramname"> <em>first</em>, </td>
185
 
        </tr>
186
 
        <tr>
187
 
          <td class="paramkey"></td>
188
 
          <td></td>
189
 
          <td class="paramtype">It&nbsp;</td>
190
 
          <td class="paramname"> <em>last</em></td><td>&nbsp;</td>
191
 
        </tr>
192
 
        <tr>
193
 
          <td></td>
194
 
          <td>)</td>
195
 
          <td></td><td></td><td><code> [inline]</code></td>
196
 
        </tr>
197
 
      </table>
198
 
</div>
199
 
<div class="memdoc">
200
 
 
201
 
<p>OR Combine bitvector and the iterable sequence. </p>
202
 
<p>Algorithm combines <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a> with sequence of integers (represents another set). When the agrument set is sorted this method can give serious increase in performance.</p>
203
 
<dl><dt><b>Parameters:</b></dt><dd>
204
 
  <table border="0" cellspacing="2" cellpadding="0">
205
 
    <tr><td valign="top"></td><td valign="top"><em>bv</em>&nbsp;</td><td>- destination bitvector </td></tr>
206
 
    <tr><td valign="top"></td><td valign="top"><em>first</em>&nbsp;</td><td>- first element of the iterated sequence </td></tr>
207
 
    <tr><td valign="top"></td><td valign="top"><em>last</em>&nbsp;</td><td>- last element of the iterated sequence </td></tr>
208
 
  </table>
209
 
  </dd>
210
 
</dl>
211
 
 
212
 
<p>Definition at line <a class="el" href="a00089_source.html#l01105">1105</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
213
 
 
214
 
<p>References <a class="el" href="a00089_source.html#l01075">bm::block_range_scan()</a>, <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00092_source.html#l00095">BMGAP_PTR</a>, <a class="el" href="a00093_source.html#l02186">bm::gap_limit()</a>, <a class="el" href="a00093_source.html#l01133">bm::gap_set_value()</a>, <a class="el" href="a00091_source.html#l00048">bm::id_max</a>, <a class="el" href="a00091_source.html#l00054">bm::set_block_mask</a>, <a class="el" href="a00091_source.html#l00053">bm::set_block_shift</a>, <a class="el" href="a00091_source.html#l00063">bm::set_word_mask</a>, and <a class="el" href="a00091_source.html#l00062">bm::set_word_shift</a>.</p>
215
 
 
216
 
<p>Referenced by <a class="el" href="a00089_source.html#l01382">bm::combine_and()</a>.</p>
217
 
 
218
 
</div>
219
 
</div>
220
 
<a class="anchor" id="gab88c5bf51484323e0139aa789d7f0b98"></a><!-- doxytag: member="bm::combine_sub" ref="gab88c5bf51484323e0139aa789d7f0b98" args="(BV &amp;bv, It first, It last)" -->
221
 
<div class="memitem">
222
 
<div class="memproto">
223
 
<div class="memtemplate">
224
 
template&lt;class BV , class It &gt; </div>
225
 
      <table class="memname">
226
 
        <tr>
227
 
          <td class="memname">void bm::combine_sub </td>
228
 
          <td>(</td>
229
 
          <td class="paramtype">BV &amp;&nbsp;</td>
230
 
          <td class="paramname"> <em>bv</em>, </td>
231
 
        </tr>
232
 
        <tr>
233
 
          <td class="paramkey"></td>
234
 
          <td></td>
235
 
          <td class="paramtype">It&nbsp;</td>
236
 
          <td class="paramname"> <em>first</em>, </td>
237
 
        </tr>
238
 
        <tr>
239
 
          <td class="paramkey"></td>
240
 
          <td></td>
241
 
          <td class="paramtype">It&nbsp;</td>
242
 
          <td class="paramname"> <em>last</em></td><td>&nbsp;</td>
243
 
        </tr>
244
 
        <tr>
245
 
          <td></td>
246
 
          <td>)</td>
247
 
          <td></td><td></td><td><code> [inline]</code></td>
248
 
        </tr>
249
 
      </table>
250
 
</div>
251
 
<div class="memdoc">
252
 
 
253
 
<p>SUB Combine bitvector and the iterable sequence. </p>
254
 
<p>Algorithm combines <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a> with sequence of integers (represents another set). When the agrument set is sorted this method can give serious increase in performance.</p>
255
 
<dl><dt><b>Parameters:</b></dt><dd>
256
 
  <table border="0" cellspacing="2" cellpadding="0">
257
 
    <tr><td valign="top"></td><td valign="top"><em>bv</em>&nbsp;</td><td>- destination bitvector </td></tr>
258
 
    <tr><td valign="top"></td><td valign="top"><em>first</em>&nbsp;</td><td>- first element of the iterated sequence </td></tr>
259
 
    <tr><td valign="top"></td><td valign="top"><em>last</em>&nbsp;</td><td>- last element of the iterated sequence </td></tr>
260
 
  </table>
261
 
  </dd>
262
 
</dl>
263
 
 
264
 
<p>Definition at line <a class="el" href="a00089_source.html#l01268">1268</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
265
 
 
266
 
<p>References <a class="el" href="a00089_source.html#l01075">bm::block_range_scan()</a>, <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00092_source.html#l00095">BMGAP_PTR</a>, <a class="el" href="a00093_source.html#l02186">bm::gap_limit()</a>, <a class="el" href="a00093_source.html#l01133">bm::gap_set_value()</a>, <a class="el" href="a00093_source.html#l00489">bm::gap_test()</a>, <a class="el" href="a00091_source.html#l00048">bm::id_max</a>, <a class="el" href="a00091_source.html#l00054">bm::set_block_mask</a>, <a class="el" href="a00091_source.html#l00053">bm::set_block_shift</a>, <a class="el" href="a00091_source.html#l00063">bm::set_word_mask</a>, and <a class="el" href="a00091_source.html#l00062">bm::set_word_shift</a>.</p>
267
 
 
268
 
</div>
269
 
</div>
270
 
<a class="anchor" id="ga3cb362aee03de6a321495100ae5c8375"></a><!-- doxytag: member="bm::combine_xor" ref="ga3cb362aee03de6a321495100ae5c8375" args="(BV &amp;bv, It first, It last)" -->
271
 
<div class="memitem">
272
 
<div class="memproto">
273
 
<div class="memtemplate">
274
 
template&lt;class BV , class It &gt; </div>
275
 
      <table class="memname">
276
 
        <tr>
277
 
          <td class="memname">void bm::combine_xor </td>
278
 
          <td>(</td>
279
 
          <td class="paramtype">BV &amp;&nbsp;</td>
280
 
          <td class="paramname"> <em>bv</em>, </td>
281
 
        </tr>
282
 
        <tr>
283
 
          <td class="paramkey"></td>
284
 
          <td></td>
285
 
          <td class="paramtype">It&nbsp;</td>
286
 
          <td class="paramname"> <em>first</em>, </td>
287
 
        </tr>
288
 
        <tr>
289
 
          <td class="paramkey"></td>
290
 
          <td></td>
291
 
          <td class="paramtype">It&nbsp;</td>
292
 
          <td class="paramname"> <em>last</em></td><td>&nbsp;</td>
293
 
        </tr>
294
 
        <tr>
295
 
          <td></td>
296
 
          <td>)</td>
297
 
          <td></td><td></td><td><code> [inline]</code></td>
298
 
        </tr>
299
 
      </table>
300
 
</div>
301
 
<div class="memdoc">
302
 
 
303
 
<p>XOR Combine bitvector and the iterable sequence. </p>
304
 
<p>Algorithm combines <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a> with sequence of integers (represents another set). When the agrument set is sorted this method can give serious increase in performance.</p>
305
 
<dl><dt><b>Parameters:</b></dt><dd>
306
 
  <table border="0" cellspacing="2" cellpadding="0">
307
 
    <tr><td valign="top"></td><td valign="top"><em>bv</em>&nbsp;</td><td>- destination bitvector </td></tr>
308
 
    <tr><td valign="top"></td><td valign="top"><em>first</em>&nbsp;</td><td>- first element of the iterated sequence </td></tr>
309
 
    <tr><td valign="top"></td><td valign="top"><em>last</em>&nbsp;</td><td>- last element of the iterated sequence </td></tr>
310
 
  </table>
311
 
  </dd>
312
 
</dl>
313
 
 
314
 
<p>Definition at line <a class="el" href="a00089_source.html#l01184">1184</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
315
 
 
316
 
<p>References <a class="el" href="a00089_source.html#l01075">bm::block_range_scan()</a>, <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00092_source.html#l00095">BMGAP_PTR</a>, <a class="el" href="a00093_source.html#l02186">bm::gap_limit()</a>, <a class="el" href="a00093_source.html#l01133">bm::gap_set_value()</a>, <a class="el" href="a00093_source.html#l00489">bm::gap_test()</a>, <a class="el" href="a00091_source.html#l00048">bm::id_max</a>, <a class="el" href="a00091_source.html#l00054">bm::set_block_mask</a>, <a class="el" href="a00091_source.html#l00053">bm::set_block_shift</a>, <a class="el" href="a00091_source.html#l00063">bm::set_word_mask</a>, and <a class="el" href="a00091_source.html#l00062">bm::set_word_shift</a>.</p>
317
 
 
318
 
</div>
319
 
</div>
320
 
<a class="anchor" id="gac7a59d3bc266310ec127cb3efadb0d33"></a><!-- doxytag: member="bm::count_intervals" ref="gac7a59d3bc266310ec127cb3efadb0d33" args="(const BV &amp;bv)" -->
321
 
<div class="memitem">
322
 
<div class="memproto">
323
 
<div class="memtemplate">
324
 
template&lt;class BV &gt; </div>
325
 
      <table class="memname">
326
 
        <tr>
327
 
          <td class="memname"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::count_intervals </td>
328
 
          <td>(</td>
329
 
          <td class="paramtype">const BV &amp;&nbsp;</td>
330
 
          <td class="paramname"> <em>bv</em></td>
331
 
          <td>&nbsp;)&nbsp;</td>
332
 
          <td><code> [inline]</code></td>
333
 
        </tr>
334
 
      </table>
335
 
</div>
336
 
<div class="memdoc">
337
 
 
338
 
<p>Compute number of bit intervals (GAPs) in the bitvector. </p>
339
 
<p>Algorithm traverses bit vector and count number of uninterrupted intervals of 1s and 0s. </p>
340
 
<pre>
341
 
    For example: 
342
 
      00001111100000 - gives us 3 intervals
343
 
      10001111100000 - 4 intervals
344
 
      00000000000000 - 1 interval
345
 
      11111111111111 - 1 interval
346
 
    </pre> <dl class="return"><dt><b>Returns:</b></dt><dd>Number of intervals </dd></dl>
347
 
 
348
 
<p>Definition at line <a class="el" href="a00089_source.html#l01405">1405</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
349
 
 
350
 
<p>References <a class="el" href="a00093_source.html#l00592">bm::for_each_block()</a>, and <a class="el" href="a00091_source.html#l00080">bm::set_array_size</a>.</p>
351
 
 
352
 
</div>
353
 
</div>
354
 
<a class="anchor" id="gacd88ed9539553dd93419b7029e8a4584"></a><!-- doxytag: member="bm::export_array" ref="gacd88ed9539553dd93419b7029e8a4584" args="(BV &amp;bv, It first, It last)" -->
355
 
<div class="memitem">
356
 
<div class="memproto">
357
 
<div class="memtemplate">
358
 
template&lt;class BV , class It &gt; </div>
359
 
      <table class="memname">
360
 
        <tr>
361
 
          <td class="memname">void bm::export_array </td>
362
 
          <td>(</td>
363
 
          <td class="paramtype">BV &amp;&nbsp;</td>
364
 
          <td class="paramname"> <em>bv</em>, </td>
365
 
        </tr>
366
 
        <tr>
367
 
          <td class="paramkey"></td>
368
 
          <td></td>
369
 
          <td class="paramtype">It&nbsp;</td>
370
 
          <td class="paramname"> <em>first</em>, </td>
371
 
        </tr>
372
 
        <tr>
373
 
          <td class="paramkey"></td>
374
 
          <td></td>
375
 
          <td class="paramtype">It&nbsp;</td>
376
 
          <td class="paramname"> <em>last</em></td><td>&nbsp;</td>
377
 
        </tr>
378
 
        <tr>
379
 
          <td></td>
380
 
          <td>)</td>
381
 
          <td></td><td></td><td><code> [inline]</code></td>
382
 
        </tr>
383
 
      </table>
384
 
</div>
385
 
<div class="memdoc">
386
 
 
387
 
<p>Export bitset from an array of binary data representing the bit vector. </p>
388
 
<p>Input array can be array of ints, chars or other native C types. Method works with iterators, which makes it compatible with STL containers and C arrays</p>
389
 
<dl><dt><b>Parameters:</b></dt><dd>
390
 
  <table border="0" cellspacing="2" cellpadding="0">
391
 
    <tr><td valign="top"></td><td valign="top"><em>bv</em>&nbsp;</td><td>- destination bitvector </td></tr>
392
 
    <tr><td valign="top"></td><td valign="top"><em>first</em>&nbsp;</td><td>- first element of the iterated sequence </td></tr>
393
 
    <tr><td valign="top"></td><td valign="top"><em>last</em>&nbsp;</td><td>- last element of the iterated sequence </td></tr>
394
 
  </table>
395
 
  </dd>
396
 
</dl>
397
 
 
398
 
<p>Definition at line <a class="el" href="a00089_source.html#l01431">1431</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
399
 
 
400
 
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00091_source.html#l00116">bm::BM_BIT</a>, <a class="el" href="a00092_source.html#l00095">BMGAP_PTR</a>, <a class="el" href="a00091_source.html#l00052">bm::set_block_size</a>, and <a class="el" href="a00091_source.html#l00083">bm::set_total_blocks</a>.</p>
401
 
 
402
 
</div>
403
 
</div>
404
 
</div>
405
 
<hr size="1"/><address style="text-align: right;"><small>Generated on Fri Jan 8 20:09:20 2010 for BitMagic by&nbsp;
 
42
<a class="anchor" id="gad686391db4cdc6382ae6785f62981474"></a><!-- doxytag: member="bm::sse4_bit_block_calc_count_change" ref="gad686391db4cdc6382ae6785f62981474" args="(const __m128i *BMRESTRICT block, const __m128i *BMRESTRICT block_end, unsigned *BMRESTRICT bit_count)" -->
 
43
<div class="memitem">
 
44
<div class="memproto">
 
45
      <table class="memname">
 
46
        <tr>
 
47
          <td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::sse4_bit_block_calc_count_change </td>
 
48
          <td>(</td>
 
49
          <td class="paramtype">const __m128i *BMRESTRICT&nbsp;</td>
 
50
          <td class="paramname"> <em>block</em>, </td>
 
51
        </tr>
 
52
        <tr>
 
53
          <td class="paramkey"></td>
 
54
          <td></td>
 
55
          <td class="paramtype">const __m128i *BMRESTRICT&nbsp;</td>
 
56
          <td class="paramname"> <em>block_end</em>, </td>
 
57
        </tr>
 
58
        <tr>
 
59
          <td class="paramkey"></td>
 
60
          <td></td>
 
61
          <td class="paramtype">unsigned *BMRESTRICT&nbsp;</td>
 
62
          <td class="paramname"> <em>bit_count</em></td><td>&nbsp;</td>
 
63
        </tr>
 
64
        <tr>
 
65
          <td></td>
 
66
          <td>)</td>
 
67
          <td></td><td></td><td><code> [inline]</code></td>
 
68
        </tr>
 
69
      </table>
 
70
</div>
 
71
<div class="memdoc">
 
72
<p>SSE4.2 optimized bitcounting and number of GAPs </p>
 
73
 
 
74
<p>Definition at line <a class="el" href="a00099_source.html#l00242">242</a> of file <a class="el" href="a00099_source.html">bmsse4.h</a>.</p>
 
75
 
 
76
<p>Referenced by <a class="el" href="a00094_source.html#l02819">bm::bit_block_calc_count_change()</a>.</p>
 
77
 
 
78
</div>
 
79
</div>
 
80
<a class="anchor" id="ga266ed6594dc786e46c1f353443dc41fe"></a><!-- doxytag: member="bm::sse4_bit_count" ref="ga266ed6594dc786e46c1f353443dc41fe" args="(const __m128i *block, const __m128i *block_end)" -->
 
81
<div class="memitem">
 
82
<div class="memproto">
 
83
      <table class="memname">
 
84
        <tr>
 
85
          <td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::sse4_bit_count </td>
 
86
          <td>(</td>
 
87
          <td class="paramtype">const __m128i *&nbsp;</td>
 
88
          <td class="paramname"> <em>block</em>, </td>
 
89
        </tr>
 
90
        <tr>
 
91
          <td class="paramkey"></td>
 
92
          <td></td>
 
93
          <td class="paramtype">const __m128i *&nbsp;</td>
 
94
          <td class="paramname"> <em>block_end</em></td><td>&nbsp;</td>
 
95
        </tr>
 
96
        <tr>
 
97
          <td></td>
 
98
          <td>)</td>
 
99
          <td></td><td></td><td><code> [inline]</code></td>
 
100
        </tr>
 
101
      </table>
 
102
</div>
 
103
<div class="memdoc">
 
104
<p>SSE4.2 optimized bitcounting . </p>
 
105
 
 
106
<p>Definition at line <a class="el" href="a00099_source.html#l00054">54</a> of file <a class="el" href="a00099_source.html">bmsse4.h</a>.</p>
 
107
 
 
108
</div>
 
109
</div>
 
110
</div>
 
111
<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Mar 23 20:48:07 2010 for BitMagic by&nbsp;
406
112
<a href="http://www.doxygen.org/index.html">
407
113
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
408
114
</body>