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

« back to all changes in this revision

Viewing changes to doc/html/a00125.html

  • Committer: Bazaar Package Importer
  • Author(s): Roberto C. Sanchez
  • Date: 2011-03-03 12:22:16 UTC
  • mfrom: (4.1.8 sid)
  • Revision ID: james.westby@ubuntu.com-20110303122216-qll5migewxnxe3s5
Tags: 3.7.0-1
* New upstream release (Closes: #615929)
* Update to Standards-Version 3.9.1 (no changes)
* Specify Debian source format as '3.0 (quilt)'

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: Distance metrics</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>Distance metrics<br/>
25
25
<small>
26
 
[<a class="el" href="a00118.html">BitMagic C++ Library</a>]</small>
 
26
[<a class="el" href="a00124.html">Set algorithms</a>]</small>
27
27
</h1>
28
28
<p><div class="dynheader">
29
 
Collaboration diagram for Set algorithms:</div>
 
29
Collaboration diagram for Distance metrics:</div>
30
30
<div class="dynsection">
31
31
<center><table><tr><td><img src="a00125.png" border="0" alt="" usemap="#a00125_map"/>
32
32
<map name="a00125_map" id="a00125">
33
 
<area shape="rect" href="a00118.html" title="For more information please visit: http://bmagic.sourceforge.net." alt="" coords="5,5,149,35"/><area shape="rect" href="a00126.html" title="Distance metrics" alt="" coords="352,5,472,35"/></map></td></tr></table></center>
 
33
<area shape="rect" href="a00124.html" title="Set algorithms" alt="" coords="7,5,111,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="a00080.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="a00126.html">Distance metrics</a></td></tr>
 
37
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
 
38
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#gac38d64c8b27b652413a664cddd4d40ab">bm::distance_metric</a> { <br/>
 
39
&nbsp;&nbsp;<a class="el" href="a00125.html#ggac38d64c8b27b652413a664cddd4d40abacb39376469ba778e9a9099ddbae5e7ce">bm::COUNT_AND</a> =  set_COUNT_AND, 
 
40
<a class="el" href="a00125.html#ggac38d64c8b27b652413a664cddd4d40aba3e4861dde6e1179457ee0d3502ae8061">bm::COUNT_XOR</a> =  set_COUNT_XOR, 
 
41
<a class="el" href="a00125.html#ggac38d64c8b27b652413a664cddd4d40abad0bd2d56c8ebd03f55c01b3cc6faaaeb">bm::COUNT_OR</a> =  set_COUNT_OR, 
 
42
<a class="el" href="a00125.html#ggac38d64c8b27b652413a664cddd4d40aba9c101dab8904c0432f72ccce0a207e62">bm::COUNT_SUB_AB</a> =  set_COUNT_SUB_AB, 
 
43
<br/>
 
44
&nbsp;&nbsp;<a class="el" href="a00125.html#ggac38d64c8b27b652413a664cddd4d40abafa036fb9d54bc659ed3c9e4185ccf400">bm::COUNT_SUB_BA</a> =  set_COUNT_SUB_BA, 
 
45
<a class="el" href="a00125.html#ggac38d64c8b27b652413a664cddd4d40abaac7947d53eb3acf81251ee4130e6a4a2">bm::COUNT_A</a> =  set_COUNT_A, 
 
46
<a class="el" href="a00125.html#ggac38d64c8b27b652413a664cddd4d40abac6dbadf2ab9405daa47dc0f10d082516">bm::COUNT_B</a> =  set_COUNT_B
 
47
<br/>
 
48
 }</td></tr>
 
49
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Distance metrics codes defined for vectors A and B. </p>
 
50
 <a href="a00125.html#gac38d64c8b27b652413a664cddd4d40ab">More...</a><br/></td></tr>
41
51
<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="a00125.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="a00125.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="a00125.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="a00125.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="a00125.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="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.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="a00125.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>
 
52
<tr><td class="memItemLeft" align="right" valign="top">distance_metric&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00125.html#ga158946ea41ca66c3e1bca62c92684788">bm::operation2metric</a> (set_operation op)</td></tr>
 
53
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert set operation into compatible distance metric.  <a href="#ga158946ea41ca66c3e1bca62c92684788"></a><br/></td></tr>
 
54
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
55
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga815fef76f02576ab9ab58de0a45d8a4b">bm::distance_operation</a> (const BV &amp;bv1, const BV &amp;bv2, distance_metric_descriptor *dmit, distance_metric_descriptor *dmit_end)</td></tr>
 
56
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Distance computing template function.  <a href="#ga815fef76f02576ab9ab58de0a45d8a4b"></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">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gad3ce9974302b0da70c5f029f620409f4">bm::distance_and_operation</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
59
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Distance AND computing template function.  <a href="#gad3ce9974302b0da70c5f029f620409f4"></a><br/></td></tr>
 
60
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
61
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gaa66525fd7a3f823d73678252a235982e">bm::distance_operation_any</a> (const BV &amp;bv1, const BV &amp;bv2, distance_metric_descriptor *dmit, distance_metric_descriptor *dmit_end)</td></tr>
 
62
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Distance screening template function.  <a href="#gaa66525fd7a3f823d73678252a235982e"></a><br/></td></tr>
 
