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

« back to all changes in this revision

Viewing changes to html/a00133.html

  • Committer: Bazaar Package Importer
  • Author(s): Andres Salomon
  • Date: 2008-01-05 23:58:56 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080105235856-2kmxhxkz14qjy9ia
Tags: 3.5.0-1
* New upstream release.
* Add tcpp.dpatch.  This stops tests/stress/t.cpp from including
  ncbi_pch.hpp.  As far as I can tell, NCBI is not used at all, I have
  no idea where that came from..
* Silence some lintian warnings; binary-arch-rules-but-pkg-is-arch-indep
  and ancient-standards-version.

Show diffs side-by-side

added added

removed removed

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