~ubuntu-branches/ubuntu/vivid/bmagic/vivid

« back to all changes in this revision

Viewing changes to doc/html/a00126.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: bvector serialization</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>bvector serialization<br/>
 
24
<h1>Distance metrics<br/>
25
25
<small>
26
 
[<a class="el" href="a00117.html">BitMagic C++ Library</a>]</small>
 
26
[<a class="el" href="a00125.html">Set algorithms</a>]</small>
27
27
</h1>
28
28
<p><div class="dynheader">
29
 
Collaboration diagram for bvector serialization:</div>
 
29
Collaboration diagram for Distance metrics:</div>
30
30
<div class="dynsection">
31
31
<center><table><tr><td><img src="a00126.png" border="0" alt="" usemap="#a00126_map"/>
32
32
<map name="a00126_map" id="a00126">
33
 
<area shape="rect" href="a00117.html" title="For more information please visit: http://bmagic.sourceforge.net." alt="" coords="5,5,149,35"/></map></td></tr></table></center>
 
33
<area shape="rect" href="a00125.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="a00083.html">bm::serializer&lt; BV &gt;</a></td></tr>
39
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bit-vector serialization class.  <a href="a00083.html#_details">More...</a><br/></td></tr>
40
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00058.html">bm::deseriaizer_base&lt; DEC &gt;</a></td></tr>
41
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Base deserialization class.  <a href="a00058.html#_details">More...</a><br/></td></tr>
42
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html">bm::deserializer&lt; BV, DEC &gt;</a></td></tr>
43
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class <a class="el" href="a00059.html" title="Class deserializer.">deserializer</a>.  <a href="a00059.html#_details">More...</a><br/></td></tr>
44
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00082.html">bm::serial_stream_iterator&lt; DEC &gt;</a></td></tr>
45
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serialization stream iterator.  <a href="a00082.html#_details">More...</a><br/></td></tr>
46
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00076.html">bm::operation_deserializer&lt; BV &gt;</a></td></tr>
47
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class <a class="el" href="a00059.html" title="Class deserializer.">deserializer</a>, can perform logical operation on bit-vector and serialized bit-vector.  <a href="a00076.html#_details">More...</a><br/></td></tr>
48
37
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
49
 
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00126.html#ga537dfe6318f1f1fe18d86dac312be978">bm::serialization_flags</a> { <a class="el" href="a00126.html#gga537dfe6318f1f1fe18d86dac312be978acdd8c071c079589388c3ca7bd4f367c8">bm::BM_NO_BYTE_ORDER</a> =  1, 
50
 
<a class="el" href="a00126.html#gga537dfe6318f1f1fe18d86dac312be978a5521473081d341bc32ac59538e6a8096">bm::BM_NO_GAP_LENGTH</a> =  (1 &lt;&lt; 1)
 
38
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00126.html#gac38d64c8b27b652413a664cddd4d40ab">bm::distance_metric</a> { <br/>
 
39
&nbsp;&nbsp;<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40abacb39376469ba778e9a9099ddbae5e7ce">bm::COUNT_AND</a> =  set_COUNT_AND, 
 
40
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40aba3e4861dde6e1179457ee0d3502ae8061">bm::COUNT_XOR</a> =  set_COUNT_XOR, 
 
41
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40abad0bd2d56c8ebd03f55c01b3cc6faaaeb">bm::COUNT_OR</a> =  set_COUNT_OR, 
 
42
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40aba9c101dab8904c0432f72ccce0a207e62">bm::COUNT_SUB_AB</a> =  set_COUNT_SUB_AB, 
 
43
<br/>
 
44
&nbsp;&nbsp;<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40abafa036fb9d54bc659ed3c9e4185ccf400">bm::COUNT_SUB_BA</a> =  set_COUNT_SUB_BA, 
 
45
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40abaac7947d53eb3acf81251ee4130e6a4a2">bm::COUNT_A</a> =  set_COUNT_A, 
 
46
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40abac6dbadf2ab9405daa47dc0f10d082516">bm::COUNT_B</a> =  set_COUNT_B
 
47
<br/>
51
48
 }</td></tr>
52
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Bit mask flags for serialization algorithm. </p>
53
 
 <a href="a00126.html#ga537dfe6318f1f1fe18d86dac312be978">More...</a><br/></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="a00126.html#gac38d64c8b27b652413a664cddd4d40ab">More...</a><br/></td></tr>
54
51
<tr><td colspan="2"><h2>Functions</h2></td></tr>
55
 
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
56
 
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga5210c3bda57254ef2e8c71e23306cc88">bm::serialize</a> (const BV &amp;bv, unsigned char *buf, <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_block, unsigned serialization_flags=0)</td></tr>
57
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Saves bitvector into memory.  <a href="#ga5210c3bda57254ef2e8c71e23306cc88"></a><br/></td></tr>
58
 
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
59
 
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga213033b5cc6add74aa4bd1d614b56192">bm::serialize</a> (BV &amp;bv, unsigned char *buf, unsigned serialization_flags=0)</td></tr>
60
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Saves bitvector into memory. Allocates temporary memory block for <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a>.  <a href="#ga213033b5cc6add74aa4bd1d614b56192"></a><br/></td></tr>
61
 
<tr><td class="memTemplParams" colspan="2">template&lt;class BV &gt; </td></tr>
62
 
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gafbe633db8da3d867f098468269fd8d3d">bm::deserialize</a> (BV &amp;bv, const unsigned char *buf, <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_block=0)</td></tr>
63
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bitvector deserialization from memory.  <a href="#gafbe633db8da3d867f098468269fd8d3d"></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="a00126.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="a00126.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">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.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>
 