63
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
64
<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="a00125.html#gae451cb4b87e8c0859b0614d2ffb99737">bm::count_and</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
65
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes bitcount of AND operation of two bitsets.  <a href="#gae451cb4b87e8c0859b0614d2ffb99737"></a><br/></td></tr>
 
66
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
67
<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="a00125.html#ga2d5393e05bcfc540840a4cee67fb771f">bm::any_and</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
68
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes if there is any bit in AND operation of two bitsets.  <a href="#ga2d5393e05bcfc540840a4cee67fb771f"></a><br/></td></tr>
 
69
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
70
<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="a00125.html#gafc64a082dcaee07f70f7faf3e24f844e">bm::count_xor</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
71
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes bitcount of XOR operation of two bitsets.  <a href="#gafc64a082dcaee07f70f7faf3e24f844e"></a><br/></td></tr>
 
72
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
73
<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="a00125.html#ga2d63f41244b82d233acb53d88b326b82">bm::any_xor</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
74
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes if there is any bit in XOR operation of two bitsets.  <a href="#ga2d63f41244b82d233acb53d88b326b82"></a><br/></td></tr>
 
75
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
76
<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="a00125.html#ga902d8c1cd1f8a2538cd47d47f5d8d605">bm::count_sub</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
77
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes bitcount of SUB operation of two bitsets.  <a href="#ga902d8c1cd1f8a2538cd47d47f5d8d605"></a><br/></td></tr>
 
78
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
79
<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="a00125.html#gabde2e210b9b1edd190e1f5a9ff22344c">bm::any_sub</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
80
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes if there is any bit in SUB operation of two bitsets.  <a href="#gabde2e210b9b1edd190e1f5a9ff22344c"></a><br/></td></tr>
 
81
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
82
<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="a00125.html#ga803c564668703fc3bf80067570c2c905">bm::count_or</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
83
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes bitcount of OR operation of two bitsets.  <a href="#ga803c564668703fc3bf80067570c2c905"></a><br/></td></tr>
 
84
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
 
85
<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="a00125.html#gaeda4f0cf54aa464cec09e740100caa79">bm::any_or</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
86
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes if there is any bit in OR operation of two bitsets.  <a href="#gaeda4f0cf54aa464cec09e740100caa79"></a><br/></td></tr>
63
87
</table>
64
88
<hr/><a name="_details"></a><h2>Detailed Description</h2>
65
 
<p>Set algorithms </p>
 
89
<p>Algorithms to compute binary distance metrics </p>
 
90
<hr/><h2>Enumeration Type Documentation</h2>
 
91
<a class="anchor" id="gac38d64c8b27b652413a664cddd4d40ab"></a><!-- doxytag: member="bm::distance_metric" ref="gac38d64c8b27b652413a664cddd4d40ab" args="" -->
 
92
<div class="memitem">
 
93
<div class="memproto">
 
94
      <table class="memname">
 
95
        <tr>
 
96
          <td class="memname">enum <a class="el" href="a00125.html#gac38d64c8b27b652413a664cddd4d40ab">bm::distance_metric</a></td>
 
97
        </tr>
 
98
      </table>
 
99
</div>
 
100
<div class="memdoc">
 
101
 
 
102
<p>Distance metrics codes defined for vectors A and B. </p>
 
103
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
 
104
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40abacb39376469ba778e9a9099ddbae5e7ce"></a><!-- doxytag: member="COUNT_AND" ref="ggac38d64c8b27b652413a664cddd4d40abacb39376469ba778e9a9099ddbae5e7ce" args="" -->COUNT_AND</em>&nbsp;</td><td>
 
105
<p>(A &amp; B).count() </p>
 
106
</td></tr>
 
107
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40aba3e4861dde6e1179457ee0d3502ae8061"></a><!-- doxytag: member="COUNT_XOR" ref="ggac38d64c8b27b652413a664cddd4d40aba3e4861dde6e1179457ee0d3502ae8061" args="" -->COUNT_XOR</em>&nbsp;</td><td>
 
108
<p>(A ^ B).count() </p>
 
109
</td></tr>
 
110
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40abad0bd2d56c8ebd03f55c01b3cc6faaaeb"></a><!-- doxytag: member="COUNT_OR" ref="ggac38d64c8b27b652413a664cddd4d40abad0bd2d56c8ebd03f55c01b3cc6faaaeb" args="" -->COUNT_OR</em>&nbsp;</td><td>
 
111
<p>(A | B).count() </p>
 
112
</td></tr>
 
113
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40aba9c101dab8904c0432f72ccce0a207e62"></a><!-- doxytag: member="COUNT_SUB_AB" ref="ggac38d64c8b27b652413a664cddd4d40aba9c101dab8904c0432f72ccce0a207e62" args="" -->COUNT_SUB_AB</em>&nbsp;</td><td>
 
114
<p>(A - B).count() </p>
 
115
</td></tr>
 
116
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40abafa036fb9d54bc659ed3c9e4185ccf400"></a><!-- doxytag: member="COUNT_SUB_BA" ref="ggac38d64c8b27b652413a664cddd4d40abafa036fb9d54bc659ed3c9e4185ccf400" args="" -->COUNT_SUB_BA</em>&nbsp;</td><td>
 
117
<p>(B - A).count() </p>
 
118
</td></tr>
 
