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

« back to all changes in this revision

Viewing changes to doc/html/a00119.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: The Main bvector&lt;&gt; Group</title>
 
5
<title>BitMagic: GAP functions</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>The Main bvector&lt;&gt; Group<br/>
 
24
<h1>GAP functions<br/>
25
25
<small>
26
 
[<a class="el" href="a00118.html">BitMagic C++ Library</a>]</small>
 
26
[<a class="el" href="a00117.html">BitMagic C++ Library</a>]</small>
27
27
</h1>
28
 
<p>This is the main group.  
29
 
<a href="#_details">More...</a></p>
30
 
 
31
28
<p><div class="dynheader">
32
 
Collaboration diagram for The Main bvector&lt;&gt; Group:</div>
 
29
Collaboration diagram for GAP functions:</div>
33
30
<div class="dynsection">
34
31
<center><table><tr><td><img src="a00119.png" border="0" alt="" usemap="#a00119_map"/>
35
32
<map name="a00119_map" id="a00119">
36
 
<area shape="rect" href="a00118.html" title="For more information please visit: http://bmagic.sourceforge.net." alt="" coords="5,5,149,35"/></map></td></tr></table></center>
 
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>
37
34
</div>
38
35
</p>
39
36
<table border="0" cellpadding="0" cellspacing="0">
40
37
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
41
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html">bm::bvector&lt; Alloc, MS &gt;</a></td></tr>
42
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">bitvector with runtime compression of bits.  <a href="a00044.html#_details">More...</a><br/></td></tr>
43
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00081.html">bm::bvector&lt; Alloc, MS &gt;::reference</a></td></tr>
44
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class <a class="el" href="a00081.html" title="Class reference implements an object for bit assignment.">reference</a> implements an object for bit assignment.  <a href="a00081.html#_details">More...</a><br/></td></tr>
45
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00072.html">bm::bvector&lt; Alloc, MS &gt;::iterator_base</a></td></tr>
46
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Base class for all iterators.  <a href="a00072.html#_details">More...</a><br/></td></tr>
47
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00071.html">bm::bvector&lt; Alloc, MS &gt;::insert_iterator</a></td></tr>
48
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output iterator iterator designed to set "ON" bits based on input sequence of integers (bit indeces).  <a href="a00071.html#_details">More...</a><br/></td></tr>
49
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00063.html">bm::bvector&lt; Alloc, MS &gt;::enumerator</a></td></tr>
50
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant input iterator designed to enumerate "ON" bits.  <a href="a00063.html#_details">More...</a><br/></td></tr>
51
 
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html">bm::bvector&lt; Alloc, MS &gt;::counted_enumerator</a></td></tr>
52
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant input iterator designed to enumerate "ON" bits <a class="el" href="a00049.html" title="Constant input iterator designed to enumerate &quot;ON&quot; bits counted_enumerator...">counted_enumerator</a> keeps bitcount, ie number of ON bits starting from the position 0 in the bit string up to the currently enumerated bit.  <a href="a00049.html#_details">More...</a><br/></td></tr>
53
 
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html">bm::bv_statistics</a></td></tr>
54
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Structure with statistical information about bitset's memory allocation details.  <a href="a00043.html#_details">More...</a><br/></td></tr>
55
 
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
56
 
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gad0b87b3b7292383a864d27feaf1c9eff">bm::strategy</a> { <a class="el" href="a00119.html#ggad0b87b3b7292383a864d27feaf1c9effa40920ae0ef7b4411d60463d8f576b5ba">bm::BM_BIT</a> =  0, 
57
 
<a class="el" href="a00119.html#ggad0b87b3b7292383a864d27feaf1c9effa7fe09d1d7c62a813db922c396c0cbc9c">bm::BM_GAP</a> =  1
58
 
 }</td></tr>
59
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Block allocation strategies. </p>
60
 
 <a href="a00119.html#gad0b87b3b7292383a864d27feaf1c9eff">More...</a><br/></td></tr>
 
38
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00066.html">bm::gap_len_table&lt; T &gt;</a></td></tr>
 
39
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default GAP lengths table.  <a href="a00066.html#_details">More...</a><br/></td></tr>
 
40
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00067.html">bm::gap_len_table_min&lt; T &gt;</a></td></tr>
 
41
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Alternative GAP lengths table. Good for for memory saver mode and very sparse bitsets.  <a href="a00067.html#_details">More...</a><br/></td></tr>
 
42
<tr><td colspan="2"><h2>Functions</h2></td></tr>
 
43
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
44
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga866352ef5986a7d2b709795d127b666b">bm::gap_test</a> (const T *buf, unsigned pos)</td></tr>
 
45
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests if bit = pos is true.  <a href="#ga866352ef5986a7d2b709795d127b666b"></a><br/></td></tr>
 
46
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
47
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga570a6f573ffb9ac9e41a688d2bdc6004">bm::gap_bit_count</a> (const T *buf, unsigned dsize=0)</td></tr>
 
48
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates number of bits ON in GAP buffer.  <a href="#ga570a6f573ffb9ac9e41a688d2bdc6004"></a><br/></td></tr>
 
49
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
50
<tr><td class="memTemplItemLeft" align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga406952734f1b05962941b32e37b3eb96">bm::gapcmp</a> (const T *buf1, const T *buf2)</td></tr>
 
51
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lexicographical comparison of GAP buffers.  <a href="#ga406952734f1b05962941b32e37b3eb96"></a><br/></td></tr>
 
52
<tr><td class="memTemplParams" colspan="2">template&lt;typename T , class F &gt; </td></tr>
 
53
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga5e3123c3c9d3587f470abdbe6c8c3ad3">bm::gap_buff_any_op</a> (const T *BMRESTRICT vect1, unsigned vect1_mask, const T *BMRESTRICT vect2, unsigned vect2_mask, F f)</td></tr>
 
54
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Abstract distance test operation for GAP buffers. Receives functor F as a template argument.  <a href="#ga5e3123c3c9d3587f470abdbe6c8c3ad3"></a><br/></td></tr>
 
55
<tr><td class="memTemplParams" colspan="2">template&lt;typename T , class F &gt; </td></tr>
 
56
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga9a5ff7782f3de0d1c699eb72d432f255">bm::gap_buff_count_op</a> (const T *vect1, const T *vect2, F f)</td></tr>
 
57
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Abstract distance(similarity) operation for GAP buffers. Receives functor F as a template argument.  <a href="#ga9a5ff7782f3de0d1c699eb72d432f255"></a><br/></td></tr>
 
58
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
59
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga69186bd13bda27e04b3e33683ff884c2">bm::gap_set_value</a> (unsigned val, T *BMRESTRICT buf, unsigned pos, unsigned *BMRESTRICT is_set)</td></tr>
 
60
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or clears bit in the GAP buffer.  <a href="#ga69186bd13bda27e04b3e33683ff884c2"></a><br/></td></tr>
 
61
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
62
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gadae4001e2834125b9c08b154a8a874a7">bm::gap_add_value</a> (T *buf, T pos)</td></tr>
 
63
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add new value to the end of GAP buffer.  <a href="#gadae4001e2834125b9c08b154a8a874a7"></a><br/></td></tr>
 
64
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
65
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga550394048c163d41a135fb9068f2251b">bm::gap_set_array</a> (T *buf, const T *arr, unsigned len)</td></tr>
 
66
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert array to GAP buffer.  <a href="#ga550394048c163d41a135fb9068f2251b"></a><br/></td></tr>
 
67
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
68
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga68e53a96e93a31e8a323d10c7a2f21f5">bm::bit_array_compute_gaps</a> (const T *arr, unsigned len)</td></tr>
 
69
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute number of GAPs in bit-array.  <a href="#ga68e53a96e93a31e8a323d10c7a2f21f5"></a><br/></td></tr>
 
70
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
71
<tr><td class="memTemplItemLeft" align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gaa7df7193094353ea24b8519debf745be">bm::gap_find_in_block</a> (const T *buf, unsigned nbit, <a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> *prev)</td></tr>
 
72
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Searches for the next 1 bit in the GAP block.  <a href="#gaa7df7193094353ea24b8519debf745be"></a><br/></td></tr>
 
73
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
74
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gabcedad4aea1a503c30f10e6d09b523f2">bm::gap_sub_to_bitset</a> (unsigned *BMRESTRICT dest, const T *BMRESTRICT buf)</td></tr>
 
75
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">SUB (AND NOT) GAP block to bitblock.  <a href="#gabcedad4aea1a503c30f10e6d09b523f2"></a><br/></td></tr>
 
76
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
77
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga63c33428c2f5eac9f69d663203cd2172">bm::gap_xor_to_bitset</a> (unsigned *BMRESTRICT dest, const T *BMRESTRICT buf)</td></tr>
 
78
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">XOR GAP block to bitblock.  <a href="#ga63c33428c2f5eac9f69d663203cd2172"></a><br/></td></tr>
 
79
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
80
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga78510a39b6e8c6b8904ecbffb6ab215b">bm::gap_add_to_bitset_l</a> (unsigned *dest, const T *buf, unsigned buf_len)</td></tr>
 
81
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds(OR) GAP block to bitblock.  <a href="#ga78510a39b6e8c6b8904ecbffb6ab215b"></a><br/></td></tr>
 
82
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
83
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga12615cd62f2e5367e1bc688d00a2188f">bm::gap_add_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
 
84
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds(OR) GAP block to bitblock.  <a href="#ga12615cd62f2e5367e1bc688d00a2188f"></a><br/></td></tr>
 
85
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
86
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gafe6f72a009618290eeab3cddee869543">bm::gap_and_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
 
87
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ANDs GAP block to bitblock.  <a href="#gafe6f72a009618290eeab3cddee869543"></a><br/></td></tr>
 
88
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
89
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga4862f4dcdcb7c0575e2e2db9e5f2a849">bm::gap_convert_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
 
90
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP block to bitblock conversion.  <a href="#ga4862f4dcdcb7c0575e2e2db9e5f2a849"></a><br/></td></tr>
 
91
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
92
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga1dd58e3576239c49010b62a3add42417">bm::gap_convert_to_bitset_l</a> (unsigned *dest, const T *buf, unsigned buf_len)</td></tr>
 
93
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP block to bitblock conversion.  <a href="#ga1dd58e3576239c49010b62a3add42417"></a><br/></td></tr>
 
94
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
95
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga9bb80c42ee0ecf8f2af8250d7f5d327b">bm::gap_convert_to_bitset</a> (unsigned *dest, const T *buf, unsigned dest_len)</td></tr>
 
96
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP block to bitblock conversion.  <a href="#ga9bb80c42ee0ecf8f2af8250d7f5d327b"></a><br/></td></tr>
 
97
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
98
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga3f01bb7c1ae7983aa8c4ba82e1e3f54c">bm::gap_convert_to_bitset_smart</a> (unsigned *dest, const T *buf, id_t set_max)</td></tr>
 
99
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Smart GAP block to bitblock conversion.  <a href="#ga3f01bb7c1ae7983aa8c4ba82e1e3f54c"></a><br/></td></tr>
 
100
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
101
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga14d29338ffd1387758810b3f9e3a72c6">bm::gap_control_sum</a> (const T *buf)</td></tr>
 
102
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates sum of all words in GAP block. (For debugging purposes).  <a href="#ga14d29338ffd1387758810b3f9e3a72c6"></a><br/></td></tr>
 
103
<tr><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
 
104
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gaef53b2877ff369badd7bb25b26bb9029">bm::gap_set_all</a> (T *buf, unsigned set_max, unsigned value)</td></tr>
 
105
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets all bits to 0 or 1 (GAP).  <a href="#gaef53b2877ff369badd7bb25b26bb9029"></a><br/></td></tr>
 
106
<tr><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
 
107
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga510ab7feb60c19f7d7811cc304fdf649">bm::gap_init_range_block</a> (T *buf, T from, T to, T value, unsigned set_max)</td></tr>
 
108
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Init gap block so it has block in it (can be whole block).  <a href="#ga510ab7feb60c19f7d7811cc304fdf649"></a><br/></td></tr>
 
109
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
110
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga3f22bfde5dfe06d6d77dc2598b8c0845">bm::gap_invert</a> (T *buf)</td></tr>
 
111
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inverts all bits in the GAP buffer.  <a href="#ga3f22bfde5dfe06d6d77dc2598b8c0845"></a><br/></td></tr>
 
112
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
113
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga690ff7c8b16e1821a77663b7194267e7">bm::gap_is_all_zero</a> (const T *buf, unsigned set_max)</td></tr>
 
114
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Temporary inverts all bits in the GAP buffer.  <a href="#ga690ff7c8b16e1821a77663b7194267e7"></a><br/></td></tr>
 
115
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
116
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga1427d43e91872f981c6311fa76ab5633">bm::gap_is_all_one</a> (const T *buf, unsigned set_max)</td></tr>
 
117
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks if GAP block is all-one.  <a href="#ga1427d43e91872f981c6311fa76ab5633"></a><br/></td></tr>
 
118
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
119
<tr><td class="memTemplItemLeft" align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga02541ec6c2930c292eda4313b78e874c">bm::gap_length</a> (const T *buf)</td></tr>
 
120
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returs GAP block length.  <a href="#ga02541ec6c2930c292eda4313b78e874c"></a><br/></td></tr>
 
121
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
122
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga0419ed06e2f0b7891e7d721546f5fb45">bm::gap_capacity</a> (const T *buf, const T *glevel_len)</td></tr>
 
123
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returs GAP block capacity.  <a href="#ga0419ed06e2f0b7891e7d721546f5fb45"></a><br/></td></tr>
 
124
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
125
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga94a5371b5dc6a1560d95d7c2dde88815">bm::gap_limit</a> (const T *buf, const T *glevel_len)</td></tr>
 
126
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returs GAP block capacity limit.  <a href="#ga94a5371b5dc6a1560d95d7c2dde88815"></a><br/></td></tr>
 
127
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
128
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga1defe73aa4227a0e7204363ac6bb1ac1">bm::gap_level</a> (const T *buf)</td></tr>
 
129
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returs GAP blocks capacity level.  <a href="#ga1defe73aa4227a0e7204363ac6bb1ac1"></a><br/></td></tr>
 
130
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
131
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga501aa9bf029e7f9ea9518e7003fe5549">bm::set_gap_level</a> (T *buf, unsigned level)</td></tr>
 
132
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets GAP block capacity level.  <a href="#ga501aa9bf029e7f9ea9518e7003fe5549"></a><br/></td></tr>
 
133
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
134
<tr><td class="memTemplItemLeft" align="right" valign="top">int&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga3bfaebeeb4b2d479c5a9ac9d57607165">bm::gap_calc_level</a> (int len, const T *glevel_len)</td></tr>
 
135
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates GAP block capacity level.  <a href="#ga3bfaebeeb4b2d479c5a9ac9d57607165"></a><br/></td></tr>
 
136
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
137
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gafd76869eb44fac688da5e26e0e74f41f">bm::gap_free_elements</a> (const T *buf, const T *glevel_len)</td></tr>
 
138
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns number of free elements in GAP block array. Difference between GAP block capacity on this level and actual GAP length.  <a href="#gafd76869eb44fac688da5e26e0e74f41f"></a><br/></td></tr>
 
139
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
140
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga80d09bb6ab244e68ab0c1fdccc17b95b">bm::bit_convert_to_gap</a> (T *BMRESTRICT dest, const unsigned *BMRESTRICT src, <a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bits, unsigned dest_len)</td></tr>
 
141
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts bit block to GAP.  <a href="#ga80d09bb6ab244e68ab0c1fdccc17b95b"></a><br/></td></tr>
 
142
<tr><td class="memTemplParams" colspan="2">template&lt;class T , class F &gt; </td></tr>
 
143
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga11bc26da8533752bb23756632fd30a00">bm::for_each_gap_dbit</a> (const T *buf, F &amp;func)</td></tr>
 
144
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Iterate gap block as delta-bits with a functor.  <a href="#ga11bc26da8533752bb23756632fd30a00"></a><br/></td></tr>
 
145
<tr><td class="memTemplParams" colspan="2">template&lt;typename D , typename T &gt; </td></tr>
 
146
<tr><td class="memTemplItemLeft" align="right" valign="top">D&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga5cd7e0cfee401da1b8f702151c083b27">bm::gap_convert_to_arr</a> (D *BMRESTRICT dest, const T *BMRESTRICT buf, unsigned dest_len, bool invert=false)</td></tr>
 
147
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert gap block into array of ints corresponding to 1 bits.  <a href="#ga5cd7e0cfee401da1b8f702151c083b27"></a><br/></td></tr>
 
148
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE gap_word_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gac18d7da0492983802511999a4ad0764a">bm::gap_operation_and</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &amp;dsize)</td></tr>
 
149
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP AND operation.  <a href="#gac18d7da0492983802511999a4ad0764a"></a><br/></td></tr>
 
150
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#ga58e0312d3ab0551e883176b170c0a3e8">bm::gap_operation_any_and</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)</td></tr>
 
151
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP AND operation test.  <a href="#ga58e0312d3ab0551e883176b170c0a3e8"></a><br/></td></tr>
 
152
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gafd92d013b0c377604831f401ef6917b8">bm::gap_count_and</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)</td></tr>
 
153
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP bitcount AND operation test.  <a href="#gafd92d013b0c377604831f401ef6917b8"></a><br/></td></tr>
 
154
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE gap_word_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#ga72d2d3933b4410413eeb02e9ee0a910d">bm::gap_operation_xor</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &amp;dsize)</td></tr>
 