59
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Distance screening template function.  <a href="#gaa66525fd7a3f823d73678252a235982e"></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"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gae451cb4b87e8c0859b0614d2ffb99737">bm::count_and</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
62
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes bitcount of AND operation of two bitsets.  <a href="#gae451cb4b87e8c0859b0614d2ffb99737"></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="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga2d5393e05bcfc540840a4cee67fb771f">bm::any_and</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
65
<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>
 
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="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gafc64a082dcaee07f70f7faf3e24f844e">bm::count_xor</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
68
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes bitcount of XOR operation of two bitsets.  <a href="#gafc64a082dcaee07f70f7faf3e24f844e"></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="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga2d63f41244b82d233acb53d88b326b82">bm::any_xor</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
71
<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>
 
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="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga902d8c1cd1f8a2538cd47d47f5d8d605">bm::count_sub</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
74
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes bitcount of SUB operation of two bitsets.  <a href="#ga902d8c1cd1f8a2538cd47d47f5d8d605"></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="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gabde2e210b9b1edd190e1f5a9ff22344c">bm::any_sub</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
77
<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>
 
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="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga803c564668703fc3bf80067570c2c905">bm::count_or</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
80
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes bitcount of OR operation of two bitsets.  <a href="#ga803c564668703fc3bf80067570c2c905"></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="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gaeda4f0cf54aa464cec09e740100caa79">bm::any_or</a> (const BV &amp;bv1, const BV &amp;bv2)</td></tr>
 
83
<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>
64
84
</table>
65
85
<hr/><a name="_details"></a><h2>Detailed Description</h2>
66
 
<p>bvector serialization </p>
 
86
<p>Algorithms to compute binary distance metrics </p>
67
87
<hr/><h2>Enumeration Type Documentation</h2>
68
 
<a class="anchor" id="ga537dfe6318f1f1fe18d86dac312be978"></a><!-- doxytag: member="bm::serialization_flags" ref="ga537dfe6318f1f1fe18d86dac312be978" args="" -->
 
88
<a class="anchor" id="gac38d64c8b27b652413a664cddd4d40ab"></a><!-- doxytag: member="bm::distance_metric" ref="gac38d64c8b27b652413a664cddd4d40ab" args="" -->
69
89
<div class="memitem">
70
90
<div class="memproto">
71
91
      <table class="memname">
72
92
        <tr>
73
 
          <td class="memname">enum <a class="el" href="a00126.html#ga537dfe6318f1f1fe18d86dac312be978">bm::serialization_flags</a></td>
 
93
          <td class="memname">enum <a class="el" href="a00126.html#gac38d64c8b27b652413a664cddd4d40ab">bm::distance_metric</a></td>
74
94
        </tr>
75
95
      </table>
76
96
</div>
77
97
<div class="memdoc">
78
98
 
79
 
<p>Bit mask flags for serialization algorithm. </p>
 
99
<p>Distance metrics codes defined for vectors A and B. </p>
80
100
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
81
 
<tr><td valign="top"><em><a class="anchor" id="gga537dfe6318f1f1fe18d86dac312be978acdd8c071c079589388c3ca7bd4f367c8"></a><!-- doxytag: member="BM_NO_BYTE_ORDER" ref="gga537dfe6318f1f1fe18d86dac312be978acdd8c071c079589388c3ca7bd4f367c8" args="" -->BM_NO_BYTE_ORDER</em>&nbsp;</td><td>
82
 
<p>save no byte-order info (save some space) </p>
83
 
</td></tr>
84
 
<tr><td valign="top"><em><a class="anchor" id="gga537dfe6318f1f1fe18d86dac312be978a5521473081d341bc32ac59538e6a8096"></a><!-- doxytag: member="BM_NO_GAP_LENGTH" ref="gga537dfe6318f1f1fe18d86dac312be978a5521473081d341bc32ac59538e6a8096" args="" -->BM_NO_GAP_LENGTH</em>&nbsp;</td><td>
85
 
<p>save no GAP info (save some space) </p>
 
101
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40abacb39376469ba778e9a9099ddbae5e7ce"></a><!-- doxytag: member="COUNT_AND" ref="ggac38d64c8b27b652413a664cddd4d40abacb39376469ba778e9a9099ddbae5e7ce" args="" -->COUNT_AND</em>&nbsp;</td><td>
 
102
<p>(A &amp; B).count() </p>
 
103
</td></tr>
 
104
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40aba3e4861dde6e1179457ee0d3502ae8061"></a><!-- doxytag: member="COUNT_XOR" ref="ggac38d64c8b27b652413a664cddd4d40aba3e4861dde6e1179457ee0d3502ae8061" args="" -->COUNT_XOR</em>&nbsp;</td><td>
 
105
<p>(A ^ B).count() </p>
 
106
</td></tr>
 
107
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40abad0bd2d56c8ebd03f55c01b3cc6faaaeb"></a><!-- doxytag: member="COUNT_OR" ref="ggac38d64c8b27b652413a664cddd4d40abad0bd2d56c8ebd03f55c01b3cc6faaaeb" args="" -->COUNT_OR</em>&nbsp;</td><td>
 
108
<p>(A | B).count() </p>
 
109
</td></tr>
 
110
<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>
 
111
<p>(A - B).count() </p>
 
112
</td></tr>
 
113
<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>
 
114
<p>(B - A).count() </p>
 
115
</td></tr>
 
116
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40abaac7947d53eb3acf81251ee4130e6a4a2"></a><!-- doxytag: member="COUNT_A" ref="ggac38d64c8b27b652413a664cddd4d40abaac7947d53eb3acf81251ee4130e6a4a2" args="" -->COUNT_A</em>&nbsp;</td><td>
 
117
<p>A.count(). </p>
 
118
</td></tr>
 
