23
23
<div class="contents">
24
<h1>Set algorithms<br/>
24
<h1>Processor specific optimizations for SSE4.2 instructions<br/>
26
[<a class="el" href="a00117.html">BitMagic C++ Library</a>]</small>
26
[<a class="el" href="a00118.html">BitMagic C++ Library</a>]</small>
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>
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 </td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">bm::random_subset< BV ></a></td></tr>
39
<tr><td colspan="2"><h2>Modules</h2></td></tr>
40
<tr><td class="memItemLeft" align="right" valign="top"> </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<class BV , class It > </td></tr>
43
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#ga54ff78528c99ae3ca443eb99ba44785b">bm::combine_or</a> (BV &bv, It first, It last)</td></tr>
44
<tr><td class="mdescLeft"> </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<class BV , class It > </td></tr>
46
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#ga3cb362aee03de6a321495100ae5c8375">bm::combine_xor</a> (BV &bv, It first, It last)</td></tr>
47
<tr><td class="mdescLeft"> </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<class BV , class It > </td></tr>
49
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#gab88c5bf51484323e0139aa789d7f0b98">bm::combine_sub</a> (BV &bv, It first, It last)</td></tr>
50
<tr><td class="mdescLeft"> </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<class BV , class It > </td></tr>
52
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#ga22922f71bd1eec8a5b663dc77b90cf6c">bm::combine_and_sorted</a> (BV &bv, It first, It last)</td></tr>
53
<tr><td class="mdescLeft"> </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<class BV , class It > </td></tr>
55
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#ga819bdab57a624a08456ea79161b9c5d2">bm::combine_and</a> (BV &bv, It first, It last)</td></tr>
56
<tr><td class="mdescLeft"> </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<class BV > </td></tr>
58
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#gac7a59d3bc266310ec127cb3efadb0d33">bm::count_intervals</a> (const BV &bv)</td></tr>
59
<tr><td class="mdescLeft"> </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<class BV , class It > </td></tr>
61
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00124.html#gacd88ed9539553dd93419b7029e8a4584">bm::export_array</a> (BV &bv, It first, It last)</td></tr>
62
<tr><td class="mdescLeft"> </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> </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> </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>
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 &bv, It first, It last)" -->
69
<div class="memproto">
70
<div class="memtemplate">
71
template<class BV , class It > </div>
72
<table class="memname">
74
<td class="memname">void bm::combine_and </td>
76
<td class="paramtype">BV & </td>
77
<td class="paramname"> <em>bv</em>, </td>
80
<td class="paramkey"></td>
82
<td class="paramtype">It </td>
83
<td class="paramname"> <em>first</em>, </td>
86
<td class="paramkey"></td>
88
<td class="paramtype">It </td>
89
<td class="paramname"> <em>last</em></td><td> </td>
94
<td></td><td></td><td><code> [inline]</code></td>
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> </td><td>- destination bitvector </td></tr>
105
<tr><td valign="top"></td><td valign="top"><em>first</em> </td><td>- first element of the iterated sequence </td></tr>
106
<tr><td valign="top"></td><td valign="top"><em>last</em> </td><td>- last element of the iterated sequence</td></tr>
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>
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>
114
<p>References <a class="el" href="a00089_source.html#l01105">bm::combine_or()</a>.</p>
118
<a class="anchor" id="ga22922f71bd1eec8a5b663dc77b90cf6c"></a><!-- doxytag: member="bm::combine_and_sorted" ref="ga22922f71bd1eec8a5b663dc77b90cf6c" args="(BV &bv, It first, It last)" -->
119
<div class="memitem">
120
<div class="memproto">
121
<div class="memtemplate">
122
template<class BV , class It > </div>
123
<table class="memname">
125
<td class="memname">void bm::combine_and_sorted </td>
127
<td class="paramtype">BV & </td>
128
<td class="paramname"> <em>bv</em>, </td>
131
<td class="paramkey"></td>
133
<td class="paramtype">It </td>
134
<td class="paramname"> <em>first</em>, </td>
137
<td class="paramkey"></td>
139
<td class="paramtype">It </td>
140
<td class="paramname"> <em>last</em></td><td> </td>
145
<td></td><td></td><td><code> [inline]</code></td>
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> </td><td>- destination bitvector </td></tr>
156
<tr><td valign="top"></td><td valign="top"><em>first</em> </td><td>- first element of the iterated sequence </td></tr>
157
<tr><td valign="top"></td><td valign="top"><em>last</em> </td><td>- last element of the iterated sequence </td></tr>
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>
164
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>.</p>
168
<a class="anchor" id="ga54ff78528c99ae3ca443eb99ba44785b"></a><!-- doxytag: member="bm::combine_or" ref="ga54ff78528c99ae3ca443eb99ba44785b" args="(BV &bv, It first, It last)" -->
169
<div class="memitem">
170
<div class="memproto">
171
<div class="memtemplate">
172
template<class BV , class It > </div>
173
<table class="memname">
175
<td class="memname">void bm::combine_or </td>
177
<td class="paramtype">BV & </td>
178
<td class="paramname"> <em>bv</em>, </td>
181
<td class="paramkey"></td>
183
<td class="paramtype">It </td>
184
<td class="paramname"> <em>first</em>, </td>
187
<td class="paramkey"></td>
189
<td class="paramtype">It </td>
190
<td class="paramname"> <em>last</em></td><td> </td>
195
<td></td><td></td><td><code> [inline]</code></td>
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> </td><td>- destination bitvector </td></tr>
206
<tr><td valign="top"></td><td valign="top"><em>first</em> </td><td>- first element of the iterated sequence </td></tr>
207
<tr><td valign="top"></td><td valign="top"><em>last</em> </td><td>- last element of the iterated sequence </td></tr>
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>
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>
216
<p>Referenced by <a class="el" href="a00089_source.html#l01382">bm::combine_and()</a>.</p>
220
<a class="anchor" id="gab88c5bf51484323e0139aa789d7f0b98"></a><!-- doxytag: member="bm::combine_sub" ref="gab88c5bf51484323e0139aa789d7f0b98" args="(BV &bv, It first, It last)" -->
221
<div class="memitem">
222
<div class="memproto">
223
<div class="memtemplate">
224
template<class BV , class It > </div>
225
<table class="memname">
227
<td class="memname">void bm::combine_sub </td>
229
<td class="paramtype">BV & </td>
230
<td class="paramname"> <em>bv</em>, </td>
233
<td class="paramkey"></td>
235
<td class="paramtype">It </td>
236
<td class="paramname"> <em>first</em>, </td>
239
<td class="paramkey"></td>
241
<td class="paramtype">It </td>
242
<td class="paramname"> <em>last</em></td><td> </td>
247
<td></td><td></td><td><code> [inline]</code></td>
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> </td><td>- destination bitvector </td></tr>
258
<tr><td valign="top"></td><td valign="top"><em>first</em> </td><td>- first element of the iterated sequence </td></tr>
259
<tr><td valign="top"></td><td valign="top"><em>last</em> </td><td>- last element of the iterated sequence </td></tr>
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>
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>
270
<a class="anchor" id="ga3cb362aee03de6a321495100ae5c8375"></a><!-- doxytag: member="bm::combine_xor" ref="ga3cb362aee03de6a321495100ae5c8375" args="(BV &bv, It first, It last)" -->
271
<div class="memitem">
272
<div class="memproto">
273
<div class="memtemplate">
274
template<class BV , class It > </div>
275
<table class="memname">
277
<td class="memname">void bm::combine_xor </td>
279
<td class="paramtype">BV & </td>
280
<td class="paramname"> <em>bv</em>, </td>
283
<td class="paramkey"></td>
285
<td class="paramtype">It </td>
286
<td class="paramname"> <em>first</em>, </td>
289
<td class="paramkey"></td>
291
<td class="paramtype">It </td>
292
<td class="paramname"> <em>last</em></td><td> </td>
297
<td></td><td></td><td><code> [inline]</code></td>
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> </td><td>- destination bitvector </td></tr>
308
<tr><td valign="top"></td><td valign="top"><em>first</em> </td><td>- first element of the iterated sequence </td></tr>
309
<tr><td valign="top"></td><td valign="top"><em>last</em> </td><td>- last element of the iterated sequence </td></tr>
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>
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>
320
<a class="anchor" id="gac7a59d3bc266310ec127cb3efadb0d33"></a><!-- doxytag: member="bm::count_intervals" ref="gac7a59d3bc266310ec127cb3efadb0d33" args="(const BV &bv)" -->
321
<div class="memitem">
322
<div class="memproto">
323
<div class="memtemplate">
324
template<class BV > </div>
325
<table class="memname">
327
<td class="memname"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::count_intervals </td>
329
<td class="paramtype">const BV & </td>
330
<td class="paramname"> <em>bv</em></td>
331
<td> ) </td>
332
<td><code> [inline]</code></td>
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>
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>
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>
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>
354
<a class="anchor" id="gacd88ed9539553dd93419b7029e8a4584"></a><!-- doxytag: member="bm::export_array" ref="gacd88ed9539553dd93419b7029e8a4584" args="(BV &bv, It first, It last)" -->
355
<div class="memitem">
356
<div class="memproto">
357
<div class="memtemplate">
358
template<class BV , class It > </div>
359
<table class="memname">
361
<td class="memname">void bm::export_array </td>
363
<td class="paramtype">BV & </td>
364
<td class="paramname"> <em>bv</em>, </td>
367
<td class="paramkey"></td>
369
<td class="paramtype">It </td>
370
<td class="paramname"> <em>first</em>, </td>
373
<td class="paramkey"></td>
375
<td class="paramtype">It </td>
376
<td class="paramname"> <em>last</em></td><td> </td>
381
<td></td><td></td><td><code> [inline]</code></td>
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> </td><td>- destination bitvector </td></tr>
392
<tr><td valign="top"></td><td valign="top"><em>first</em> </td><td>- first element of the iterated sequence </td></tr>
393
<tr><td valign="top"></td><td valign="top"><em>last</em> </td><td>- last element of the iterated sequence </td></tr>
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>
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>
405
<hr size="1"/><address style="text-align: right;"><small>Generated on Fri Jan 8 20:09:20 2010 for BitMagic by
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)" -->
44
<div class="memproto">
45
<table class="memname">
47
<td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::sse4_bit_block_calc_count_change </td>
49
<td class="paramtype">const __m128i *BMRESTRICT </td>
50
<td class="paramname"> <em>block</em>, </td>
53
<td class="paramkey"></td>
55
<td class="paramtype">const __m128i *BMRESTRICT </td>
56
<td class="paramname"> <em>block_end</em>, </td>
59
<td class="paramkey"></td>
61
<td class="paramtype">unsigned *BMRESTRICT </td>
62
<td class="paramname"> <em>bit_count</em></td><td> </td>
67
<td></td><td></td><td><code> [inline]</code></td>
72
<p>SSE4.2 optimized bitcounting and number of GAPs </p>
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>
76
<p>Referenced by <a class="el" href="a00094_source.html#l02819">bm::bit_block_calc_count_change()</a>.</p>
80
<a class="anchor" id="ga266ed6594dc786e46c1f353443dc41fe"></a><!-- doxytag: member="bm::sse4_bit_count" ref="ga266ed6594dc786e46c1f353443dc41fe" args="(const __m128i *block, const __m128i *block_end)" -->
82
<div class="memproto">
83
<table class="memname">
85
<td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::sse4_bit_count </td>
87
<td class="paramtype">const __m128i * </td>
88
<td class="paramname"> <em>block</em>, </td>
91
<td class="paramkey"></td>
93
<td class="paramtype">const __m128i * </td>
94
<td class="paramname"> <em>block_end</em></td><td> </td>
99
<td></td><td></td><td><code> [inline]</code></td>
104
<p>SSE4.2 optimized bitcounting . </p>
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>
111
<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Mar 23 20:48:07 2010 for BitMagic by
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>