155
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP XOR operation.  <a href="#ga72d2d3933b4410413eeb02e9ee0a910d"></a><br/></td></tr>
 
156
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gab8800dff60eb05404a83159035e8e72f">bm::gap_operation_any_xor</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)</td></tr>
 
157
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP XOR operation test.  <a href="#gab8800dff60eb05404a83159035e8e72f"></a><br/></td></tr>
 
158
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gae38d6a3296f0562be512f47b4edfb1ad">bm::gap_count_xor</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)</td></tr>
 
159
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP bitcount XOR operation test.  <a href="#gae38d6a3296f0562be512f47b4edfb1ad"></a><br/></td></tr>
 
160
<tr><td class="memItemLeft" align="right" valign="top">gap_word_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gacda280af8910ae5fde37731a3a7a1226">bm::gap_operation_or</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &amp;dsize)</td></tr>
 
161
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP OR operation.  <a href="#gacda280af8910ae5fde37731a3a7a1226"></a><br/></td></tr>
 
162
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#ga125fc8dc68245a11a171e7793c6588a2">bm::gap_count_or</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)</td></tr>
 
163
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP bitcount OR operation test.  <a href="#ga125fc8dc68245a11a171e7793c6588a2"></a><br/></td></tr>
 
164
<tr><td class="memItemLeft" align="right" valign="top">gap_word_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gabe4c83e5e162c38e297116dd1cd05ac4">bm::gap_operation_sub</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &amp;dsize)</td></tr>
 
165
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP SUB (AND NOT) operation.  <a href="#gabe4c83e5e162c38e297116dd1cd05ac4"></a><br/></td></tr>
 
166
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#ga1c9b33d00f74206ad655dc2cef52428b">bm::gap_operation_any_sub</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)</td></tr>
 
167
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP SUB operation test.  <a href="#ga1c9b33d00f74206ad655dc2cef52428b"></a><br/></td></tr>
 
168
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gacacf55c60da82a1c384f3ac3a51229d4">bm::gap_count_sub</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)</td></tr>
 
169
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">GAP bitcount SUB (AND NOT) operation test.  <a href="#gacacf55c60da82a1c384f3ac3a51229d4"></a><br/></td></tr>
 
170
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
171
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gacc578010f3700940829c600c812d23b1">bm::gap_overhead</a> (const T *length, const T *length_end, const T *glevel_len)</td></tr>
 
172
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert bit block into an array of ints corresponding to 1 bits.  <a href="#gacc578010f3700940829c600c812d23b1"></a><br/></td></tr>
 
173
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 
174
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga2daff3a0ceda6fef87d3b0e892da5813">bm::improve_gap_levels</a> (const T *length, const T *length_end, T *glevel_len)</td></tr>
 
175
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Finds optimal gap blocks lengths.  <a href="#ga2daff3a0ceda6fef87d3b0e892da5813"></a><br/></td></tr>
61
176
</table>
62
177
<hr/><a name="_details"></a><h2>Detailed Description</h2>
63
 
<p>This is the main group. </p>
64
 
<p>It includes <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a> template: front end of the <a class="el" href="a00116.html">bm</a> library. </p>
65
 
<hr/><h2>Enumeration Type Documentation</h2>
66
 
<a class="anchor" id="gad0b87b3b7292383a864d27feaf1c9eff"></a><!-- doxytag: member="bm::strategy" ref="gad0b87b3b7292383a864d27feaf1c9eff" args="" -->
67
 
<div class="memitem">
68
 
<div class="memproto">
69
 
      <table class="memname">
70
 
        <tr>
71
 
          <td class="memname">enum <a class="el" href="a00119.html#gad0b87b3b7292383a864d27feaf1c9eff">bm::strategy</a></td>
72
 
        </tr>
73
 
      </table>
74
 
</div>
75
 
<div class="memdoc">
76
 
 
77
 
<p>Block allocation strategies. </p>
78
 
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
79
 
<tr><td valign="top"><em><a class="anchor" id="ggad0b87b3b7292383a864d27feaf1c9effa40920ae0ef7b4411d60463d8f576b5ba"></a><!-- doxytag: member="BM_BIT" ref="ggad0b87b3b7292383a864d27feaf1c9effa40920ae0ef7b4411d60463d8f576b5ba" args="" -->BM_BIT</em>&nbsp;</td><td>
80
 
<p>No GAP compression strategy. All new blocks are bit blocks. </p>
81
 
</td></tr>
82
 
<tr><td valign="top"><em><a class="anchor" id="ggad0b87b3b7292383a864d27feaf1c9effa7fe09d1d7c62a813db922c396c0cbc9c"></a><!-- doxytag: member="BM_GAP" ref="ggad0b87b3b7292383a864d27feaf1c9effa7fe09d1d7c62a813db922c396c0cbc9c" args="" -->BM_GAP</em>&nbsp;</td><td>
83
 
<p>GAP compression is ON. </p>
84
 
</td></tr>
85
 
</table>
86
 
</dd>
87
 
</dl>
88
 
 
89
 
<p>Definition at line <a class="el" href="a00092_source.html#l00114">114</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
90
 
 
91
 
</div>
92
 
</div>
93
 
</div>
94
 
<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Mar 23 20:48:07 2010 for BitMagic by&nbsp;
 
178
<p>GAP functions implement different opereations on GAP compressed blocks and serve as a minimal building blocks. </p>
 
179
<hr/><h2>Function Documentation</h2>
 
180
<a class="anchor" id="ga68e53a96e93a31e8a323d10c7a2f21f5"></a><!-- doxytag: member="bm::bit_array_compute_gaps" ref="ga68e53a96e93a31e8a323d10c7a2f21f5" args="(const T *arr, unsigned len)" -->
 
181
<div class="memitem">
 
182
<div class="memproto">
 
183
<div class="memtemplate">
 
184
template&lt;typename T &gt; </div>
 
185
      <table class="memname">
 
186
        <tr>
 
187
          <td class="memname">unsigned bm::bit_array_compute_gaps </td>
 
188
          <td>(</td>
 
189
          <td class="paramtype">const T *&nbsp;</td>
 
190
          <td class="paramname"> <em>arr</em>, </td>
 
191
        </tr>
 
192
        <tr>
 
193
          <td class="paramkey"></td>
 
194
          <td></td>
 
195
          <td class="paramtype">unsigned&nbsp;</td>
 
196
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
 
197
        </tr>
 
198
        <tr>
 
199
          <td></td>
 
200
          <td>)</td>
 
201
          <td></td><td></td><td><code> [inline]</code></td>
 
202
        </tr>
 
203
      </table>
 
204
</div>
 
205
<div class="memdoc">
 
206
 
 
207
<p>Compute number of GAPs in bit-array. </p>
 
208
<dl><dt><b>Parameters:</b></dt><dd>
 
209
  <table border="0" cellspacing="2" cellpadding="0">
 
210
    <tr><td valign="top"></td><td valign="top"><em>arr</em>&nbsp;</td><td>- array of BITs </td></tr>
 
211
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>- array length </td></tr>
 
212
  </table>
 
213
  </dd>
 
214
</dl>
 
215
 
 
216
<p>Definition at line <a class="el" href="a00093_source.html#l01406">1406</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
217
 
 
218
</div>
 
219
</div>
 
220
<a class="anchor" id="ga80d09bb6ab244e68ab0c1fdccc17b95b"></a><!-- doxytag: member="bm::bit_convert_to_gap" ref="ga80d09bb6ab244e68ab0c1fdccc17b95b" args="(T *BMRESTRICT dest, const unsigned *BMRESTRICT src, bm::id_t bits, unsigned dest_len)" -->
 
221
<div class="memitem">
 
222
<div class="memproto">
 
223
<div class="memtemplate">
 
224
template&lt;typename T &gt; </div>
 
225
      <table class="memname">
 
226
        <tr>
 
227
          <td class="memname">unsigned bm::bit_convert_to_gap </td>
 
228
          <td>(</td>
 
229
          <td class="paramtype">T *BMRESTRICT&nbsp;</td>
 
230
          <td class="paramname"> <em>dest</em>, </td>
 
231
        </tr>
 
232
        <tr>
 
233
          <td class="paramkey"></td>
 
234
          <td></td>
 
235
          <td class="paramtype">const unsigned *BMRESTRICT&nbsp;</td>
 
236
          <td class="paramname"> <em>src</em>, </td>
 
237
        </tr>
 
238
        <tr>
 
239
          <td class="paramkey"></td>
 
240
          <td></td>
 
241
          <td class="paramtype"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>&nbsp;</td>
 
242
          <td class="paramname"> <em>bits</em>, </td>
 
243
        </tr>
 
244
        <tr>
 
245
          <td class="paramkey"></td>
 
246
          <td></td>
 
247
          <td class="paramtype">unsigned&nbsp;</td>
 
248
          <td class="paramname"> <em>dest_len</em></td><td>&nbsp;</td>
 
249
        </tr>
 
250
        <tr>
 
251
          <td></td>
 
252
          <td>)</td>
 
253
          <td></td><td></td><td><code> [inline]</code></td>
 
254
        </tr>
 
255
      </table>
 
256
</div>
 
257
<div class="memdoc">
 
258
 
 
259
<p>Converts bit block to GAP. </p>
 
260
<dl><dt><b>Parameters:</b></dt><dd>
 
261
  <table border="0" cellspacing="2" cellpadding="0">
 
262
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>- Destinatio GAP buffer. </td></tr>
 
263
    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>- Source bitblock buffer. </td></tr>
 
264
    <tr><td valign="top"></td><td valign="top"><em>bits</em>&nbsp;</td><td>- Number of bits to convert. </td></tr>
 
265
    <tr><td valign="top"></td><td valign="top"><em>dest_len</em>&nbsp;</td><td>- length of the dest. buffer. </td></tr>
 
266
  </table>
 
267
  </dd>
 
268
</dl>
 
269
<dl class="return"><dt><b>Returns:</b></dt><dd>New length of GAP block or 0 if conversion failed (insufficicent space). </dd></dl>
 
270
 
 
271
<p>Definition at line <a class="el" href="a00093_source.html#l02522">2522</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
272
 
 
273
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>.</p>
 
274
 
 
275
<p>Referenced by <a class="el" href="a00096_source.html#l00814">bm::serializer&lt; BV &gt;::serialize()</a>.</p>
 
276
 
 
277
</div>
 
278
</div>
 
279
<a class="anchor" id="ga11bc26da8533752bb23756632fd30a00"></a><!-- doxytag: member="bm::for_each_gap_dbit" ref="ga11bc26da8533752bb23756632fd30a00" args="(const T *buf, F &amp;func)" -->
 
280
<div class="memitem">
 
281
<div class="memproto">
 
282
<div class="memtemplate">
 
283
template&lt;class T , class F &gt; </div>
 
284
      <table class="memname">
 
285
        <tr>
 
286
          <td class="memname">void bm::for_each_gap_dbit </td>
 
287
          <td>(</td>
 
288
          <td class="paramtype">const T *&nbsp;</td>
 
289
          <td class="paramname"> <em>buf</em>, </td>
 
290
        </tr>
 
291
        <tr>
 
292
          <td class="paramkey"></td>
 
293
          <td></td>
 
294
          <td class="paramtype">F &amp;&nbsp;</td>
 
295
          <td class="paramname"> <em>func</em></td><td>&nbsp;</td>
 
296
        </tr>
 
297
        <tr>
 
298
          <td></td>
 
299
          <td>)</td>
 
300
          <td></td><td></td><td><code> [inline]</code></td>
 
301
        </tr>
 
302
      </table>
 
303
</div>
 
304
<div class="memdoc">
 
305
 
 
306
<p>Iterate gap block as delta-bits with a functor. </p>
 
307
 
 
308
<p>Definition at line <a class="el" href="a00093_source.html#l02612">2612</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
309
 
 
310
</div>
 
311
</div>
 
312
<a class="anchor" id="ga12615cd62f2e5367e1bc688d00a2188f"></a><!-- doxytag: member="bm::gap_add_to_bitset" ref="ga12615cd62f2e5367e1bc688d00a2188f" args="(unsigned *dest, const T *buf)" -->
 
313
<div class="memitem">
 
314
<div class="memproto">
 
315
<div class="memtemplate">
 
316
template&lt;typename T &gt; </div>
 
317
      <table class="memname">
 
318
        <tr>
 
319
          <td class="memname">void bm::gap_add_to_bitset </td>
 
320
          <td>(</td>
 
321
          <td class="paramtype">unsigned *&nbsp;</td>
 
322
          <td class="paramname"> <em>dest</em>, </td>
 
323
        </tr>
 
324
        <tr>
 
325
          <td class="paramkey"></td>
 
326
          <td></td>
 
327
          <td class="paramtype">const T *&nbsp;</td>
 
328
          <td class="paramname"> <em>buf</em></td><td>&nbsp;</td>
 
329
        </tr>
 
330
        <tr>
 
331
          <td></td>
 
332
          <td>)</td>
 
333
          <td></td><td></td><td><code> [inline]</code></td>
 
334
        </tr>
 
335
      </table>
 
336
</div>
 
337
<div class="memdoc">
 
338
 
 
339
<p>Adds(OR) GAP block to bitblock. </p>
 
340
<dl><dt><b>Parameters:</b></dt><dd>
 
341
  <table border="0" cellspacing="2" cellpadding="0">
 
342
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>- bitblock buffer pointer. </td></tr>
 
343
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
344
  </table>
 
345
  </dd>
 
346
</dl>
 
347
 
 
348
<p>Definition at line <a class="el" href="a00093_source.html#l01763">1763</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
349
 
 
350
<p>References <a class="el" href="a00093_source.html#l01733">bm::gap_add_to_bitset_l()</a>.</p>
 
351
 
 
352
<p>Referenced by <a class="el" href="a00096_source.html#l01316">bm::deserializer&lt; BV, DEC &gt;::deserialize_gap()</a>, and <a class="el" href="a00093_source.html#l02144">bm::gap_convert_to_bitset()</a>.</p>
 
353
 
 
354
</div>
 
355
</div>
 
356
<a class="anchor" id="ga78510a39b6e8c6b8904ecbffb6ab215b"></a><!-- doxytag: member="bm::gap_add_to_bitset_l" ref="ga78510a39b6e8c6b8904ecbffb6ab215b" args="(unsigned *dest, const T *buf, unsigned buf_len)" -->
 
357
<div class="memitem">
 
358
<div class="memproto">
 
359
<div class="memtemplate">
 
360
template&lt;typename T &gt; </div>
 
361
      <table class="memname">
 
362
        <tr>
 
363
          <td class="memname">void bm::gap_add_to_bitset_l </td>
 
364
          <td>(</td>
 
365
          <td class="paramtype">unsigned *&nbsp;</td>
 
366
          <td class="paramname"> <em>dest</em>, </td>
 
367
        </tr>
 
368
        <tr>
 
369
          <td class="paramkey"></td>
 
370
          <td></td>
 
371
          <td class="paramtype">const T *&nbsp;</td>
 
372
          <td class="paramname"> <em>buf</em>, </td>
 
373
        </tr>
 
374
        <tr>
 
375
          <td class="paramkey"></td>
 
376
          <td></td>
 
377
          <td class="paramtype">unsigned&nbsp;</td>
 
378
          <td class="paramname"> <em>buf_len</em></td><td>&nbsp;</td>
 
379
        </tr>
 
380
        <tr>
 
381
          <td></td>
 
382
          <td>)</td>
 
383
          <td></td><td></td><td><code> [inline]</code></td>
 
384
        </tr>
 
385
      </table>
 
386
</div>
 
387
<div class="memdoc">
 
388
 
 
389
<p>Adds(OR) GAP block to bitblock. </p>
 
390
<dl><dt><b>Parameters:</b></dt><dd>
 
391
  <table border="0" cellspacing="2" cellpadding="0">
 
392
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>- bitblock buffer pointer. </td></tr>
 
393
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
394
    <tr><td valign="top"></td><td valign="top"><em>buf_len</em>&nbsp;</td><td>- GAP buffer length </td></tr>
 
395
  </table>
 
396
  </dd>
 
397
</dl>
 
398
 
 
399
<p>Definition at line <a class="el" href="a00093_source.html#l01733">1733</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
400
 
 
401
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00093_source.html#l01491">bm::or_bit_block()</a>.</p>
 
402
 
 
403
<p>Referenced by <a class="el" href="a00096_source.html#l01316">bm::deserializer&lt; BV, DEC &gt;::deserialize_gap()</a>, <a class="el" href="a00093_source.html#l01763">bm::gap_add_to_bitset()</a>, and <a class="el" href="a00093_source.html#l02158">bm::gap_convert_to_bitset_l()</a>.</p>
 
404
 
 
405
</div>
 
406
</div>
 
407
<a class="anchor" id="gadae4001e2834125b9c08b154a8a874a7"></a><!-- doxytag: member="bm::gap_add_value" ref="gadae4001e2834125b9c08b154a8a874a7" args="(T *buf, T pos)" -->
 
408
<div class="memitem">
 
409
<div class="memproto">
 
410
<div class="memtemplate">
 
411
template&lt;typename T &gt; </div>
 
412
      <table class="memname">
 
413
        <tr>
 
414
          <td class="memname">unsigned bm::gap_add_value </td>
 
415
          <td>(</td>
 
416
          <td class="paramtype">T *&nbsp;</td>
 
417
          <td class="paramname"> <em>buf</em>, </td>
 
418
        </tr>
 
419
        <tr>
 
420
          <td class="paramkey"></td>
 
421
          <td></td>
 
422
          <td class="paramtype">T&nbsp;</td>
 
423
          <td class="paramname"> <em>pos</em></td><td>&nbsp;</td>
 
424
        </tr>
 
425
        <tr>
 
426
          <td></td>
 
427
          <td>)</td>
 