119
<tr><td valign="top"><em><a class="anchor" id="ggac38d64c8b27b652413a664cddd4d40abac6dbadf2ab9405daa47dc0f10d082516"></a><!-- doxytag: member="COUNT_B" ref="ggac38d64c8b27b652413a664cddd4d40abac6dbadf2ab9405daa47dc0f10d082516" args="" -->COUNT_B</em>&nbsp;</td><td>
 
120
<p>B.count(). </p>
86
121
</td></tr>
87
122
</table>
88
123
</dd>
89
124
</dl>
90
125
 
91
 
<p>Definition at line <a class="el" href="a00096_source.html#l00981">981</a> of file <a class="el" href="a00096_source.html">bmserial.h</a>.</p>
 
126
<p>Definition at line <a class="el" href="a00090_source.html#l00053">53</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
92
127
 
93
128
</div>
94
129
</div>
95
130
<hr/><h2>Function Documentation</h2>
96
 
<a class="anchor" id="gafbe633db8da3d867f098468269fd8d3d"></a><!-- doxytag: member="bm::deserialize" ref="gafbe633db8da3d867f098468269fd8d3d" args="(BV &amp;bv, const unsigned char *buf, bm::word_t *temp_block=0)" -->
97
 
<div class="memitem">
98
 
<div class="memproto">
99
 
<div class="memtemplate">
100
 
template&lt;class BV &gt; </div>
101
 
      <table class="memname">
102
 
        <tr>
103
 
          <td class="memname">unsigned bm::deserialize </td>
104
 
          <td>(</td>
105
 
          <td class="paramtype">BV &amp;&nbsp;</td>
106
 
          <td class="paramname"> <em>bv</em>, </td>
107
 
        </tr>
108
 
        <tr>
109
 
          <td class="paramkey"></td>
110
 
          <td></td>
111
 
          <td class="paramtype">const unsigned char *&nbsp;</td>
112
 
          <td class="paramname"> <em>buf</em>, </td>
113
 
        </tr>
114
 
        <tr>
115
 
          <td class="paramkey"></td>
116
 
          <td></td>
117
 
          <td class="paramtype"><a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *&nbsp;</td>
118
 
          <td class="paramname"> <em>temp_block</em> = <code>0</code></td><td>&nbsp;</td>
119
 
        </tr>
120
 
        <tr>
121
 
          <td></td>
122
 
          <td>)</td>
123
 
          <td></td><td></td><td><code> [inline]</code></td>
124
 
        </tr>
125
 
      </table>
126
 
</div>
127
 
<div class="memdoc">
128
 
 
129
 
<p>Bitvector deserialization from memory. </p>
130
 
<dl><dt><b>Parameters:</b></dt><dd>
131
 
  <table border="0" cellspacing="2" cellpadding="0">
132
 
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- pointer on memory which keeps serialized <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a> </td></tr>
133
 
    <tr><td valign="top"></td><td valign="top"><em>temp_block</em>&nbsp;</td><td>- pointer on temporary block, if NULL <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a> allocates own. </td></tr>
134
 
  </table>
135
 
  </dd>
136
 
</dl>
137
 
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of bytes consumed by <a class="el" href="a00059.html" title="Class deserializer.">deserializer</a>.</dd></dl>
138
 
<p>Function desrializes bitvector from memory block containig results of previous serialization. Function does not remove bits which are currently set. Effectively it means OR logical operation between current bitset and previously serialized one. </p>
139
 
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="a00004.html#a21">sample4.cpp</a>.</dd>
140
 
</dl>
141
 
<p>Definition at line <a class="el" href="a00096_source.html#l01090">1090</a> of file <a class="el" href="a00096_source.html">bmserial.h</a>.</p>
142
 
 
143
 
<p>References <a class="el" href="a00093_source.html#l00399">bm::BigEndian</a>, <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00096_source.html#l00099">bm::BM_HM_NO_BO</a>, <a class="el" href="a00093_source.html#l00441">bm::globals&lt; T &gt;::byte_order()</a>, <a class="el" href="a00096_source.html#l01453">bm::deserializer&lt; BV, DEC &gt;::deserialize()</a>, <a class="el" href="a00104_source.html#l00079">bm::decoder_base::get_8()</a>, and <a class="el" href="a00093_source.html#l00400">bm::LittleEndian</a>.</p>
144
 
 
145
 
<p>Referenced by <a class="el" href="a00109_source.html#l00107">main()</a>.</p>
146
 
 
147
 
</div>
148
 
</div>
149
 
<a class="anchor" id="ga213033b5cc6add74aa4bd1d614b56192"></a><!-- doxytag: member="bm::serialize" ref="ga213033b5cc6add74aa4bd1d614b56192" args="(BV &amp;bv, unsigned char *buf, unsigned serialization_flags=0)" -->
150
 
<div class="memitem">
151
 
<div class="memproto">
152
 
<div class="memtemplate">
153
 
template&lt;class BV &gt; </div>
154
 
      <table class="memname">
155
 
        <tr>
156
 
          <td class="memname">unsigned bm::serialize </td>
157
 
          <td>(</td>
158
 
          <td class="paramtype">BV &amp;&nbsp;</td>
159
 
          <td class="paramname"> <em>bv</em>, </td>
160
 
        </tr>
161
 
        <tr>
162
 
          <td class="paramkey"></td>
163
 
          <td></td>
164
 
          <td class="paramtype">unsigned char *&nbsp;</td>
165
 
          <td class="paramname"> <em>buf</em>, </td>
166
 
        </tr>
167
 
        <tr>
168
 
          <td class="paramkey"></td>
169
 
          <td></td>
170
 
          <td class="paramtype">unsigned&nbsp;</td>
171
 
          <td class="paramname"> <em>serialization_flags</em> = <code>0</code></td><td>&nbsp;</td>
172
 
        </tr>
173
 
        <tr>
174
 
          <td></td>
175
 
          <td>)</td>