119
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40abaac7947d53eb3acf81251ee4130e6a4a2"></a><!-- doxytag: member="COUNT_A" ref="ggac38d64c8b27b652413a664cddd4d40abaac7947d53eb3acf81251ee4130e6a4a2" args="" -->COUNT_A</em>&nbsp;</td><td>
 
120
<p>A.count(). </p>
 
121
</td></tr>
 
122
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40abac6dbadf2ab9405daa47dc0f10d082516"></a><!-- doxytag: member="COUNT_B" ref="ggac38d64c8b27b652413a664cddd4d40abac6dbadf2ab9405daa47dc0f10d082516" args="" -->COUNT_B</em>&nbsp;</td><td>
 
123
<p>B.count(). </p>
 
124
</td></tr>
 
125
</table>
 
126
</dd>
 
127
</dl>
 
128
 
 
129
<p>Definition at line <a class="el" href="a00089_source.html#l00055">55</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
130
 
 
131
</div>
 
132
</div>
66
133
<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="a00125.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="a00090_source.html#l01382">1382</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
113
 
 
114
 
<p>References <a class="el" href="a00090_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="a00090_source.html#l01350">1350</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
163
 
 
164
 
<p>References <a class="el" href="a00093_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="a00090_source.html#l01105">1105</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
213
 
 
214
 
<p>References <a class="el" href="a00090_source.html#l01075">bm::block_range_scan()</a>, <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00093_source.html#l00095">BMGAP_PTR</a>, <a class="el" href="a00094_source.html#l02362">bm::gap_limit()</a>, <a class="el" href="a00094_source.html#l01133">bm::gap_set_value()</a>, <a class="el" href="a00092_source.html#l00048">bm::id_max</a>, <a class="el" href="a00092_source.html#l00054">bm::set_block_mask</a>, <a class="el" href="a00092_source.html#l00053">bm::set_block_shift</a>, <a class="el" href="a00092_source.html#l00063">bm::set_word_mask</a>, and <a class="el" href="a00092_source.html#l00062">bm::set_word_shift</a>.</p>
215
 
 
216
 
<p>Referenced by <a class="el" href="a00090_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="a00090_source.html#l01268">1268</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
265
 
 
266
 
<p>References <a class="el" href="a00090_source.html#l01075">bm::block_range_scan()</a>, <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00093_source.html#l00095">BMGAP_PTR</a>, <a class="el" href="a00094_source.html#l02362">bm::gap_limit()</a>, <a class="el" href="a00094_source.html#l01133">bm::gap_set_value()</a>, <a class="el" href="a00094_source.html#l00489">bm::gap_test()</a>, <a class="el" href="a00092_source.html#l00048">bm::id_max</a>, <a class="el" href="a00092_source.html#l00054">bm::set_block_mask</a>, <a class="el" href="a00092_source.html#l00053">bm::set_block_shift</a>, <a class="el" href="a00092_source.html#l00063">bm::set_word_mask</a>, and <a class="el" href="a00092_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="a00090_source.html#l01184">1184</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
315
 
 
316
 
<p>References <a class="el" href="a00090_source.html#l01075">bm::block_range_scan()</a>, <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00093_source.html#l00095">BMGAP_PTR</a>, <a class="el" href="a00094_source.html#l02362">bm::gap_limit()</a>, <a class="el" href="a00094_source.html#l01133">bm::gap_set_value()</a>, <a class="el" href="a00094_source.html#l00489">bm::gap_test()</a>, <a class="el" href="a00092_source.html#l00048">bm::id_max</a>, <a class="el" href="a00092_source.html#l00054">bm::set_block_mask</a>, <a class="el" href="a00092_source.html#l00053">bm::set_block_shift</a>, <a class="el" href="a00092_source.html#l00063">bm::set_word_mask</a>, and <a class="el" href="a00092_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="a00116.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>
 
134
<a class="anchor" id="ga2d5393e05bcfc540840a4cee67fb771f"></a><!-- doxytag: member="bm::any_and" ref="ga2d5393e05bcfc540840a4cee67fb771f" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
135
<div class="memitem">
 
136
<div class="memproto">
 
137
<div class="memtemplate">
 
138
template&lt;class BV &gt; </div>
 
139
      <table class="memname">
 
140
        <tr>
 
141
          <td class="memname"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::any_and </td>
 
142
          <td>(</td>
 
143
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
144
          <td class="paramname"> <em>bv1</em>, </td>
 
145
        </tr>
 
146
        <tr>
 
147
          <td class="paramkey"></td>
 
148
          <td></td>
 
149
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
150
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
151
        </tr>
 
152
        <tr>
 
153
          <td></td>
 
154
          <td>)</td>
 
155
          <td></td><td></td><td><code> [inline]</code></td>
 
156
        </tr>
 
157
      </table>
 
158
</div>
 
159
<div class="memdoc">
 
160
 
 
161
<p>Computes if there is any bit in AND operation of two bitsets. </p>
 
162
<dl><dt><b>Parameters:</b></dt><dd>
 
163
  <table border="0" cellspacing="2" cellpadding="0">
 
164
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
165
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
166
  </table>
 
167
  </dd>
 
168
</dl>
 
169
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if there is any bit </dd></dl>
 