428
          <td></td><td></td><td><code> [inline]</code></td>
 
429
        </tr>
 
430
      </table>
 
431
</div>
 
432
<div class="memdoc">
 
433
 
 
434
<p>Add new value to the end of GAP buffer. </p>
 
435
<dl><dt><b>Parameters:</b></dt><dd>
 
436
  <table border="0" cellspacing="2" cellpadding="0">
 
437
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer. </td></tr>
 
438
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>- Index of bit to set.</td></tr>
 
439
  </table>
 
440
  </dd>
 
441
</dl>
 
442
<dl class="return"><dt><b>Returns:</b></dt><dd>New GAP buffer length. </dd></dl>
 
443
 
 
444
<p>Definition at line <a class="el" href="a00093_source.html#l01261">1261</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
445
 
 
446
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00091_source.html#l00072">bm::gap_max_bits</a>.</p>
 
447
 
 
448
<p>Referenced by <a class="el" href="a00096_source.html#l01227">bm::deseriaizer_base&lt; DEC &gt;::read_gap_block()</a>.</p>
 
449
 
 
450
</div>
 
451
</div>
 
452
<a class="anchor" id="gafe6f72a009618290eeab3cddee869543"></a><!-- doxytag: member="bm::gap_and_to_bitset" ref="gafe6f72a009618290eeab3cddee869543" args="(unsigned *dest, const T *buf)" -->
 
453
<div class="memitem">
 
454
<div class="memproto">
 
455
<div class="memtemplate">
 
456
template&lt;typename T &gt; </div>
 
457
      <table class="memname">
 
458
        <tr>
 
459
          <td class="memname">void bm::gap_and_to_bitset </td>
 
460
          <td>(</td>
 
461
          <td class="paramtype">unsigned *&nbsp;</td>
 
462
          <td class="paramname"> <em>dest</em>, </td>
 
463
        </tr>
 
464
        <tr>
 
465
          <td class="paramkey"></td>
 
466
          <td></td>
 
467
          <td class="paramtype">const T *&nbsp;</td>
 
468
          <td class="paramname"> <em>buf</em></td><td>&nbsp;</td>
 
469
        </tr>
 
470
        <tr>
 
471
          <td></td>
 
472
          <td>)</td>
 
473
          <td></td><td></td><td><code> [inline]</code></td>
 
474
        </tr>
 
475
      </table>
 
476
</div>
 
477
<div class="memdoc">
 
478
 
 
479
<p>ANDs GAP block to bitblock. </p>
 
480
<dl><dt><b>Parameters:</b></dt><dd>
 
481
  <table border="0" cellspacing="2" cellpadding="0">
 
482
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>- bitblock buffer pointer. </td></tr>
 
483
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
484
  </table>
 
485
  </dd>
 
486
</dl>
 
487
 
 
488
<p>Definition at line <a class="el" href="a00093_source.html#l01777">1777</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
489
 
 
490
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00093_source.html#l01553">bm::sub_bit_block()</a>.</p>
 
491
 
 
492
</div>
 
493
</div>
 
494
<a class="anchor" id="ga570a6f573ffb9ac9e41a688d2bdc6004"></a><!-- doxytag: member="bm::gap_bit_count" ref="ga570a6f573ffb9ac9e41a688d2bdc6004" args="(const T *buf, unsigned dsize=0)" -->
 
495
<div class="memitem">
 
496
<div class="memproto">
 
497
<div class="memtemplate">
 
498
template&lt;typename T &gt; </div>
 
499
      <table class="memname">
 
500
        <tr>
 
501
          <td class="memname">unsigned bm::gap_bit_count </td>
 
502
          <td>(</td>
 
503
          <td class="paramtype">const T *&nbsp;</td>
 
504
          <td class="paramname"> <em>buf</em>, </td>
 
505
        </tr>
 
506
        <tr>
 
507
          <td class="paramkey"></td>
 
508
          <td></td>
 
509
          <td class="paramtype">unsigned&nbsp;</td>
 
510
          <td class="paramname"> <em>dsize</em> = <code>0</code></td><td>&nbsp;</td>
 
511
        </tr>
 
512
        <tr>
 
513
          <td></td>
 
514
          <td>)</td>
 
515
          <td></td><td></td><td><code> [inline]</code></td>
 
516
        </tr>
 
517
      </table>
 
518
</div>
 
519
<div class="memdoc">
 
520
 
 
521
<p>Calculates number of bits ON in GAP buffer. </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>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
525
    <tr><td valign="top"></td><td valign="top"><em>dsize</em>&nbsp;</td><td>- buffer size </td></tr>
 
526
  </table>
 
527
  </dd>
 
528
</dl>
 
529
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of non-zero bits. </dd></dl>
 
530
 
 
531
<p>Definition at line <a class="el" href="a00093_source.html#l00678">678</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
532
 
 
533
<p>Referenced by <a class="el" href="a00089_source.html#l00116">bm::combine_count_operation_with_block()</a>, and <a class="el" href="a00096_source.html#l00709">bm::serializer&lt; BV &gt;::encode_gap_block()</a>.</p>
 
534
 
 
535
</div>
 
536
</div>
 
537
<a class="anchor" id="ga5e3123c3c9d3587f470abdbe6c8c3ad3"></a><!-- doxytag: member="bm::gap_buff_any_op" ref="ga5e3123c3c9d3587f470abdbe6c8c3ad3" args="(const T *BMRESTRICT vect1, unsigned vect1_mask, const T *BMRESTRICT vect2, unsigned vect2_mask, F f)" -->
 
538
<div class="memitem">
 
539
<div class="memproto">
 
540
<div class="memtemplate">
 
541
template&lt;typename T , class F &gt; </div>
 
542
      <table class="memname">
 
543
        <tr>
 
544
          <td class="memname">unsigned bm::gap_buff_any_op </td>
 
545
          <td>(</td>
 
546
          <td class="paramtype">const T *BMRESTRICT&nbsp;</td>
 
547
          <td class="paramname"> <em>vect1</em>, </td>
 
548
        </tr>
 
549
        <tr>
 
550
          <td class="paramkey"></td>
 
551
          <td></td>
 
552
          <td class="paramtype">unsigned&nbsp;</td>
 
553
          <td class="paramname"> <em>vect1_mask</em>, </td>
 
554
        </tr>
 
555
        <tr>
 
556
          <td class="paramkey"></td>
 
557
          <td></td>
 
558
          <td class="paramtype">const T *BMRESTRICT&nbsp;</td>
 
559
          <td class="paramname"> <em>vect2</em>, </td>
 
560
        </tr>
 
561
        <tr>
 
562
          <td class="paramkey"></td>
 
563
          <td></td>
 
564
          <td class="paramtype">unsigned&nbsp;</td>
 
565
          <td class="paramname"> <em>vect2_mask</em>, </td>
 
566
        </tr>
 
567
        <tr>
 
568
          <td class="paramkey"></td>
 
569
          <td></td>
 
570
          <td class="paramtype">F&nbsp;</td>
 
571
          <td class="paramname"> <em>f</em></td><td>&nbsp;</td>
 
572
        </tr>
 
573
        <tr>
 
574
          <td></td>
 
575
          <td>)</td>
 
576
          <td></td><td></td><td><code> [inline]</code></td>
 
577
        </tr>
 
578
      </table>
 
579
</div>
 
580
<div class="memdoc">
 
581
 
 
582
<p>Abstract distance test operation for GAP buffers. Receives functor F as a template argument. </p>
 
583
<dl><dt><b>Parameters:</b></dt><dd>
 
584
  <table border="0" cellspacing="2" cellpadding="0">
 
585
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 GAP encoded buffer. </td></tr>
 
586
    <tr><td valign="top"></td><td valign="top"><em>vect1_mask</em>&nbsp;</td><td>- XOR mask for starting bitflag for vector1 can be 0 or 1 (1 inverts the vector) </td></tr>
 
587
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 GAP encoded buffer. </td></tr>
 
588
    <tr><td valign="top"></td><td valign="top"><em>vect2_mask</em>&nbsp;</td><td>- same as vect1_mask </td></tr>
 
589
    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>- operation functor. </td></tr>
 
590
  </table>
 
591
  </dd>
 
592
</dl>
 
593
<dl class="note"><dt><b>Note:</b></dt><dd>Internal function. </dd></dl>
 
594
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if operation result returns any 1 bit </dd></dl>
 
595
 
 
596
<p>Definition at line <a class="el" href="a00093_source.html#l01015">1015</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
597
 
 
598
<p>References <a class="el" href="a00091_source.html#l00072">bm::gap_max_bits</a>.</p>
 
599
 
 
600
<p>Referenced by <a class="el" href="a00093_source.html#l03210">bm::gap_operation_any_and()</a>, <a class="el" href="a00093_source.html#l03388">bm::gap_operation_any_sub()</a>, and <a class="el" href="a00093_source.html#l03277">bm::gap_operation_any_xor()</a>.</p>
 
601
 
 
602
</div>
 
603
</div>
 
604
<a class="anchor" id="ga9a5ff7782f3de0d1c699eb72d432f255"></a><!-- doxytag: member="bm::gap_buff_count_op" ref="ga9a5ff7782f3de0d1c699eb72d432f255" args="(const T *vect1, const T *vect2, F f)" -->
 
605
<div class="memitem">
 
606
<div class="memproto">
 
607
<div class="memtemplate">
 
608
template&lt;typename T , class F &gt; </div>
 
609
      <table class="memname">
 
610
        <tr>
 
611
          <td class="memname">unsigned bm::gap_buff_count_op </td>
 
612
          <td>(</td>
 
613
          <td class="paramtype">const T *&nbsp;</td>
 
614
          <td class="paramname"> <em>vect1</em>, </td>
 
615
        </tr>
 
616
        <tr>
 
617
          <td class="paramkey"></td>
 
618
          <td></td>
 
619
          <td class="paramtype">const T *&nbsp;</td>
 
620
          <td class="paramname"> <em>vect2</em>, </td>
 
621
        </tr>
 
622
        <tr>
 
623
          <td class="paramkey"></td>
 
624
          <td></td>
 
625
          <td class="paramtype">F&nbsp;</td>
 
626
          <td class="paramname"> <em>f</em></td><td>&nbsp;</td>
 
627
        </tr>
 
628
        <tr>
 
629
          <td></td>
 
630
          <td>)</td>
 
631
          <td></td><td></td><td><code> [inline]</code></td>
 
632
        </tr>
 
633
      </table>
 
634
</div>
 
635
<div class="memdoc">
 
636
 
 
637
<p>Abstract distance(similarity) operation for GAP buffers. Receives functor F as a template argument. </p>
 
638
<dl><dt><b>Parameters:</b></dt><dd>
 
639
  <table border="0" cellspacing="2" cellpadding="0">
 
640
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 GAP encoded buffer. </td></tr>
 
641
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 GAP encoded buffer. </td></tr>
 
642
    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</td><td>- operation functor. </td></tr>
 
643
  </table>
 
644
  </dd>
 
645
</dl>
 
646
<dl class="note"><dt><b>Note:</b></dt><dd>Internal function. </dd></dl>
 
647
 
 
648
<p>Definition at line <a class="el" href="a00093_source.html#l01084">1084</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
649
 
 
650
<p>References <a class="el" href="a00091_source.html#l00072">bm::gap_max_bits</a>.</p>
 
651
 
 
652
<p>Referenced by <a class="el" href="a00093_source.html#l03227">bm::gap_count_and()</a>, <a class="el" href="a00093_source.html#l03338">bm::gap_count_or()</a>, <a class="el" href="a00093_source.html#l03405">bm::gap_count_sub()</a>, and <a class="el" href="a00093_source.html#l03293">bm::gap_count_xor()</a>.</p>
 
653
 
 
654
</div>
 
655
</div>
 
656
<a class="anchor" id="ga3bfaebeeb4b2d479c5a9ac9d57607165"></a><!-- doxytag: member="bm::gap_calc_level" ref="ga3bfaebeeb4b2d479c5a9ac9d57607165" args="(int len, const T *glevel_len)" -->
 
657
<div class="memitem">
 
658
<div class="memproto">
 
659
<div class="memtemplate">
 
660
template&lt;typename T &gt; </div>
 
661
      <table class="memname">
 
662
        <tr>
 
663
          <td class="memname">int bm::gap_calc_level </td>
 
664
          <td>(</td>
 
665
          <td class="paramtype">int&nbsp;</td>
 
666
          <td class="paramname"> <em>len</em>, </td>
 
667
        </tr>
 
668
        <tr>
 
669
          <td class="paramkey"></td>
 
670
          <td></td>
 
671
          <td class="paramtype">const T *&nbsp;</td>
 
672
          <td class="paramname"> <em>glevel_len</em></td><td>&nbsp;</td>
 
673
        </tr>
 
674
        <tr>
 
675
          <td></td>
 
676
          <td>)</td>
 
677
          <td></td><td></td><td><code> [inline]</code></td>
 
678
        </tr>
 
679
      </table>
 
680
</div>
 
681
<div class="memdoc">
 
682
 
 
683
<p>Calculates GAP block capacity level. </p>
 
684
<dl><dt><b>Parameters:</b></dt><dd>
 
685
  <table border="0" cellspacing="2" cellpadding="0">
 
686
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>- GAP buffer length. </td></tr>
 
687
    <tr><td valign="top"></td><td valign="top"><em>glevel_len</em>&nbsp;</td><td>- GAP lengths table </td></tr>
 
688
  </table>
 
689
  </dd>
 
690
</dl>
 
691
<dl class="return"><dt><b>Returns:</b></dt><dd>GAP block capacity level. -1 if block does not fit any level. </dd></dl>
 
692
 
 
693
<p>Definition at line <a class="el" href="a00093_source.html#l02450">2450</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
694
 
 
695
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00091_source.html#l00075">bm::gap_levels</a>.</p>
 
696
 
 
697
<p>Referenced by <a class="el" href="a00096_source.html#l03101">bm::iterator_deserializer&lt; BV, SerialIterator &gt;::deserialize()</a>, <a class="el" href="a00096_source.html#l01316">bm::deserializer&lt; BV, DEC &gt;::deserialize_gap()</a>, and <a class="el" href="a00093_source.html#l04847">bm::gap_overhead()</a>.</p>
 
698
 
 
699
</div>
 
700
</div>
 
701
<a class="anchor" id="ga0419ed06e2f0b7891e7d721546f5fb45"></a><!-- doxytag: member="bm::gap_capacity" ref="ga0419ed06e2f0b7891e7d721546f5fb45" args="(const T *buf, const T *glevel_len)" -->
 
702
<div class="memitem">
 
703
<div class="memproto">
 
704
<div class="memtemplate">
 
705
template&lt;typename T &gt; </div>
 
706
      <table class="memname">
 
707
        <tr>
 
708
          <td class="memname">unsigned bm::gap_capacity </td>
 
709
          <td>(</td>
 
710
          <td class="paramtype">const T *&nbsp;</td>
 
711
          <td class="paramname"> <em>buf</em>, </td>
 
712
        </tr>
 
713
        <tr>
 
714
          <td class="paramkey"></td>
 
715
          <td></td>
 
716
          <td class="paramtype">const T *&nbsp;</td>
 
717
          <td class="paramname"> <em>glevel_len</em></td><td>&nbsp;</td>
 
718
        </tr>
 
719
        <tr>
 
720
          <td></td>
 
721
          <td>)</td>
 
722
          <td></td><td></td><td><code> [inline]</code></td>
 
723
        </tr>
 
724
      </table>
 
725
</div>
 
726
<div class="memdoc">
 
727
 
 
728
<p>Returs GAP block capacity. </p>
 
729
<dl><dt><b>Parameters:</b></dt><dd>
 
730
  <table border="0" cellspacing="2" cellpadding="0">
 
731
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
732
  </table>
 
733
  </dd>
 
734
</dl>
 
735
<dl class="return"><dt><b>Returns:</b></dt><dd>GAP block capacity. </dd></dl>
 
736
 
 
737
<p>Definition at line <a class="el" href="a00093_source.html#l02392">2392</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
738
 
 
739
<p>Referenced by <a class="el" href="a00087_source.html#l02044">bm::bvector&lt; Alloc &gt;::calc_stat()</a>, <a class="el" href="a00090_source.html#l00205">bm::mem_alloc&lt; BA, PA &gt;::free_gap_block()</a>, and <a class="el" href="a00093_source.html#l02471">bm::gap_free_elements()</a>.</p>
 
740
 
 
741
</div>
 
742
</div>
 
743
<a class="anchor" id="ga14d29338ffd1387758810b3f9e3a72c6"></a><!-- doxytag: member="bm::gap_control_sum" ref="ga14d29338ffd1387758810b3f9e3a72c6" args="(const T *buf)" -->
 
744
<div class="memitem">
 
745
<div class="memproto">
 
746
<div class="memtemplate">
 
747
template&lt;typename T &gt; </div>
 
748
      <table class="memname">
 
749
        <tr>
 
750
          <td class="memname">unsigned bm::gap_control_sum </td>
 
751
          <td>(</td>
 
752
          <td class="paramtype">const T *&nbsp;</td>
 
753
          <td class="paramname"> <em>buf</em></td>
 
754
          <td>&nbsp;)&nbsp;</td>
 
755
          <td><code> [inline]</code></td>
 
756
        </tr>
 
757
      </table>
 
758
</div>
 
759
<div class="memdoc">
 