176
 
          <td></td><td></td><td><code> [inline]</code></td>
177
 
        </tr>
178
 
      </table>
179
 
</div>
180
 
<div class="memdoc">
181
 
 
182
 
<p>Saves bitvector into memory. Allocates temporary memory block for <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a>. </p>
183
 
 
184
 
<p>Definition at line <a class="el" href="a00096_source.html#l01054">1054</a> of file <a class="el" href="a00096_source.html">bmserial.h</a>.</p>
185
 
 
186
 
<p>References <a class="el" href="a00096_source.html#l00982">bm::BM_NO_BYTE_ORDER</a>, <a class="el" href="a00096_source.html#l00983">bm::BM_NO_GAP_LENGTH</a>, <a class="el" href="a00096_source.html#l00524">bm::serializer&lt; BV &gt;::byte_order_serialization()</a>, <a class="el" href="a00096_source.html#l00518">bm::serializer&lt; BV &gt;::gap_length_serialization()</a>, <a class="el" href="a00096_source.html#l00758">bm::serializer&lt; BV &gt;::serialize()</a>, and <a class="el" href="a00096_source.html#l00499">bm::serializer&lt; BV &gt;::set_compression_level()</a>.</p>
187
 
 
188
 
</div>
189
 
</div>
190
 
<a class="anchor" id="ga5210c3bda57254ef2e8c71e23306cc88"></a><!-- doxytag: member="bm::serialize" ref="ga5210c3bda57254ef2e8c71e23306cc88" args="(const BV &amp;bv, unsigned char *buf, bm::word_t *temp_block, unsigned serialization_flags=0)" -->
191
 
<div class="memitem">
192
 
<div class="memproto">
193
 
<div class="memtemplate">
194
 
template&lt;class BV &gt; </div>
195
 
      <table class="memname">
196
 
        <tr>
197
 
          <td class="memname">unsigned bm::serialize </td>
198
 
          <td>(</td>
199
 
          <td class="paramtype">const BV &amp;&nbsp;</td>
200
 
          <td class="paramname"> <em>bv</em>, </td>
201
 
        </tr>
202
 
        <tr>
203
 
          <td class="paramkey"></td>
204
 
          <td></td>
205
 
          <td class="paramtype">unsigned char *&nbsp;</td>
206
 
          <td class="paramname"> <em>buf</em>, </td>
207
 
        </tr>
208
 
        <tr>
209
 
          <td class="paramkey"></td>
210
 
          <td></td>
211
 
          <td class="paramtype"><a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *&nbsp;</td>
212
 
          <td class="paramname"> <em>temp_block</em>, </td>
213
 
        </tr>
214
 
        <tr>
215
 
          <td class="paramkey"></td>
216
 
          <td></td>
217
 
          <td class="paramtype">unsigned&nbsp;</td>
218
 
          <td class="paramname"> <em>serialization_flags</em> = <code>0</code></td><td>&nbsp;</td>
219
 
        </tr>
220
 
        <tr>
221
 
          <td></td>
222
 
          <td>)</td>
223
 
          <td></td><td></td><td><code> [inline]</code></td>
224
 
        </tr>
225
 
      </table>
226
 
</div>
227
 
<div class="memdoc">
228
 
 
229
 
<p>Saves bitvector into memory. </p>
230
 
<p>Function serializes content of the bitvector into memory. Serialization adaptively uses compression(variation of GAP encoding) when it is benefitial.</p>
231
 
<dl><dt><b>Parameters:</b></dt><dd>
232
 
  <table border="0" cellspacing="2" cellpadding="0">
233
 
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- pointer on target memory area. No range checking in the function. It is responsibility of programmer to allocate sufficient amount of memory using information from calc_stat function.</td></tr>
234
 
    <tr><td valign="top"></td><td valign="top"><em>temp_block</em>&nbsp;</td><td>- pointer on temporary memory block. Cannot be 0; If you want to save memory across multiple bvectors allocate temporary block using allocate_tempblock and pass it to serialize. (Of course serialize does not deallocate temp_block.)</td></tr>
235
 
    <tr><td valign="top"></td><td valign="top"><em>serialization_flags</em>&nbsp;</td><td>Flags controlling serilization (bit-mask) (use OR-ed serialization flags)</td></tr>
236
 
  </table>
237
 
  </dd>
238
 
</dl>
239
 
<dl class="return"><dt><b>Returns:</b></dt><dd>Size of serialization block. </dd></dl>
240
 
<dl class="see"><dt><b>See also:</b></dt><dd>calc_stat, <a class="el" href="a00126.html#ga537dfe6318f1f1fe18d86dac312be978" title="Bit mask flags for serialization algorithm.">serialization_flags</a> </dd></dl>
241
 
 
242
 
<p>Definition at line <a class="el" href="a00096_source.html#l01028">1028</a> of file <a class="el" href="a00096_source.html">bmserial.h</a>.</p>
243
 
 
244
 
<p>References <a class="el" href="a00096_source.html#l00982">bm::BM_NO_BYTE_ORDER</a>, <a class="el" href="a00096_source.html#l00983">bm::BM_NO_GAP_LENGTH</a>, <a class="el" href="a00096_source.html#l00524">bm::serializer&lt; BV &gt;::byte_order_serialization()</a>, <a class="el" href="a00096_source.html#l00518">bm::serializer&lt; BV &gt;::gap_length_serialization()</a>, <a class="el" href="a00096_source.html#l00758">bm::serializer&lt; BV &gt;::serialize()</a>, and <a class="el" href="a00096_source.html#l00499">bm::serializer&lt; BV &gt;::set_compression_level()</a>.</p>
245
 
 
246
 