170
 
 
171
<p>Definition at line <a class="el" href="a00089_source.html#l00995">995</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
172
 
 
173
<p>References <a class="el" href="a00089_source.html#l00057">bm::COUNT_AND</a>, <a class="el" href="a00089_source.html#l00853">bm::distance_operation_any()</a>, and <a class="el" href="a00089_source.html#l00088">bm::distance_metric_descriptor::result</a>.</p>
 
174
 
 
175
</div>
 
176
</div>
 
177
<a class="anchor" id="gaeda4f0cf54aa464cec09e740100caa79"></a><!-- doxytag: member="bm::any_or" ref="gaeda4f0cf54aa464cec09e740100caa79" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
178
<div class="memitem">
 
179
<div class="memproto">
 
180
<div class="memtemplate">
 
181
template&lt;class BV &gt; </div>
 
182
      <table class="memname">
 
183
        <tr>
 
184
          <td class="memname"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::any_or </td>
 
185
          <td>(</td>
 
186
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
187
          <td class="paramname"> <em>bv1</em>, </td>
 
188
        </tr>
 
189
        <tr>
 
190
          <td class="paramkey"></td>
 
191
          <td></td>
 
192
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
193
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
194
        </tr>
 
195
        <tr>
 
196
          <td></td>
 
197
          <td>)</td>
 
198
          <td></td><td></td><td><code> [inline]</code></td>
 
199
        </tr>
 
200
      </table>
 
201
</div>
 
202
<div class="memdoc">
 
203
 
 
204
<p>Computes if there is any bit in OR operation of two bitsets. </p>
 
205
<dl><dt><b>Parameters:</b></dt><dd>
 
206
  <table border="0" cellspacing="2" cellpadding="0">
 
207
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
208
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
209
  </table>
 
210
  </dd>
 
211
</dl>
 
212
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if there is any bit </dd></dl>
 
213
 
 
214
<p>Definition at line <a class="el" href="a00089_source.html#l01097">1097</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
215
 
 
216
<p>References <a class="el" href="a00089_source.html#l00059">bm::COUNT_OR</a>, <a class="el" href="a00089_source.html#l00853">bm::distance_operation_any()</a>, and <a class="el" href="a00089_source.html#l00088">bm::distance_metric_descriptor::result</a>.</p>
 
217
 
 
218
</div>
 
219
</div>
 
220
<a class="anchor" id="gabde2e210b9b1edd190e1f5a9ff22344c"></a><!-- doxytag: member="bm::any_sub" ref="gabde2e210b9b1edd190e1f5a9ff22344c" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
221
<div class="memitem">
 
222
<div class="memproto">
 
223
<div class="memtemplate">
 
224
template&lt;class BV &gt; </div>
 
225
      <table class="memname">
 
226
        <tr>
 
227
          <td class="memname"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::any_sub </td>
 
228
          <td>(</td>
 
229
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
230
          <td class="paramname"> <em>bv1</em>, </td>
 
231
        </tr>
 
232
        <tr>
 
233
          <td class="paramkey"></td>
 
234
          <td></td>
 
235
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
236
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
237
        </tr>
 
238
        <tr>
 
239
          <td></td>
 
240
          <td>)</td>
 
241
          <td></td><td></td><td><code> [inline]</code></td>
 
242
        </tr>
 
243
      </table>
 
244
</div>
 
245
<div class="memdoc">
 
246
 
 
247
<p>Computes if there is any bit in SUB operation of two bitsets. </p>
 
248
<dl><dt><b>Parameters:</b></dt><dd>
 
249
  <table border="0" cellspacing="2" cellpadding="0">
 
250
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
251
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
252
  </table>
 
253
  </dd>
 
254
</dl>
 
255
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if there is any bit </dd></dl>
 
256
 
 
257
<p>Definition at line <a class="el" href="a00089_source.html#l01064">1064</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
258
 
 
259
<p>References <a class="el" href="a00089_source.html#l00060">bm::COUNT_SUB_AB</a>, <a class="el" href="a00089_source.html#l00853">bm::distance_operation_any()</a>, and <a class="el" href="a00089_source.html#l00088">bm::distance_metric_descriptor::result</a>.</p>
 
260
 
 
261
</div>
 
262
</div>
 
263
<a class="anchor" id="ga2d63f41244b82d233acb53d88b326b82"></a><!-- doxytag: member="bm::any_xor" ref="ga2d63f41244b82d233acb53d88b326b82" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
264
<div class="memitem">
 
265
<div class="memproto">
 
266
<div class="memtemplate">
 
267
template&lt;class BV &gt; </div>
 
268
      <table class="memname">
 
269
        <tr>
 
270
          <td class="memname"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::any_xor </td>
 
271
          <td>(</td>
 
272
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
273
          <td class="paramname"> <em>bv1</em>, </td>
 
274
        </tr>
 
275
        <tr>
 
276
          <td class="paramkey"></td>
 
277
          <td></td>
 
278
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
279
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
280
        </tr>
 
281
        <tr>
 
282
          <td></td>
 
283
          <td>)</td>
 
284
          <td></td><td></td><td><code> [inline]</code></td>
 
285
        </tr>
 
286
      </table>
 
287
</div>
 
288
<div class="memdoc">
 
289
 
 
290
<p>Computes if there is any bit in XOR operation of two bitsets. </p>
 
291
<dl><dt><b>Parameters:</b></dt><dd>
 