760
 
 
761
<p>Calculates sum of all words in GAP block. (For debugging purposes). </p>
 
762
<dl class="note"><dt><b>Note:</b></dt><dd>For debugging and testing ONLY. </dd></dl>
 
763
<dl><dt><b>Parameters:</b></dt><dd>
 
764
  <table border="0" cellspacing="2" cellpadding="0">
 
765
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
766
  </table>
 
767
  </dd>
 
768
</dl>
 
769
<dl class="return"><dt><b>Returns:</b></dt><dd>Sum of all words. </dd></dl>
 
770
 
 
771
<p>Definition at line <a class="el" href="a00093_source.html#l02218">2218</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
772
 
 
773
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>.</p>
 
774
 
 
775
</div>
 
776
</div>
 
777
<a class="anchor" id="ga5cd7e0cfee401da1b8f702151c083b27"></a><!-- doxytag: member="bm::gap_convert_to_arr" ref="ga5cd7e0cfee401da1b8f702151c083b27" args="(D *BMRESTRICT dest, const T *BMRESTRICT buf, unsigned dest_len, bool invert=false)" -->
 
778
<div class="memitem">
 
779
<div class="memproto">
 
780
<div class="memtemplate">
 
781
template&lt;typename D , typename T &gt; </div>
 
782
      <table class="memname">
 
783
        <tr>
 
784
          <td class="memname">D bm::gap_convert_to_arr </td>
 
785
          <td>(</td>
 
786
          <td class="paramtype">D *BMRESTRICT&nbsp;</td>
 
787
          <td class="paramname"> <em>dest</em>, </td>
 
788
        </tr>
 
789
        <tr>
 
790
          <td class="paramkey"></td>
 
791
          <td></td>
 
792
          <td class="paramtype">const T *BMRESTRICT&nbsp;</td>
 
793
          <td class="paramname"> <em>buf</em>, </td>
 
794
        </tr>
 
795
        <tr>
 
796
          <td class="paramkey"></td>
 
797
          <td></td>
 
798
          <td class="paramtype">unsigned&nbsp;</td>
 
799
          <td class="paramname"> <em>dest_len</em>, </td>
 
800
        </tr>
 
801
        <tr>
 
802
          <td class="paramkey"></td>
 
803
          <td></td>
 
804
          <td class="paramtype">bool&nbsp;</td>
 
805
          <td class="paramname"> <em>invert</em> = <code>false</code></td><td>&nbsp;</td>
 
806
        </tr>
 
807
        <tr>
 
808
          <td></td>
 
809
          <td>)</td>
 
810
          <td></td><td></td><td><code> [inline]</code></td>
 
811
        </tr>
 
812
      </table>
 
813
</div>
 
814
<div class="memdoc">
 
815
 
 
816
<p>Convert gap block into array of ints corresponding to 1 bits. </p>
 
817
 
 
818
<p>Definition at line <a class="el" href="a00093_source.html#l02667">2667</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
819
 
 
820
<p>Referenced by <a class="el" href="a00096_source.html#l00709">bm::serializer&lt; BV &gt;::encode_gap_block()</a>.</p>
 
821
 
 
822
</div>
 
823
</div>
 
824
<a class="anchor" id="ga9bb80c42ee0ecf8f2af8250d7f5d327b"></a><!-- doxytag: member="bm::gap_convert_to_bitset" ref="ga9bb80c42ee0ecf8f2af8250d7f5d327b" args="(unsigned *dest, const T *buf, unsigned dest_len)" -->
 
825
<div class="memitem">
 
826
<div class="memproto">
 
827
<div class="memtemplate">
 
828
template&lt;typename T &gt; </div>
 
829
      <table class="memname">
 
830
        <tr>
 
831
          <td class="memname">void bm::gap_convert_to_bitset </td>
 
832
          <td>(</td>
 
833
          <td class="paramtype">unsigned *&nbsp;</td>
 
834
          <td class="paramname"> <em>dest</em>, </td>
 
835
        </tr>
 
836
        <tr>
 
837
          <td class="paramkey"></td>
 
838
          <td></td>
 
839
          <td class="paramtype">const T *&nbsp;</td>
 
840
          <td class="paramname"> <em>buf</em>, </td>
 
841
        </tr>
 
842
        <tr>
 
843
          <td class="paramkey"></td>
 
844
          <td></td>
 
845
          <td class="paramtype">unsigned&nbsp;</td>
 
846
          <td class="paramname"> <em>dest_len</em></td><td>&nbsp;</td>
 
847
        </tr>
 
848
        <tr>
 
849
          <td></td>
 
850
          <td>)</td>
 
851
          <td></td><td></td><td><code> [inline]</code></td>
 
852
        </tr>
 
853
      </table>
 
854
</div>
 
855
<div class="memdoc">
 
856
 
 
857
<p>GAP block to bitblock conversion. </p>
 
858
<dl><dt><b>Parameters:</b></dt><dd>
 
859
  <table border="0" cellspacing="2" cellpadding="0">
 
860
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>- bitblock buffer pointer. </td></tr>
 
861
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
862
    <tr><td valign="top"></td><td valign="top"><em>dest_size</em>&nbsp;</td><td>- length of the destination buffer. </td></tr>
 
863
  </table>
 
864
  </dd>
 
865
</dl>
 
866
 
 
867
<p>Definition at line <a class="el" href="a00093_source.html#l02175">2175</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
868
 
 
869
<p>References <a class="el" href="a00093_source.html#l01763">bm::gap_add_to_bitset()</a>.</p>
 
870
 
 
871
</div>
 
872
</div>
 
873
<a class="anchor" id="ga4862f4dcdcb7c0575e2e2db9e5f2a849"></a><!-- doxytag: member="bm::gap_convert_to_bitset" ref="ga4862f4dcdcb7c0575e2e2db9e5f2a849" args="(unsigned *dest, const T *buf)" -->
 
874
<div class="memitem">
 
875
<div class="memproto">
 
876
<div class="memtemplate">
 
877
template&lt;typename T &gt; </div>
 
878
      <table class="memname">
 
879
        <tr>
 
880
          <td class="memname">void bm::gap_convert_to_bitset </td>
 
881
          <td>(</td>
 
882
          <td class="paramtype">unsigned *&nbsp;</td>
 
883
          <td class="paramname"> <em>dest</em>, </td>
 
884
        </tr>
 
885
        <tr>
 
886
          <td class="paramkey"></td>
 
887
          <td></td>
 
888
          <td class="paramtype">const T *&nbsp;</td>
 
889
          <td class="paramname"> <em>buf</em></td><td>&nbsp;</td>
 
890
        </tr>
 
891
        <tr>
 
892
          <td></td>
 
893
          <td>)</td>
 
894
          <td></td><td></td><td><code> [inline]</code></td>
 
895
        </tr>
 
896
      </table>
 
897
</div>
 
898
<div class="memdoc">
 
899
 
 
900
<p>GAP block to bitblock conversion. </p>
 
901
<dl><dt><b>Parameters:</b></dt><dd>
 
902
  <table border="0" cellspacing="2" cellpadding="0">
 
903
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>- bitblock buffer pointer. </td></tr>
 
904
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
905
  </table>
 
906
  </dd>
 
907
</dl>
 
908
 
 
909
<p>Definition at line <a class="el" href="a00093_source.html#l02144">2144</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
910
 
 
911
<p>References <a class="el" href="a00093_source.html#l02126">bm::bit_block_set()</a>, and <a class="el" href="a00093_source.html#l01763">bm::gap_add_to_bitset()</a>.</p>
 
912
 
 
913
<p>Referenced by <a class="el" href="a00089_source.html#l00366">bm::combine_any_operation_with_block()</a>, <a class="el" href="a00089_source.html#l00116">bm::combine_count_operation_with_block()</a>, <a class="el" href="a00087_source.html#l01914">bm::bvector&lt; Alloc &gt;::compare()</a>, <a class="el" href="a00096_source.html#l03319">bm::iterator_deserializer&lt; BV, SerialIterator &gt;::deserialize()</a>, <a class="el" href="a00096_source.html#l01316">bm::deserializer&lt; BV, DEC &gt;::deserialize_gap()</a>, and <a class="el" href="a00093_source.html#l02196">bm::gap_convert_to_bitset_smart()</a>.</p>
 
914
 
 
915
</div>
 
916
</div>
 
917
<a class="anchor" id="ga1dd58e3576239c49010b62a3add42417"></a><!-- doxytag: member="bm::gap_convert_to_bitset_l" ref="ga1dd58e3576239c49010b62a3add42417" args="(unsigned *dest, const T *buf, unsigned buf_len)" -->
 
918
<div class="memitem">
 
919
<div class="memproto">
 
920
<div class="memtemplate">
 
921
template&lt;typename T &gt; </div>
 
922
      <table class="memname">
 
923
        <tr>
 
924
          <td class="memname">void bm::gap_convert_to_bitset_l </td>
 
925
          <td>(</td>
 
926
          <td class="paramtype">unsigned *&nbsp;</td>
 
927
          <td class="paramname"> <em>dest</em>, </td>
 
928
        </tr>
 
929
        <tr>
 
930
          <td class="paramkey"></td>
 
931
          <td></td>
 
932
          <td class="paramtype">const T *&nbsp;</td>
 
933
          <td class="paramname"> <em>buf</em>, </td>
 
934
        </tr>
 
935
        <tr>
 
936
          <td class="paramkey"></td>
 
937
          <td></td>
 
938
          <td class="paramtype">unsigned&nbsp;</td>
 
939
          <td class="paramname"> <em>buf_len</em></td><td>&nbsp;</td>
 
940
        </tr>
 
941
        <tr>
 
942
          <td></td>
 
943
          <td>)</td>
 
944
          <td></td><td></td><td><code> [inline]</code></td>
 
945
        </tr>
 
946
      </table>
 
947
</div>
 
948
<div class="memdoc">
 
949
 
 
950
<p>GAP block to bitblock conversion. </p>
 
951
<dl><dt><b>Parameters:</b></dt><dd>
 
952
  <table border="0" cellspacing="2" cellpadding="0">
 
953
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>- bitblock buffer pointer. </td></tr>
 
954
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
955
  </table>
 
956
  </dd>
 
957
</dl>
 
958
 
 
959
<p>Definition at line <a class="el" href="a00093_source.html#l02158">2158</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
960
 
 
961
<p>References <a class="el" href="a00093_source.html#l02126">bm::bit_block_set()</a>, and <a class="el" href="a00093_source.html#l01733">bm::gap_add_to_bitset_l()</a>.</p>
 
962
 
 
963
</div>
 
964
</div>
 
965
<a class="anchor" id="ga3f01bb7c1ae7983aa8c4ba82e1e3f54c"></a><!-- doxytag: member="bm::gap_convert_to_bitset_smart" ref="ga3f01bb7c1ae7983aa8c4ba82e1e3f54c" args="(unsigned *dest, const T *buf, id_t set_max)" -->
 
966
<div class="memitem">
 
967
<div class="memproto">
 
968
<div class="memtemplate">
 
969
template&lt;typename T &gt; </div>
 
970
      <table class="memname">
 
971
        <tr>
 
972
          <td class="memname">unsigned* bm::gap_convert_to_bitset_smart </td>
 
973
          <td>(</td>
 
974
          <td class="paramtype">unsigned *&nbsp;</td>
 
975
          <td class="paramname"> <em>dest</em>, </td>
 
976
        </tr>
 
977
        <tr>
 
978
          <td class="paramkey"></td>
 
979
          <td></td>
 
980
          <td class="paramtype">const T *&nbsp;</td>
 
981
          <td class="paramname"> <em>buf</em>, </td>
 
982
        </tr>
 
983
        <tr>
 
984
          <td class="paramkey"></td>
 
985
          <td></td>
 
986
          <td class="paramtype">id_t&nbsp;</td>
 
987
          <td class="paramname"> <em>set_max</em></td><td>&nbsp;</td>
 
988
        </tr>
 
989
        <tr>
 
990
          <td></td>
 
991
          <td>)</td>
 
992
          <td></td><td></td><td><code> [inline]</code></td>
 
993
        </tr>
 
994
      </table>
 
995
</div>
 
996
<div class="memdoc">
 
997
 
 
998
<p>Smart GAP block to bitblock conversion. </p>
 
999
<p>Checks if GAP block is ALL-ZERO or ALL-ON. In those cases returns pointer on special static bitblocks.</p>
 
1000
<dl><dt><b>Parameters:</b></dt><dd>
 
1001
  <table border="0" cellspacing="2" cellpadding="0">
 
1002
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>- bitblock buffer pointer. </td></tr>
 
1003
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
1004
    <tr><td valign="top"></td><td valign="top"><em>set_max</em>&nbsp;</td><td>- max possible bitset length </td></tr>
 
1005
  </table>
 
1006
  </dd>
 
1007
</dl>
 
1008
 
 
1009
<p>Definition at line <a class="el" href="a00093_source.html#l02196">2196</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1010
 
 
1011
<p>References <a class="el" href="a00092_source.html#l00060">FULL_BLOCK_ADDR</a>, and <a class="el" href="a00093_source.html#l02144">bm::gap_convert_to_bitset()</a>.</p>
 
1012
 
 
1013
</div>
 
1014
</div>
 
1015
<a class="anchor" id="gafd92d013b0c377604831f401ef6917b8"></a><!-- doxytag: member="bm::gap_count_and" ref="gafd92d013b0c377604831f401ef6917b8" args="(const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)" -->
 
1016
<div class="memitem">
 
1017
<div class="memproto">
 
1018
      <table class="memname">
 
1019
        <tr>
 
1020
          <td class="memname">BMFORCEINLINE unsigned bm::gap_count_and </td>
 
1021
          <td>(</td>
 
1022
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1023
          <td class="paramname"> <em>vect1</em>, </td>
 
1024
        </tr>
 
1025
        <tr>
 
1026
          <td class="paramkey"></td>
 
1027
          <td></td>
 
1028
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1029
          <td class="paramname"> <em>vect2</em></td><td>&nbsp;</td>
 
1030
        </tr>
 
1031
        <tr>
 
1032
          <td></td>
 
1033
          <td>)</td>
 
1034
          <td></td><td></td><td></td>
 
1035
        </tr>
 
1036
      </table>
 
1037
</div>
 
1038
<div class="memdoc">
 
1039
 
 
1040
<p>GAP bitcount AND operation test. </p>
 
1041
<dl><dt><b>Parameters:</b></dt><dd>
 
1042
  <table border="0" cellspacing="2" cellpadding="0">
 
1043
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 </td></tr>
 
1044
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 </td></tr>
 
1045
  </table>
 
1046
  </dd>
 
1047
</dl>
 
1048
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of vect1 AND vect2 </dd></dl>
 
1049
 
 
1050
<p>Definition at line <a class="el" href="a00093_source.html#l03227">3227</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1051
 
 
1052
<p>References <a class="el" href="a00093_source.html#l03143">bm::and_op()</a>, and <a class="el" href="a00093_source.html#l01084">bm::gap_buff_count_op()</a>.</p>
 
1053
 
 
1054
<p>Referenced by <a class="el" href="a00089_source.html#l00329">bm::combine_count_and_operation_with_block()</a>, and <a class="el" href="a00089_source.html#l00116">bm::combine_count_operation_with_block()</a>.</p>
 
1055
 
 
1056
</div>
 
1057
</div>
 
1058
<a class="anchor" id="ga125fc8dc68245a11a171e7793c6588a2"></a><!-- doxytag: member="bm::gap_count_or" ref="ga125fc8dc68245a11a171e7793c6588a2" args="(const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)" -->
 
1059
<div class="memitem">
 
1060
<div class="memproto">
 
1061
      <table class="memname">
 
1062
        <tr>
 
1063
          <td class="memname">BMFORCEINLINE unsigned bm::gap_count_or </td>
 
1064
          <td>(</td>
 
1065
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1066
          <td class="paramname"> <em>vect1</em>, </td>
 
1067
        </tr>
 
1068
        <tr>
 
1069
          <td class="paramkey"></td>
 
1070
          <td></td>
 
1071
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1072
          <td class="paramname"> <em>vect2</em></td><td>&nbsp;</td>
 
1073
        </tr>
 
1074
        <tr>
 
1075
          <td></td>
 
1076
          <td>)</td>
 
1077
          <td></td><td></td><td></td>
 
1078
        </tr>
 
1079
      </table>
 
1080
</div>
 
1081
<div class="memdoc">
 
1082
 
 
1083
<p>GAP bitcount OR operation test. </p>
 
1084
<dl><dt><b>Parameters:</b></dt><dd>
 
1085
  <table border="0" cellspacing="2" cellpadding="0">
 
1086
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 </td></tr>
 
1087
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 </td></tr>
 
1088
  </table>
 
1089
  </dd>
 
1090
</dl>
 
1091
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of vect1 OR vect2 </dd></dl>
 
1092
 
 
1093
<p>Definition at line <a class="el" href="a00093_source.html#l03338">3338</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1094
 
 
1095
<p>References <a class="el" href="a00093_source.html#l01084">bm::gap_buff_count_op()</a>, and <a class="el" href="a00093_source.html#l03157">bm::or_op()</a>.</p>
 
1096
 
 
1097
<p>Referenced by <a class="el" href="a00089_source.html#l00116">bm::combine_count_operation_with_block()</a>.</p>
 
1098
 
 
1099
</div>
 
1100
</div>
 
1101
<a class="anchor" id="gacacf55c60da82a1c384f3ac3a51229d4"></a><!-- doxytag: member="bm::gap_count_sub" ref="gacacf55c60da82a1c384f3ac3a51229d4" args="(const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)" -->
 