</div>
247
 
</div>
248
 
</div>
249
 
<hr size="1"/><address style="text-align: right;"><small>Generated on Fri Jan 8 20:09:20 2010 for BitMagic by&nbsp;
 
131
<a class="anchor" id="ga2d5393e05bcfc540840a4cee67fb771f"></a><!-- doxytag: member="bm::any_and" ref="ga2d5393e05bcfc540840a4cee67fb771f" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
132
<div class="memitem">
 
133
<div class="memproto">
 
134
<div class="memtemplate">
 
135
template&lt;class BV &gt; </div>
 
136
      <table class="memname">
 
137
        <tr>
 
138
          <td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::any_and </td>
 
139
          <td>(</td>
 
140
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
141
          <td class="paramname"> <em>bv1</em>, </td>
 
142
        </tr>
 
143
        <tr>
 
144
          <td class="paramkey"></td>
 
145
          <td></td>
 
146
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
147
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
148
        </tr>
 
149
        <tr>
 
150
          <td></td>
 
151
          <td>)</td>
 
152
          <td></td><td></td><td><code> [inline]</code></td>
 
153
        </tr>
 
154
      </table>
 
155
</div>
 
156
<div class="memdoc">
 
157
 
 
158
<p>Computes if there is any bit in AND operation of two bitsets. </p>
 
159
<dl><dt><b>Parameters:</b></dt><dd>
 
160
  <table border="0" cellspacing="2" cellpadding="0">
 
161
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
162
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
163
  </table>
 
164
  </dd>
 
165
</dl>
 
166
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if there is any bit </dd></dl>
 
167
 
 
168
<p>Definition at line <a class="el" href="a00090_source.html#l00959">959</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
 
169
 
 
170
<p>References <a class="el" href="a00090_source.html#l00055">bm::COUNT_AND</a>, <a class="el" href="a00090_source.html#l00807">bm::distance_operation_any()</a>, and <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>.</p>
 
171
 
 
172
</div>
 
173
</div>
 
174
<a class="anchor" id="gaeda4f0cf54aa464cec09e740100caa79"></a><!-- doxytag: member="bm::any_or" ref="gaeda4f0cf54aa464cec09e740100caa79" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
175
<div class="memitem">
 
176
<div class="memproto">
 
177
<div class="memtemplate">
 
178
template&lt;class BV &gt; </div>
 
179
      <table class="memname">
 
180
        <tr>
 
181
          <td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::any_or </td>
 