292
  <table border="0" cellspacing="2" cellpadding="0">
 
293
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
294
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
295
  </table>
 
296
  </dd>
 
297
</dl>
 
298
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if there is any bit </dd></dl>
 
299
 
 
300
<p>Definition at line <a class="el" href="a00089_source.html#l01029">1029</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
301
 
 
302
<p>References <a class="el" href="a00089_source.html#l00058">bm::COUNT_XOR</a>, <a class="el" href="a00089_source.html#l00853">bm::distance_operation_any()</a>, and <a class="el" href="a00089_source.html#l00088">bm::distance_metric_descriptor::result</a>.</p>
 
303
 
 
304
</div>
 
305
</div>
 
306
<a class="anchor" id="gae451cb4b87e8c0859b0614d2ffb99737"></a><!-- doxytag: member="bm::count_and" ref="gae451cb4b87e8c0859b0614d2ffb99737" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
307
<div class="memitem">
 
308
<div class="memproto">
 
309
<div class="memtemplate">
 
310
template&lt;class BV &gt; </div>
 
311
      <table class="memname">
 
312
        <tr>
 
313
          <td class="memname"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::count_and </td>
 
314
          <td>(</td>
 
315
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
316
          <td class="paramname"> <em>bv1</em>, </td>
 
317
        </tr>
 
318
        <tr>
 
319
          <td class="paramkey"></td>
 
320
          <td></td>
 
321
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
322
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
323
        </tr>
 
324
        <tr>
 
325
          <td></td>
 
326
          <td>)</td>
 
327
          <td></td><td></td><td><code> [inline]</code></td>
 
328
        </tr>
 
329
      </table>
 
330
</div>
 
331
<div class="memdoc">
 
332
 
 
333
<p>Computes bitcount of AND operation of two bitsets. </p>
 
334
<dl><dt><b>Parameters:</b></dt><dd>
 
335
  <table border="0" cellspacing="2" cellpadding="0">
 
336
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
337
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
338
  </table>
 
339
  </dd>
 
340
</dl>
 
341
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of the result </dd></dl>
 
342
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="a00008.html#a3">sample9.cpp</a>.</dd>
 
343
</dl>
 
344
<p>Definition at line <a class="el" href="a00089_source.html#l00982">982</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
345
 
 
346
<p>References <a class="el" href="a00089_source.html#l00783">bm::distance_and_operation()</a>.</p>
 
347
 
 
348
<p>Referenced by <a class="el" href="a00114_source.html#l00047">main()</a>.</p>
 
349
 
 
350
</div>
 
351
</div>
 
352
<a class="anchor" id="ga803c564668703fc3bf80067570c2c905"></a><!-- doxytag: member="bm::count_or" ref="ga803c564668703fc3bf80067570c2c905" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
353
<div class="memitem">
 
354
<div class="memproto">
 
355
<div class="memtemplate">
 
356
template&lt;class BV &gt; </div>
 
357
      <table class="memname">
 
358
        <tr>
 
359
          <td class="memname"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::count_or </td>
 
360
          <td>(</td>
 
361
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
362
          <td class="paramname"> <em>bv1</em>, </td>
 
363
        </tr>
 
364
        <tr>
 
365
          <td class="paramkey"></td>
 
366
          <td></td>
 
367
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
368
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
369
        </tr>
 
370
        <tr>
 
371
          <td></td>
 
372
          <td>)</td>
 
373
          <td></td><td></td><td><code> [inline]</code></td>
 
374
        </tr>
 
375
      </table>
 
376
</div>
 
377
<div class="memdoc">
 
378
 
 
379
<p>Computes bitcount of OR operation of two bitsets. </p>
 
380
<dl><dt><b>Parameters:</b></dt><dd>
 
381
  <table border="0" cellspacing="2" cellpadding="0">
 
382
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
383
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
384
  </table>
 
385
  </dd>
 
386
</dl>
 
387
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of the result </dd></dl>
 
388
 
 
389
<p>Definition at line <a class="el" href="a00089_source.html#l01081">1081</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
390
 
 
391
<p>References <a class="el" href="a00089_source.html#l00059">bm::COUNT_OR</a>, <a class="el" href="a00089_source.html#l00693">bm::distance_operation()</a>, and <a class="el" href="a00089_source.html#l00088">bm::distance_metric_descriptor::result</a>.</p>
 
392
 
 
393
</div>
 
394
</div>
 
395
<a class="anchor" id="ga902d8c1cd1f8a2538cd47d47f5d8d605"></a><!-- doxytag: member="bm::count_sub" ref="ga902d8c1cd1f8a2538cd47d47f5d8d605" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
396
<div class="memitem">
 
397
<div class="memproto">
 
398
<div class="memtemplate">
 
399
template&lt;class BV &gt; </div>
 
400
      <table class="memname">
 
401
        <tr>
 
402
          <td class="memname"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::count_sub </td>
 
403
          <td>(</td>
 
404
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
405
          <td class="paramname"> <em>bv1</em>, </td>
 
406
        </tr>
 
407
        <tr>
 
408
          <td class="paramkey"></td>
 
409
          <td></td>
 
410
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
411
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
412
        </tr>
 
413
        <tr>
 
414
          <td></td>
 
415
          <td>)</td>
 