1102
<div class="memitem">
 
1103
<div class="memproto">
 
1104
      <table class="memname">
 
1105
        <tr>
 
1106
          <td class="memname">BMFORCEINLINE unsigned bm::gap_count_sub </td>
 
1107
          <td>(</td>
 
1108
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1109
          <td class="paramname"> <em>vect1</em>, </td>
 
1110
        </tr>
 
1111
        <tr>
 
1112
          <td class="paramkey"></td>
 
1113
          <td></td>
 
1114
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1115
          <td class="paramname"> <em>vect2</em></td><td>&nbsp;</td>
 
1116
        </tr>
 
1117
        <tr>
 
1118
          <td></td>
 
1119
          <td>)</td>
 
1120
          <td></td><td></td><td></td>
 
1121
        </tr>
 
1122
      </table>
 
1123
</div>
 
1124
<div class="memdoc">
 
1125
 
 
1126
<p>GAP bitcount SUB (AND NOT) operation test. </p>
 
1127
<dl><dt><b>Parameters:</b></dt><dd>
 
1128
  <table border="0" cellspacing="2" cellpadding="0">
 
1129
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 </td></tr>
 
1130
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 </td></tr>
 
1131
  </table>
 
1132
  </dd>
 
1133
</dl>
 
1134
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of vect1 SUB (AND NOT) vect2 </dd></dl>
 
1135
 
 
1136
<p>Definition at line <a class="el" href="a00093_source.html#l03405">3405</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1137
 
 
1138
<p>References <a class="el" href="a00093_source.html#l01084">bm::gap_buff_count_op()</a>, and <a class="el" href="a00093_source.html#l03163">bm::sub_op()</a>.</p>
 
1139
 
 
1140
<p>Referenced by <a class="el" href="a00089_source.html#l00116">bm::combine_count_operation_with_block()</a>.</p>
 
1141
 
 
1142
</div>
 
1143
</div>
 
1144
<a class="anchor" id="gae38d6a3296f0562be512f47b4edfb1ad"></a><!-- doxytag: member="bm::gap_count_xor" ref="gae38d6a3296f0562be512f47b4edfb1ad" args="(const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)" -->
 
1145
<div class="memitem">
 
1146
<div class="memproto">
 
1147
      <table class="memname">
 
1148
        <tr>
 
1149
          <td class="memname">BMFORCEINLINE unsigned bm::gap_count_xor </td>
 
1150
          <td>(</td>
 
1151
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1152
          <td class="paramname"> <em>vect1</em>, </td>
 
1153
        </tr>
 
1154
        <tr>
 
1155
          <td class="paramkey"></td>
 
1156
          <td></td>
 
1157
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1158
          <td class="paramname"> <em>vect2</em></td><td>&nbsp;</td>
 
1159
        </tr>
 
1160
        <tr>
 
1161
          <td></td>
 
1162
          <td>)</td>
 
1163
          <td></td><td></td><td></td>
 
1164
        </tr>
 
1165
      </table>
 
1166
</div>
 
1167
<div class="memdoc">
 
1168
 
 
1169
<p>GAP bitcount XOR operation test. </p>
 
1170
<dl><dt><b>Parameters:</b></dt><dd>
 
1171
  <table border="0" cellspacing="2" cellpadding="0">
 
1172
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 </td></tr>
 
1173
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 </td></tr>
 
1174
  </table>
 
1175
  </dd>
 
1176
</dl>
 
1177
<dl class="return"><dt><b>Returns:</b></dt><dd>bitcount of vect1 XOR vect2 </dd></dl>
 
1178
 
 
1179
<p>Definition at line <a class="el" href="a00093_source.html#l03293">3293</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1180
 
 
1181
<p>References <a class="el" href="a00093_source.html#l01084">bm::gap_buff_count_op()</a>, and <a class="el" href="a00093_source.html#l03150">bm::xor_op()</a>.</p>
 
1182
 
 
1183
<p>Referenced by <a class="el" href="a00089_source.html#l00116">bm::combine_count_operation_with_block()</a>.</p>
 
1184
 
 
1185
</div>
 
1186
</div>
 
1187
<a class="anchor" id="gaa7df7193094353ea24b8519debf745be"></a><!-- doxytag: member="bm::gap_find_in_block" ref="gaa7df7193094353ea24b8519debf745be" args="(const T *buf, unsigned nbit, bm::id_t *prev)" -->
 
1188
<div class="memitem">
 
1189
<div class="memproto">
 
1190
<div class="memtemplate">
 
1191
template&lt;typename T &gt; </div>
 
1192
      <table class="memname">
 
1193
        <tr>
 
1194
          <td class="memname">int bm::gap_find_in_block </td>
 
1195
          <td>(</td>
 
1196
          <td class="paramtype">const T *&nbsp;</td>
 
1197
          <td class="paramname"> <em>buf</em>, </td>
 
1198
        </tr>
 
1199
        <tr>
 
1200
          <td class="paramkey"></td>
 
1201
          <td></td>
 
1202
          <td class="paramtype">unsigned&nbsp;</td>
 
1203
          <td class="paramname"> <em>nbit</em>, </td>
 
1204
        </tr>
 
1205
        <tr>
 
1206
          <td class="paramkey"></td>
 
1207
          <td></td>
 
1208
          <td class="paramtype"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> *&nbsp;</td>
 
1209
          <td class="paramname"> <em>prev</em></td><td>&nbsp;</td>
 
1210
        </tr>
 
1211
        <tr>
 
1212
          <td></td>
 
1213
          <td>)</td>
 
1214
          <td></td><td></td><td><code> [inline]</code></td>
 
1215
        </tr>
 
1216
      </table>
 
1217
</div>
 
1218
<div class="memdoc">
 
1219
 
 
1220
<p>Searches for the next 1 bit in the GAP block. </p>
 
1221
<dl><dt><b>Parameters:</b></dt><dd>
 
1222
  <table border="0" cellspacing="2" cellpadding="0">
 
1223
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer </td></tr>
 
1224
    <tr><td valign="top"></td><td valign="top"><em>nbit</em>&nbsp;</td><td>- bit index to start checking from. </td></tr>
 
1225
    <tr><td valign="top"></td><td valign="top"><em>prev</em>&nbsp;</td><td>- returns previously checked value </td></tr>
 
1226
  </table>
 
1227
  </dd>
 
1228
</dl>
 
1229
 
 
1230
<p>Definition at line <a class="el" href="a00093_source.html#l01436">1436</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1231
 
 
1232
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00093_source.html#l00461">bm::gap_bfind()</a>, and <a class="el" href="a00091_source.html#l00072">bm::gap_max_bits</a>.</p>
 
1233
 
 
1234
</div>
 
1235
</div>
 
1236
<a class="anchor" id="gafd76869eb44fac688da5e26e0e74f41f"></a><!-- doxytag: member="bm::gap_free_elements" ref="gafd76869eb44fac688da5e26e0e74f41f" args="(const T *buf, const T *glevel_len)" -->
 
1237
<div class="memitem">
 
1238
<div class="memproto">
 
1239
<div class="memtemplate">
 
1240
template&lt;typename T &gt; </div>
 
1241
      <table class="memname">
 
1242
        <tr>
 
1243
          <td class="memname">unsigned bm::gap_free_elements </td>
 
1244
          <td>(</td>
 
1245
          <td class="paramtype">const T *&nbsp;</td>
 
1246
          <td class="paramname"> <em>buf</em>, </td>
 
1247
        </tr>
 
1248
        <tr>
 
1249
          <td class="paramkey"></td>
 
1250
          <td></td>
 
1251
          <td class="paramtype">const T *&nbsp;</td>
 
1252
          <td class="paramname"> <em>glevel_len</em></td><td>&nbsp;</td>
 
1253
        </tr>
 
1254
        <tr>
 
1255
          <td></td>
 
1256
          <td>)</td>
 
1257
          <td></td><td></td><td><code> [inline]</code></td>
 
1258
        </tr>
 
1259
      </table>
 
1260
</div>
 
1261
<div class="memdoc">
 
1262
 
 
1263
<p>Returns number of free elements in GAP block array. Difference between GAP block capacity on this level and actual GAP length. </p>
 
1264
<dl><dt><b>Parameters:</b></dt><dd>
 
1265
  <table border="0" cellspacing="2" cellpadding="0">
 
1266
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer  glevel_len - GAP lengths table</td></tr>
 
1267
  </table>
 
1268
  </dd>
 
1269
</dl>
 
1270
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of free GAP elements </dd></dl>
 
1271
 
 
1272
<p>Definition at line <a class="el" href="a00093_source.html#l02471">2471</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1273
 
 
1274
<p>References <a class="el" href="a00093_source.html#l02392">bm::gap_capacity()</a>, and <a class="el" href="a00093_source.html#l02378">bm::gap_length()</a>.</p>
 
1275
 
 
1276
</div>
 
1277
</div>
 
1278
<a class="anchor" id="ga510ab7feb60c19f7d7811cc304fdf649"></a><!-- doxytag: member="bm::gap_init_range_block" ref="ga510ab7feb60c19f7d7811cc304fdf649" args="(T *buf, T from, T to, T value, unsigned set_max)" -->
 
1279
<div class="memitem">
 
1280
<div class="memproto">
 
1281
<div class="memtemplate">
 
1282
template&lt;class T &gt; </div>
 
1283
      <table class="memname">
 
1284
        <tr>
 
1285
          <td class="memname">void bm::gap_init_range_block </td>
 
1286
          <td>(</td>
 
1287
          <td class="paramtype">T *&nbsp;</td>
 
1288
          <td class="paramname"> <em>buf</em>, </td>
 
1289
        </tr>
 
1290
        <tr>
 
1291
          <td class="paramkey"></td>
 
1292
          <td></td>
 
1293
          <td class="paramtype">T&nbsp;</td>
 
1294
          <td class="paramname"> <em>from</em>, </td>
 
1295
        </tr>
 
1296
        <tr>
 
1297
          <td class="paramkey"></td>
 
1298
          <td></td>
 
1299
          <td class="paramtype">T&nbsp;</td>
 
1300
          <td class="paramname"> <em>to</em>, </td>
 
1301
        </tr>
 
1302
        <tr>
 
1303
          <td class="paramkey"></td>
 
1304
          <td></td>
 
1305
          <td class="paramtype">T&nbsp;</td>
 
1306
          <td class="paramname"> <em>value</em>, </td>
 
1307
        </tr>
 
1308
        <tr>
 
1309
          <td class="paramkey"></td>
 
1310
          <td></td>
 
1311
          <td class="paramtype">unsigned&nbsp;</td>
 
1312
          <td class="paramname"> <em>set_max</em></td><td>&nbsp;</td>
 
1313
        </tr>
 
1314
        <tr>
 
1315
          <td></td>
 
1316
          <td>)</td>
 
1317
          <td></td><td></td><td><code> [inline]</code></td>
 
1318
        </tr>
 
1319
      </table>
 
1320
</div>
 
1321
<div class="memdoc">
 
1322
 
 
1323
<p>Init gap block so it has block in it (can be whole block). </p>
 
1324
<dl><dt><b>Parameters:</b></dt><dd>
 
1325
  <table border="0" cellspacing="2" cellpadding="0">
 
1326
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
1327
    <tr><td valign="top"></td><td valign="top"><em>from</em>&nbsp;</td><td>- one block start </td></tr>
 
1328
    <tr><td valign="top"></td><td valign="top"><em>to</em>&nbsp;</td><td>- one block end </td></tr>
 
1329
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>- (block value)1 or 0 </td></tr>
 
1330
    <tr><td valign="top"></td><td valign="top"><em>set_max</em>&nbsp;</td><td>- max possible bitset length </td></tr>
 
1331
  </table>
 
1332
  </dd>
 
1333
</dl>
 
1334
 
 
1335
<p>Definition at line <a class="el" href="a00093_source.html#l02270">2270</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1336
 
 
1337
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00093_source.html#l02249">bm::gap_set_all()</a>.</p>
 
1338
 
 
1339
</div>
 
1340
</div>
 
1341
<a class="anchor" id="ga3f22bfde5dfe06d6d77dc2598b8c0845"></a><!-- doxytag: member="bm::gap_invert" ref="ga3f22bfde5dfe06d6d77dc2598b8c0845" args="(T *buf)" -->
 
1342
<div class="memitem">
 
1343
<div class="memproto">
 
1344
<div class="memtemplate">
 
1345
template&lt;typename T &gt; </div>
 
1346
      <table class="memname">
 
1347
        <tr>
 
1348
          <td class="memname">void bm::gap_invert </td>
 
1349
          <td>(</td>
 
1350
          <td class="paramtype">T *&nbsp;</td>
 
1351
          <td class="paramname"> <em>buf</em></td>
 
1352
          <td>&nbsp;)&nbsp;</td>
 
1353
          <td><code> [inline]</code></td>
 
1354
        </tr>
 
1355
      </table>
 
1356
</div>
 
1357
<div class="memdoc">
 
1358
 
 
1359
<p>Inverts all bits in the GAP buffer. </p>
 
1360
<dl><dt><b>Parameters:</b></dt><dd>
 
1361
  <table border="0" cellspacing="2" cellpadding="0">
 
1362
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
1363
  </table>
 
1364
  </dd>
 
1365
</dl>
 
1366
 
 
1367
<p>Definition at line <a class="el" href="a00093_source.html#l02320">2320</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1368
 
 
1369
<p>Referenced by <a class="el" href="a00093_source.html#l03318">bm::gap_operation_or()</a>, and <a class="el" href="a00096_source.html#l01227">bm::deseriaizer_base&lt; DEC &gt;::read_gap_block()</a>.</p>
 
1370
 
 
1371
</div>
 
1372
</div>
 
1373
<a class="anchor" id="ga1427d43e91872f981c6311fa76ab5633"></a><!-- doxytag: member="bm::gap_is_all_one" ref="ga1427d43e91872f981c6311fa76ab5633" args="(const T *buf, unsigned set_max)" -->
 
1374
<div class="memitem">
 
1375
<div class="memproto">
 
1376
<div class="memtemplate">
 
1377
template&lt;typename T &gt; </div>
 
1378
      <table class="memname">
 
1379
        <tr>
 
1380
          <td class="memname">bool bm::gap_is_all_one </td>
 
1381
          <td>(</td>
 
1382
          <td class="paramtype">const T *&nbsp;</td>
 
1383
          <td class="paramname"> <em>buf</em>, </td>
 
1384
        </tr>
 
1385
        <tr>
 
1386
          <td class="paramkey"></td>
 
1387
          <td></td>
 
1388
          <td class="paramtype">unsigned&nbsp;</td>
 
1389
          <td class="paramname"> <em>set_max</em></td><td>&nbsp;</td>
 
1390
        </tr>
 
1391
        <tr>
 
1392
          <td></td>
 
1393
          <td>)</td>
 
1394
          <td></td><td></td><td><code> [inline]</code></td>
 
1395
        </tr>
 
1396
      </table>
 
1397
</div>
 
1398
<div class="memdoc">
 
1399
 
 
1400
<p>Checks if GAP block is all-one. </p>
 
1401
<dl><dt><b>Parameters:</b></dt><dd>
 
1402
  <table border="0" cellspacing="2" cellpadding="0">
 
1403
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
1404
    <tr><td valign="top"></td><td valign="top"><em>set_max</em>&nbsp;</td><td>- max possible bitset length </td></tr>
 
1405
  </table>
 
1406
  </dd>
 
1407
</dl>
 
1408
<dl class="return"><dt><b>Returns:</b></dt><dd>true if all-one. </dd></dl>
 
1409
 
 
1410
<p>Definition at line <a class="el" href="a00093_source.html#l02366">2366</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1411
 
 
1412
</div>
 
1413
</div>
 
1414
<a class="anchor" id="ga690ff7c8b16e1821a77663b7194267e7"></a><!-- doxytag: member="bm::gap_is_all_zero" ref="ga690ff7c8b16e1821a77663b7194267e7" args="(const T *buf, unsigned set_max)" -->
 
1415
<div class="memitem">
 
1416
<div class="memproto">
 
1417
<div class="memtemplate">
 
1418
template&lt;typename T &gt; </div>
 
1419
      <table class="memname">
 
1420
        <tr>
 
1421
          <td class="memname">bool bm::gap_is_all_zero </td>
 
1422
          <td>(</td>
 
1423
          <td class="paramtype">const T *&nbsp;</td>
 
1424
          <td class="paramname"> <em>buf</em>, </td>
 
1425
        </tr>
 
1426
        <tr>
 
1427
          <td class="paramkey"></td>
 
1428
          <td></td>
 
1429
          <td class="paramtype">unsigned&nbsp;</td>
 
1430
          <td class="paramname"> <em>set_max</em></td><td>&nbsp;</td>
 
1431
        </tr>
 
1432
        <tr>
 
1433
          <td></td>
 
1434
          <td>)</td>
 
1435
          <td></td><td></td><td><code> [inline]</code></td>
 
1436
        </tr>
 
1437
      </table>
 
1438
</div>
 
1439
<div class="memdoc">
 
1440
 
 
1441
<p>Temporary inverts all bits in the GAP buffer. </p>
 
1442
<p>In this function const-ness of the buffer means nothing. Calling this function again restores the status of the buffer.</p>
 
1443
<dl><dt><b>Parameters:</b></dt><dd>
 
1444
  <table border="0" cellspacing="2" cellpadding="0">
 
1445
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. (Buffer IS changed)</td></tr>
 
1446
  </table>
 
1447
  </dd>
 
1448
</dl>
 