182
          <td>(</td>
 
183
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
184
          <td class="paramname"> <em>bv1</em>, </td>
 
185
        </tr>
 
186
        <tr>
 
187
          <td class="paramkey"></td>
 
188
          <td></td>
 
189
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
190
          <td class="paramname"> <em>bv2</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>Computes if there is any bit in OR operation of two bitsets. </p>
 
202
<dl><dt><b>Parameters:</b></dt><dd>
 
203
  <table border="0" cellspacing="2" cellpadding="0">
 
204
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
205
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
206
  </table>
 
207
  </dd>
 
208
</dl>
 
209
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if there is any bit </dd></dl>
 
210
 
 
211
<p>Definition at line <a class="el" href="a00090_source.html#l01061">1061</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
 
212
 
 
213
<p>References <a class="el" href="a00090_source.html#l00057">bm::COUNT_OR</a>, <a class="el" href="a00090_source.html#l00807">bm::distance_operation_any()</a>, and <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>.</p>
 
214
 
 
215
</div>
 
216
</div>
 
217
<a class="anchor" id="gabde2e210b9b1edd190e1f5a9ff22344c"></a><!-- doxytag: member="bm::any_sub" ref="gabde2e210b9b1edd190e1f5a9ff22344c" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
218
<div class="memitem">
 
219
<div class="memproto">
 
220
<div class="memtemplate">
 
221
template&lt;class BV &gt; </div>
 
222
      <table class="memname">
 
223
        <tr>
 
224
          <td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::any_sub </td>
 
225
          <td>(</td>
 
226
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
227
          <td class="paramname"> <em>bv1</em>, </td>
 
228
        </tr>
 
229
        <tr>
 
230
          <td class="paramkey"></td>
 
231
          <td></td>
 
232
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
233
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
234
        </tr>
 
235
        <tr>
 
236
          <td></td>
 
237
          <td>)</td>
 
238
          <td></td><td></td><td><code> [inline]</code></td>
 
239
        </tr>
 
240
      </table>
 
241
</div>
 
242
<div class="memdoc">
 
243
 
 
244
<p>Computes if there is any bit in SUB operation of two bitsets. </p>
 
245
<dl><dt><b>Parameters:</b></dt><dd>
 
246
  <table border="0" cellspacing="2" cellpadding="0">
 
247
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
248
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
249
  </table>
 
250
  </dd>
 
251
</dl>
 
252
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if there is any bit </dd></dl>
 
253
 
 
254
<p>Definition at line <a class="el" href="a00090_source.html#l01028">1028</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
 
255
 
 
256
<p>References <a class="el" href="a00090_source.html#l00058">bm::COUNT_SUB_AB</a>, <a class="el" href="a00090_source.html#l00807">bm::distance_operation_any()</a>, and <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>.</p>
 
257
 
 
258
</div>
 
259
</div>
 
260
<a class="anchor" id="ga2d63f41244b82d233acb53d88b326b82"></a><!-- doxytag: member="bm::any_xor" ref="ga2d63f41244b82d233acb53d88b326b82" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
261
<div class="memitem">
 
262
<div class="memproto">
 
263
<div class="memtemplate">
 
264
template&lt;class BV &gt; </div>
 
265
      <table class="memname">
 
266
        <tr>
 
267
          <td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::any_xor </td>
 
268
          <td>(</td>
 
269
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
270
          <td class="paramname"> <em>bv1</em>, </td>
 
271
        </tr>
 
272
        <tr>
 
273
          <td class="paramkey"></td>
 
274
          <td></td>
 
275
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
276
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
277
        </tr>
 
278
        <tr>
 
279
          <td></td>
 
280
          <td>)</td>
 
281
          <td></td><td></td><td><code> [inline]</code></td>
 
282
        </tr>
 
283
      </table>
 
284
</div>
 
285
<div class="memdoc">
 
286
 
 
287
<p>Computes if there is any bit in XOR operation of two bitsets. </p>
 
288
<dl><dt><b>Parameters:</b></dt><dd>
 
289
  <table border="0" cellspacing="2" cellpadding="0">
 
290
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
291
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
292
  </table>
 
293
  </dd>
 
294
</dl>
 
295
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if there is any bit </dd></dl>
 
296
 
 
297
<p>Definition at line <a class="el" href="a00090_source.html#l00993">993</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
 
298
 
 
299
<p>References <a class="el" href="a00090_source.html#l00056">bm::COUNT_XOR</a>, <a class="el" href="a00090_source.html#l00807">bm::distance_operation_any()</a>, and <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>.</p>
 
300
 
 
301
</div>
 
302
</div>
 
303
<a class="anchor" id="gae451cb4b87e8c0859b0614d2ffb99737"></a><!-- doxytag: member="bm::count_and" ref="gae451cb4b87e8c0859b0614d2ffb99737" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
304
<div class="memitem">
 
305
<div class="memproto">
 
306
<div class="memtemplate">
 
307
template&lt;class BV &gt; </div>
 
308
      <table class="memname">
 
309
        <tr>
 
310
          <td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::count_and </td>
 
311
          <td>(</td>
 
312
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
313
          <td class="paramname"> <em>bv1</em>, </td>
 
314
        </tr>
 
315
        <tr>
 
316
          <td class="paramkey"></td>
 
317
          <td></td>
 
318
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
319
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
320
        </tr>
 
321
        <tr>
 
322
          <td></td>
 
323
          <td>)</td>
 
324
          <td></td><td></td><td><code> [inline]</code></td>
 
325
        </tr>
 
326
      </table>
 
327
</div>
 
328
<div class="memdoc">
 
329
 
 
330
<p>Computes bitcount of AND operation of two bitsets. </p>
 
331
<dl><dt><b>Parameters:</b></dt><dd>
 
332
  <table border="0" cellspacing="2" cellpadding="0">
 
333
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
334
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
335
  </table>
 
336
  </dd>
 
337
</dl>
 
338
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of the result </dd></dl>
 
339
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="a00009.html#a3">sample9.cpp</a>.</dd>
 
340
</dl>
 
341
<p>Definition at line <a class="el" href="a00090_source.html#l00943">943</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
 
342
 
 
343
<p>References <a class="el" href="a00090_source.html#l00055">bm::COUNT_AND</a>, <a class="el" href="a00090_source.html#l00688">bm::distance_operation()</a>, and <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>.</p>
 
344
 
 
345
<p>Referenced by <a class="el" href="a00115_source.html#l00047">main()</a>.</p>
 
346
 
 
347
</div>
 
348
</div>
 
349
<a class="anchor" id="ga803c564668703fc3bf80067570c2c905"></a><!-- doxytag: member="bm::count_or" ref="ga803c564668703fc3bf80067570c2c905" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
350
<div class="memitem">
 
351
<div class="memproto">
 
352
<div class="memtemplate">
 
353
template&lt;class BV &gt; </div>
 
354
      <table class="memname">
 
355
        <tr>
 
356
          <td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::count_or </td>
 
357
          <td>(</td>
 
358
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
359
          <td class="paramname"> <em>bv1</em>, </td>
 
360
        </tr>
 
361
        <tr>
 
362
          <td class="paramkey"></td>
 
363
          <td></td>
 
364
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
365
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
366
        </tr>
 
367
        <tr>
 
368
          <td></td>
 
369
          <td>)</td>
 
370
          <td></td><td></td><td><code> [inline]</code></td>
 
371
        </tr>
 
372
      </table>
 
373
</div>
 
374
<div class="memdoc">
 
375
 
 
376
<p>Computes bitcount of OR operation of two bitsets. </p>
 
377
<dl><dt><b>Parameters:</b></dt><dd>
 
378
  <table border="0" cellspacing="2" cellpadding="0">
 
379
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
380
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
381
  </table>
 
382
  </dd>
 
383
</dl>
 
384
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of the result </dd></dl>
 
385
 
 
386
<p>Definition at line <a class="el" href="a00090_source.html#l01045">1045</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
 
387
 
 
388
<p>References <a class="el" href="a00090_source.html#l00057">bm::COUNT_OR</a>, <a class="el" href="a00090_source.html#l00688">bm::distance_operation()</a>, and <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>.</p>
 
389
 
 
390
</div>
 
391
</div>
 
392
<a class="anchor" id="ga902d8c1cd1f8a2538cd47d47f5d8d605"></a><!-- doxytag: member="bm::count_sub" ref="ga902d8c1cd1f8a2538cd47d47f5d8d605" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
393
<div class="memitem">
 
394
<div class="memproto">
 
395
<div class="memtemplate">
 
396
template&lt;class BV &gt; </div>
 
397
      <table class="memname">
 
398
        <tr>
 
399
          <td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::count_sub </td>
 
400
          <td>(</td>
 
401
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
402
          <td class="paramname"> <em>bv1</em>, </td>
 
403
        </tr>
 
404
        <tr>
 
405
          <td class="paramkey"></td>
 
406
          <td></td>
 
407
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
408
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
409
        </tr>
 
410
        <tr>
 
411
          <td></td>
 
412
          <td>)</td>
 
413
          <td></td><td></td><td><code> [inline]</code></td>
 
414
        </tr>
 
415
      </table>
 
416
</div>
 
417
<div class="memdoc">
 
418
 
 
419
<p>Computes bitcount of SUB operation of two bitsets. </p>
 
420
<dl><dt><b>Parameters:</b></dt><dd>
 
421
  <table border="0" cellspacing="2" cellpadding="0">
 
422
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
423
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
424
  </table>
 
425
  </dd>
 
426
</dl>
 
427
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of the result </dd></dl>
 
428
 
 
429
<p>Definition at line <a class="el" href="a00090_source.html#l01011">1011</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
 
430
 
 
431
<p>References <a class="el" href="a00090_source.html#l00058">bm::COUNT_SUB_AB</a>, <a class="el" href="a00090_source.html#l00688">bm::distance_operation()</a>, and <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>.</p>
 
432
 
 
433
</div>
 
434
</div>
 
435
<a class="anchor" id="gafc64a082dcaee07f70f7faf3e24f844e"></a><!-- doxytag: member="bm::count_xor" ref="gafc64a082dcaee07f70f7faf3e24f844e" args="(const BV &amp;bv1, const BV &amp;bv2)" -->
 
436
<div class="memitem">
 
437
<div class="memproto">
 
438
<div class="memtemplate">
 
439
template&lt;class BV &gt; </div>
 
440
      <table class="memname">
 
441
        <tr>
 
442
          <td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::count_xor </td>
 
443
          <td>(</td>
 
444
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
445
          <td class="paramname"> <em>bv1</em>, </td>
 
446
        </tr>
 
447
        <tr>
 
448
          <td class="paramkey"></td>
 
449
          <td></td>
 
450
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
451
          <td class="paramname"> <em>bv2</em></td><td>&nbsp;</td>
 
452
        </tr>
 
453
        <tr>
 
454
          <td></td>
 
455
          <td>)</td>
 
456
          <td></td><td></td><td><code> [inline]</code></td>
 
457
        </tr>
 
458
      </table>
 
459
</div>
 
460
<div class="memdoc">
 
461
 
 
462
<p>Computes bitcount of XOR operation of two bitsets. </p>
 
463
<dl><dt><b>Parameters:</b></dt><dd>
 
464
  <table border="0" cellspacing="2" cellpadding="0">
 
465
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
466
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- Argument bit-vector. </td></tr>
 
467
  </table>
 
468
  </dd>
 
469
</dl>
 
470
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of the result </dd></dl>
 
471
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="a00009.html#a2">sample9.cpp</a>.</dd>
 
472
</dl>
 
473
<p>Definition at line <a class="el" href="a00090_source.html#l00977">977</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
 
474
 
 
475
<p>References <a class="el" href="a00090_source.html#l00056">bm::COUNT_XOR</a>, <a class="el" href="a00090_source.html#l00688">bm::distance_operation()</a>, and <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>.</p>
 
476
 
 
477
<p>Referenced by <a class="el" href="a00115_source.html#l00047">main()</a>.</p>
 
478
 
 
479
</div>
 
480
</div>
 
481
<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)" -->
 