416
          <td></td><td></td><td><code> [inline]</code></td>
 
417
        </tr>
 
418
      </table>
 
419
</div>
 
420
<div class="memdoc">
 
421
 
 
422
<p>Computes bitcount of SUB operation of two bitsets. </p>
 
423
<dl><dt><b>Parameters:</b></dt><dd>
 
424
  <table border="0" cellspacing="2" cellpadding="0">
 
425
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
426
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
427
  </table>
 
428
  </dd>
 
429
</dl>
 
430
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of the result </dd></dl>
 
431
 
 
432
<p>Definition at line <a class="el" href="a00089_source.html#l01047">1047</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
433
 
 
434
<p>References <a class="el" href="a00089_source.html#l00060">bm::COUNT_SUB_AB</a>, <a class="el" href="a00089_source.html#l00693">bm::distance_operation()</a>, and <a class="el" href="a00089_source.html#l00088">bm::distance_metric_descriptor::result</a>.</p>
 
435
 
 
436
</div>
 
437
</div>
 
438
<a class="anchor" id="gafc64a082dcaee07f70f7faf3e24f844e"></a><!-- doxytag: member="bm::count_xor" ref="gafc64a082dcaee07f70f7faf3e24f844e" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
439
<div class="memitem">
 
440
<div class="memproto">
 
441
<div class="memtemplate">
 
442
template&lt;class BV &gt; </div>
 
443
      <table class="memname">
 
444
        <tr>
 
445
          <td class="memname"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::count_xor </td>
 
446
          <td>(</td>
 
447
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
448
          <td class="paramname"> <em>bv1</em>, </td>
 
449
        </tr>
 
450
        <tr>
 
451
          <td class="paramkey"></td>
 
452
          <td></td>
 
453
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
454
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
455
        </tr>
 
456
        <tr>
 
457
          <td></td>
 
458
          <td>)</td>
 
459
          <td></td><td></td><td><code> [inline]</code></td>
 
460
        </tr>
 
461
      </table>
 
462
</div>
 
463
<div class="memdoc">
 
464
 
 
465
<p>Computes bitcount of XOR operation of two bitsets. </p>
 
466
<dl><dt><b>Parameters:</b></dt><dd>
 
467
  <table border="0" cellspacing="2" cellpadding="0">
 
468
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
469
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
470
  </table>
 
471
  </dd>
 
472
</dl>
 
473
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of the result </dd></dl>
 
474
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="a00008.html#a2">sample9.cpp</a>.</dd>
 
475
</dl>
 
476
<p>Definition at line <a class="el" href="a00089_source.html#l01013">1013</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
477
 
 
478
<p>References <a class="el" href="a00089_source.html#l00058">bm::COUNT_XOR</a>, <a class="el" href="a00089_source.html#l00693">bm::distance_operation()</a>, and <a class="el" href="a00089_source.html#l00088">bm::distance_metric_descriptor::result</a>.</p>
 
479
 
 
480
<p>Referenced by <a class="el" href="a00114_source.html#l00047">main()</a>.</p>
 
481
 
 
482
</div>
 
483
</div>
 
484
<a class="anchor" id="gad3ce9974302b0da70c5f029f620409f4"></a><!-- doxytag: member="bm::distance_and_operation" ref="gad3ce9974302b0da70c5f029f620409f4" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
485
<div class="memitem">
 
486
<div class="memproto">
 
487
<div class="memtemplate">
 
488
template&lt;class BV &gt; </div>
 
489
      <table class="memname">
 
490
        <tr>
 
491
          <td class="memname">unsigned bm::distance_and_operation </td>
 
492
          <td>(</td>
 
493
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
494
          <td class="paramname"> <em>bv1</em>, </td>
 
495
        </tr>
 
496
        <tr>
 
497
          <td class="paramkey"></td>
 
498
          <td></td>
 
499
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
500
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
501
        </tr>
 
502
        <tr>
 
503
          <td></td>
 
504
          <td>)</td>
 
505
          <td></td><td></td><td><code> [inline]</code></td>
 
506
        </tr>
 
507
      </table>
 
508
</div>
 
509
<div class="memdoc">
 
510
 
 
511
<p>Distance AND computing template function. </p>
 
512
<dl><dt><b>Parameters:</b></dt><dd>
 
513
  <table border="0" cellspacing="2" cellpadding="0">
 
514
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- argument bitvector 1 (A) </td></tr>
 
515
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- argument bitvector 2 (B) </td></tr>
 
516
  </table>
 
517
  </dd>
 
518
</dl>
 
519
 
 
520
<p>Definition at line <a class="el" href="a00089_source.html#l00783">783</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
521
 
 
522
<p>References <a class="el" href="a00092_source.html#l00130">BM_SET_MMX_GUARD</a>, <a class="el" href="a00089_source.html#l00329">bm::combine_count_and_operation_with_block()</a>, <a class="el" href="a00102_source.html#l00068">bm::min_value()</a>, and <a class="el" href="a00091_source.html#l00081">bm::set_array_size</a>.</p>
 
523
 
 
524
<p>Referenced by <a class="el" href="a00089_source.html#l00982">bm::count_and()</a>.</p>
 
525
 
 
526
</div>
 
527
</div>
 