1449
<p>Checks if GAP block is all-zero. </p>
 
1450
<dl><dt><b>Parameters:</b></dt><dd>
 
1451
  <table border="0" cellspacing="2" cellpadding="0">
 
1452
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
1453
    <tr><td valign="top"></td><td valign="top"><em>set_max</em>&nbsp;</td><td>- max possible bitset length </td></tr>
 
1454
  </table>
 
1455
  </dd>
 
1456
</dl>
 
1457
<dl class="return"><dt><b>Returns:</b></dt><dd>true if all-zero. </dd></dl>
 
1458
 
 
1459
<p>Definition at line <a class="el" href="a00093_source.html#l02352">2352</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1460
 
 
1461
<p>Referenced by <a class="el" href="a00089_source.html#l00366">bm::combine_any_operation_with_block()</a>, and <a class="el" href="a00087_source.html#l01914">bm::bvector&lt; Alloc &gt;::compare()</a>.</p>
 
1462
 
 
1463
</div>
 
1464
</div>
 
1465
<a class="anchor" id="ga02541ec6c2930c292eda4313b78e874c"></a><!-- doxytag: member="bm::gap_length" ref="ga02541ec6c2930c292eda4313b78e874c" args="(const T *buf)" -->
 
1466
<div class="memitem">
 
1467
<div class="memproto">
 
1468
<div class="memtemplate">
 
1469
template&lt;typename T &gt; </div>
 
1470
      <table class="memname">
 
1471
        <tr>
 
1472
          <td class="memname">T bm::gap_length </td>
 
1473
          <td>(</td>
 
1474
          <td class="paramtype">const T *&nbsp;</td>
 
1475
          <td class="paramname"> <em>buf</em></td>
 
1476
          <td>&nbsp;)&nbsp;</td>
 
1477
          <td><code> [inline]</code></td>
 
1478
        </tr>
 
1479
      </table>
 
1480
</div>
 
1481
<div class="memdoc">
 
1482
 
 
1483
<p>Returs GAP block length. </p>
 
1484
<dl><dt><b>Parameters:</b></dt><dd>
 
1485
  <table border="0" cellspacing="2" cellpadding="0">
 
1486
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
1487
  </table>
 
1488
  </dd>
 
1489
</dl>
 
1490
<dl class="return"><dt><b>Returns:</b></dt><dd>GAP block length. </dd></dl>
 
1491
 
 
1492
<p>Definition at line <a class="el" href="a00093_source.html#l02378">2378</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1493
 
 
1494
<p>Referenced by <a class="el" href="a00087_source.html#l02044">bm::bvector&lt; Alloc &gt;::calc_stat()</a>, <a class="el" href="a00096_source.html#l03101">bm::iterator_deserializer&lt; BV, SerialIterator &gt;::deserialize()</a>, <a class="el" href="a00096_source.html#l01316">bm::deserializer&lt; BV, DEC &gt;::deserialize_gap()</a>, <a class="el" href="a00096_source.html#l00709">bm::serializer&lt; BV &gt;::encode_gap_block()</a>, <a class="el" href="a00096_source.html#l00625">bm::serializer&lt; BV &gt;::gamma_gap_block()</a>, <a class="el" href="a00093_source.html#l02471">bm::gap_free_elements()</a>, and <a class="el" href="a00096_source.html#l01227">bm::deseriaizer_base&lt; DEC &gt;::read_gap_block()</a>.</p>
 
1495
 
 
1496
</div>
 
1497
</div>
 
1498
<a class="anchor" id="ga1defe73aa4227a0e7204363ac6bb1ac1"></a><!-- doxytag: member="bm::gap_level" ref="ga1defe73aa4227a0e7204363ac6bb1ac1" args="(const T *buf)" -->
 
1499
<div class="memitem">
 
1500
<div class="memproto">
 
1501
<div class="memtemplate">
 
1502
template&lt;typename T &gt; </div>
 
1503
      <table class="memname">
 
1504
        <tr>
 
1505
          <td class="memname">unsigned bm::gap_level </td>
 
1506
          <td>(</td>
 
1507
          <td class="paramtype">const T *&nbsp;</td>
 
1508
          <td class="paramname"> <em>buf</em></td>
 
1509
          <td>&nbsp;)&nbsp;</td>
 
1510
          <td><code> [inline]</code></td>
 
1511
        </tr>
 
1512
      </table>
 
1513
</div>
 
1514
<div class="memdoc">
 
1515
 
 
1516
<p>Returs GAP blocks capacity level. </p>
 
1517
<dl><dt><b>Parameters:</b></dt><dd>
 
1518
  <table border="0" cellspacing="2" cellpadding="0">
 
1519
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
1520
  </table>
 
1521
  </dd>
 
1522
</dl>
 
1523
<dl class="return"><dt><b>Returns:</b></dt><dd>GAP block capacity level. </dd></dl>
 
1524
 
 
1525
<p>Definition at line <a class="el" href="a00093_source.html#l02420">2420</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1526
 
 
1527
</div>
 
1528
</div>
 
1529
<a class="anchor" id="ga94a5371b5dc6a1560d95d7c2dde88815"></a><!-- doxytag: member="bm::gap_limit" ref="ga94a5371b5dc6a1560d95d7c2dde88815" args="(const T *buf, const T *glevel_len)" -->
 
1530
<div class="memitem">
 
1531
<div class="memproto">
 
1532
<div class="memtemplate">
 
1533
template&lt;typename T &gt; </div>
 
1534
      <table class="memname">
 
1535
        <tr>
 
1536
          <td class="memname">unsigned bm::gap_limit </td>
 
1537
          <td>(</td>
 
1538
          <td class="paramtype">const T *&nbsp;</td>
 
1539
          <td class="paramname"> <em>buf</em>, </td>
 
1540
        </tr>
 
1541
        <tr>
 
1542
          <td class="paramkey"></td>
 
1543
          <td></td>
 
1544
          <td class="paramtype">const T *&nbsp;</td>
 
1545
          <td class="paramname"> <em>glevel_len</em></td><td>&nbsp;</td>
 
1546
        </tr>
 
1547
        <tr>
 
1548
          <td></td>
 
1549
          <td>)</td>
 
1550
          <td></td><td></td><td><code> [inline]</code></td>
 
1551
        </tr>
 
1552
      </table>
 
1553
</div>
 
1554
<div class="memdoc">
 
1555
 
 
1556
<p>Returs GAP block capacity limit. </p>
 
1557
<dl><dt><b>Parameters:</b></dt><dd>
 
1558
  <table border="0" cellspacing="2" cellpadding="0">
 
1559
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
1560
    <tr><td valign="top"></td><td valign="top"><em>glevel_len</em>&nbsp;</td><td>- GAP lengths table (<a class="el" href="a00066.html" title="Default GAP lengths table.">gap_len_table</a>) </td></tr>
 
1561
  </table>
 
1562
  </dd>
 
1563
</dl>
 
1564
<dl class="return"><dt><b>Returns:</b></dt><dd>GAP block limit. </dd></dl>
 
1565
 
 
1566
<p>Definition at line <a class="el" href="a00093_source.html#l02407">2407</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1567
 
 
1568
<p>Referenced by <a class="el" href="a00089_source.html#l01141">bm::combine_or()</a>, <a class="el" href="a00089_source.html#l01304">bm::combine_sub()</a>, and <a class="el" href="a00089_source.html#l01220">bm::combine_xor()</a>.</p>
 
1569
 
 
1570
</div>
 
1571
</div>
 
1572
<a class="anchor" id="gac18d7da0492983802511999a4ad0764a"></a><!-- doxytag: member="bm::gap_operation_and" ref="gac18d7da0492983802511999a4ad0764a" args="(const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &amp;dsize)" -->
 
1573
<div class="memitem">
 
1574
<div class="memproto">
 
1575
      <table class="memname">
 
1576
        <tr>
 
1577
          <td class="memname">BMFORCEINLINE gap_word_t* bm::gap_operation_and </td>
 
1578
          <td>(</td>
 
1579
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1580
          <td class="paramname"> <em>vect1</em>, </td>
 
1581
        </tr>
 
1582
        <tr>
 
1583
          <td class="paramkey"></td>
 
1584
          <td></td>
 
1585
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1586
          <td class="paramname"> <em>vect2</em>, </td>
 
1587
        </tr>
 
1588
        <tr>
 
1589
          <td class="paramkey"></td>
 
1590
          <td></td>
 
1591
          <td class="paramtype">gap_word_t *BMRESTRICT&nbsp;</td>
 
1592
          <td class="paramname"> <em>tmp_buf</em>, </td>
 
1593
        </tr>
 
1594
        <tr>
 
1595
          <td class="paramkey"></td>
 
1596
          <td></td>
 
1597
          <td class="paramtype">unsigned &amp;&nbsp;</td>
 
1598
          <td class="paramname"> <em>dsize</em></td><td>&nbsp;</td>
 
1599
        </tr>
 
1600
        <tr>
 
1601
          <td></td>
 
1602
          <td>)</td>
 
1603
          <td></td><td></td><td></td>
 
1604
        </tr>
 
1605
      </table>
 
1606
</div>
 
1607
<div class="memdoc">
 
1608
 
 
1609
<p>GAP AND operation. </p>
 
1610
<p>Function performs AND logical operation on gap vectors. If possible function put the result into vect1 and returns this pointer. Otherwise result is put into tmp_buf, which should be twice of the vector size.</p>
 
1611
<dl><dt><b>Parameters:</b></dt><dd>
 
1612
  <table border="0" cellspacing="2" cellpadding="0">
 
1613
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 </td></tr>
 
1614
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 </td></tr>
 
1615
    <tr><td valign="top"></td><td valign="top"><em>tmp_buf</em>&nbsp;</td><td>- pointer on temporary buffer </td></tr>
 
1616
    <tr><td valign="top"></td><td valign="top"><em>dsize</em>&nbsp;</td><td>- out size of the destination </td></tr>
 
1617
  </table>
 
1618
  </dd>
 
1619
</dl>
 
1620
<dl class="return"><dt><b>Returns:</b></dt><dd>Result pointer (tmp_buf OR vect1) </dd></dl>
 
1621
 
 
1622
<p>Definition at line <a class="el" href="a00093_source.html#l03186">3186</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1623
 
 
1624
<p>References <a class="el" href="a00093_source.html#l03143">bm::and_op()</a>, and <a class="el" href="a00093_source.html#l00933">bm::gap_buff_op()</a>.</p>
 
1625
 
 
1626
</div>
 
1627
</div>
 
1628
<a class="anchor" id="ga58e0312d3ab0551e883176b170c0a3e8"></a><!-- doxytag: member="bm::gap_operation_any_and" ref="ga58e0312d3ab0551e883176b170c0a3e8" args="(const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)" -->
 
1629
<div class="memitem">
 
1630
<div class="memproto">
 
1631
      <table class="memname">
 
1632
        <tr>
 
1633
          <td class="memname">BMFORCEINLINE unsigned bm::gap_operation_any_and </td>
 
1634
          <td>(</td>
 
1635
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1636
          <td class="paramname"> <em>vect1</em>, </td>
 
1637
        </tr>
 
1638
        <tr>
 
1639
          <td class="paramkey"></td>
 
1640
          <td></td>
 
1641
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1642
          <td class="paramname"> <em>vect2</em></td><td>&nbsp;</td>
 
1643
        </tr>
 
1644
        <tr>
 
1645
          <td></td>
 
1646
          <td>)</td>
 
1647
          <td></td><td></td><td></td>
 
1648
        </tr>
 
1649
      </table>
 
1650
</div>
 
1651
<div class="memdoc">
 
1652
 
 
1653
<p>GAP AND operation test. </p>
 
1654
<p>Function performs AND logical operation on gap vectors. If possible function put the result into vect1 and returns this pointer. Otherwise result is put into tmp_buf, which should be twice of the vector size.</p>
 
1655
<dl><dt><b>Parameters:</b></dt><dd>
 
1656
  <table border="0" cellspacing="2" cellpadding="0">
 
1657
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 </td></tr>
 
1658
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 </td></tr>
 
1659
  </table>
 
1660
  </dd>
 
1661
</dl>
 
1662
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if operation returns any 1 bit </dd></dl>
 
1663
 
 
1664
<p>Definition at line <a class="el" href="a00093_source.html#l03210">3210</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1665
 
 
1666
<p>References <a class="el" href="a00093_source.html#l03143">bm::and_op()</a>, and <a class="el" href="a00093_source.html#l01015">bm::gap_buff_any_op()</a>.</p>
 
1667
 
 
1668
<p>Referenced by <a class="el" href="a00089_source.html#l00366">bm::combine_any_operation_with_block()</a>.</p>
 
1669
 
 
1670
</div>
 
1671
</div>
 
1672
<a class="anchor" id="ga1c9b33d00f74206ad655dc2cef52428b"></a><!-- doxytag: member="bm::gap_operation_any_sub" ref="ga1c9b33d00f74206ad655dc2cef52428b" args="(const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)" -->
 
1673
<div class="memitem">
 
1674
<div class="memproto">
 
1675
      <table class="memname">
 
1676
        <tr>
 
1677
          <td class="memname">BMFORCEINLINE unsigned bm::gap_operation_any_sub </td>
 
1678
          <td>(</td>
 
1679
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1680
          <td class="paramname"> <em>vect1</em>, </td>
 
1681
        </tr>
 
1682
        <tr>
 
1683
          <td class="paramkey"></td>
 
1684
          <td></td>
 
1685
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1686
          <td class="paramname"> <em>vect2</em></td><td>&nbsp;</td>
 
1687
        </tr>
 
1688
        <tr>
 
1689
          <td></td>
 
1690
          <td>)</td>
 
1691
          <td></td><td></td><td></td>
 
1692
        </tr>
 
1693
      </table>
 
1694
</div>
 
1695
<div class="memdoc">
 
1696
 
 
1697
<p>GAP SUB operation test. </p>
 
1698
<p>Function performs AND logical operation on gap vectors. If possible function put the result into vect1 and returns this pointer. Otherwise result is put into tmp_buf, which should be twice of the vector size.</p>
 
1699
<dl><dt><b>Parameters:</b></dt><dd>
 
1700
  <table border="0" cellspacing="2" cellpadding="0">
 
1701
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 </td></tr>
 
1702
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 </td></tr>
 
1703
  </table>
 
1704
  </dd>
 
1705
</dl>
 
1706
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if operation returns any 1 bit </dd></dl>
 
1707
 
 
1708
<p>Definition at line <a class="el" href="a00093_source.html#l03388">3388</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1709
 
 
1710
<p>References <a class="el" href="a00093_source.html#l03143">bm::and_op()</a>, and <a class="el" href="a00093_source.html#l01015">bm::gap_buff_any_op()</a>.</p>
 
1711
 
 
1712
<p>Referenced by <a class="el" href="a00089_source.html#l00366">bm::combine_any_operation_with_block()</a>.</p>
 
1713
 
 
1714
</div>
 
1715
</div>
 
1716
<a class="anchor" id="gab8800dff60eb05404a83159035e8e72f"></a><!-- doxytag: member="bm::gap_operation_any_xor" ref="gab8800dff60eb05404a83159035e8e72f" args="(const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)" -->
 
1717
<div class="memitem">
 
1718
<div class="memproto">
 
1719
      <table class="memname">
 
1720
        <tr>
 
1721
          <td class="memname">BMFORCEINLINE unsigned bm::gap_operation_any_xor </td>
 
1722
          <td>(</td>
 
1723
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1724
          <td class="paramname"> <em>vect1</em>, </td>
 
1725
        </tr>
 
1726
        <tr>
 
1727
          <td class="paramkey"></td>
 
1728
          <td></td>
 
1729
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1730
          <td class="paramname"> <em>vect2</em></td><td>&nbsp;</td>
 
1731
        </tr>
 
1732
        <tr>
 
1733
          <td></td>
 
1734
          <td>)</td>
 
1735
          <td></td><td></td><td></td>
 
1736
        </tr>
 
1737
      </table>
 
1738
</div>
 
1739
<div class="memdoc">
 
1740
 
 
1741
<p>GAP XOR operation test. </p>
 
1742
<p>Function performs AND logical operation on gap vectors. If possible function put the result into vect1 and returns this pointer. Otherwise result is put into tmp_buf, which should be twice of the vector size.</p>
 
1743
<dl><dt><b>Parameters:</b></dt><dd>
 
1744
  <table border="0" cellspacing="2" cellpadding="0">
 
1745
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 </td></tr>
 
1746
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 </td></tr>
 
1747
  </table>
 
1748
  </dd>
 
1749
</dl>
 
1750
<dl class="return"><dt><b>Returns:</b></dt><dd>non zero value if operation returns any 1 bit </dd></dl>
 
1751
 
 
1752
<p>Definition at line <a class="el" href="a00093_source.html#l03277">3277</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1753
 
 
1754
<p>References <a class="el" href="a00093_source.html#l01015">bm::gap_buff_any_op()</a>, and <a class="el" href="a00093_source.html#l03150">bm::xor_op()</a>.</p>
 
1755
 
 
1756
<p>Referenced by <a class="el" href="a00089_source.html#l00366">bm::combine_any_operation_with_block()</a>.</p>
 
1757
 
 
1758
</div>
 
1759
</div>
 
1760
<a class="anchor" id="gacda280af8910ae5fde37731a3a7a1226"></a><!-- doxytag: member="bm::gap_operation_or" ref="gacda280af8910ae5fde37731a3a7a1226" args="(const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &amp;dsize)" -->
 
1761
<div class="memitem">
 
1762
<div class="memproto">
 
1763
      <table class="memname">
 