482
<div class="memitem">
 
483
<div class="memproto">
 
484
<div class="memtemplate">
 
485
template&lt;class BV &gt; </div>
 
486
      <table class="memname">
 
487
        <tr>
 
488
          <td class="memname">void bm::distance_operation </td>
 
489
          <td>(</td>
 
490
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
491
          <td class="paramname"> <em>bv1</em>, </td>
 
492
        </tr>
 
493
        <tr>
 
494
          <td class="paramkey"></td>
 
495
          <td></td>
 
496
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
497
          <td class="paramname"> <em>bv2</em>, </td>
 
498
        </tr>
 
499
        <tr>
 
500
          <td class="paramkey"></td>
 
501
          <td></td>
 
502
          <td class="paramtype">distance_metric_descriptor *&nbsp;</td>
 
503
          <td class="paramname"> <em>dmit</em>, </td>
 
504
        </tr>
 
505
        <tr>
 
506
          <td class="paramkey"></td>
 
507
          <td></td>
 
508
          <td class="paramtype">distance_metric_descriptor *&nbsp;</td>
 
509
          <td class="paramname"> <em>dmit_end</em></td><td>&nbsp;</td>
 
510
        </tr>
 
511
        <tr>
 
512
          <td></td>
 
513
          <td>)</td>
 
514
          <td></td><td></td><td><code> [inline]</code></td>
 
515
        </tr>
 
516
      </table>
 
517
</div>
 
518
<div class="memdoc">
 
519
 
 
520
<p>Distance computing template function. </p>
 
521
<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="a00061.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>
 
522
<dl><dt><b>Parameters:</b></dt><dd>
 
523
  <table border="0" cellspacing="2" cellpadding="0">
 
524
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- argument bitvector 1 (A) </td></tr>
 
525
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- argument bitvector 2 (B) </td></tr>
 
526
    <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>
 
527
    <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>
 
528
  </table>
 
529
  </dd>
 
530
</dl>
 
531
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="a00009.html#a10">sample9.cpp</a>.</dd>
 
532
</dl>
 
533
<p>Definition at line <a class="el" href="a00090_source.html#l00688">688</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
 
534
 
 
535
<p>References <a class="el" href="a00093_source.html#l00097">BM_IS_GAP</a>, <a class="el" href="a00093_source.html#l00139">BM_SET_MMX_GUARD</a>, <a class="el" href="a00090_source.html#l00114">bm::combine_count_operation_with_block()</a>, <a class="el" href="a00090_source.html#l00642">bm::distance_stage()</a>, and <a class="el" href="a00092_source.html#l00080">bm::set_array_size</a>.</p>
 