528
<a class="anchor" id="ga815fef76f02576ab9ab58de0a45d8a4b"></a><!-- doxytag: member="bm::distance_operation" ref="ga815fef76f02576ab9ab58de0a45d8a4b" args="(const BV &amp;bv1, const BV &amp;bv2, distance_metric_descriptor *dmit, distance_metric_descriptor *dmit_end)" -->
 
529
<div class="memitem">
 
530
<div class="memproto">
 
531
<div class="memtemplate">
 
532
template&lt;class BV &gt; </div>
 
533
      <table class="memname">
 
534
        <tr>
 
535
          <td class="memname">void bm::distance_operation </td>
 
536
          <td>(</td>
 
537
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
538
          <td class="paramname"> <em>bv1</em>, </td>
 
539
        </tr>
 
540
        <tr>
 
541
          <td class="paramkey"></td>
 
542
          <td></td>
 
543
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
544
          <td class="paramname"> <em>bv2</em>, </td>
 
545
        </tr>
 
546
        <tr>
 
547
          <td class="paramkey"></td>
 
548
          <td></td>
 
549
          <td class="paramtype">distance_metric_descriptor *&nbsp;</td>
 
550
          <td class="paramname"> <em>dmit</em>, </td>
 
551
        </tr>
 
552
        <tr>
 
553
          <td class="paramkey"></td>
 
554
          <td></td>
 
555
          <td class="paramtype">distance_metric_descriptor *&nbsp;</td>
 
556
          <td class="paramname"> <em>dmit_end</em></td><td>&nbsp;</td>
 
557
        </tr>
 
558
        <tr>
 
559
          <td></td>
 
560
          <td>)</td>
 
561
          <td></td><td></td><td><code> [inline]</code></td>
 
562
        </tr>
 
563
      </table>
 
564
</div>
 
565
<div class="memdoc">
 
566
 
 
567
<p>Distance computing template function. </p>
 
568
<p>Function receives two bitvectors and an array of distance metrics (metrics pipeline). Function computes all metrics saves result into corresponding pipeline results (<a class="el" href="a00060.html#a94c955fe1ac46589d6edc8df7fd35cf6">distance_metric_descriptor::result</a>) An important detail is that function reuses metric descriptors, incrementing received values. It allows you to accumulate results from different calls in the pipeline.</p>
 
569
<dl><dt><b>Parameters:</b></dt><dd>
 
570
  <table border="0" cellspacing="2" cellpadding="0">
 
571
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- argument bitvector 1 (A) </td></tr>
 
572
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- argument bitvector 2 (B) </td></tr>
 
573
    <tr><td valign="top"></td><td valign="top"><em>dmit</em>&nbsp;</td><td>- pointer to first element of metric descriptors array Input-Output parameter, receives metric code as input, computation is added to "result" field </td></tr>
 
574
    <tr><td valign="top"></td><td valign="top"><em>dmit_end</em>&nbsp;</td><td>- pointer to (last+1) element of metric descriptors array </td></tr>
 
575
  </table>
 
576
  </dd>
 
577
</dl>
 
578
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="a00008.html#a10">sample9.cpp</a>.</dd>
 
579
</dl>
 
580
<p>Definition at line <a class="el" href="a00089_source.html#l00693">693</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
581
 
 
582
<p>References <a class="el" href="a00092_source.html#l00130">BM_SET_MMX_GUARD</a>, <a class="el" href="a00089_source.html#l00116">bm::combine_count_operation_with_block()</a>, <a class="el" href="a00089_source.html#l00659">bm::distance_stage()</a>, and <a class="el" href="a00091_source.html#l00081">bm::set_array_size</a>.</p>
 
583
 
 
584
<p>Referenced by <a class="el" href="a00089_source.html#l01081">bm::count_or()</a>, <a class="el" href="a00089_source.html#l01047">bm::count_sub()</a>, <a class="el" href="a00089_source.html#l01013">bm::count_xor()</a>, and <a class="el" href="a00114_source.html#l00047">main()</a>.</p>
 
585
 
 
586
</div>
 
587
</div>
 
588
<a class="anchor" id="gaa66525fd7a3f823d73678252a235982e"></a><!-- doxytag: member="bm::distance_operation_any" ref="gaa66525fd7a3f823d73678252a235982e" args="(const BV &amp;bv1, const BV &amp;bv2, distance_metric_descriptor *dmit, distance_metric_descriptor *dmit_end)" -->
 
589
<div class="memitem">
 
590
<div class="memproto">
 
591
<div class="memtemplate">
 
592
template&lt;class BV &gt; </div>
 
593
      <table class="memname">
 
594
        <tr>
 
595
          <td class="memname">void bm::distance_operation_any </td>
 
596
          <td>(</td>
 
597
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
598
          <td class="paramname"> <em>bv1</em>, </td>
 
599
        </tr>
 
600
        <tr>
 
601
          <td class="paramkey"></td>
 
602
          <td></td>
 
603
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
604
          <td class="paramname"> <em>bv2</em>, </td>
 
605
        </tr>
 
606
        <tr>
 
607
          <td class="paramkey"></td>
 
608
          <td></td>
 
609
          <td class="paramtype">distance_metric_descriptor *&nbsp;</td>
 
610
          <td class="paramname"> <em>dmit</em>, </td>
 
611
        </tr>
 
612
        <tr>
 
613
          <td class="paramkey"></td>
 
614
          <td></td>
 
615
          <td class="paramtype">distance_metric_descriptor *&nbsp;</td>
 
616
          <td class="paramname"> <em>dmit_end</em></td><td>&nbsp;</td>
 
617
        </tr>
 
618
        <tr>
 
619
          <td></td>
 
620
          <td>)</td>
 