1764
        <tr>
 
1765
          <td class="memname">gap_word_t* bm::gap_operation_or </td>
 
1766
          <td>(</td>
 
1767
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1768
          <td class="paramname"> <em>vect1</em>, </td>
 
1769
        </tr>
 
1770
        <tr>
 
1771
          <td class="paramkey"></td>
 
1772
          <td></td>
 
1773
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1774
          <td class="paramname"> <em>vect2</em>, </td>
 
1775
        </tr>
 
1776
        <tr>
 
1777
          <td class="paramkey"></td>
 
1778
          <td></td>
 
1779
          <td class="paramtype">gap_word_t *BMRESTRICT&nbsp;</td>
 
1780
          <td class="paramname"> <em>tmp_buf</em>, </td>
 
1781
        </tr>
 
1782
        <tr>
 
1783
          <td class="paramkey"></td>
 
1784
          <td></td>
 
1785
          <td class="paramtype">unsigned &amp;&nbsp;</td>
 
1786
          <td class="paramname"> <em>dsize</em></td><td>&nbsp;</td>
 
1787
        </tr>
 
1788
        <tr>
 
1789
          <td></td>
 
1790
          <td>)</td>
 
1791
          <td></td><td></td><td><code> [inline]</code></td>
 
1792
        </tr>
 
1793
      </table>
 
1794
</div>
 
1795
<div class="memdoc">
 
1796
 
 
1797
<p>GAP OR operation. </p>
 
1798
<p>Function performs OR logical oparation on gap vectors. If possible function put the result into vect1 and returns this pointer. Otherwise result is put into tmp_buf, which should be twice of the vector size.</p>
 
1799
<dl><dt><b>Parameters:</b></dt><dd>
 
1800
  <table border="0" cellspacing="2" cellpadding="0">
 
1801
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 </td></tr>
 
1802
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 </td></tr>
 
1803
    <tr><td valign="top"></td><td valign="top"><em>tmp_buf</em>&nbsp;</td><td>- pointer on temporary buffer </td></tr>
 
1804
    <tr><td valign="top"></td><td valign="top"><em>dsize</em>&nbsp;</td><td>- out destination size</td></tr>
 
1805
  </table>
 
1806
  </dd>
 
1807
</dl>
 
1808
<dl class="return"><dt><b>Returns:</b></dt><dd>Result pointer (tmp_buf) </dd></dl>
 
1809
 
 
1810
<p>Definition at line <a class="el" href="a00093_source.html#l03318">3318</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1811
 
 
1812
<p>References <a class="el" href="a00093_source.html#l03143">bm::and_op()</a>, <a class="el" href="a00093_source.html#l00933">bm::gap_buff_op()</a>, and <a class="el" href="a00093_source.html#l02320">bm::gap_invert()</a>.</p>
 
1813
 
 
1814
<p>Referenced by <a class="el" href="a00089_source.html#l00366">bm::combine_any_operation_with_block()</a>.</p>
 
1815
 
 
1816
</div>
 
1817
</div>
 
1818
<a class="anchor" id="gabe4c83e5e162c38e297116dd1cd05ac4"></a><!-- doxytag: member="bm::gap_operation_sub" ref="gabe4c83e5e162c38e297116dd1cd05ac4" args="(const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &amp;dsize)" -->
 
1819
<div class="memitem">
 
1820
<div class="memproto">
 
1821
      <table class="memname">
 
1822
        <tr>
 
1823
          <td class="memname">gap_word_t* bm::gap_operation_sub </td>
 
1824
          <td>(</td>
 
1825
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1826
          <td class="paramname"> <em>vect1</em>, </td>
 
1827
        </tr>
 
1828
        <tr>
 
1829
          <td class="paramkey"></td>
 
1830
          <td></td>
 
1831
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1832
          <td class="paramname"> <em>vect2</em>, </td>
 
1833
        </tr>
 
1834
        <tr>
 
1835
          <td class="paramkey"></td>
 
1836
          <td></td>
 
1837
          <td class="paramtype">gap_word_t *BMRESTRICT&nbsp;</td>
 
1838
          <td class="paramname"> <em>tmp_buf</em>, </td>
 
1839
        </tr>
 
1840
        <tr>
 
1841
          <td class="paramkey"></td>
 
1842
          <td></td>
 
1843
          <td class="paramtype">unsigned &amp;&nbsp;</td>
 
1844
          <td class="paramname"> <em>dsize</em></td><td>&nbsp;</td>
 
1845
        </tr>
 
1846
        <tr>
 
1847
          <td></td>
 
1848
          <td>)</td>
 
1849
          <td></td><td></td><td><code> [inline]</code></td>
 
1850
        </tr>
 
1851
      </table>
 
1852
</div>
 
1853
<div class="memdoc">
 
1854
 
 
1855
<p>GAP SUB (AND NOT) operation. </p>
 
1856
<p>Function performs SUB logical operation on gap vectors. If possible function put the result into vect1 and returns this pointer. Otherwise result is put into tmp_buf, which should be twice of the vector size.</p>
 
1857
<dl><dt><b>Parameters:</b></dt><dd>
 
1858
  <table border="0" cellspacing="2" cellpadding="0">
 
1859
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 </td></tr>
 
1860
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 </td></tr>
 
1861
    <tr><td valign="top"></td><td valign="top"><em>tmp_buf</em>&nbsp;</td><td>- pointer on temporary buffer </td></tr>
 
1862
    <tr><td valign="top"></td><td valign="top"><em>dsize</em>&nbsp;</td><td>- out destination size</td></tr>
 
1863
  </table>
 
1864
  </dd>
 
1865
</dl>
 
1866
<dl class="return"><dt><b>Returns:</b></dt><dd>Result pointer (tmp_buf) </dd></dl>
 
1867
 
 
1868
<p>Definition at line <a class="el" href="a00093_source.html#l03363">3363</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1869
 
 
1870
<p>References <a class="el" href="a00093_source.html#l03143">bm::and_op()</a>, and <a class="el" href="a00093_source.html#l00933">bm::gap_buff_op()</a>.</p>
 
1871
 
 
1872
</div>
 
1873
</div>
 
1874
<a class="anchor" id="ga72d2d3933b4410413eeb02e9ee0a910d"></a><!-- doxytag: member="bm::gap_operation_xor" ref="ga72d2d3933b4410413eeb02e9ee0a910d" args="(const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &amp;dsize)" -->
 
1875
<div class="memitem">
 
1876
<div class="memproto">
 
1877
      <table class="memname">
 
1878
        <tr>
 
1879
          <td class="memname">BMFORCEINLINE gap_word_t* bm::gap_operation_xor </td>
 
1880
          <td>(</td>
 
1881
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1882
          <td class="paramname"> <em>vect1</em>, </td>
 
1883
        </tr>
 
1884
        <tr>
 
1885
          <td class="paramkey"></td>
 
1886
          <td></td>
 
1887
          <td class="paramtype">const gap_word_t *BMRESTRICT&nbsp;</td>
 
1888
          <td class="paramname"> <em>vect2</em>, </td>
 
1889
        </tr>
 
1890
        <tr>
 
1891
          <td class="paramkey"></td>
 
1892
          <td></td>
 
1893
          <td class="paramtype">gap_word_t *BMRESTRICT&nbsp;</td>
 
1894
          <td class="paramname"> <em>tmp_buf</em>, </td>
 
1895
        </tr>
 
1896
        <tr>
 
1897
          <td class="paramkey"></td>
 
1898
          <td></td>
 
1899
          <td class="paramtype">unsigned &amp;&nbsp;</td>
 
1900
          <td class="paramname"> <em>dsize</em></td><td>&nbsp;</td>
 
1901
        </tr>
 
1902
        <tr>
 
1903
          <td></td>
 
1904
          <td>)</td>
 
1905
          <td></td><td></td><td></td>
 
1906
        </tr>
 
1907
      </table>
 
1908
</div>
 
1909
<div class="memdoc">
 
1910
 
 
1911
<p>GAP XOR operation. </p>
 
1912
<p>Function performs XOR logical operation on gap vectors. If possible function put the result into vect1 and returns this pointer. Otherwise result is put into tmp_buf, which should be twice of the vector size.</p>
 
1913
<dl><dt><b>Parameters:</b></dt><dd>
 
1914
  <table border="0" cellspacing="2" cellpadding="0">
 
1915
    <tr><td valign="top"></td><td valign="top"><em>vect1</em>&nbsp;</td><td>- operand 1 </td></tr>
 
1916
    <tr><td valign="top"></td><td valign="top"><em>vect2</em>&nbsp;</td><td>- operand 2 </td></tr>
 
1917
    <tr><td valign="top"></td><td valign="top"><em>tmp_buf</em>&nbsp;</td><td>- pointer on temporary buffer </td></tr>
 
1918
    <tr><td valign="top"></td><td valign="top"><em>dsize</em>&nbsp;</td><td>- out destination size </td></tr>
 
1919
  </table>
 
1920
  </dd>
 
1921
</dl>
 
1922
<dl class="return"><dt><b>Returns:</b></dt><dd>Result pointer (tmp_buf) </dd></dl>
 
1923
 
 
1924
<p>Definition at line <a class="el" href="a00093_source.html#l03252">3252</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1925
 
 
1926
<p>References <a class="el" href="a00093_source.html#l00933">bm::gap_buff_op()</a>, and <a class="el" href="a00093_source.html#l03150">bm::xor_op()</a>.</p>
 
1927
 
 
1928
</div>
 
1929
</div>
 
1930
<a class="anchor" id="gacc578010f3700940829c600c812d23b1"></a><!-- doxytag: member="bm::gap_overhead" ref="gacc578010f3700940829c600c812d23b1" args="(const T *length, const T *length_end, const T *glevel_len)" -->
 
1931
<div class="memitem">
 
1932
<div class="memproto">
 
1933
<div class="memtemplate">
 
1934
template&lt;typename T &gt; </div>
 
1935
      <table class="memname">
 
1936
        <tr>
 
1937
          <td class="memname">unsigned bm::gap_overhead </td>
 
1938
          <td>(</td>
 
1939
          <td class="paramtype">const T *&nbsp;</td>
 
1940
          <td class="paramname"> <em>length</em>, </td>
 
1941
        </tr>
 
1942
        <tr>
 
1943
          <td class="paramkey"></td>
 
1944
          <td></td>
 
1945
          <td class="paramtype">const T *&nbsp;</td>
 
1946
          <td class="paramname"> <em>length_end</em>, </td>
 
1947
        </tr>
 
1948
        <tr>
 
1949
          <td class="paramkey"></td>
 
1950
          <td></td>
 
1951
          <td class="paramtype">const T *&nbsp;</td>
 
1952
          <td class="paramname"> <em>glevel_len</em></td><td>&nbsp;</td>
 
1953
        </tr>
 
1954
        <tr>
 
1955
          <td></td>
 
1956
          <td>)</td>
 
1957
          <td></td><td></td><td><code> [inline]</code></td>
 
1958
        </tr>
 
1959
      </table>
 
1960
</div>
 
1961
<div class="memdoc">
 
1962
 
 
1963
<p>Convert bit block into an array of ints corresponding to 1 bits. </p>
 
1964
<p>OBSOLETE function</p>
 
1965
<p>Calculates memory overhead for number of gap blocks sharing the same memory allocation table (level lengths table). </p>
 
1966
 
 
1967
<p>Definition at line <a class="el" href="a00093_source.html#l04847">4847</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
1968
 
 
1969
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00093_source.html#l02450">bm::gap_calc_level()</a>, and <a class="el" href="a00091_source.html#l00075">bm::gap_levels</a>.</p>
 
1970
 
 
1971
<p>Referenced by <a class="el" href="a00093_source.html#l04874">bm::improve_gap_levels()</a>.</p>
 
1972
 
 
1973
</div>
 
1974
</div>
 
1975
<a class="anchor" id="gaef53b2877ff369badd7bb25b26bb9029"></a><!-- doxytag: member="bm::gap_set_all" ref="gaef53b2877ff369badd7bb25b26bb9029" args="(T *buf, unsigned set_max, unsigned value)" -->
 
1976
<div class="memitem">
 
1977
<div class="memproto">
 
1978
<div class="memtemplate">
 
1979
template&lt;class T &gt; </div>
 
1980
      <table class="memname">
 
1981
        <tr>
 
1982
          <td class="memname">void bm::gap_set_all </td>
 
1983
          <td>(</td>
 
1984
          <td class="paramtype">T *&nbsp;</td>
 
1985
          <td class="paramname"> <em>buf</em>, </td>
 
1986
        </tr>
 
1987
        <tr>
 
1988
          <td class="paramkey"></td>
 
1989
          <td></td>
 
1990
          <td class="paramtype">unsigned&nbsp;</td>
 
1991
          <td class="paramname"> <em>set_max</em>, </td>
 
1992
        </tr>
 
1993
        <tr>
 
1994
          <td class="paramkey"></td>
 
1995
          <td></td>
 
1996
          <td class="paramtype">unsigned&nbsp;</td>
 
1997
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
 
1998
        </tr>
 
1999
        <tr>
 
2000
          <td></td>
 
2001
          <td>)</td>
 
2002
          <td></td><td></td><td><code> [inline]</code></td>
 
2003
        </tr>
 
2004
      </table>
 
2005
</div>
 
2006
<div class="memdoc">
 
2007
 
 
2008
<p>Sets all bits to 0 or 1 (GAP). </p>
 
2009
<dl><dt><b>Parameters:</b></dt><dd>
 
2010
  <table border="0" cellspacing="2" cellpadding="0">
 
2011
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
2012
    <tr><td valign="top"></td><td valign="top"><em>set_max</em>&nbsp;</td><td>- max possible bitset length </td></tr>
 
2013
  </table>
 
2014
  </dd>
 
2015
</dl>
 
2016
 
 
2017
<p>Definition at line <a class="el" href="a00093_source.html#l02249">2249</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
2018
 
 
2019
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>.</p>
 
2020
 
 
2021
<p>Referenced by <a class="el" href="a00093_source.html#l02270">bm::gap_init_range_block()</a>, and <a class="el" href="a00096_source.html#l01227">bm::deseriaizer_base&lt; DEC &gt;::read_gap_block()</a>.</p>
 
2022
 
 
2023
</div>
 
2024
</div>
 
2025
<a class="anchor" id="ga550394048c163d41a135fb9068f2251b"></a><!-- doxytag: member="bm::gap_set_array" ref="ga550394048c163d41a135fb9068f2251b" args="(T *buf, const T *arr, unsigned len)" -->
 
2026
<div class="memitem">
 
2027
<div class="memproto">
 
2028
<div class="memtemplate">
 
2029
template&lt;typename T &gt; </div>
 
2030
      <table class="memname">
 
2031
        <tr>
 
2032
          <td class="memname">unsigned bm::gap_set_array </td>
 
2033
          <td>(</td>
 
2034
          <td class="paramtype">T *&nbsp;</td>
 
2035
          <td class="paramname"> <em>buf</em>, </td>
 
2036
        </tr>
 
2037
        <tr>
 
2038
          <td class="paramkey"></td>
 
2039
          <td></td>
 
2040
          <td class="paramtype">const T *&nbsp;</td>
 
2041
          <td class="paramname"> <em>arr</em>, </td>
 
2042
        </tr>
 
2043
        <tr>
 
2044
          <td class="paramkey"></td>
 
2045
          <td></td>
 
2046
          <td class="paramtype">unsigned&nbsp;</td>
 
2047
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
 
2048
        </tr>
 
2049
        <tr>
 
2050
          <td></td>
 
2051
          <td>)</td>
 
2052
          <td></td><td></td><td><code> [inline]</code></td>
 
2053
        </tr>
 
2054
      </table>
 
2055
</div>
 
2056
<div class="memdoc">
 
2057
 
 
2058
<p>Convert array to GAP buffer. </p>
 
2059
<dl><dt><b>Parameters:</b></dt><dd>
 
2060
  <table border="0" cellspacing="2" cellpadding="0">
 
2061
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer. </td></tr>
 
2062
    <tr><td valign="top"></td><td valign="top"><em>arr</em>&nbsp;</td><td>- array of values to set </td></tr>
 
2063
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>- length of the array</td></tr>
 
2064
  </table>
 
2065
  </dd>
 
2066
</dl>
 
2067
<dl class="return"><dt><b>Returns:</b></dt><dd>New GAP buffer length. </dd></dl>
 
2068
 
 
2069
<p>Definition at line <a class="el" href="a00093_source.html#l01346">1346</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
2070
 
 
2071
<p>References <a class="el" href="a00091_source.html#l00072">bm::gap_max_bits</a>.</p>
 
2072
 
 
2073
<p>Referenced by <a class="el" href="a00096_source.html#l01316">bm::deserializer&lt; BV, DEC &gt;::deserialize_gap()</a>, and <a class="el" href="a00096_source.html#l01227">bm::deseriaizer_base&lt; DEC &gt;::read_gap_block()</a>.</p>
 
2074
 
 
2075
</div>
 
2076
</div>
 
2077
<a class="anchor" id="ga69186bd13bda27e04b3e33683ff884c2"></a><!-- doxytag: member="bm::gap_set_value" ref="ga69186bd13bda27e04b3e33683ff884c2" args="(unsigned val, T *BMRESTRICT buf, unsigned pos, unsigned *BMRESTRICT is_set)" -->
 
2078
<div class="memitem">
 
2079
<div class="memproto">
 
2080
<div class="memtemplate">
 
2081
template&lt;typename T &gt; </div>
 
2082
      <table class="memname">
 
2083
        <tr>
 