536
 
 
537
<p>Referenced by <a class="el" href="a00090_source.html#l00943">bm::count_and()</a>, <a class="el" href="a00090_source.html#l01045">bm::count_or()</a>, <a class="el" href="a00090_source.html#l01011">bm::count_sub()</a>, <a class="el" href="a00090_source.html#l00977">bm::count_xor()</a>, and <a class="el" href="a00115_source.html#l00047">main()</a>.</p>
 
538
 
 
539
</div>
 
540
</div>
 
541
<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)" -->
 
542
<div class="memitem">
 
543
<div class="memproto">
 
544
<div class="memtemplate">
 
545
template&lt;class BV &gt; </div>
 
546
      <table class="memname">
 
547
        <tr>
 
548
          <td class="memname">void bm::distance_operation_any </td>
 
549
          <td>(</td>
 
550
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
551
          <td class="paramname"> <em>bv1</em>, </td>
 
552
        </tr>
 
553
        <tr>
 
554
          <td class="paramkey"></td>
 
555
          <td></td>
 
556
          <td class="paramtype">const BV &amp;&nbsp;</td>
 
557
          <td class="paramname"> <em>bv2</em>, </td>
 
558
        </tr>
 
559
        <tr>
 
560
          <td class="paramkey"></td>
 
561
          <td></td>
 
562
          <td class="paramtype">distance_metric_descriptor *&nbsp;</td>
 
563
          <td class="paramname"> <em>dmit</em>, </td>
 
564
        </tr>
 
565
        <tr>
 
566
          <td class="paramkey"></td>
 
567
          <td></td>
 
568
          <td class="paramtype">distance_metric_descriptor *&nbsp;</td>
 
569
          <td class="paramname"> <em>dmit_end</em></td><td>&nbsp;</td>
 
570
        </tr>
 
571
        <tr>
 
572
          <td></td>
 
573
          <td>)</td>
 
574
          <td></td><td></td><td><code> [inline]</code></td>
 
575
        </tr>
 
576
      </table>
 
577
</div>
 
578
<div class="memdoc">
 
579
 
 
580
<p>Distance screening template function. </p>
 
581
<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="a00061.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>
 
582
<dl><dt><b>Parameters:</b></dt><dd>
 
583
  <table border="0" cellspacing="2" cellpadding="0">
 
584
    <tr><td valign="top"></td><td valign="top"><em>bv1</em>&nbsp;</td><td>- argument bitvector 1 (A) </td></tr>
 
585
    <tr><td valign="top"></td><td valign="top"><em>bv2</em>&nbsp;</td><td>- argument bitvector 2 (B) </td></tr>
 
586
    <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>
 
587
    <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>
 
588
  </table>
 
589
  </dd>
 
590
</dl>
 
591
 
 
592
<p>Definition at line <a class="el" href="a00090_source.html#l00807">807</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
 
593
 
 
594
<p>References <a class="el" href="a00093_source.html#l00097">BM_IS_GAP</a>, <a class="el" href="a00093_source.html#l00139">BM_SET_MMX_GUARD</a>, <a class="el" href="a00090_source.html#l00343">bm::combine_any_operation_with_block()</a>, <a class="el" href="a00090_source.html#l00642">bm::distance_stage()</a>, <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>, and <a class="el" href="a00092_source.html#l00080">bm::set_array_size</a>.</p>
 
595
 
 
596
<p>Referenced by <a class="el" href="a00090_source.html#l00959">bm::any_and()</a>, <a class="el" href="a00090_source.html#l01061">bm::any_or()</a>, <a class="el" href="a00090_source.html#l01028">bm::any_sub()</a>, and <a class="el" href="a00090_source.html#l00993">bm::any_xor()</a>.</p>
 
597
 
 
598
</div>
 
599
</div>
 
600
<a class="anchor" id="ga158946ea41ca66c3e1bca62c92684788"></a><!-- doxytag: member="bm::operation2metric" ref="ga158946ea41ca66c3e1bca62c92684788" args="(set_operation op)" -->
 
601
<div class="memitem">
 
602
<div class="memproto">
 
603
      <table class="memname">
 
604
        <tr>
 
605
          <td class="memname">distance_metric bm::operation2metric </td>
 
606
          <td>(</td>
 
607
          <td class="paramtype">set_operation&nbsp;</td>
 
608
          <td class="paramname"> <em>op</em></td>
 
609
          <td>&nbsp;)&nbsp;</td>
 
610
          <td><code> [inline]</code></td>
 
611
        </tr>
 
612
      </table>
 
613
</div>
 
614
<div class="memdoc">
 
615
 
 
616
<p>Convert set operation into compatible distance metric. </p>
 
617
 
 
618
<p>Definition at line <a class="el" href="a00090_source.html#l00069">69</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
 
619
 
 
620
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00094_source.html#l00266">bm::is_const_set_operation()</a>, <a class="el" href="a00094_source.html#l00252">bm::set_COUNT</a>, and <a class="el" href="a00094_source.html#l00259">bm::set_COUNT_B</a>.</p>
 
621
 
 
622
<p>Referenced by <a class="el" href="a00097_source.html#l03298">bm::iterator_deserializer&lt; BV, SerialIterator &gt;::deserialize()</a>.</p>
 
623
 
 
624
</div>
 
625
</div>
 
626
</div>
 
627
<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Mar 23 20:48:08 2010 for BitMagic by&nbsp;
250
628
<a href="http://www.doxygen.org/index.html">
251
629
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
252
630
</body>