621
          <td></td><td></td><td><code> [inline]</code></td>
 
622
        </tr>
 
623
      </table>
 
624
</div>
 
625
<div class="memdoc">
 
626
 
 
627
<p>Distance screening template function. </p>
 
628
<p>Function receives two bitvectors and an array of distance metrics (metrics pipeline). Function computes possybility of a metric(any bit) saves result into corresponding pipeline results (<a class="el" href="a00060.html#a94c955fe1ac46589d6edc8df7fd35cf6">distance_metric_descriptor::result</a>) An important detail is that function reuses metric descriptors, incrementing received values. It allows you to accumulate results from different calls in the pipeline.</p>
 
629
<dl><dt><b>Parameters:</b></dt><dd>
 
630
  <table border="0" cellspacing="2" cellpadding="0">
 
631
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- argument bitvector 1 (A) </td></tr>
 
632
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- argument bitvector 2 (B) </td></tr>
 
633
    <tr><td valign="top"></td><td valign="top"><em>dmit</em>&nbsp;</td><td>- pointer to first element of metric descriptors array Input-Output parameter, receives metric code as input, computation is added to "result" field </td></tr>
 
634
    <tr><td valign="top"></td><td valign="top"><em>dmit_end</em>&nbsp;</td><td>- pointer to (last+1) element of metric descriptors array </td></tr>
 
635
  </table>
 
636
  </dd>
 
637
</dl>
 
638
 
 
639
<p>Definition at line <a class="el" href="a00089_source.html#l00853">853</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
640
 
 
641
<p>References <a class="el" href="a00092_source.html#l00088">BM_IS_GAP</a>, <a class="el" href="a00092_source.html#l00130">BM_SET_MMX_GUARD</a>, <a class="el" href="a00089_source.html#l00366">bm::combine_any_operation_with_block()</a>, <a class="el" href="a00089_source.html#l00659">bm::distance_stage()</a>, <a class="el" href="a00089_source.html#l00088">bm::distance_metric_descriptor::result</a>, and <a class="el" href="a00091_source.html#l00081">bm::set_array_size</a>.</p>
 
642
 
 
643
<p>Referenced by <a class="el" href="a00089_source.html#l00995">bm::any_and()</a>, <a class="el" href="a00089_source.html#l01097">bm::any_or()</a>, <a class="el" href="a00089_source.html#l01064">bm::any_sub()</a>, and <a class="el" href="a00089_source.html#l01029">bm::any_xor()</a>.</p>
 
644
 
 
645
</div>
 
646
</div>
 
647
<a class="anchor" id="ga158946ea41ca66c3e1bca62c92684788"></a><!-- doxytag: member="bm::operation2metric" ref="ga158946ea41ca66c3e1bca62c92684788" args="(set_operation op)" -->
 
648
<div class="memitem">
 
649
<div class="memproto">
 
650
      <table class="memname">
 
651
        <tr>
 
652
          <td class="memname">distance_metric bm::operation2metric </td>
 
653
          <td>(</td>
 
654
          <td class="paramtype">set_operation&nbsp;</td>
 
655
          <td class="paramname"> <em>op</em></td>
331
656
          <td>&nbsp;)&nbsp;</td>
332
657
          <td><code> [inline]</code></td>
333
658
        </tr>
335
660
</div>
336
661
<div class="memdoc">
337
662
 
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="a00090_source.html#l01405">1405</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
349
 
 
350
 
<p>References <a class="el" href="a00094_source.html#l00592">bm::for_each_block()</a>, and <a class="el" href="a00092_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="a00090_source.html#l01431">1431</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
399
 
 
400
 
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00092_source.html#l00116">bm::BM_BIT</a>, <a class="el" href="a00093_source.html#l00095">BMGAP_PTR</a>, <a class="el" href="a00092_source.html#l00052">bm::set_block_size</a>, and <a class="el" href="a00092_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 Tue Mar 23 20:48:07 2010 for BitMagic by&nbsp;
 
663
<p>Convert set operation into compatible distance metric. </p>
 
664
 
 
665
<p>Definition at line <a class="el" href="a00089_source.html#l00071">71</a> of file <a class="el" href="a00089_source.html">bmalgo_impl.h</a>.</p>
 
666
 
 
667
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00093_source.html#l00266">bm::is_const_set_operation()</a>, <a class="el" href="a00093_source.html#l00252">bm::set_COUNT</a>, and <a class="el" href="a00093_source.html#l00259">bm::set_COUNT_B</a>.</p>
 
668
 
 
669
<p>Referenced by <a class="el" href="a00096_source.html#l03319">bm::iterator_deserializer&lt; BV, SerialIterator &gt;::deserialize()</a>.</p>
 
670
 
 
671
</div>
 
672
</div>
 
673
</div>
 
674
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Apr 25 09:37:40 2010 for BitMagic by&nbsp;
406
675
<a href="http://www.doxygen.org/index.html">
407
676
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
408
677
</body>