2084
          <td class="memname">unsigned bm::gap_set_value </td>
 
2085
          <td>(</td>
 
2086
          <td class="paramtype">unsigned&nbsp;</td>
 
2087
          <td class="paramname"> <em>val</em>, </td>
 
2088
        </tr>
 
2089
        <tr>
 
2090
          <td class="paramkey"></td>
 
2091
          <td></td>
 
2092
          <td class="paramtype">T *BMRESTRICT&nbsp;</td>
 
2093
          <td class="paramname"> <em>buf</em>, </td>
 
2094
        </tr>
 
2095
        <tr>
 
2096
          <td class="paramkey"></td>
 
2097
          <td></td>
 
2098
          <td class="paramtype">unsigned&nbsp;</td>
 
2099
          <td class="paramname"> <em>pos</em>, </td>
 
2100
        </tr>
 
2101
        <tr>
 
2102
          <td class="paramkey"></td>
 
2103
          <td></td>
 
2104
          <td class="paramtype">unsigned *BMRESTRICT&nbsp;</td>
 
2105
          <td class="paramname"> <em>is_set</em></td><td>&nbsp;</td>
 
2106
        </tr>
 
2107
        <tr>
 
2108
          <td></td>
 
2109
          <td>)</td>
 
2110
          <td></td><td></td><td><code> [inline]</code></td>
 
2111
        </tr>
 
2112
      </table>
 
2113
</div>
 
2114
<div class="memdoc">
 
2115
 
 
2116
<p>Sets or clears bit in the GAP buffer. </p>
 
2117
<dl><dt><b>Parameters:</b></dt><dd>
 
2118
  <table border="0" cellspacing="2" cellpadding="0">
 
2119
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>- new bit value </td></tr>
 
2120
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer. </td></tr>
 
2121
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>- Index of bit to set. </td></tr>
 
2122
    <tr><td valign="top"></td><td valign="top"><em>is_set</em>&nbsp;</td><td>- (OUT) flag if bit was actually set.</td></tr>
 
2123
  </table>
 
2124
  </dd>
 
2125
</dl>
 
2126
<dl class="return"><dt><b>Returns:</b></dt><dd>New GAP buffer length. </dd></dl>
 
2127
 
 
2128
<p>Definition at line <a class="el" href="a00093_source.html#l01168">1168</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
2129
 
 
2130
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00093_source.html#l00461">bm::gap_bfind()</a>, and <a class="el" href="a00091_source.html#l00072">bm::gap_max_bits</a>.</p>
 
2131
 
 
2132
<p>Referenced by <a class="el" href="a00089_source.html#l01141">bm::combine_or()</a>, <a class="el" href="a00089_source.html#l01304">bm::combine_sub()</a>, <a class="el" href="a00089_source.html#l01220">bm::combine_xor()</a>, and <a class="el" href="a00103_source.html#l00106">bm::miniset&lt; A, N &gt;::set()</a>.</p>
 
2133
 
 
2134
</div>
 
2135
</div>
 
2136
<a class="anchor" id="gabcedad4aea1a503c30f10e6d09b523f2"></a><!-- doxytag: member="bm::gap_sub_to_bitset" ref="gabcedad4aea1a503c30f10e6d09b523f2" args="(unsigned *BMRESTRICT dest, const T *BMRESTRICT buf)" -->
 
2137
<div class="memitem">
 
2138
<div class="memproto">
 
2139
<div class="memtemplate">
 
2140
template&lt;typename T &gt; </div>
 
2141
      <table class="memname">
 
2142
        <tr>
 
2143
          <td class="memname">void bm::gap_sub_to_bitset </td>
 
2144
          <td>(</td>
 
2145
          <td class="paramtype">unsigned *BMRESTRICT&nbsp;</td>
 
2146
          <td class="paramname"> <em>dest</em>, </td>
 
2147
        </tr>
 
2148
        <tr>
 
2149
          <td class="paramkey"></td>
 
2150
          <td></td>
 
2151
          <td class="paramtype">const T *BMRESTRICT&nbsp;</td>
 
2152
          <td class="paramname"> <em>buf</em></td><td>&nbsp;</td>
 
2153
        </tr>
 
2154
        <tr>
 
2155
          <td></td>
 
2156
          <td>)</td>
 
2157
          <td></td><td></td><td><code> [inline]</code></td>
 
2158
        </tr>
 
2159
      </table>
 
2160
</div>
 
2161
<div class="memdoc">
 
2162
 
 
2163
<p>SUB (AND NOT) GAP block to bitblock. </p>
 
2164
<dl><dt><b>Parameters:</b></dt><dd>
 
2165
  <table border="0" cellspacing="2" cellpadding="0">
 
2166
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>- bitblock buffer pointer. </td></tr>
 
2167
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
2168
  </table>
 
2169
  </dd>
 
2170
</dl>
 
2171
 
 
2172
<p>Definition at line <a class="el" href="a00093_source.html#l01677">1677</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
2173
 
 
2174
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00093_source.html#l01553">bm::sub_bit_block()</a>.</p>
 
2175
 
 
2176
</div>
 
2177
</div>
 
2178
<a class="anchor" id="ga866352ef5986a7d2b709795d127b666b"></a><!-- doxytag: member="bm::gap_test" ref="ga866352ef5986a7d2b709795d127b666b" args="(const T *buf, unsigned pos)" -->
 
2179
<div class="memitem">
 
2180
<div class="memproto">
 
2181
<div class="memtemplate">
 
2182
template&lt;typename T &gt; </div>
 
2183
      <table class="memname">
 
2184
        <tr>
 
2185
          <td class="memname">unsigned bm::gap_test </td>
 
2186
          <td>(</td>
 
2187
          <td class="paramtype">const T *&nbsp;</td>
 
2188
          <td class="paramname"> <em>buf</em>, </td>
 
2189
        </tr>
 
2190
        <tr>
 
2191
          <td class="paramkey"></td>
 
2192
          <td></td>
 
2193
          <td class="paramtype">unsigned&nbsp;</td>
 
2194
          <td class="paramname"> <em>pos</em></td><td>&nbsp;</td>
 
2195
        </tr>
 
2196
        <tr>
 
2197
          <td></td>
 
2198
          <td>)</td>
 
2199
          <td></td><td></td><td><code> [inline]</code></td>
 
2200
        </tr>
 
2201
      </table>
 
2202
</div>
 
2203
<div class="memdoc">
 
2204
 
 
2205
<p>Tests if bit = pos is true. </p>
 
2206
<dl><dt><b>Parameters:</b></dt><dd>
 
2207
  <table border="0" cellspacing="2" cellpadding="0">
 
2208
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
2209
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>- index of the element. </td></tr>
 
2210
  </table>
 
2211
  </dd>
 
2212
</dl>
 
2213
<dl class="return"><dt><b>Returns:</b></dt><dd>true if position is in "1" gap </dd></dl>
 
2214
 
 
2215
<p>Definition at line <a class="el" href="a00093_source.html#l00489">489</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
2216
 
 
2217
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00091_source.html#l00072">bm::gap_max_bits</a>.</p>
 
2218
 
 
2219
<p>Referenced by <a class="el" href="a00089_source.html#l01304">bm::combine_sub()</a>, <a class="el" href="a00089_source.html#l01220">bm::combine_xor()</a>, <a class="el" href="a00087_source.html#l01804">bm::bvector&lt; Alloc &gt;::get_bit()</a>, and <a class="el" href="a00103_source.html#l00095">bm::miniset&lt; A, N &gt;::test()</a>.</p>
 
2220
 
 
2221
</div>
 
2222
</div>
 
2223
<a class="anchor" id="ga63c33428c2f5eac9f69d663203cd2172"></a><!-- doxytag: member="bm::gap_xor_to_bitset" ref="ga63c33428c2f5eac9f69d663203cd2172" args="(unsigned *BMRESTRICT dest, const T *BMRESTRICT buf)" -->
 
2224
<div class="memitem">
 
2225
<div class="memproto">
 
2226
<div class="memtemplate">
 
2227
template&lt;typename T &gt; </div>
 
2228
      <table class="memname">
 
2229
        <tr>
 
2230
          <td class="memname">void bm::gap_xor_to_bitset </td>
 
2231
          <td>(</td>
 
2232
          <td class="paramtype">unsigned *BMRESTRICT&nbsp;</td>
 
2233
          <td class="paramname"> <em>dest</em>, </td>
 
2234
        </tr>
 
2235
        <tr>
 
2236
          <td class="paramkey"></td>
 
2237
          <td></td>
 
2238
          <td class="paramtype">const T *BMRESTRICT&nbsp;</td>
 
2239
          <td class="paramname"> <em>buf</em></td><td>&nbsp;</td>
 
2240
        </tr>
 
2241
        <tr>
 
2242
          <td></td>
 
2243
          <td>)</td>
 
2244
          <td></td><td></td><td><code> [inline]</code></td>
 
2245
        </tr>
 
2246
      </table>
 
2247
</div>
 
2248
<div class="memdoc">
 
2249
 
 
2250
<p>XOR GAP block to bitblock. </p>
 
2251
<dl><dt><b>Parameters:</b></dt><dd>
 
2252
  <table border="0" cellspacing="2" cellpadding="0">
 
2253
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>- bitblock buffer pointer. </td></tr>
 
2254
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
2255
  </table>
 
2256
  </dd>
 
2257
</dl>
 
2258
 
 
2259
<p>Definition at line <a class="el" href="a00093_source.html#l01705">1705</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
2260
 
 
2261
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00093_source.html#l01615">bm::xor_bit_block()</a>.</p>
 
2262
 
 
2263
</div>
 
2264
</div>
 
2265
<a class="anchor" id="ga406952734f1b05962941b32e37b3eb96"></a><!-- doxytag: member="bm::gapcmp" ref="ga406952734f1b05962941b32e37b3eb96" args="(const T *buf1, const T *buf2)" -->
 
2266
<div class="memitem">
 
2267
<div class="memproto">
 
2268
<div class="memtemplate">
 
2269
template&lt;typename T &gt; </div>
 
2270
      <table class="memname">
 
2271
        <tr>
 
2272
          <td class="memname">int bm::gapcmp </td>
 
2273
          <td>(</td>
 
2274
          <td class="paramtype">const T *&nbsp;</td>
 
2275
          <td class="paramname"> <em>buf1</em>, </td>
 
2276
        </tr>
 
2277
        <tr>
 
2278
          <td class="paramkey"></td>
 
2279
          <td></td>
 
2280
          <td class="paramtype">const T *&nbsp;</td>
 
2281
          <td class="paramname"> <em>buf2</em></td><td>&nbsp;</td>
 
2282
        </tr>
 
2283
        <tr>
 
2284
          <td></td>
 
2285
          <td>)</td>
 
2286
          <td></td><td></td><td><code> [inline]</code></td>
 
2287
        </tr>
 
2288
      </table>
 
2289
</div>
 
2290
<div class="memdoc">
 
2291
 
 
2292
<p>Lexicographical comparison of GAP buffers. </p>
 
2293
<dl><dt><b>Parameters:</b></dt><dd>
 
2294
  <table border="0" cellspacing="2" cellpadding="0">
 
2295
    <tr><td valign="top"></td><td valign="top"><em>buf1</em>&nbsp;</td><td>- First GAP buffer pointer. </td></tr>
 
2296
    <tr><td valign="top"></td><td valign="top"><em>buf2</em>&nbsp;</td><td>- Second GAP buffer pointer. </td></tr>
 
2297
  </table>
 
2298
  </dd>
 
2299
</dl>
 
2300
<dl class="return"><dt><b>Returns:</b></dt><dd>&lt;0 - less, =0 - equal, &gt;0 - greater. </dd></dl>
 
2301
 
 
2302
<p>Definition at line <a class="el" href="a00093_source.html#l00866">866</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
2303
 
 
2304
<p>Referenced by <a class="el" href="a00087_source.html#l01914">bm::bvector&lt; Alloc &gt;::compare()</a>.</p>
 
2305
 
 
2306
</div>
 
2307
</div>
 
2308
<a class="anchor" id="ga2daff3a0ceda6fef87d3b0e892da5813"></a><!-- doxytag: member="bm::improve_gap_levels" ref="ga2daff3a0ceda6fef87d3b0e892da5813" args="(const T *length, const T *length_end, T *glevel_len)" -->
 
2309
<div class="memitem">
 
2310
<div class="memproto">
 
2311
<div class="memtemplate">
 
2312
template&lt;typename T &gt; </div>
 
2313
      <table class="memname">
 
2314
        <tr>
 
2315
          <td class="memname">bool bm::improve_gap_levels </td>
 
2316
          <td>(</td>
 
2317
          <td class="paramtype">const T *&nbsp;</td>
 
2318
          <td class="paramname"> <em>length</em>, </td>
 
2319
        </tr>
 
2320
        <tr>
 
2321
          <td class="paramkey"></td>
 
2322
          <td></td>
 
2323
          <td class="paramtype">const T *&nbsp;</td>
 
2324
          <td class="paramname"> <em>length_end</em>, </td>
 
2325
        </tr>
 
2326
        <tr>
 
2327
          <td class="paramkey"></td>
 
2328
          <td></td>
 
2329
          <td class="paramtype">T *&nbsp;</td>
 
2330
          <td class="paramname"> <em>glevel_len</em></td><td>&nbsp;</td>
 
2331
        </tr>
 
2332
        <tr>
 
2333
          <td></td>
 
2334
          <td>)</td>
 
2335
          <td></td><td></td><td><code> [inline]</code></td>
 
2336
        </tr>
 
2337
      </table>
 
2338
</div>
 
2339
<div class="memdoc">
 
2340
 
 
2341
<p>Finds optimal gap blocks lengths. </p>
 
2342
<dl><dt><b>Parameters:</b></dt><dd>
 
2343
  <table border="0" cellspacing="2" cellpadding="0">
 
2344
    <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>- first element of GAP lengths array </td></tr>
 
2345
    <tr><td valign="top"></td><td valign="top"><em>length_end</em>&nbsp;</td><td>- end of the GAP lengths array </td></tr>
 
2346
    <tr><td valign="top"></td><td valign="top"><em>glevel_len</em>&nbsp;</td><td>- destination GAP lengths array </td></tr>
 
2347
  </table>
 
2348
  </dd>
 
2349
</dl>
 
2350
 
 
2351
<p>Definition at line <a class="el" href="a00093_source.html#l04874">4874</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
2352
 
 
2353
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00091_source.html#l00075">bm::gap_levels</a>, <a class="el" href="a00091_source.html#l00070">bm::gap_max_buff_len</a>, and <a class="el" href="a00093_source.html#l04847">bm::gap_overhead()</a>.</p>
 
2354
 
 
2355
<p>Referenced by <a class="el" href="a00087_source.html#l01880">bm::bvector&lt; Alloc &gt;::optimize_gap_size()</a>.</p>
 
2356
 
 
2357
</div>
 
2358
</div>
 
2359
<a class="anchor" id="ga501aa9bf029e7f9ea9518e7003fe5549"></a><!-- doxytag: member="bm::set_gap_level" ref="ga501aa9bf029e7f9ea9518e7003fe5549" args="(T *buf, unsigned level)" -->
 
2360
<div class="memitem">
 
2361
<div class="memproto">
 
2362
<div class="memtemplate">
 
2363
template&lt;typename T &gt; </div>
 
2364
      <table class="memname">
 
2365
        <tr>
 
2366
          <td class="memname">void bm::set_gap_level </td>
 
2367
          <td>(</td>
 
2368
          <td class="paramtype">T *&nbsp;</td>
 
2369
          <td class="paramname"> <em>buf</em>, </td>
 
2370
        </tr>
 
2371
        <tr>
 
2372
          <td class="paramkey"></td>
 
2373
          <td></td>
 
2374
          <td class="paramtype">unsigned&nbsp;</td>
 
2375
          <td class="paramname"> <em>level</em></td><td>&nbsp;</td>
 
2376
        </tr>
 
2377
        <tr>
 
2378
          <td></td>
 
2379
          <td>)</td>
 
2380
          <td></td><td></td><td><code> [inline]</code></td>
 
2381
        </tr>
 
2382
      </table>
 
2383
</div>
 
2384
<div class="memdoc">
 
2385
 
 
2386
<p>Sets GAP block capacity level. </p>
 
2387
<dl><dt><b>Parameters:</b></dt><dd>
 
2388
  <table border="0" cellspacing="2" cellpadding="0">
 
2389
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>- GAP buffer pointer. </td></tr>
 
2390
    <tr><td valign="top"></td><td valign="top"><em>level</em>&nbsp;</td><td>new GAP block capacity level. </td></tr>
 
2391
  </table>
 
2392
  </dd>
 
2393
</dl>
 
2394
 
 
2395
<p>Definition at line <a class="el" href="a00093_source.html#l02434">2434</a> of file <a class="el" href="a00093_source.html">bmfunc.h</a>.</p>
 
2396
 
 
2397
<p>References <a class="el" href="a00092_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00091_source.html#l00075">bm::gap_levels</a>.</p>
 
2398
 
 
2399
<p>Referenced by <a class="el" href="a00096_source.html#l03319">bm::iterator_deserializer&lt; BV, SerialIterator &gt;::deserialize()</a>, and <a class="el" href="a00096_source.html#l01316">bm::deserializer&lt; BV, DEC &gt;::deserialize_gap()</a>.</p>
 
2400
 
 
2401
</div>
 
2402
</div>
 
2403
</div>
 
2404
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Apr 25 09:37:39 2010 for BitMagic by&nbsp;
95
2405
<a href="http://www.doxygen.org/index.html">
96
2406
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
97
2407
</body>