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

« back to all changes in this revision

Viewing changes to html/a00084.html

  • Committer: Bazaar Package Importer
  • Author(s): Roberto C. Sanchez
  • Date: 2009-10-30 18:48:35 UTC
  • mfrom: (4.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20091030184835-2tqroygiq2pevwij
Tags: 3.6.0-1
New upstream release

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: bm::bvector&lt; Alloc, MS &gt; Class Template Reference</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
 
<div class="nav">
9
 
<a class="el" href="a00129.html">bm</a>::<a class="el" href="a00084.html">bvector</a></div>
10
 
<h1>bm::bvector&lt; Alloc, MS &gt; Class Template Reference<br>
11
 
<small>
12
 
[<a class="el" href="a00132.html">The Main bvector&lt;&gt; Group</a>]</small>
13
 
</h1>bitvector with runtime compression of bits.  
14
 
<a href="#_details">More...</a>
15
 
<p>
16
 
<code>#include &lt;<a class="el" href="a00137.html">bm.h</a>&gt;</code>
17
 
<p>
18
 
<table border="0" cellpadding="0" cellspacing="0">
19
 
<tr><td></td></tr>
20
 
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
21
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Alloc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#w0">allocator_type</a></td></tr>
22
 
 
23
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef blocks_manager&lt; Alloc,<br>
24
 
 MS &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#w1">blocks_manager_type</a></td></tr>
25
 
 
26
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#w2">size_type</a></td></tr>
27
 
 
28
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type used to count bits in the bit vector.  <a href="#w2"></a><br></td></tr>
29
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#w3">const_reference</a></td></tr>
30
 
 
31
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#w7">optmode</a> { <a class="el" href="a00084.html#w7w4">opt_free_0</a> =  1, 
32
 
<a class="el" href="a00084.html#w7w5">opt_free_01</a> =  2, 
33
 
<a class="el" href="a00084.html#w7w6">opt_compress</a> =  3
34
 
 }</td></tr>
35
 
 
36
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Optimization mode Every next level means additional checks (better compression vs time).  <a href="a00084.html#w7">More...</a><br></td></tr>
37
 
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
38
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a0">bvector</a> (<a class="el" href="a00132.html#ga0">strategy</a> strat=BM_BIT, const <a class="el" href="a00129.html#a36">gap_word_t</a> *glevel_len=<a class="el" href="a00104.html">bm::gap_len_table</a>&lt; true &gt;::_len, <a class="el" href="a00084.html#w2">size_type</a> bv_size=<a class="el" href="a00129.html#a29">bm::id_max</a>, const Alloc &amp;alloc=Alloc())</td></tr>
39
 
 
40
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs bvector class.  <a href="#a0"></a><br></td></tr>
41
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a1">bvector</a> (<a class="el" href="a00084.html#w2">size_type</a> bv_size, <a class="el" href="a00132.html#ga0">strategy</a> strat=BM_BIT, const <a class="el" href="a00129.html#a36">gap_word_t</a> *glevel_len=<a class="el" href="a00104.html">bm::gap_len_table</a>&lt; true &gt;::_len, const Alloc &amp;alloc=Alloc())</td></tr>
42
 
 
43
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructs bvector class.  <a href="#a1"></a><br></td></tr>
44
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a2">bvector</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>)</td></tr>
45
 
 
46
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a3">operator=</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>)</td></tr>
47
 
 
48
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html">reference</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a4">operator[]</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n)</td></tr>
49
 
 
50
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a5">operator[]</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n) const </td></tr>
51
 
 
52
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a6">operator &amp;=</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>)</td></tr>
53
 
 
54
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a7">operator^=</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>)</td></tr>
55
 
 
56
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a8">operator|=</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>)</td></tr>
57
 
 
58
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a9">operator-=</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>)</td></tr>
59
 
 
60
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a10">operator&lt;</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>) const </td></tr>
61
 
 
62
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a11">operator&lt;=</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>) const </td></tr>
63
 
 
64
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a12">operator&gt;</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>) const </td></tr>
65
 
 
66
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a13">operator&gt;=</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>) const </td></tr>
67
 
 
68
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a14">operator==</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>) const </td></tr>
69
 
 
70
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a15">operator!=</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>) const </td></tr>
71
 
 
72
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a16">operator~</a> () const </td></tr>
73
 
 
74
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">Alloc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a17">get_allocator</a> () const </td></tr>
75
 
 
76
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a18">set_bit</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n, bool val=true)</td></tr>
77
 
 
78
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets bit n.  <a href="#a18"></a><br></td></tr>
79
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a19">set_bit_and</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n, bool val=true)</td></tr>
80
 
 
81
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets bit n using bit AND with the provided value.  <a href="#a19"></a><br></td></tr>
82
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a20">set_bit_conditional</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n, bool val, bool condition)</td></tr>
83
 
 
84
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets bit n only if current value is equal to the condition.  <a href="#a20"></a><br></td></tr>
85
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a21">set</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n, bool val=true)</td></tr>
86
 
 
87
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets bit n if val is true, clears bit n if val is false.  <a href="#a21"></a><br></td></tr>
88
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a22">set</a> ()</td></tr>
89
 
 
90
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets every bit in this bitset to 1.  <a href="#a22"></a><br></td></tr>
91
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a23">set_range</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> left, <a class="el" href="a00129.html#a26">bm::id_t</a> right, bool value=true)</td></tr>
92
 
 
93
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets all bits in the specified closed interval [left,right] Interval must be inside the bvector's size. This method DOES NOT resize vector.  <a href="#a23"></a><br></td></tr>
94
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00087.html">insert_iterator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a24">inserter</a> ()</td></tr>
95
 
 
96
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a25">clear_bit</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n)</td></tr>
97
 
 
98
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears bit n.  <a href="#a25"></a><br></td></tr>
99
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a26">clear</a> (bool free_mem=false)</td></tr>
100
 
 
101
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears every bit in the bitvector.  <a href="#a26"></a><br></td></tr>
102
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a27">reset</a> ()</td></tr>
103
 
 
104
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears every bit in the bitvector.  <a href="#a27"></a><br></td></tr>
105
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a28">count</a> () const </td></tr>
106
 
 
107
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns count of bits which are 1.  <a href="#a28"></a><br></td></tr>
108
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html#w2">size_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a29">capacity</a> () const </td></tr>
109
 
 
110
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns bvector's capacity (number of bits it can store).  <a href="#a29"></a><br></td></tr>
111
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html#w2">size_type</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a30">size</a> () const </td></tr>
112
 
 
113
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return current size of the vector (bits)  <a href="#a30"></a><br></td></tr>
114
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a31">resize</a> (<a class="el" href="a00084.html#w2">size_type</a> new_size)</td></tr>
115
 
 
116
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change size of the bvector.  <a href="#a31"></a><br></td></tr>
117
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a32">count_blocks</a> (unsigned *arr) const </td></tr>
118
 
 
119
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes bitcount values for all bvector blocks.  <a href="#a32"></a><br></td></tr>
120
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a33">count_range</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> left, <a class="el" href="a00129.html#a26">bm::id_t</a> right, unsigned *block_count_arr=0) const </td></tr>
121
 
 
122
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns count of 1 bits in the given diapason.  <a href="#a33"></a><br></td></tr>
123
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a34">recalc_count</a> ()</td></tr>
124
 
 
125
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a35">forget_count</a> ()</td></tr>
126
 
 
127
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a36">invert</a> ()</td></tr>
128
 
 
129
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inverts all bits.  <a href="#a36"></a><br></td></tr>
130
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a37">get_bit</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n) const </td></tr>
131
 
 
132
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns true if bit n is set and false is bit n is 0.  <a href="#a37"></a><br></td></tr>
133
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a38">test</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n) const </td></tr>
134
 
 
135
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns true if bit n is set and false is bit n is 0.  <a href="#a38"></a><br></td></tr>
136
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a39">any</a> () const </td></tr>
137
 
 
138
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if any bits in this bitset are set, and otherwise returns false.  <a href="#a39"></a><br></td></tr>
139
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a40">none</a> () const </td></tr>
140
 
 
141
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if no bits are set, otherwise returns false.  <a href="#a40"></a><br></td></tr>
142
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a41">flip</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n)</td></tr>
143
 
 
144
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flips bit n.  <a href="#a41"></a><br></td></tr>
145
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a42">flip</a> ()</td></tr>
146
 
 
147
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flips all bits.  <a href="#a42"></a><br></td></tr>
148
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a43">swap</a> (<a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;bv)</td></tr>
149
 
 
150
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Exchanges content of bv and this bitvector.  <a href="#a43"></a><br></td></tr>
151
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a44">get_first</a> () const </td></tr>
152
 
 
153
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets number of first bit which is ON.  <a href="#a44"></a><br></td></tr>
154
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a45">get_next</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> prev) const </td></tr>
155
 
 
156
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Finds the number of the next bit ON.  <a href="#a45"></a><br></td></tr>
157
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a46">extract_next</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> prev)</td></tr>
158
 
 
159
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Finds the number of the next bit ON and sets it to 0.  <a href="#a46"></a><br></td></tr>
160
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a47">calc_stat</a> (struct <a class="el" href="a00093.html">statistics</a> *st) const </td></tr>
161
 
 
162
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calculates bitvector statistics.  <a href="#a47"></a><br></td></tr>
163
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a48">bit_or</a> (const <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;vect)</td></tr>
164
 
 
165
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Logical OR operation.  <a href="#a48"></a><br></td></tr>
166
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a49">bit_and</a> (const <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;vect)</td></tr>
167
 
 
168
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Logical AND operation.  <a href="#a49"></a><br></td></tr>
169
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a50">bit_xor</a> (const <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;vect)</td></tr>
170
 
 
171
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Logical XOR operation.  <a href="#a50"></a><br></td></tr>
172
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a51">bit_sub</a> (const <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;vect)</td></tr>
173
 
 
174
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Logical SUB operation.  <a href="#a51"></a><br></td></tr>
175
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a52">set_new_blocks_strat</a> (<a class="el" href="a00132.html#ga0">strategy</a> strat)</td></tr>
176
 
 
177
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets new blocks allocation strategy.  <a href="#a52"></a><br></td></tr>
178
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00132.html#ga0">strategy</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a53">get_new_blocks_strat</a> () const </td></tr>
179
 
 
180
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns blocks allocation strategy.  <a href="#a53"></a><br></td></tr>
181
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a54">stat</a> (unsigned blocks=0) const </td></tr>
182
 
 
183
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a55">optimize</a> (<a class="el" href="a00129.html#a27">bm::word_t</a> *temp_block=0, <a class="el" href="a00084.html#w7">optmode</a> opt_mode=opt_compress, <a class="el" href="a00093.html">statistics</a> *stat=0)</td></tr>
184
 
 
185
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Optimize memory bitvector's memory allocation.  <a href="#a55"></a><br></td></tr>
186
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a56">optimize_gap_size</a> ()</td></tr>
187
 
 
188
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Optimize sizes of GAP blocks.  <a href="#a56"></a><br></td></tr>
189
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a57">set_gap_levels</a> (const <a class="el" href="a00129.html#a36">gap_word_t</a> *glevel_len)</td></tr>
190
 
 
191
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets new GAP lengths table. All GAP blocks will be reallocated to match the new scheme.  <a href="#a57"></a><br></td></tr>
192
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a58">compare</a> (const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>) const </td></tr>
193
 
 
194
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lexicographical comparison with a bitvector.  <a href="#a58"></a><br></td></tr>
195
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a27">bm::word_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a59">allocate_tempblock</a> () const </td></tr>
196
 
 
197
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocates temporary block of memory.  <a href="#a59"></a><br></td></tr>
198
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a60">free_tempblock</a> (<a class="el" href="a00129.html#a27">bm::word_t</a> *block) const </td></tr>
199
 
 
200
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees temporary block of memory.  <a href="#a60"></a><br></td></tr>
201
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00086.html">enumerator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a61">first</a> () const </td></tr>
202
 
 
203
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns enumerator pointing on the first non-zero bit.  <a href="#a61"></a><br></td></tr>
204
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00086.html">enumerator</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a62">end</a> () const </td></tr>
205
 
 
206
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns enumerator pointing on the next bit after the last.  <a href="#a62"></a><br></td></tr>
207
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="a00129.html#a27">bm::word_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a63">get_block</a> (unsigned nb) const </td></tr>
208
 
 
209
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a64">combine_operation</a> (const <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;<a class="el" href="a00084.html">bvect</a>, <a class="el" href="a00129.html#a179">bm::operation</a> opcode)</td></tr>
210
 
 
211
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a65">combine_operation_with_block</a> (unsigned nb, const <a class="el" href="a00129.html#a27">bm::word_t</a> *arg_blk, int arg_gap, <a class="el" href="a00129.html#a179">bm::operation</a> opcode)</td></tr>
212
 
 
213
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="a00084.html#w1">blocks_manager_type</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a66">get_blocks_manager</a> () const </td></tr>
214
 
 
215
 
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html#w1">blocks_manager_type</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a67">get_blocks_manager</a> ()</td></tr>
216
 
 
217
 
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
218
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#n0">iterator_base</a></td></tr>
219
 
 
220
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#n1">enumerator</a></td></tr>
221
 
 
222
 
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
223
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html">counted_enumerator</a></td></tr>
224
 
 
225
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant input iterator designed to enumerate "ON" bits <a class="el" href="a00085.html">counted_enumerator</a> keeps bitcount, ie number of ON bits starting from the position 0 in the bit string up to the currently enumerated bit.  <a href="a00085.html#_details">More...</a><br></td></tr>
226
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00086.html">enumerator</a></td></tr>
227
 
 
228
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant input iterator designed to enumerate "ON" bits.  <a href="a00086.html#_details">More...</a><br></td></tr>
229
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00087.html">insert_iterator</a></td></tr>
230
 
 
231
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output iterator iterator designed to set "ON" bits based on input sequence of integers (bit indeces).  <a href="a00087.html#_details">More...</a><br></td></tr>
232
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html">iterator_base</a></td></tr>
233
 
 
234
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Base class for all iterators.  <a href="a00088.html#_details">More...</a><br></td></tr>
235
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html">reference</a></td></tr>
236
 
 
237
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Class reference implements an object for bit assignment. Since C++ does not provide with build-in bit type supporting l-value operations we have to emulate it.  <a href="a00092.html#_details">More...</a><br></td></tr>
238
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html">statistics</a></td></tr>
239
 
 
240
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Statistical information about bitset's memory allocation details.  <a href="a00093.html#_details">More...</a><br></td></tr>
241
 
</table>
242
 
<hr><a name="_details"></a><h2>Detailed Description</h2>
243
 
<h3>template&lt;class Alloc, class MS&gt;<br>
244
 
 class bm::bvector&lt; Alloc, MS &gt;</h3>
245
 
 
246
 
bitvector with runtime compression of bits. <dl compact><dt><b>Examples: </b></dt><dd>
247
 
 
248
 
<p>
249
 
<a class="el" href="a00052.html#_a1">sample1.cpp</a>, <a class="el" href="a00053.html#_a8">sample2.cpp</a>, <a class="el" href="a00054.html#_a13">sample3.cpp</a>, <a class="el" href="a00055.html#_a19">sample4.cpp</a>, <a class="el" href="a00056.html#_a30">sample5.cpp</a>, <a class="el" href="a00057.html#_a35">sample6.cpp</a>, <a class="el" href="a00058.html#_a37">sample7.cpp</a>, <a class="el" href="a00059.html#_a53">sample8.cpp</a>, and <a class="el" href="a00060.html#_a60">sample9.cpp</a>.</dl>
250
 
<p>
251
 
 
252
 
<p>
253
 
Definition at line <a class="el" href="a00137.html#l00112">112</a> of file <a class="el" href="a00137.html">bm.h</a>.<hr><h2>Member Typedef Documentation</h2>
254
 
<a class="anchor" name="w0" doxytag="bm::bvector::allocator_type"></a><p>
255
 
<table class="mdTable" cellpadding="2" cellspacing="0">
256
 
  <tr>
257
 
    <td class="mdRow">
258
 
      <table cellpadding="0" cellspacing="0" border="0">
259
 
        <tr>
260
 
          <td class="mdPrefix" colspan="4">
261
 
template&lt;class Alloc, class MS&gt; </td>
262
 
        </tr>
263
 
        <tr>
264
 
          <td class="md" nowrap valign="top">typedef Alloc <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::<a class="el" href="a00084.html#w0">allocator_type</a>          </td>
265
 
        </tr>
266
 
      </table>
267
 
    </td>
268
 
  </tr>
269
 
</table>
270
 
<table cellspacing="5" cellpadding="0" border="0">
271
 
  <tr>
272
 
    <td>
273
 
      &nbsp;
274
 
    </td>
275
 
    <td>
276
 
 
277
 
<p>
278
 
 
279
 
<p>
280
 
Definition at line <a class="el" href="a00137.html#l00116">116</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
281
 
  </tr>
282
 
</table>
283
 
<a class="anchor" name="w1" doxytag="bm::bvector::blocks_manager_type"></a><p>
284
 
<table class="mdTable" cellpadding="2" cellspacing="0">
285
 
  <tr>
286
 
    <td class="mdRow">
287
 
      <table cellpadding="0" cellspacing="0" border="0">
288
 
        <tr>
289
 
          <td class="mdPrefix" colspan="4">
290
 
template&lt;class Alloc, class MS&gt; </td>
291
 
        </tr>
292
 
        <tr>
293
 
          <td class="md" nowrap valign="top">typedef blocks_manager&lt;Alloc, MS&gt; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::<a class="el" href="a00084.html#w1">blocks_manager_type</a>          </td>
294
 
        </tr>
295
 
      </table>
296
 
    </td>
297
 
  </tr>
298
 
</table>
299
 
<table cellspacing="5" cellpadding="0" border="0">
300
 
  <tr>
301
 
    <td>
302
 
      &nbsp;
303
 
    </td>
304
 
    <td>
305
 
 
306
 
<p>
307
 
 
308
 
<p>
309
 
Definition at line <a class="el" href="a00137.html#l00117">117</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
310
 
  </tr>
311
 
</table>
312
 
<a class="anchor" name="w3" doxytag="bm::bvector::const_reference"></a><p>
313
 
<table class="mdTable" cellpadding="2" cellspacing="0">
314
 
  <tr>
315
 
    <td class="mdRow">
316
 
      <table cellpadding="0" cellspacing="0" border="0">
317
 
        <tr>
318
 
          <td class="mdPrefix" colspan="4">
319
 
template&lt;class Alloc, class MS&gt; </td>
320
 
        </tr>
321
 
        <tr>
322
 
          <td class="md" nowrap valign="top">typedef bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::<a class="el" href="a00084.html#w3">const_reference</a>          </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
 
 
337
 
<p>
338
 
Definition at line <a class="el" href="a00137.html#l00217">217</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
339
 
  </tr>
340
 
</table>
341
 
<a class="anchor" name="w2" doxytag="bm::bvector::size_type"></a><p>
342
 
<table class="mdTable" cellpadding="2" cellspacing="0">
343
 
  <tr>
344
 
    <td class="mdRow">
345
 
      <table cellpadding="0" cellspacing="0" border="0">
346
 
        <tr>
347
 
          <td class="mdPrefix" colspan="4">
348
 
template&lt;class Alloc, class MS&gt; </td>
349
 
        </tr>
350
 
        <tr>
351
 
          <td class="md" nowrap valign="top">typedef <a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::<a class="el" href="a00084.html#w2">size_type</a>          </td>
352
 
        </tr>
353
 
      </table>
354
 
    </td>
355
 
  </tr>
356
 
</table>
357
 
<table cellspacing="5" cellpadding="0" border="0">
358
 
  <tr>
359
 
    <td>
360
 
      &nbsp;
361
 
    </td>
362
 
    <td>
363
 
 
364
 
<p>
365
 
Type used to count bits in the bit vector. 
366
 
<p>
367
 
 
368
 
<p>
369
 
Definition at line <a class="el" href="a00137.html#l00119">119</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
370
 
  </tr>
371
 
</table>
372
 
<hr><h2>Member Enumeration Documentation</h2>
373
 
<a class="anchor" name="w7" doxytag="bm::bvector::optmode"></a><p>
374
 
<table class="mdTable" cellpadding="2" cellspacing="0">
375
 
  <tr>
376
 
    <td class="mdRow">
377
 
      <table cellpadding="0" cellspacing="0" border="0">
378
 
        <tr>
379
 
          <td class="mdPrefix" colspan="4">
380
 
template&lt;class Alloc, class MS&gt; </td>
381
 
        </tr>
382
 
        <tr>
383
 
          <td class="md" nowrap valign="top">enum <a class="el" href="a00084.html#w7">bm::bvector::optmode</a>          </td>
384
 
        </tr>
385
 
      </table>
386
 
    </td>
387
 
  </tr>
388
 
</table>
389
 
<table cellspacing="5" cellpadding="0" border="0">
390
 
  <tr>
391
 
    <td>
392
 
      &nbsp;
393
 
    </td>
394
 
    <td>
395
 
 
396
 
<p>
397
 
Optimization mode Every next level means additional checks (better compression vs time). 
398
 
<p>
399
 
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a55">optimize</a> </dd></dl>
400
 
<dl compact><dt><b>Enumeration values: </b></dt><dd>
401
 
<table border="0" cellspacing="2" cellpadding="0">
402
 
<tr><td valign="top"><em><a class="anchor" name="w7w4" doxytag="opt_free_0"></a>opt_free_0</em>&nbsp;</td><td>
403
 
Free unused 0 blocks. </td></tr>
404
 
<tr><td valign="top"><em><a class="anchor" name="w7w5" doxytag="opt_free_01"></a>opt_free_01</em>&nbsp;</td><td>
405
 
Free unused 0 and 1 blocks. </td></tr>
406
 
<tr><td valign="top"><em><a class="anchor" name="w7w6" doxytag="opt_compress"></a>opt_compress</em>&nbsp;</td><td>
407
 
compress blocks when possible </td></tr>
408
 
</table>
409
 
</dl>
410
 
 
411
 
<p>
412
 
Definition at line <a class="el" href="a00137.html#l01341">1341</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
413
 
  </tr>
414
 
</table>
415
 
<hr><h2>Constructor &amp; Destructor Documentation</h2>
416
 
<a class="anchor" name="a0" doxytag="bm::bvector::bvector"></a><p>
417
 
<table class="mdTable" cellpadding="2" cellspacing="0">
418
 
  <tr>
419
 
    <td class="mdRow">
420
 
      <table cellpadding="0" cellspacing="0" border="0">
421
 
        <tr>
422
 
          <td class="mdPrefix" colspan="4">
423
 
template&lt;class Alloc, class MS&gt; </td>
424
 
        </tr>
425
 
        <tr>
426
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::<a class="el" href="a00084.html">bvector</a>           </td>
427
 
          <td class="md" valign="top">(&nbsp;</td>
428
 
          <td class="md" nowrap valign="top"><a class="el" href="a00132.html#ga0">strategy</a>&nbsp;</td>
429
 
          <td class="mdname" nowrap> <em>strat</em> = <code>BM_BIT</code>, </td>
430
 
        </tr>
431
 
        <tr>
432
 
          <td class="md" nowrap align="right"></td>
433
 
          <td class="md"></td>
434
 
          <td class="md" nowrap>const <a class="el" href="a00129.html#a36">gap_word_t</a> *&nbsp;</td>
435
 
          <td class="mdname" nowrap> <em>glevel_len</em> = <code><a class="el" href="a00104.html">bm::gap_len_table</a>&lt;true&gt;::_len</code>, </td>
436
 
        </tr>
437
 
        <tr>
438
 
          <td class="md" nowrap align="right"></td>
439
 
          <td class="md"></td>
440
 
          <td class="md" nowrap><a class="el" href="a00084.html#w2">size_type</a>&nbsp;</td>
441
 
          <td class="mdname" nowrap> <em>bv_size</em> = <code><a class="el" href="a00129.html#a29">bm::id_max</a></code>, </td>
442
 
        </tr>
443
 
        <tr>
444
 
          <td class="md" nowrap align="right"></td>
445
 
          <td class="md"></td>
446
 
          <td class="md" nowrap>const Alloc &amp;&nbsp;</td>
447
 
          <td class="mdname" nowrap> <em>alloc</em> = <code>Alloc()</code></td>
448
 
        </tr>
449
 
        <tr>
450
 
          <td class="md"></td>
451
 
          <td class="md">)&nbsp;</td>
452
 
          <td class="md" colspan="2"><code> [inline]</code></td>
453
 
        </tr>
454
 
      </table>
455
 
    </td>
456
 
  </tr>
457
 
</table>
458
 
<table cellspacing="5" cellpadding="0" border="0">
459
 
  <tr>
460
 
    <td>
461
 
      &nbsp;
462
 
    </td>
463
 
    <td>
464
 
 
465
 
<p>
466
 
Constructs bvector class. 
467
 
<p>
468
 
<dl compact><dt><b>Parameters:</b></dt><dd>
469
 
  <table border="0" cellspacing="2" cellpadding="0">
470
 
    <tr><td valign="top"></td><td valign="top"><em>strat</em>&nbsp;</td><td>- operation mode strategy, BM_BIT - default strategy, bvector use plain bitset blocks, (performance oriented strategy). BM_GAP - memory effitent strategy, bvector allocates blocks as array of intervals(gaps) and convert blocks into plain bitsets only when enthropy grows. </td></tr>
471
 
    <tr><td valign="top"></td><td valign="top"><em>glevel_len</em>&nbsp;</td><td><ul>
472
 
<li>pointer on C-style array keeping GAP block sizes. (Put <a class="el" href="a00105.html#s0">bm::gap_len_table_min&lt;true&gt;::_len</a> for GAP memory saving mode) </li></ul>
473
 
</td></tr>
474
 
    <tr><td valign="top"></td><td valign="top"><em>bv_size</em>&nbsp;</td><td><ul>
475
 
<li>bvector size (number of bits addressable by bvector), <a class="el" href="a00129.html#a29">bm::id_max</a> means "no limits" (recommended). bit vector allocates this space dynamically on demand.</li></ul>
476
 
</td></tr>
477
 
  </table>
478
 
</dl>
479
 
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00104.html">bm::gap_len_table</a> <a class="el" href="a00105.html">bm::gap_len_table_min</a> <a class="el" href="a00084.html#a52">set_new_blocks_strat</a> </dd></dl>
480
 
 
481
 
<p>
482
 
Definition at line <a class="el" href="a00137.html#l00828">828</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
483
 
  </tr>
484
 
</table>
485
 
<a class="anchor" name="a1" doxytag="bm::bvector::bvector"></a><p>
486
 
<table class="mdTable" cellpadding="2" cellspacing="0">
487
 
  <tr>
488
 
    <td class="mdRow">
489
 
      <table cellpadding="0" cellspacing="0" border="0">
490
 
        <tr>
491
 
          <td class="mdPrefix" colspan="4">
492
 
template&lt;class Alloc, class MS&gt; </td>
493
 
        </tr>
494
 
        <tr>
495
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::<a class="el" href="a00084.html">bvector</a>           </td>
496
 
          <td class="md" valign="top">(&nbsp;</td>
497
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html#w2">size_type</a>&nbsp;</td>
498
 
          <td class="mdname" nowrap> <em>bv_size</em>, </td>
499
 
        </tr>
500
 
        <tr>
501
 
          <td class="md" nowrap align="right"></td>
502
 
          <td class="md"></td>
503
 
          <td class="md" nowrap><a class="el" href="a00132.html#ga0">strategy</a>&nbsp;</td>
504
 
          <td class="mdname" nowrap> <em>strat</em> = <code>BM_BIT</code>, </td>
505
 
        </tr>
506
 
        <tr>
507
 
          <td class="md" nowrap align="right"></td>
508
 
          <td class="md"></td>
509
 
          <td class="md" nowrap>const <a class="el" href="a00129.html#a36">gap_word_t</a> *&nbsp;</td>
510
 
          <td class="mdname" nowrap> <em>glevel_len</em> = <code><a class="el" href="a00104.html">bm::gap_len_table</a>&lt;true&gt;::_len</code>, </td>
511
 
        </tr>
512
 
        <tr>
513
 
          <td class="md" nowrap align="right"></td>
514
 
          <td class="md"></td>
515
 
          <td class="md" nowrap>const Alloc &amp;&nbsp;</td>
516
 
          <td class="mdname" nowrap> <em>alloc</em> = <code>Alloc()</code></td>
517
 
        </tr>
518
 
        <tr>
519
 
          <td class="md"></td>
520
 
          <td class="md">)&nbsp;</td>
521
 
          <td class="md" colspan="2"><code> [inline]</code></td>
522
 
        </tr>
523
 
      </table>
524
 
    </td>
525
 
  </tr>
526
 
</table>
527
 
<table cellspacing="5" cellpadding="0" border="0">
528
 
  <tr>
529
 
    <td>
530
 
      &nbsp;
531
 
    </td>
532
 
    <td>
533
 
 
534
 
<p>
535
 
Constructs bvector class. 
536
 
<p>
537
 
 
538
 
<p>
539
 
Definition at line <a class="el" href="a00137.html#l00840">840</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
540
 
  </tr>
541
 
</table>
542
 
<a class="anchor" name="a2" doxytag="bm::bvector::bvector"></a><p>
543
 
<table class="mdTable" cellpadding="2" cellspacing="0">
544
 
  <tr>
545
 
    <td class="mdRow">
546
 
      <table cellpadding="0" cellspacing="0" border="0">
547
 
        <tr>
548
 
          <td class="mdPrefix" colspan="4">
549
 
template&lt;class Alloc, class MS&gt; </td>
550
 
        </tr>
551
 
        <tr>
552
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::<a class="el" href="a00084.html">bvector</a>           </td>
553
 
          <td class="md" valign="top">(&nbsp;</td>
554
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
555
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
556
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
557
 
          <td class="md" nowrap><code> [inline]</code></td>
558
 
        </tr>
559
 
      </table>
560
 
    </td>
561
 
  </tr>
562
 
</table>
563
 
<table cellspacing="5" cellpadding="0" border="0">
564
 
  <tr>
565
 
    <td>
566
 
      &nbsp;
567
 
    </td>
568
 
    <td>
569
 
 
570
 
<p>
571
 
 
572
 
<p>
573
 
Definition at line <a class="el" href="a00137.html#l00850">850</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
574
 
  </tr>
575
 
</table>
576
 
<hr><h2>Member Function Documentation</h2>
577
 
<a class="anchor" name="a59" doxytag="bm::bvector::allocate_tempblock"></a><p>
578
 
<table class="mdTable" cellpadding="2" cellspacing="0">
579
 
  <tr>
580
 
    <td class="mdRow">
581
 
      <table cellpadding="0" cellspacing="0" border="0">
582
 
        <tr>
583
 
          <td class="mdPrefix" colspan="4">
584
 
template&lt;class Alloc, class MS&gt; </td>
585
 
        </tr>
586
 
        <tr>
587
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a27">bm::word_t</a>* <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::allocate_tempblock           </td>
588
 
          <td class="md" valign="top">(&nbsp;</td>
589
 
          <td class="mdname1" valign="top" nowrap>          </td>
590
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
591
 
          <td class="md" nowrap> const<code> [inline]</code></td>
592
 
        </tr>
593
 
      </table>
594
 
    </td>
595
 
  </tr>
596
 
</table>
597
 
<table cellspacing="5" cellpadding="0" border="0">
598
 
  <tr>
599
 
    <td>
600
 
      &nbsp;
601
 
    </td>
602
 
    <td>
603
 
 
604
 
<p>
605
 
Allocates temporary block of memory. 
606
 
<p>
607
 
Temp block can be passed to bvector functions requiring some temp memory for their operation. (like serialize)<p>
608
 
<dl compact><dt><b>Note:</b></dt><dd>method is marked const, but it's not quite true, since it can in some cases modify the state of the block allocator (if it has a state). (Can be important in MT programs).</dd></dl>
609
 
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a60">free_tempblock</a> </dd></dl>
610
 
 
611
 
<p>
612
 
Definition at line <a class="el" href="a00137.html#l01402">1402</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
613
 
  </tr>
614
 
</table>
615
 
<a class="anchor" name="a39" doxytag="bm::bvector::any"></a><p>
616
 
<table class="mdTable" cellpadding="2" cellspacing="0">
617
 
  <tr>
618
 
    <td class="mdRow">
619
 
      <table cellpadding="0" cellspacing="0" border="0">
620
 
        <tr>
621
 
          <td class="mdPrefix" colspan="4">
622
 
template&lt;class Alloc, class MS&gt; </td>
623
 
        </tr>
624
 
        <tr>
625
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::any           </td>
626
 
          <td class="md" valign="top">(&nbsp;</td>
627
 
          <td class="mdname1" valign="top" nowrap>          </td>
628
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
629
 
          <td class="md" nowrap> const<code> [inline]</code></td>
630
 
        </tr>
631
 
      </table>
632
 
    </td>
633
 
  </tr>
634
 
</table>
635
 
<table cellspacing="5" cellpadding="0" border="0">
636
 
  <tr>
637
 
    <td>
638
 
      &nbsp;
639
 
    </td>
640
 
    <td>
641
 
 
642
 
<p>
643
 
Returns true if any bits in this bitset are set, and otherwise returns false. 
644
 
<p>
645
 
<dl compact><dt><b>Returns:</b></dt><dd>true if any bit is set </dd></dl>
646
 
 
647
 
<p>
648
 
Definition at line <a class="el" href="a00137.html#l01163">1163</a> of file <a class="el" href="a00137.html">bm.h</a>.
649
 
<p>
650
 
References <a class="el" href="a00141.html#l00575">bm::for_each_nzblock_if()</a>.
651
 
<p>
652
 
Referenced by <a class="el" href="a00137.html#l01182">bm::bvector&lt; Alloc, MS &gt;::none()</a>.    </td>
653
 
  </tr>
654
 
</table>
655
 
<a class="anchor" name="a49" doxytag="bm::bvector::bit_and"></a><p>
656
 
<table class="mdTable" cellpadding="2" cellspacing="0">
657
 
  <tr>
658
 
    <td class="mdRow">
659
 
      <table cellpadding="0" cellspacing="0" border="0">
660
 
        <tr>
661
 
          <td class="mdPrefix" colspan="4">
662
 
template&lt;class Alloc, class MS&gt; </td>
663
 
        </tr>
664
 
        <tr>
665
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a>&lt;Alloc, MS&gt;&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::bit_and           </td>
666
 
          <td class="md" valign="top">(&nbsp;</td>
667
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
668
 
          <td class="mdname1" valign="top" nowrap> <em>vect</em>          </td>
669
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
670
 
          <td class="md" nowrap><code> [inline]</code></td>
671
 
        </tr>
672
 
      </table>
673
 
    </td>
674
 
  </tr>
675
 
</table>
676
 
<table cellspacing="5" cellpadding="0" border="0">
677
 
  <tr>
678
 
    <td>
679
 
      &nbsp;
680
 
    </td>
681
 
    <td>
682
 
 
683
 
<p>
684
 
Logical AND operation. 
685
 
<p>
686
 
<dl compact><dt><b>Parameters:</b></dt><dd>
687
 
  <table border="0" cellspacing="2" cellpadding="0">
688
 
    <tr><td valign="top"></td><td valign="top"><em>vect</em>&nbsp;</td><td>- Argument vector. </td></tr>
689
 
  </table>
690
 
</dl>
691
 
 
692
 
<p>
693
 
Definition at line <a class="el" href="a00137.html#l01283">1283</a> of file <a class="el" href="a00137.html">bm.h</a>.
694
 
<p>
695
 
References <a class="el" href="a00129.html#a179a18">bm::BM_AND</a>, <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l02612">bm::bvector&lt; Alloc, MS &gt;::combine_operation()</a>.
696
 
<p>
697
 
Referenced by <a class="el" href="a00137.html#l01552">bm::operator &amp;()</a>, and <a class="el" href="a00137.html#l00879">bm::bvector&lt; Alloc, MS &gt;::operator &amp;=()</a>.    </td>
698
 
  </tr>
699
 
</table>
700
 
<a class="anchor" name="a48" doxytag="bm::bvector::bit_or"></a><p>
701
 
<table class="mdTable" cellpadding="2" cellspacing="0">
702
 
  <tr>
703
 
    <td class="mdRow">
704
 
      <table cellpadding="0" cellspacing="0" border="0">
705
 
        <tr>
706
 
          <td class="mdPrefix" colspan="4">
707
 
template&lt;class Alloc, class MS&gt; </td>
708
 
        </tr>
709
 
        <tr>
710
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a>&lt;Alloc, MS&gt;&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::bit_or           </td>
711
 
          <td class="md" valign="top">(&nbsp;</td>
712
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
713
 
          <td class="mdname1" valign="top" nowrap> <em>vect</em>          </td>
714
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
715
 
          <td class="md" nowrap><code> [inline]</code></td>
716
 
        </tr>
717
 
      </table>
718
 
    </td>
719
 
  </tr>
720
 
</table>
721
 
<table cellspacing="5" cellpadding="0" border="0">
722
 
  <tr>
723
 
    <td>
724
 
      &nbsp;
725
 
    </td>
726
 
    <td>
727
 
 
728
 
<p>
729
 
Logical OR operation. 
730
 
<p>
731
 
<dl compact><dt><b>Parameters:</b></dt><dd>
732
 
  <table border="0" cellspacing="2" cellpadding="0">
733
 
    <tr><td valign="top"></td><td valign="top"><em>vect</em>&nbsp;</td><td>- Argument vector. </td></tr>
734
 
  </table>
735
 
</dl>
736
 
 
737
 
<p>
738
 
Definition at line <a class="el" href="a00137.html#l01272">1272</a> of file <a class="el" href="a00137.html">bm.h</a>.
739
 
<p>
740
 
References <a class="el" href="a00129.html#a179a19">bm::BM_OR</a>, <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l02612">bm::bvector&lt; Alloc, MS &gt;::combine_operation()</a>.
741
 
<p>
742
 
Referenced by <a class="el" href="a00137.html#l00858">bm::bvector&lt; Alloc, MS &gt;::operator=()</a>, <a class="el" href="a00137.html#l01567">bm::operator|()</a>, and <a class="el" href="a00137.html#l00889">bm::bvector&lt; Alloc, MS &gt;::operator|=()</a>.    </td>
743
 
  </tr>
744
 
</table>
745
 
<a class="anchor" name="a51" doxytag="bm::bvector::bit_sub"></a><p>
746
 
<table class="mdTable" cellpadding="2" cellspacing="0">
747
 
  <tr>
748
 
    <td class="mdRow">
749
 
      <table cellpadding="0" cellspacing="0" border="0">
750
 
        <tr>
751
 
          <td class="mdPrefix" colspan="4">
752
 
template&lt;class Alloc, class MS&gt; </td>
753
 
        </tr>
754
 
        <tr>
755
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a>&lt;Alloc, MS&gt;&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::bit_sub           </td>
756
 
          <td class="md" valign="top">(&nbsp;</td>
757
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
758
 
          <td class="mdname1" valign="top" nowrap> <em>vect</em>          </td>
759
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
760
 
          <td class="md" nowrap><code> [inline]</code></td>
761
 
        </tr>
762
 
      </table>
763
 
    </td>
764
 
  </tr>
765
 
</table>
766
 
<table cellspacing="5" cellpadding="0" border="0">
767
 
  <tr>
768
 
    <td>
769
 
      &nbsp;
770
 
    </td>
771
 
    <td>
772
 
 
773
 
<p>
774
 
Logical SUB operation. 
775
 
<p>
776
 
<dl compact><dt><b>Parameters:</b></dt><dd>
777
 
  <table border="0" cellspacing="2" cellpadding="0">
778
 
    <tr><td valign="top"></td><td valign="top"><em>vect</em>&nbsp;</td><td>- Argument vector. </td></tr>
779
 
  </table>
780
 
</dl>
781
 
 
782
 
<p>
783
 
Definition at line <a class="el" href="a00137.html#l01305">1305</a> of file <a class="el" href="a00137.html">bm.h</a>.
784
 
<p>
785
 
References <a class="el" href="a00129.html#a179a20">bm::BM_SUB</a>, <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l02612">bm::bvector&lt; Alloc, MS &gt;::combine_operation()</a>.
786
 
<p>
787
 
Referenced by <a class="el" href="a00137.html#l01597">bm::operator-()</a>, and <a class="el" href="a00137.html#l00894">bm::bvector&lt; Alloc, MS &gt;::operator-=()</a>.    </td>
788
 
  </tr>
789
 
</table>
790
 
<a class="anchor" name="a50" doxytag="bm::bvector::bit_xor"></a><p>
791
 
<table class="mdTable" cellpadding="2" cellspacing="0">
792
 
  <tr>
793
 
    <td class="mdRow">
794
 
      <table cellpadding="0" cellspacing="0" border="0">
795
 
        <tr>
796
 
          <td class="mdPrefix" colspan="4">
797
 
template&lt;class Alloc, class MS&gt; </td>
798
 
        </tr>
799
 
        <tr>
800
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a>&lt;Alloc, MS&gt;&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::bit_xor           </td>
801
 
          <td class="md" valign="top">(&nbsp;</td>
802
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
803
 
          <td class="mdname1" valign="top" nowrap> <em>vect</em>          </td>
804
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
805
 
          <td class="md" nowrap><code> [inline]</code></td>
806
 
        </tr>
807
 
      </table>
808
 
    </td>
809
 
  </tr>
810
 
</table>
811
 
<table cellspacing="5" cellpadding="0" border="0">
812
 
  <tr>
813
 
    <td>
814
 
      &nbsp;
815
 
    </td>
816
 
    <td>
817
 
 
818
 
<p>
819
 
Logical XOR operation. 
820
 
<p>
821
 
<dl compact><dt><b>Parameters:</b></dt><dd>
822
 
  <table border="0" cellspacing="2" cellpadding="0">
823
 
    <tr><td valign="top"></td><td valign="top"><em>vect</em>&nbsp;</td><td>- Argument vector. </td></tr>
824
 
  </table>
825
 
</dl>
826
 
 
827
 
<p>
828
 
Definition at line <a class="el" href="a00137.html#l01294">1294</a> of file <a class="el" href="a00137.html">bm.h</a>.
829
 
<p>
830
 
References <a class="el" href="a00129.html#a179a21">bm::BM_XOR</a>, <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l02612">bm::bvector&lt; Alloc, MS &gt;::combine_operation()</a>.
831
 
<p>
832
 
Referenced by <a class="el" href="a00137.html#l01582">bm::operator^()</a>, and <a class="el" href="a00137.html#l00884">bm::bvector&lt; Alloc, MS &gt;::operator^=()</a>.    </td>
833
 
  </tr>
834
 
</table>
835
 
<a class="anchor" name="a47" doxytag="bm::bvector::calc_stat"></a><p>
836
 
<table class="mdTable" cellpadding="2" cellspacing="0">
837
 
  <tr>
838
 
    <td class="mdRow">
839
 
      <table cellpadding="0" cellspacing="0" border="0">
840
 
        <tr>
841
 
          <td class="mdPrefix" colspan="4">
842
 
template&lt;class Alloc, class MS&gt; </td>
843
 
        </tr>
844
 
        <tr>
845
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::calc_stat           </td>
846
 
          <td class="md" valign="top">(&nbsp;</td>
847
 
          <td class="md" nowrap valign="top">struct <a class="el" href="a00093.html">statistics</a> *&nbsp;</td>
848
 
          <td class="mdname1" valign="top" nowrap> <em>st</em>          </td>
849
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
850
 
          <td class="md" nowrap> const</td>
851
 
        </tr>
852
 
      </table>
853
 
    </td>
854
 
  </tr>
855
 
</table>
856
 
<table cellspacing="5" cellpadding="0" border="0">
857
 
  <tr>
858
 
    <td>
859
 
      &nbsp;
860
 
    </td>
861
 
    <td>
862
 
 
863
 
<p>
864
 
Calculates bitvector statistics. 
865
 
<p>
866
 
<dl compact><dt><b>Parameters:</b></dt><dd>
867
 
  <table border="0" cellspacing="2" cellpadding="0">
868
 
    <tr><td valign="top"></td><td valign="top"><em>st</em>&nbsp;</td><td>- pointer on statistics structure to be filled in.</td></tr>
869
 
  </table>
870
 
</dl>
871
 
Function fills statistics structure containing information about how this vector uses memory and estimation of max. amount of memory bvector needs to serialize itself.<p>
872
 
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00093.html">statistics</a> </dd></dl>
873
 
<dl compact><dt><b>Examples: </b></dt><dd>
874
 
<a class="el" href="a00058.html#a42">sample7.cpp</a>.</dl>
875
 
<p>
876
 
Referenced by <a class="el" href="a00152.html#l00066">CreateSets()</a>, <a class="el" href="a00152.html#l00087">FillSets()</a>, <a class="el" href="a00137.html#l01872">bm::bvector&lt; Alloc, MS &gt;::optimize_gap_size()</a>, and <a class="el" href="a00149.html#l00077">serialize_bvector()</a>.    </td>
877
 
  </tr>
878
 
</table>
879
 
<a class="anchor" name="a29" doxytag="bm::bvector::capacity"></a><p>
880
 
<table class="mdTable" cellpadding="2" cellspacing="0">
881
 
  <tr>
882
 
    <td class="mdRow">
883
 
      <table cellpadding="0" cellspacing="0" border="0">
884
 
        <tr>
885
 
          <td class="mdPrefix" colspan="4">
886
 
template&lt;class Alloc, class MS&gt; </td>
887
 
        </tr>
888
 
        <tr>
889
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html#w2">size_type</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::capacity           </td>
890
 
          <td class="md" valign="top">(&nbsp;</td>
891
 
          <td class="mdname1" valign="top" nowrap>          </td>
892
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
893
 
          <td class="md" nowrap> const<code> [inline]</code></td>
894
 
        </tr>
895
 
      </table>
896
 
    </td>
897
 
  </tr>
898
 
</table>
899
 
<table cellspacing="5" cellpadding="0" border="0">
900
 
  <tr>
901
 
    <td>
902
 
      &nbsp;
903
 
    </td>
904
 
    <td>
905
 
 
906
 
<p>
907
 
Returns bvector's capacity (number of bits it can store). 
908
 
<p>
909
 
 
910
 
<p>
911
 
Definition at line <a class="el" href="a00137.html#l01070">1070</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
912
 
  </tr>
913
 
</table>
914
 
<a class="anchor" name="a26" doxytag="bm::bvector::clear"></a><p>
915
 
<table class="mdTable" cellpadding="2" cellspacing="0">
916
 
  <tr>
917
 
    <td class="mdRow">
918
 
      <table cellpadding="0" cellspacing="0" border="0">
919
 
        <tr>
920
 
          <td class="mdPrefix" colspan="4">
921
 
template&lt;class Alloc, class MS&gt; </td>
922
 
        </tr>
923
 
        <tr>
924
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::clear           </td>
925
 
          <td class="md" valign="top">(&nbsp;</td>
926
 
          <td class="md" nowrap valign="top">bool&nbsp;</td>
927
 
          <td class="mdname1" valign="top" nowrap> <em>free_mem</em> = <code>false</code>          </td>
928
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
929
 
          <td class="md" nowrap><code> [inline]</code></td>
930
 
        </tr>
931
 
      </table>
932
 
    </td>
933
 
  </tr>
934
 
</table>
935
 
<table cellspacing="5" cellpadding="0" border="0">
936
 
  <tr>
937
 
    <td>
938
 
      &nbsp;
939
 
    </td>
940
 
    <td>
941
 
 
942
 
<p>
943
 
Clears every bit in the bitvector. 
944
 
<p>
945
 
<dl compact><dt><b>Parameters:</b></dt><dd>
946
 
  <table border="0" cellspacing="2" cellpadding="0">
947
 
    <tr><td valign="top"></td><td valign="top"><em>free_mem</em>&nbsp;</td><td>if "true" (default) bvector frees the memory, otherwise sets blocks to 0. </td></tr>
948
 
  </table>
949
 
</dl>
950
 
 
951
 
<p>
952
 
Definition at line <a class="el" href="a00137.html#l01044">1044</a> of file <a class="el" href="a00137.html">bm.h</a>.
953
 
<p>
954
 
References <a class="el" href="a00137.html#l00082">BMCOUNT_SET</a>.
955
 
<p>
956
 
Referenced by <a class="el" href="a00146.html#l00044">main()</a>, <a class="el" href="a00137.html#l00858">bm::bvector&lt; Alloc, MS &gt;::operator=()</a>, and <a class="el" href="a00137.html#l01054">bm::bvector&lt; Alloc, MS &gt;::reset()</a>.    </td>
957
 
  </tr>
958
 
</table>
959
 
<a class="anchor" name="a25" doxytag="bm::bvector::clear_bit"></a><p>
960
 
<table class="mdTable" cellpadding="2" cellspacing="0">
961
 
  <tr>
962
 
    <td class="mdRow">
963
 
      <table cellpadding="0" cellspacing="0" border="0">
964
 
        <tr>
965
 
          <td class="mdPrefix" colspan="4">
966
 
template&lt;class Alloc, class MS&gt; </td>
967
 
        </tr>
968
 
        <tr>
969
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::clear_bit           </td>
970
 
          <td class="md" valign="top">(&nbsp;</td>
971
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
972
 
          <td class="mdname1" valign="top" nowrap> <em>n</em>          </td>
973
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
974
 
          <td class="md" nowrap><code> [inline]</code></td>
975
 
        </tr>
976
 
      </table>
977
 
    </td>
978
 
  </tr>
979
 
</table>
980
 
<table cellspacing="5" cellpadding="0" border="0">
981
 
  <tr>
982
 
    <td>
983
 
      &nbsp;
984
 
    </td>
985
 
    <td>
986
 
 
987
 
<p>
988
 
Clears bit n. 
989
 
<p>
990
 
<dl compact><dt><b>Parameters:</b></dt><dd>
991
 
  <table border="0" cellspacing="2" cellpadding="0">
992
 
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>- bit's index to be cleaned. </td></tr>
993
 
  </table>
994
 
</dl>
995
 
 
996
 
<p>
997
 
Definition at line <a class="el" href="a00137.html#l01032">1032</a> of file <a class="el" href="a00137.html">bm.h</a>.
998
 
<p>
999
 
References <a class="el" href="a00137.html#l00997">bm::bvector&lt; Alloc, MS &gt;::set()</a>.    </td>
1000
 
  </tr>
1001
 
</table>
1002
 
<a class="anchor" name="a64" doxytag="bm::bvector::combine_operation"></a><p>
1003
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1004
 
  <tr>
1005
 
    <td class="mdRow">
1006
 
      <table cellpadding="0" cellspacing="0" border="0">
1007
 
        <tr>
1008
 
          <td class="mdPrefix" colspan="4">
1009
 
template&lt;class Alloc, class MS&gt; </td>
1010
 
        </tr>
1011
 
        <tr>
1012
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::combine_operation           </td>
1013
 
          <td class="md" valign="top">(&nbsp;</td>
1014
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
1015
 
          <td class="mdname" nowrap> <em>bvect</em>, </td>
1016
 
        </tr>
1017
 
        <tr>
1018
 
          <td class="md" nowrap align="right"></td>
1019
 
          <td class="md"></td>
1020
 
          <td class="md" nowrap><a class="el" href="a00129.html#a179">bm::operation</a>&nbsp;</td>
1021
 
          <td class="mdname" nowrap> <em>opcode</em></td>
1022
 
        </tr>
1023
 
        <tr>
1024
 
          <td class="md"></td>
1025
 
          <td class="md">)&nbsp;</td>
1026
 
          <td class="md" colspan="2"></td>
1027
 
        </tr>
1028
 
      </table>
1029
 
    </td>
1030
 
  </tr>
1031
 
</table>
1032
 
<table cellspacing="5" cellpadding="0" border="0">
1033
 
  <tr>
1034
 
    <td>
1035
 
      &nbsp;
1036
 
    </td>
1037
 
    <td>
1038
 
 
1039
 
<p>
1040
 
 
1041
 
<p>
1042
 
Definition at line <a class="el" href="a00137.html#l02612">2612</a> of file <a class="el" href="a00137.html">bm.h</a>.
1043
 
<p>
1044
 
References <a class="el" href="a00137.html#l01540">bm::bvector&lt; Alloc, MS &gt;::blockman_</a>, <a class="el" href="a00129.html#a179a18">bm::BM_AND</a>, <a class="el" href="a00140.html#l00014">BM_ASSERT</a>, <a class="el" href="a00140.html#l00059">BM_IS_GAP</a>, <a class="el" href="a00140.html#l00093">BM_SET_MMX_GUARD</a>, <a class="el" href="a00137.html#l01481">bm::bvector&lt; Alloc, MS &gt;::combine_operation_with_block()</a>, <a class="el" href="a00137.html#l01444">bm::bvector&lt; Alloc, MS &gt;::get_block()</a>, <a class="el" href="a00137.html#l01615">bm::bvector&lt; Alloc, MS &gt;::set_range()</a>, and <a class="el" href="a00137.html#l01542">bm::bvector&lt; Alloc, MS &gt;::size_</a>.
1045
 
<p>
1046
 
Referenced by <a class="el" href="a00137.html#l01283">bm::bvector&lt; Alloc, MS &gt;::bit_and()</a>, <a class="el" href="a00137.html#l01272">bm::bvector&lt; Alloc, MS &gt;::bit_or()</a>, <a class="el" href="a00137.html#l01305">bm::bvector&lt; Alloc, MS &gt;::bit_sub()</a>, and <a class="el" href="a00137.html#l01294">bm::bvector&lt; Alloc, MS &gt;::bit_xor()</a>.    </td>
1047
 
  </tr>
1048
 
</table>
1049
 
<a class="anchor" name="a65" doxytag="bm::bvector::combine_operation_with_block"></a><p>
1050
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1051
 
  <tr>
1052
 
    <td class="mdRow">
1053
 
      <table cellpadding="0" cellspacing="0" border="0">
1054
 
        <tr>
1055
 
          <td class="mdPrefix" colspan="4">
1056
 
template&lt;class Alloc, class MS&gt; </td>
1057
 
        </tr>
1058
 
        <tr>
1059
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::combine_operation_with_block           </td>
1060
 
          <td class="md" valign="top">(&nbsp;</td>
1061
 
          <td class="md" nowrap valign="top">unsigned&nbsp;</td>
1062
 
          <td class="mdname" nowrap> <em>nb</em>, </td>
1063
 
        </tr>
1064
 
        <tr>
1065
 
          <td class="md" nowrap align="right"></td>
1066
 
          <td class="md"></td>
1067
 
          <td class="md" nowrap>const <a class="el" href="a00129.html#a27">bm::word_t</a> *&nbsp;</td>
1068
 
          <td class="mdname" nowrap> <em>arg_blk</em>, </td>
1069
 
        </tr>
1070
 
        <tr>
1071
 
          <td class="md" nowrap align="right"></td>
1072
 
          <td class="md"></td>
1073
 
          <td class="md" nowrap>int&nbsp;</td>
1074
 
          <td class="mdname" nowrap> <em>arg_gap</em>, </td>
1075
 
        </tr>
1076
 
        <tr>
1077
 
          <td class="md" nowrap align="right"></td>
1078
 
          <td class="md"></td>
1079
 
          <td class="md" nowrap><a class="el" href="a00129.html#a179">bm::operation</a>&nbsp;</td>
1080
 
          <td class="mdname" nowrap> <em>opcode</em></td>
1081
 
        </tr>
1082
 
        <tr>
1083
 
          <td class="md"></td>
1084
 
          <td class="md">)&nbsp;</td>
1085
 
          <td class="md" colspan="2"><code> [inline]</code></td>
1086
 
        </tr>
1087
 
      </table>
1088
 
    </td>
1089
 
  </tr>
1090
 
</table>
1091
 
<table cellspacing="5" cellpadding="0" border="0">
1092
 
  <tr>
1093
 
    <td>
1094
 
      &nbsp;
1095
 
    </td>
1096
 
    <td>
1097
 
 
1098
 
<p>
1099
 
 
1100
 
<p>
1101
 
Definition at line <a class="el" href="a00137.html#l01481">1481</a> of file <a class="el" href="a00137.html">bm.h</a>.
1102
 
<p>
1103
 
References <a class="el" href="a00140.html#l00059">BM_IS_GAP</a>, and <a class="el" href="a00137.html#l01444">bm::bvector&lt; Alloc, MS &gt;::get_block()</a>.
1104
 
<p>
1105
 
Referenced by <a class="el" href="a00137.html#l02612">bm::bvector&lt; Alloc, MS &gt;::combine_operation()</a>.    </td>
1106
 
  </tr>
1107
 
</table>
1108
 
<a class="anchor" name="a58" doxytag="bm::bvector::compare"></a><p>
1109
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1110
 
  <tr>
1111
 
    <td class="mdRow">
1112
 
      <table cellpadding="0" cellspacing="0" border="0">
1113
 
        <tr>
1114
 
          <td class="mdPrefix" colspan="4">
1115
 
template&lt;typename Alloc, typename MS&gt; </td>
1116
 
        </tr>
1117
 
        <tr>
1118
 
          <td class="md" nowrap valign="top">int <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::compare           </td>
1119
 
          <td class="md" valign="top">(&nbsp;</td>
1120
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
1121
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
1122
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1123
 
          <td class="md" nowrap> const</td>
1124
 
        </tr>
1125
 
      </table>
1126
 
    </td>
1127
 
  </tr>
1128
 
</table>
1129
 
<table cellspacing="5" cellpadding="0" border="0">
1130
 
  <tr>
1131
 
    <td>
1132
 
      &nbsp;
1133
 
    </td>
1134
 
    <td>
1135
 
 
1136
 
<p>
1137
 
Lexicographical comparison with a bitvector. 
1138
 
<p>
1139
 
Function compares current bitvector with the provided argument bit by bit and returns -1 if our bitvector less than the argument, 1 - greater, 0 - equal. 
1140
 
<p>
1141
 
Definition at line <a class="el" href="a00137.html#l01909">1909</a> of file <a class="el" href="a00137.html">bm.h</a>.
1142
 
<p>
1143
 
References <a class="el" href="a00141.html#l02729">bm::bit_is_all_zero()</a>, <a class="el" href="a00141.html#l02138">bm::bitcmp()</a>, <a class="el" href="a00137.html#l01540">bm::bvector&lt; Alloc, MS &gt;::blockman_</a>, <a class="el" href="a00140.html#l00059">BM_IS_GAP</a>, <a class="el" href="a00140.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00141.html#l01808">bm::gap_convert_to_bitset()</a>, <a class="el" href="a00141.html#l02001">bm::gap_is_all_zero()</a>, and <a class="el" href="a00141.html#l00739">bm::gapcmp()</a>.
1144
 
<p>
1145
 
Referenced by <a class="el" href="a00147.html#l00055">main()</a>, <a class="el" href="a00137.html#l00924">bm::bvector&lt; Alloc, MS &gt;::operator!=()</a>, <a class="el" href="a00137.html#l00899">bm::bvector&lt; Alloc, MS &gt;::operator&lt;()</a>, <a class="el" href="a00137.html#l00904">bm::bvector&lt; Alloc, MS &gt;::operator&lt;=()</a>, <a class="el" href="a00137.html#l00919">bm::bvector&lt; Alloc, MS &gt;::operator==()</a>, <a class="el" href="a00137.html#l00909">bm::bvector&lt; Alloc, MS &gt;::operator&gt;()</a>, and <a class="el" href="a00137.html#l00914">bm::bvector&lt; Alloc, MS &gt;::operator&gt;=()</a>.    </td>
1146
 
  </tr>
1147
 
</table>
1148
 
<a class="anchor" name="a28" doxytag="bm::bvector::count"></a><p>
1149
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1150
 
  <tr>
1151
 
    <td class="mdRow">
1152
 
      <table cellpadding="0" cellspacing="0" border="0">
1153
 
        <tr>
1154
 
          <td class="mdPrefix" colspan="4">
1155
 
template&lt;typename Alloc, typename MS&gt; </td>
1156
 
        </tr>
1157
 
        <tr>
1158
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::count           </td>
1159
 
          <td class="md" valign="top">(&nbsp;</td>
1160
 
          <td class="mdname1" valign="top" nowrap>          </td>
1161
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1162
 
          <td class="md" nowrap> const</td>
1163
 
        </tr>
1164
 
      </table>
1165
 
    </td>
1166
 
  </tr>
1167
 
</table>
1168
 
<table cellspacing="5" cellpadding="0" border="0">
1169
 
  <tr>
1170
 
    <td>
1171
 
      &nbsp;
1172
 
    </td>
1173
 
    <td>
1174
 
 
1175
 
<p>
1176
 
Returns count of bits which are 1. 
1177
 
<p>
1178
 
<dl compact><dt><b>Returns:</b></dt><dd>Total number of bits ON. </dd></dl>
1179
 
<dl compact><dt><b>Examples: </b></dt><dd>
1180
 
<a class="el" href="a00058.html#a48">sample7.cpp</a>.</dl>
1181
 
<p>
1182
 
Definition at line <a class="el" href="a00137.html#l01638">1638</a> of file <a class="el" href="a00137.html">bm.h</a>.
1183
 
<p>
1184
 
References <a class="el" href="a00137.html#l00082">BMCOUNT_SET</a>, and <a class="el" href="a00141.html#l00535">bm::for_each_nzblock()</a>.
1185
 
<p>
1186
 
Referenced by <a class="el" href="a00137.html#l01678">bm::bvector&lt; Alloc, MS &gt;::count_range()</a>, <a class="el" href="a00146.html#l00044">main()</a>, <a class="el" href="a00152.html#l00153">OrSets()</a>, <a class="el" href="a00137.html#l01118">bm::bvector&lt; Alloc, MS &gt;::recalc_count()</a>, <a class="el" href="a00149.html#l00077">serialize_bvector()</a>, and <a class="el" href="a00137.html#l02351">bm::bvector&lt; Alloc, MS &gt;::stat()</a>.    </td>
1187
 
  </tr>
1188
 
</table>
1189
 
<a class="anchor" name="a32" doxytag="bm::bvector::count_blocks"></a><p>
1190
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1191
 
  <tr>
1192
 
    <td class="mdRow">
1193
 
      <table cellpadding="0" cellspacing="0" border="0">
1194
 
        <tr>
1195
 
          <td class="mdPrefix" colspan="4">
1196
 
template&lt;class Alloc, class MS&gt; </td>
1197
 
        </tr>
1198
 
        <tr>
1199
 
          <td class="md" nowrap valign="top">unsigned <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::count_blocks           </td>
1200
 
          <td class="md" valign="top">(&nbsp;</td>
1201
 
          <td class="md" nowrap valign="top">unsigned *&nbsp;</td>
1202
 
          <td class="mdname1" valign="top" nowrap> <em>arr</em>          </td>
1203
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1204
 
          <td class="md" nowrap> const<code> [inline]</code></td>
1205
 
        </tr>
1206
 
      </table>
1207
 
    </td>
1208
 
  </tr>
1209
 
</table>
1210
 
<table cellspacing="5" cellpadding="0" border="0">
1211
 
  <tr>
1212
 
    <td>
1213
 
      &nbsp;
1214
 
    </td>
1215
 
    <td>
1216
 
 
1217
 
<p>
1218
 
Computes bitcount values for all bvector blocks. 
1219
 
<p>
1220
 
<dl compact><dt><b>Parameters:</b></dt><dd>
1221
 
  <table border="0" cellspacing="2" cellpadding="0">
1222
 
    <tr><td valign="top"></td><td valign="top"><em>arr</em>&nbsp;</td><td>- pointer on array of block bit counts </td></tr>
1223
 
  </table>
1224
 
</dl>
1225
 
<dl compact><dt><b>Returns:</b></dt><dd>Index of the last block counted. This number +1 gives you number of arr elements initialized during the function call. </dd></dl>
1226
 
 
1227
 
<p>
1228
 
Definition at line <a class="el" href="a00137.html#l01095">1095</a> of file <a class="el" href="a00137.html">bm.h</a>.
1229
 
<p>
1230
 
References <a class="el" href="a00141.html#l00535">bm::for_each_nzblock()</a>.    </td>
1231
 
  </tr>
1232
 
</table>
1233
 
<a class="anchor" name="a33" doxytag="bm::bvector::count_range"></a><p>
1234
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1235
 
  <tr>
1236
 
    <td class="mdRow">
1237
 
      <table cellpadding="0" cellspacing="0" border="0">
1238
 
        <tr>
1239
 
          <td class="mdPrefix" colspan="4">
1240
 
template&lt;typename Alloc, typename MS&gt; </td>
1241
 
        </tr>
1242
 
        <tr>
1243
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::count_range           </td>
1244
 
          <td class="md" valign="top">(&nbsp;</td>
1245
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
1246
 
          <td class="mdname" nowrap> <em>left</em>, </td>
1247
 
        </tr>
1248
 
        <tr>
1249
 
          <td class="md" nowrap align="right"></td>
1250
 
          <td class="md"></td>
1251
 
          <td class="md" nowrap><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
1252
 
          <td class="mdname" nowrap> <em>right</em>, </td>
1253
 
        </tr>
1254
 
        <tr>
1255
 
          <td class="md" nowrap align="right"></td>
1256
 
          <td class="md"></td>
1257
 
          <td class="md" nowrap>unsigned *&nbsp;</td>
1258
 
          <td class="mdname" nowrap> <em>block_count_arr</em> = <code>0</code></td>
1259
 
        </tr>
1260
 
        <tr>
1261
 
          <td class="md"></td>
1262
 
          <td class="md">)&nbsp;</td>
1263
 
          <td class="md" colspan="2"> const</td>
1264
 
        </tr>
1265
 
      </table>
1266
 
    </td>
1267
 
  </tr>
1268
 
</table>
1269
 
<table cellspacing="5" cellpadding="0" border="0">
1270
 
  <tr>
1271
 
    <td>
1272
 
      &nbsp;
1273
 
    </td>
1274
 
    <td>
1275
 
 
1276
 
<p>
1277
 
Returns count of 1 bits in the given diapason. 
1278
 
<p>
1279
 
<dl compact><dt><b>Parameters:</b></dt><dd>
1280
 
  <table border="0" cellspacing="2" cellpadding="0">
1281
 
    <tr><td valign="top"></td><td valign="top"><em>left</em>&nbsp;</td><td>- index of first bit start counting from </td></tr>
1282
 
    <tr><td valign="top"></td><td valign="top"><em>right</em>&nbsp;</td><td>- index of last bit </td></tr>
1283
 
    <tr><td valign="top"></td><td valign="top"><em>block_count_arr</em>&nbsp;</td><td>- optional parameter (bitcount by bvector blocks) calculated by count_blocks method. Used to improve performance of wide range searches </td></tr>
1284
 
  </table>
1285
 
</dl>
1286
 
<dl compact><dt><b>Returns:</b></dt><dd>Total number of bits ON. </dd></dl>
1287
 
 
1288
 
<p>
1289
 
Definition at line <a class="el" href="a00137.html#l01678">1678</a> of file <a class="el" href="a00137.html">bm.h</a>.
1290
 
<p>
1291
 
References <a class="el" href="a00141.html#l02553">bm::bit_block_calc_count_range()</a>, <a class="el" href="a00140.html#l00014">BM_ASSERT</a>, <a class="el" href="a00140.html#l00059">BM_IS_GAP</a>, <a class="el" href="a00140.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00137.html#l01638">bm::bvector&lt; Alloc, MS &gt;::count()</a>, <a class="el" href="a00141.html#l00691">bm::gap_bit_count_range()</a>, and <a class="el" href="a00137.html#l01444">bm::bvector&lt; Alloc, MS &gt;::get_block()</a>.    </td>
1292
 
  </tr>
1293
 
</table>
1294
 
<a class="anchor" name="a62" doxytag="bm::bvector::end"></a><p>
1295
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1296
 
  <tr>
1297
 
    <td class="mdRow">
1298
 
      <table cellpadding="0" cellspacing="0" border="0">
1299
 
        <tr>
1300
 
          <td class="mdPrefix" colspan="4">
1301
 
template&lt;class Alloc, class MS&gt; </td>
1302
 
        </tr>
1303
 
        <tr>
1304
 
          <td class="md" nowrap valign="top"><a class="el" href="a00086.html">bvector::enumerator</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::end           </td>
1305
 
          <td class="md" valign="top">(&nbsp;</td>
1306
 
          <td class="mdname1" valign="top" nowrap>          </td>
1307
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1308
 
          <td class="md" nowrap> const<code> [inline]</code></td>
1309
 
        </tr>
1310
 
      </table>
1311
 
    </td>
1312
 
  </tr>
1313
 
</table>
1314
 
<table cellspacing="5" cellpadding="0" border="0">
1315
 
  <tr>
1316
 
    <td>
1317
 
      &nbsp;
1318
 
    </td>
1319
 
    <td>
1320
 
 
1321
 
<p>
1322
 
Returns enumerator pointing on the next bit after the last. 
1323
 
<p>
1324
 
<dl compact><dt><b>Examples: </b></dt><dd>
1325
 
<a class="el" href="a00058.html#a45">sample7.cpp</a>.</dl>
1326
 
<p>
1327
 
Definition at line <a class="el" href="a00137.html#l01437">1437</a> of file <a class="el" href="a00137.html">bm.h</a>.
1328
 
<p>
1329
 
Referenced by <a class="el" href="a00152.html#l00121">EnumerateSets()</a>, and <a class="el" href="a00150.html#l00046">main()</a>.    </td>
1330
 
  </tr>
1331
 
</table>
1332
 
<a class="anchor" name="a46" doxytag="bm::bvector::extract_next"></a><p>
1333
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1334
 
  <tr>
1335
 
    <td class="mdRow">
1336
 
      <table cellpadding="0" cellspacing="0" border="0">
1337
 
        <tr>
1338
 
          <td class="mdPrefix" colspan="4">
1339
 
template&lt;class Alloc, class MS&gt; </td>
1340
 
        </tr>
1341
 
        <tr>
1342
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::extract_next           </td>
1343
 
          <td class="md" valign="top">(&nbsp;</td>
1344
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
1345
 
          <td class="mdname1" valign="top" nowrap> <em>prev</em>          </td>
1346
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1347
 
          <td class="md" nowrap><code> [inline]</code></td>
1348
 
        </tr>
1349
 
      </table>
1350
 
    </td>
1351
 
  </tr>
1352
 
</table>
1353
 
<table cellspacing="5" cellpadding="0" border="0">
1354
 
  <tr>
1355
 
    <td>
1356
 
      &nbsp;
1357
 
    </td>
1358
 
    <td>
1359
 
 
1360
 
<p>
1361
 
Finds the number of the next bit ON and sets it to 0. 
1362
 
<p>
1363
 
<dl compact><dt><b>Parameters:</b></dt><dd>
1364
 
  <table border="0" cellspacing="2" cellpadding="0">
1365
 
    <tr><td valign="top"></td><td valign="top"><em>prev</em>&nbsp;</td><td>- Index of the previously found bit. </td></tr>
1366
 
  </table>
1367
 
</dl>
1368
 
<dl compact><dt><b>Returns:</b></dt><dd>Index of the next bit which is ON or 0 if not found. </dd></dl>
1369
 
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a44">get_first</a>, <a class="el" href="a00084.html#a45">get_next</a>, </dd></dl>
1370
 
 
1371
 
<p>
1372
 
Definition at line <a class="el" href="a00137.html#l01249">1249</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
1373
 
  </tr>
1374
 
</table>
1375
 
<a class="anchor" name="a61" doxytag="bm::bvector::first"></a><p>
1376
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1377
 
  <tr>
1378
 
    <td class="mdRow">
1379
 
      <table cellpadding="0" cellspacing="0" border="0">
1380
 
        <tr>
1381
 
          <td class="mdPrefix" colspan="4">
1382
 
template&lt;class Alloc, class MS&gt; </td>
1383
 
        </tr>
1384
 
        <tr>
1385
 
          <td class="md" nowrap valign="top"><a class="el" href="a00086.html">enumerator</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::first           </td>
1386
 
          <td class="md" valign="top">(&nbsp;</td>
1387
 
          <td class="mdname1" valign="top" nowrap>          </td>
1388
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1389
 
          <td class="md" nowrap> const<code> [inline]</code></td>
1390
 
        </tr>
1391
 
      </table>
1392
 
    </td>
1393
 
  </tr>
1394
 
</table>
1395
 
<table cellspacing="5" cellpadding="0" border="0">
1396
 
  <tr>
1397
 
    <td>
1398
 
      &nbsp;
1399
 
    </td>
1400
 
    <td>
1401
 
 
1402
 
<p>
1403
 
Returns enumerator pointing on the first non-zero bit. 
1404
 
<p>
1405
 
<dl compact><dt><b>Examples: </b></dt><dd>
1406
 
<a class="el" href="a00058.html#a44">sample7.cpp</a>.</dl>
1407
 
<p>
1408
 
Definition at line <a class="el" href="a00137.html#l01427">1427</a> of file <a class="el" href="a00137.html">bm.h</a>.
1409
 
<p>
1410
 
Referenced by <a class="el" href="a00152.html#l00121">EnumerateSets()</a>, and <a class="el" href="a00150.html#l00046">main()</a>.    </td>
1411
 
  </tr>
1412
 
</table>
1413
 
<a class="anchor" name="a42" doxytag="bm::bvector::flip"></a><p>
1414
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1415
 
  <tr>
1416
 
    <td class="mdRow">
1417
 
      <table cellpadding="0" cellspacing="0" border="0">
1418
 
        <tr>
1419
 
          <td class="mdPrefix" colspan="4">
1420
 
template&lt;class Alloc, class MS&gt; </td>
1421
 
        </tr>
1422
 
        <tr>
1423
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>&lt;Alloc, MS&gt;&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::flip           </td>
1424
 
          <td class="md" valign="top">(&nbsp;</td>
1425
 
          <td class="mdname1" valign="top" nowrap>          </td>
1426
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1427
 
          <td class="md" nowrap><code> [inline]</code></td>
1428
 
        </tr>
1429
 
      </table>
1430
 
    </td>
1431
 
  </tr>
1432
 
</table>
1433
 
<table cellspacing="5" cellpadding="0" border="0">
1434
 
  <tr>
1435
 
    <td>
1436
 
      &nbsp;
1437
 
    </td>
1438
 
    <td>
1439
 
 
1440
 
<p>
1441
 
Flips all bits. 
1442
 
<p>
1443
 
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
1444
 
 
1445
 
<p>
1446
 
Definition at line <a class="el" href="a00137.html#l01201">1201</a> of file <a class="el" href="a00137.html">bm.h</a>.
1447
 
<p>
1448
 
References <a class="el" href="a00137.html#l01772">bm::bvector&lt; Alloc, MS &gt;::invert()</a>.    </td>
1449
 
  </tr>
1450
 
</table>
1451
 
<a class="anchor" name="a41" doxytag="bm::bvector::flip"></a><p>
1452
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1453
 
  <tr>
1454
 
    <td class="mdRow">
1455
 
      <table cellpadding="0" cellspacing="0" border="0">
1456
 
        <tr>
1457
 
          <td class="mdPrefix" colspan="4">
1458
 
template&lt;class Alloc, class MS&gt; </td>
1459
 
        </tr>
1460
 
        <tr>
1461
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>&lt;Alloc, MS&gt;&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::flip           </td>
1462
 
          <td class="md" valign="top">(&nbsp;</td>
1463
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
1464
 
          <td class="mdname1" valign="top" nowrap> <em>n</em>          </td>
1465
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1466
 
          <td class="md" nowrap><code> [inline]</code></td>
1467
 
        </tr>
1468
 
      </table>
1469
 
    </td>
1470
 
  </tr>
1471
 
</table>
1472
 
<table cellspacing="5" cellpadding="0" border="0">
1473
 
  <tr>
1474
 
    <td>
1475
 
      &nbsp;
1476
 
    </td>
1477
 
    <td>
1478
 
 
1479
 
<p>
1480
 
Flips bit n. 
1481
 
<p>
1482
 
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
1483
 
 
1484
 
<p>
1485
 
Definition at line <a class="el" href="a00137.html#l01191">1191</a> of file <a class="el" href="a00137.html">bm.h</a>.
1486
 
<p>
1487
 
References <a class="el" href="a00137.html#l01796">bm::bvector&lt; Alloc, MS &gt;::get_bit()</a>, and <a class="el" href="a00137.html#l00997">bm::bvector&lt; Alloc, MS &gt;::set()</a>.    </td>
1488
 
  </tr>
1489
 
</table>
1490
 
<a class="anchor" name="a35" doxytag="bm::bvector::forget_count"></a><p>
1491
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1492
 
  <tr>
1493
 
    <td class="mdRow">
1494
 
      <table cellpadding="0" cellspacing="0" border="0">
1495
 
        <tr>
1496
 
          <td class="mdPrefix" colspan="4">
1497
 
template&lt;class Alloc, class MS&gt; </td>
1498
 
        </tr>
1499
 
        <tr>
1500
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::forget_count           </td>
1501
 
          <td class="md" valign="top">(&nbsp;</td>
1502
 
          <td class="mdname1" valign="top" nowrap>          </td>
1503
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1504
 
          <td class="md" nowrap><code> [inline]</code></td>
1505
 
        </tr>
1506
 
      </table>
1507
 
    </td>
1508
 
  </tr>
1509
 
</table>
1510
 
<table cellspacing="5" cellpadding="0" border="0">
1511
 
  <tr>
1512
 
    <td>
1513
 
      &nbsp;
1514
 
    </td>
1515
 
    <td>
1516
 
 
1517
 
<p>
1518
 
Disables count cache. Next call to <a class="el" href="a00084.html#a28">count()</a> or <a class="el" href="a00084.html#a34">recalc_count()</a> restores count caching.<p>
1519
 
<dl compact><dt><b>Note:</b></dt><dd>Works only if BMCOUNTOPT enabled(defined). Othewise does nothing. </dd></dl>
1520
 
 
1521
 
<p>
1522
 
Definition at line <a class="el" href="a00137.html#l01131">1131</a> of file <a class="el" href="a00137.html">bm.h</a>.
1523
 
<p>
1524
 
References <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>.    </td>
1525
 
  </tr>
1526
 
</table>
1527
 
<a class="anchor" name="a60" doxytag="bm::bvector::free_tempblock"></a><p>
1528
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1529
 
  <tr>
1530
 
    <td class="mdRow">
1531
 
      <table cellpadding="0" cellspacing="0" border="0">
1532
 
        <tr>
1533
 
          <td class="mdPrefix" colspan="4">
1534
 
template&lt;class Alloc, class MS&gt; </td>
1535
 
        </tr>
1536
 
        <tr>
1537
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::free_tempblock           </td>
1538
 
          <td class="md" valign="top">(&nbsp;</td>
1539
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a27">bm::word_t</a> *&nbsp;</td>
1540
 
          <td class="mdname1" valign="top" nowrap> <em>block</em>          </td>
1541
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1542
 
          <td class="md" nowrap> const<code> [inline]</code></td>
1543
 
        </tr>
1544
 
      </table>
1545
 
    </td>
1546
 
  </tr>
1547
 
</table>
1548
 
<table cellspacing="5" cellpadding="0" border="0">
1549
 
  <tr>
1550
 
    <td>
1551
 
      &nbsp;
1552
 
    </td>
1553
 
    <td>
1554
 
 
1555
 
<p>
1556
 
Frees temporary block of memory. 
1557
 
<p>
1558
 
<dl compact><dt><b>Note:</b></dt><dd>method is marked const, but it's not quite true, since it can in some cases modify the state of the block allocator (if it has a state). (Can be important in MT programs).</dd></dl>
1559
 
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a59">allocate_tempblock</a> </dd></dl>
1560
 
 
1561
 
<p>
1562
 
Definition at line <a class="el" href="a00137.html#l01417">1417</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
1563
 
  </tr>
1564
 
</table>
1565
 
<a class="anchor" name="a17" doxytag="bm::bvector::get_allocator"></a><p>
1566
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1567
 
  <tr>
1568
 
    <td class="mdRow">
1569
 
      <table cellpadding="0" cellspacing="0" border="0">
1570
 
        <tr>
1571
 
          <td class="mdPrefix" colspan="4">
1572
 
template&lt;class Alloc, class MS&gt; </td>
1573
 
        </tr>
1574
 
        <tr>
1575
 
          <td class="md" nowrap valign="top">Alloc <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::get_allocator           </td>
1576
 
          <td class="md" valign="top">(&nbsp;</td>
1577
 
          <td class="mdname1" valign="top" nowrap>          </td>
1578
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1579
 
          <td class="md" nowrap> const<code> [inline]</code></td>
1580
 
        </tr>
1581
 
      </table>
1582
 
    </td>
1583
 
  </tr>
1584
 
</table>
1585
 
<table cellspacing="5" cellpadding="0" border="0">
1586
 
  <tr>
1587
 
    <td>
1588
 
      &nbsp;
1589
 
    </td>
1590
 
    <td>
1591
 
 
1592
 
<p>
1593
 
 
1594
 
<p>
1595
 
Definition at line <a class="el" href="a00137.html#l00934">934</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
1596
 
  </tr>
1597
 
</table>
1598
 
<a class="anchor" name="a37" doxytag="bm::bvector::get_bit"></a><p>
1599
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1600
 
  <tr>
1601
 
    <td class="mdRow">
1602
 
      <table cellpadding="0" cellspacing="0" border="0">
1603
 
        <tr>
1604
 
          <td class="mdPrefix" colspan="4">
1605
 
template&lt;typename Alloc, typename MS&gt; </td>
1606
 
        </tr>
1607
 
        <tr>
1608
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::get_bit           </td>
1609
 
          <td class="md" valign="top">(&nbsp;</td>
1610
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
1611
 
          <td class="mdname1" valign="top" nowrap> <em>n</em>          </td>
1612
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1613
 
          <td class="md" nowrap> const</td>
1614
 
        </tr>
1615
 
      </table>
1616
 
    </td>
1617
 
  </tr>
1618
 
</table>
1619
 
<table cellspacing="5" cellpadding="0" border="0">
1620
 
  <tr>
1621
 
    <td>
1622
 
      &nbsp;
1623
 
    </td>
1624
 
    <td>
1625
 
 
1626
 
<p>
1627
 
returns true if bit n is set and false is bit n is 0. 
1628
 
<p>
1629
 
<dl compact><dt><b>Parameters:</b></dt><dd>
1630
 
  <table border="0" cellspacing="2" cellpadding="0">
1631
 
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>- Index of the bit to check. </td></tr>
1632
 
  </table>
1633
 
</dl>
1634
 
<dl compact><dt><b>Returns:</b></dt><dd>Bit value (1 or 0) </dd></dl>
1635
 
 
1636
 
<p>
1637
 
Definition at line <a class="el" href="a00137.html#l01796">1796</a> of file <a class="el" href="a00137.html">bm.h</a>.
1638
 
<p>
1639
 
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>, <a class="el" href="a00140.html#l00059">BM_IS_GAP</a>, <a class="el" href="a00140.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00141.html#l00497">bm::gap_test()</a>, and <a class="el" href="a00137.html#l01444">bm::bvector&lt; Alloc, MS &gt;::get_block()</a>.
1640
 
<p>
1641
 
Referenced by <a class="el" href="a00137.html#l01191">bm::bvector&lt; Alloc, MS &gt;::flip()</a>, <a class="el" href="a00137.html#l00873">bm::bvector&lt; Alloc, MS &gt;::operator[]()</a>, and <a class="el" href="a00137.html#l01154">bm::bvector&lt; Alloc, MS &gt;::test()</a>.    </td>
1642
 
  </tr>
1643
 
</table>
1644
 
<a class="anchor" name="a63" doxytag="bm::bvector::get_block"></a><p>
1645
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1646
 
  <tr>
1647
 
    <td class="mdRow">
1648
 
      <table cellpadding="0" cellspacing="0" border="0">
1649
 
        <tr>
1650
 
          <td class="mdPrefix" colspan="4">
1651
 
template&lt;class Alloc, class MS&gt; </td>
1652
 
        </tr>
1653
 
        <tr>
1654
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00129.html#a27">bm::word_t</a>* <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::get_block           </td>
1655
 
          <td class="md" valign="top">(&nbsp;</td>
1656
 
          <td class="md" nowrap valign="top">unsigned&nbsp;</td>
1657
 
          <td class="mdname1" valign="top" nowrap> <em>nb</em>          </td>
1658
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1659
 
          <td class="md" nowrap> const<code> [inline]</code></td>
1660
 
        </tr>
1661
 
      </table>
1662
 
    </td>
1663
 
  </tr>
1664
 
</table>
1665
 
<table cellspacing="5" cellpadding="0" border="0">
1666
 
  <tr>
1667
 
    <td>
1668
 
      &nbsp;
1669
 
    </td>
1670
 
    <td>
1671
 
 
1672
 
<p>
1673
 
 
1674
 
<p>
1675
 
Definition at line <a class="el" href="a00137.html#l01444">1444</a> of file <a class="el" href="a00137.html">bm.h</a>.
1676
 
<p>
1677
 
Referenced by <a class="el" href="a00137.html#l02612">bm::bvector&lt; Alloc, MS &gt;::combine_operation()</a>, <a class="el" href="a00137.html#l01481">bm::bvector&lt; Alloc, MS &gt;::combine_operation_with_block()</a>, <a class="el" href="a00137.html#l01678">bm::bvector&lt; Alloc, MS &gt;::count_range()</a>, <a class="el" href="a00137.html#l01796">bm::bvector&lt; Alloc, MS &gt;::get_bit()</a>, and <a class="el" href="a00137.html#l02351">bm::bvector&lt; Alloc, MS &gt;::stat()</a>.    </td>
1678
 
  </tr>
1679
 
</table>
1680
 
<a class="anchor" name="a67" doxytag="bm::bvector::get_blocks_manager"></a><p>
1681
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1682
 
  <tr>
1683
 
    <td class="mdRow">
1684
 
      <table cellpadding="0" cellspacing="0" border="0">
1685
 
        <tr>
1686
 
          <td class="mdPrefix" colspan="4">
1687
 
template&lt;class Alloc, class MS&gt; </td>
1688
 
        </tr>
1689
 
        <tr>
1690
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html#w1">blocks_manager_type</a>&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::get_blocks_manager           </td>
1691
 
          <td class="md" valign="top">(&nbsp;</td>
1692
 
          <td class="mdname1" valign="top" nowrap>          </td>
1693
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1694
 
          <td class="md" nowrap><code> [inline]</code></td>
1695
 
        </tr>
1696
 
      </table>
1697
 
    </td>
1698
 
  </tr>
1699
 
</table>
1700
 
<table cellspacing="5" cellpadding="0" border="0">
1701
 
  <tr>
1702
 
    <td>
1703
 
      &nbsp;
1704
 
    </td>
1705
 
    <td>
1706
 
 
1707
 
<p>
1708
 
 
1709
 
<p>
1710
 
Definition at line <a class="el" href="a00137.html#l01525">1525</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
1711
 
  </tr>
1712
 
</table>
1713
 
<a class="anchor" name="a66" doxytag="bm::bvector::get_blocks_manager"></a><p>
1714
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1715
 
  <tr>
1716
 
    <td class="mdRow">
1717
 
      <table cellpadding="0" cellspacing="0" border="0">
1718
 
        <tr>
1719
 
          <td class="mdPrefix" colspan="4">
1720
 
template&lt;class Alloc, class MS&gt; </td>
1721
 
        </tr>
1722
 
        <tr>
1723
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html#w1">blocks_manager_type</a>&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::get_blocks_manager           </td>
1724
 
          <td class="md" valign="top">(&nbsp;</td>
1725
 
          <td class="mdname1" valign="top" nowrap>          </td>
1726
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1727
 
          <td class="md" nowrap> const<code> [inline]</code></td>
1728
 
        </tr>
1729
 
      </table>
1730
 
    </td>
1731
 
  </tr>
1732
 
</table>
1733
 
<table cellspacing="5" cellpadding="0" border="0">
1734
 
  <tr>
1735
 
    <td>
1736
 
      &nbsp;
1737
 
    </td>
1738
 
    <td>
1739
 
 
1740
 
<p>
1741
 
 
1742
 
<p>
1743
 
Definition at line <a class="el" href="a00137.html#l01520">1520</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
1744
 
  </tr>
1745
 
</table>
1746
 
<a class="anchor" name="a44" doxytag="bm::bvector::get_first"></a><p>
1747
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1748
 
  <tr>
1749
 
    <td class="mdRow">
1750
 
      <table cellpadding="0" cellspacing="0" border="0">
1751
 
        <tr>
1752
 
          <td class="mdPrefix" colspan="4">
1753
 
template&lt;class Alloc, class MS&gt; </td>
1754
 
        </tr>
1755
 
        <tr>
1756
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::get_first           </td>
1757
 
          <td class="md" valign="top">(&nbsp;</td>
1758
 
          <td class="mdname1" valign="top" nowrap>          </td>
1759
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1760
 
          <td class="md" nowrap> const<code> [inline]</code></td>
1761
 
        </tr>
1762
 
      </table>
1763
 
    </td>
1764
 
  </tr>
1765
 
</table>
1766
 
<table cellspacing="5" cellpadding="0" border="0">
1767
 
  <tr>
1768
 
    <td>
1769
 
      &nbsp;
1770
 
    </td>
1771
 
    <td>
1772
 
 
1773
 
<p>
1774
 
Gets number of first bit which is ON. 
1775
 
<p>
1776
 
<dl compact><dt><b>Returns:</b></dt><dd>Index of the first 1 bit. </dd></dl>
1777
 
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a45">get_next</a>, <a class="el" href="a00084.html#a46">extract_next</a> </dd></dl>
1778
 
 
1779
 
<p>
1780
 
Definition at line <a class="el" href="a00137.html#l01228">1228</a> of file <a class="el" href="a00137.html">bm.h</a>.
1781
 
<p>
1782
 
Referenced by <a class="el" href="a00146.html#l00044">main()</a>.    </td>
1783
 
  </tr>
1784
 
</table>
1785
 
<a class="anchor" name="a53" doxytag="bm::bvector::get_new_blocks_strat"></a><p>
1786
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1787
 
  <tr>
1788
 
    <td class="mdRow">
1789
 
      <table cellpadding="0" cellspacing="0" border="0">
1790
 
        <tr>
1791
 
          <td class="mdPrefix" colspan="4">
1792
 
template&lt;class Alloc, class MS&gt; </td>
1793
 
        </tr>
1794
 
        <tr>
1795
 
          <td class="md" nowrap valign="top"><a class="el" href="a00132.html#ga0">strategy</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::get_new_blocks_strat           </td>
1796
 
          <td class="md" valign="top">(&nbsp;</td>
1797
 
          <td class="mdname1" valign="top" nowrap>          </td>
1798
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1799
 
          <td class="md" nowrap> const<code> [inline]</code></td>
1800
 
        </tr>
1801
 
      </table>
1802
 
    </td>
1803
 
  </tr>
1804
 
</table>
1805
 
<table cellspacing="5" cellpadding="0" border="0">
1806
 
  <tr>
1807
 
    <td>
1808
 
      &nbsp;
1809
 
    </td>
1810
 
    <td>
1811
 
 
1812
 
<p>
1813
 
Returns blocks allocation strategy. 
1814
 
<p>
1815
 
<dl compact><dt><b>Returns:</b></dt><dd>- Strategy code 0 - bitblocks allocation only. 1 - Blocks mutation mode (adaptive algorithm) </dd></dl>
1816
 
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a52">set_new_blocks_strat</a> </dd></dl>
1817
 
 
1818
 
<p>
1819
 
Definition at line <a class="el" href="a00137.html#l01329">1329</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
1820
 
  </tr>
1821
 
</table>
1822
 
<a class="anchor" name="a45" doxytag="bm::bvector::get_next"></a><p>
1823
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1824
 
  <tr>
1825
 
    <td class="mdRow">
1826
 
      <table cellpadding="0" cellspacing="0" border="0">
1827
 
        <tr>
1828
 
          <td class="mdPrefix" colspan="4">
1829
 
template&lt;class Alloc, class MS&gt; </td>
1830
 
        </tr>
1831
 
        <tr>
1832
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::get_next           </td>
1833
 
          <td class="md" valign="top">(&nbsp;</td>
1834
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
1835
 
          <td class="mdname1" valign="top" nowrap> <em>prev</em>          </td>
1836
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1837
 
          <td class="md" nowrap> const<code> [inline]</code></td>
1838
 
        </tr>
1839
 
      </table>
1840
 
    </td>
1841
 
  </tr>
1842
 
</table>
1843
 
<table cellspacing="5" cellpadding="0" border="0">
1844
 
  <tr>
1845
 
    <td>
1846
 
      &nbsp;
1847
 
    </td>
1848
 
    <td>
1849
 
 
1850
 
<p>
1851
 
Finds the number of the next bit ON. 
1852
 
<p>
1853
 
<dl compact><dt><b>Parameters:</b></dt><dd>
1854
 
  <table border="0" cellspacing="2" cellpadding="0">
1855
 
    <tr><td valign="top"></td><td valign="top"><em>prev</em>&nbsp;</td><td>- Index of the previously found bit. </td></tr>
1856
 
  </table>
1857
 
</dl>
1858
 
<dl compact><dt><b>Returns:</b></dt><dd>Index of the next bit which is ON or 0 if not found. </dd></dl>
1859
 
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a44">get_first</a>, <a class="el" href="a00084.html#a46">extract_next</a> </dd></dl>
1860
 
 
1861
 
<p>
1862
 
Definition at line <a class="el" href="a00137.html#l01237">1237</a> of file <a class="el" href="a00137.html">bm.h</a>.
1863
 
<p>
1864
 
Referenced by <a class="el" href="a00146.html#l00044">main()</a>.    </td>
1865
 
  </tr>
1866
 
</table>
1867
 
<a class="anchor" name="a24" doxytag="bm::bvector::inserter"></a><p>
1868
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1869
 
  <tr>
1870
 
    <td class="mdRow">
1871
 
      <table cellpadding="0" cellspacing="0" border="0">
1872
 
        <tr>
1873
 
          <td class="mdPrefix" colspan="4">
1874
 
template&lt;class Alloc, class MS&gt; </td>
1875
 
        </tr>
1876
 
        <tr>
1877
 
          <td class="md" nowrap valign="top"><a class="el" href="a00087.html">insert_iterator</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::inserter           </td>
1878
 
          <td class="md" valign="top">(&nbsp;</td>
1879
 
          <td class="mdname1" valign="top" nowrap>          </td>
1880
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1881
 
          <td class="md" nowrap><code> [inline]</code></td>
1882
 
        </tr>
1883
 
      </table>
1884
 
    </td>
1885
 
  </tr>
1886
 
</table>
1887
 
<table cellspacing="5" cellpadding="0" border="0">
1888
 
  <tr>
1889
 
    <td>
1890
 
      &nbsp;
1891
 
    </td>
1892
 
    <td>
1893
 
 
1894
 
<p>
1895
 
Function erturns insert iterator for this bitvector 
1896
 
<p>
1897
 
Definition at line <a class="el" href="a00137.html#l01022">1022</a> of file <a class="el" href="a00137.html">bm.h</a>.
1898
 
<p>
1899
 
Referenced by <a class="el" href="a00153.html#l00069">main()</a>.    </td>
1900
 
  </tr>
1901
 
</table>
1902
 
<a class="anchor" name="a36" doxytag="bm::bvector::invert"></a><p>
1903
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1904
 
  <tr>
1905
 
    <td class="mdRow">
1906
 
      <table cellpadding="0" cellspacing="0" border="0">
1907
 
        <tr>
1908
 
          <td class="mdPrefix" colspan="4">
1909
 
template&lt;typename Alloc, typename MS&gt; </td>
1910
 
        </tr>
1911
 
        <tr>
1912
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::invert           </td>
1913
 
          <td class="md" valign="top">(&nbsp;</td>
1914
 
          <td class="mdname1" valign="top" nowrap>          </td>
1915
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1916
 
          <td class="md" nowrap></td>
1917
 
        </tr>
1918
 
      </table>
1919
 
    </td>
1920
 
  </tr>
1921
 
</table>
1922
 
<table cellspacing="5" cellpadding="0" border="0">
1923
 
  <tr>
1924
 
    <td>
1925
 
      &nbsp;
1926
 
    </td>
1927
 
    <td>
1928
 
 
1929
 
<p>
1930
 
Inverts all bits. 
1931
 
<p>
1932
 
 
1933
 
<p>
1934
 
Definition at line <a class="el" href="a00137.html#l01772">1772</a> of file <a class="el" href="a00137.html">bm.h</a>.
1935
 
<p>
1936
 
References <a class="el" href="a00140.html#l00093">BM_SET_MMX_GUARD</a>, <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00141.html#l00600">bm::for_each_block()</a>.
1937
 
<p>
1938
 
Referenced by <a class="el" href="a00137.html#l01201">bm::bvector&lt; Alloc, MS &gt;::flip()</a>.    </td>
1939
 
  </tr>
1940
 
</table>
1941
 
<a class="anchor" name="a40" doxytag="bm::bvector::none"></a><p>
1942
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1943
 
  <tr>
1944
 
    <td class="mdRow">
1945
 
      <table cellpadding="0" cellspacing="0" border="0">
1946
 
        <tr>
1947
 
          <td class="mdPrefix" colspan="4">
1948
 
template&lt;class Alloc, class MS&gt; </td>
1949
 
        </tr>
1950
 
        <tr>
1951
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::none           </td>
1952
 
          <td class="md" valign="top">(&nbsp;</td>
1953
 
          <td class="mdname1" valign="top" nowrap>          </td>
1954
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1955
 
          <td class="md" nowrap> const<code> [inline]</code></td>
1956
 
        </tr>
1957
 
      </table>
1958
 
    </td>
1959
 
  </tr>
1960
 
</table>
1961
 
<table cellspacing="5" cellpadding="0" border="0">
1962
 
  <tr>
1963
 
    <td>
1964
 
      &nbsp;
1965
 
    </td>
1966
 
    <td>
1967
 
 
1968
 
<p>
1969
 
Returns true if no bits are set, otherwise returns false. 
1970
 
<p>
1971
 
 
1972
 
<p>
1973
 
Definition at line <a class="el" href="a00137.html#l01182">1182</a> of file <a class="el" href="a00137.html">bm.h</a>.
1974
 
<p>
1975
 
References <a class="el" href="a00137.html#l01163">bm::bvector&lt; Alloc, MS &gt;::any()</a>.    </td>
1976
 
  </tr>
1977
 
</table>
1978
 
<a class="anchor" name="a6" doxytag="bm::bvector::operator &="></a><p>
1979
 
<table class="mdTable" cellpadding="2" cellspacing="0">
1980
 
  <tr>
1981
 
    <td class="mdRow">
1982
 
      <table cellpadding="0" cellspacing="0" border="0">
1983
 
        <tr>
1984
 
          <td class="mdPrefix" colspan="4">
1985
 
template&lt;class Alloc, class MS&gt; </td>
1986
 
        </tr>
1987
 
        <tr>
1988
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator &amp;=           </td>
1989
 
          <td class="md" valign="top">(&nbsp;</td>
1990
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
1991
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
1992
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1993
 
          <td class="md" nowrap><code> [inline]</code></td>
1994
 
        </tr>
1995
 
      </table>
1996
 
    </td>
1997
 
  </tr>
1998
 
</table>
1999
 
<table cellspacing="5" cellpadding="0" border="0">
2000
 
  <tr>
2001
 
    <td>
2002
 
      &nbsp;
2003
 
    </td>
2004
 
    <td>
2005
 
 
2006
 
<p>
2007
 
 
2008
 
<p>
2009
 
Definition at line <a class="el" href="a00137.html#l00879">879</a> of file <a class="el" href="a00137.html">bm.h</a>.
2010
 
<p>
2011
 
References <a class="el" href="a00137.html#l01283">bm::bvector&lt; Alloc, MS &gt;::bit_and()</a>.    </td>
2012
 
  </tr>
2013
 
</table>
2014
 
<a class="anchor" name="a15" doxytag="bm::bvector::operator!="></a><p>
2015
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2016
 
  <tr>
2017
 
    <td class="mdRow">
2018
 
      <table cellpadding="0" cellspacing="0" border="0">
2019
 
        <tr>
2020
 
          <td class="mdPrefix" colspan="4">
2021
 
template&lt;class Alloc, class MS&gt; </td>
2022
 
        </tr>
2023
 
        <tr>
2024
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator!=           </td>
2025
 
          <td class="md" valign="top">(&nbsp;</td>
2026
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
2027
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
2028
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2029
 
          <td class="md" nowrap> const<code> [inline]</code></td>
2030
 
        </tr>
2031
 
      </table>
2032
 
    </td>
2033
 
  </tr>
2034
 
</table>
2035
 
<table cellspacing="5" cellpadding="0" border="0">
2036
 
  <tr>
2037
 
    <td>
2038
 
      &nbsp;
2039
 
    </td>
2040
 
    <td>
2041
 
 
2042
 
<p>
2043
 
 
2044
 
<p>
2045
 
Definition at line <a class="el" href="a00137.html#l00924">924</a> of file <a class="el" href="a00137.html">bm.h</a>.
2046
 
<p>
2047
 
References <a class="el" href="a00137.html#l01909">bm::bvector&lt; Alloc, MS &gt;::compare()</a>.    </td>
2048
 
  </tr>
2049
 
</table>
2050
 
<a class="anchor" name="a9" doxytag="bm::bvector::operator-="></a><p>
2051
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2052
 
  <tr>
2053
 
    <td class="mdRow">
2054
 
      <table cellpadding="0" cellspacing="0" border="0">
2055
 
        <tr>
2056
 
          <td class="mdPrefix" colspan="4">
2057
 
template&lt;class Alloc, class MS&gt; </td>
2058
 
        </tr>
2059
 
        <tr>
2060
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator-=           </td>
2061
 
          <td class="md" valign="top">(&nbsp;</td>
2062
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
2063
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
2064
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2065
 
          <td class="md" nowrap><code> [inline]</code></td>
2066
 
        </tr>
2067
 
      </table>
2068
 
    </td>
2069
 
  </tr>
2070
 
</table>
2071
 
<table cellspacing="5" cellpadding="0" border="0">
2072
 
  <tr>
2073
 
    <td>
2074
 
      &nbsp;
2075
 
    </td>
2076
 
    <td>
2077
 
 
2078
 
<p>
2079
 
 
2080
 
<p>
2081
 
Definition at line <a class="el" href="a00137.html#l00894">894</a> of file <a class="el" href="a00137.html">bm.h</a>.
2082
 
<p>
2083
 
References <a class="el" href="a00137.html#l01305">bm::bvector&lt; Alloc, MS &gt;::bit_sub()</a>.    </td>
2084
 
  </tr>
2085
 
</table>
2086
 
<a class="anchor" name="a10" doxytag="bm::bvector::operator<"></a><p>
2087
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2088
 
  <tr>
2089
 
    <td class="mdRow">
2090
 
      <table cellpadding="0" cellspacing="0" border="0">
2091
 
        <tr>
2092
 
          <td class="mdPrefix" colspan="4">
2093
 
template&lt;class Alloc, class MS&gt; </td>
2094
 
        </tr>
2095
 
        <tr>
2096
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator&lt;           </td>
2097
 
          <td class="md" valign="top">(&nbsp;</td>
2098
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
2099
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
2100
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2101
 
          <td class="md" nowrap> const<code> [inline]</code></td>
2102
 
        </tr>
2103
 
      </table>
2104
 
    </td>
2105
 
  </tr>
2106
 
</table>
2107
 
<table cellspacing="5" cellpadding="0" border="0">
2108
 
  <tr>
2109
 
    <td>
2110
 
      &nbsp;
2111
 
    </td>
2112
 
    <td>
2113
 
 
2114
 
<p>
2115
 
 
2116
 
<p>
2117
 
Definition at line <a class="el" href="a00137.html#l00899">899</a> of file <a class="el" href="a00137.html">bm.h</a>.
2118
 
<p>
2119
 
References <a class="el" href="a00137.html#l01909">bm::bvector&lt; Alloc, MS &gt;::compare()</a>.    </td>
2120
 
  </tr>
2121
 
</table>
2122
 
<a class="anchor" name="a11" doxytag="bm::bvector::operator<="></a><p>
2123
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2124
 
  <tr>
2125
 
    <td class="mdRow">
2126
 
      <table cellpadding="0" cellspacing="0" border="0">
2127
 
        <tr>
2128
 
          <td class="mdPrefix" colspan="4">
2129
 
template&lt;class Alloc, class MS&gt; </td>
2130
 
        </tr>
2131
 
        <tr>
2132
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator&lt;=           </td>
2133
 
          <td class="md" valign="top">(&nbsp;</td>
2134
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
2135
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
2136
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2137
 
          <td class="md" nowrap> const<code> [inline]</code></td>
2138
 
        </tr>
2139
 
      </table>
2140
 
    </td>
2141
 
  </tr>
2142
 
</table>
2143
 
<table cellspacing="5" cellpadding="0" border="0">
2144
 
  <tr>
2145
 
    <td>
2146
 
      &nbsp;
2147
 
    </td>
2148
 
    <td>
2149
 
 
2150
 
<p>
2151
 
 
2152
 
<p>
2153
 
Definition at line <a class="el" href="a00137.html#l00904">904</a> of file <a class="el" href="a00137.html">bm.h</a>.
2154
 
<p>
2155
 
References <a class="el" href="a00137.html#l01909">bm::bvector&lt; Alloc, MS &gt;::compare()</a>.    </td>
2156
 
  </tr>
2157
 
</table>
2158
 
<a class="anchor" name="a3" doxytag="bm::bvector::operator="></a><p>
2159
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2160
 
  <tr>
2161
 
    <td class="mdRow">
2162
 
      <table cellpadding="0" cellspacing="0" border="0">
2163
 
        <tr>
2164
 
          <td class="mdPrefix" colspan="4">
2165
 
template&lt;class Alloc, class MS&gt; </td>
2166
 
        </tr>
2167
 
        <tr>
2168
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator=           </td>
2169
 
          <td class="md" valign="top">(&nbsp;</td>
2170
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
2171
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
2172
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2173
 
          <td class="md" nowrap><code> [inline]</code></td>
2174
 
        </tr>
2175
 
      </table>
2176
 
    </td>
2177
 
  </tr>
2178
 
</table>
2179
 
<table cellspacing="5" cellpadding="0" border="0">
2180
 
  <tr>
2181
 
    <td>
2182
 
      &nbsp;
2183
 
    </td>
2184
 
    <td>
2185
 
 
2186
 
<p>
2187
 
 
2188
 
<p>
2189
 
Definition at line <a class="el" href="a00137.html#l00858">858</a> of file <a class="el" href="a00137.html">bm.h</a>.
2190
 
<p>
2191
 
References <a class="el" href="a00137.html#l01272">bm::bvector&lt; Alloc, MS &gt;::bit_or()</a>, <a class="el" href="a00137.html#l01044">bm::bvector&lt; Alloc, MS &gt;::clear()</a>, and <a class="el" href="a00137.html#l01660">bm::bvector&lt; Alloc, MS &gt;::resize()</a>.    </td>
2192
 
  </tr>
2193
 
</table>
2194
 
<a class="anchor" name="a14" doxytag="bm::bvector::operator=="></a><p>
2195
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2196
 
  <tr>
2197
 
    <td class="mdRow">
2198
 
      <table cellpadding="0" cellspacing="0" border="0">
2199
 
        <tr>
2200
 
          <td class="mdPrefix" colspan="4">
2201
 
template&lt;class Alloc, class MS&gt; </td>
2202
 
        </tr>
2203
 
        <tr>
2204
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator==           </td>
2205
 
          <td class="md" valign="top">(&nbsp;</td>
2206
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
2207
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
2208
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2209
 
          <td class="md" nowrap> const<code> [inline]</code></td>
2210
 
        </tr>
2211
 
      </table>
2212
 
    </td>
2213
 
  </tr>
2214
 
</table>
2215
 
<table cellspacing="5" cellpadding="0" border="0">
2216
 
  <tr>
2217
 
    <td>
2218
 
      &nbsp;
2219
 
    </td>
2220
 
    <td>
2221
 
 
2222
 
<p>
2223
 
 
2224
 
<p>
2225
 
Definition at line <a class="el" href="a00137.html#l00919">919</a> of file <a class="el" href="a00137.html">bm.h</a>.
2226
 
<p>
2227
 
References <a class="el" href="a00137.html#l01909">bm::bvector&lt; Alloc, MS &gt;::compare()</a>.    </td>
2228
 
  </tr>
2229
 
</table>
2230
 
<a class="anchor" name="a12" doxytag="bm::bvector::operator>"></a><p>
2231
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2232
 
  <tr>
2233
 
    <td class="mdRow">
2234
 
      <table cellpadding="0" cellspacing="0" border="0">
2235
 
        <tr>
2236
 
          <td class="mdPrefix" colspan="4">
2237
 
template&lt;class Alloc, class MS&gt; </td>
2238
 
        </tr>
2239
 
        <tr>
2240
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator&gt;           </td>
2241
 
          <td class="md" valign="top">(&nbsp;</td>
2242
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
2243
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
2244
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2245
 
          <td class="md" nowrap> const<code> [inline]</code></td>
2246
 
        </tr>
2247
 
      </table>
2248
 
    </td>
2249
 
  </tr>
2250
 
</table>
2251
 
<table cellspacing="5" cellpadding="0" border="0">
2252
 
  <tr>
2253
 
    <td>
2254
 
      &nbsp;
2255
 
    </td>
2256
 
    <td>
2257
 
 
2258
 
<p>
2259
 
 
2260
 
<p>
2261
 
Definition at line <a class="el" href="a00137.html#l00909">909</a> of file <a class="el" href="a00137.html">bm.h</a>.
2262
 
<p>
2263
 
References <a class="el" href="a00137.html#l01909">bm::bvector&lt; Alloc, MS &gt;::compare()</a>.    </td>
2264
 
  </tr>
2265
 
</table>
2266
 
<a class="anchor" name="a13" doxytag="bm::bvector::operator>="></a><p>
2267
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2268
 
  <tr>
2269
 
    <td class="mdRow">
2270
 
      <table cellpadding="0" cellspacing="0" border="0">
2271
 
        <tr>
2272
 
          <td class="mdPrefix" colspan="4">
2273
 
template&lt;class Alloc, class MS&gt; </td>
2274
 
        </tr>
2275
 
        <tr>
2276
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator&gt;=           </td>
2277
 
          <td class="md" valign="top">(&nbsp;</td>
2278
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
2279
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
2280
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2281
 
          <td class="md" nowrap> const<code> [inline]</code></td>
2282
 
        </tr>
2283
 
      </table>
2284
 
    </td>
2285
 
  </tr>
2286
 
</table>
2287
 
<table cellspacing="5" cellpadding="0" border="0">
2288
 
  <tr>
2289
 
    <td>
2290
 
      &nbsp;
2291
 
    </td>
2292
 
    <td>
2293
 
 
2294
 
<p>
2295
 
 
2296
 
<p>
2297
 
Definition at line <a class="el" href="a00137.html#l00914">914</a> of file <a class="el" href="a00137.html">bm.h</a>.
2298
 
<p>
2299
 
References <a class="el" href="a00137.html#l01909">bm::bvector&lt; Alloc, MS &gt;::compare()</a>.    </td>
2300
 
  </tr>
2301
 
</table>
2302
 
<a class="anchor" name="a5" doxytag="bm::bvector::operator[]"></a><p>
2303
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2304
 
  <tr>
2305
 
    <td class="mdRow">
2306
 
      <table cellpadding="0" cellspacing="0" border="0">
2307
 
        <tr>
2308
 
          <td class="mdPrefix" colspan="4">
2309
 
template&lt;class Alloc, class MS&gt; </td>
2310
 
        </tr>
2311
 
        <tr>
2312
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator[]           </td>
2313
 
          <td class="md" valign="top">(&nbsp;</td>
2314
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
2315
 
          <td class="mdname1" valign="top" nowrap> <em>n</em>          </td>
2316
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2317
 
          <td class="md" nowrap> const<code> [inline]</code></td>
2318
 
        </tr>
2319
 
      </table>
2320
 
    </td>
2321
 
  </tr>
2322
 
</table>
2323
 
<table cellspacing="5" cellpadding="0" border="0">
2324
 
  <tr>
2325
 
    <td>
2326
 
      &nbsp;
2327
 
    </td>
2328
 
    <td>
2329
 
 
2330
 
<p>
2331
 
 
2332
 
<p>
2333
 
Definition at line <a class="el" href="a00137.html#l00873">873</a> of file <a class="el" href="a00137.html">bm.h</a>.
2334
 
<p>
2335
 
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>, and <a class="el" href="a00137.html#l01796">bm::bvector&lt; Alloc, MS &gt;::get_bit()</a>.    </td>
2336
 
  </tr>
2337
 
</table>
2338
 
<a class="anchor" name="a4" doxytag="bm::bvector::operator[]"></a><p>
2339
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2340
 
  <tr>
2341
 
    <td class="mdRow">
2342
 
      <table cellpadding="0" cellspacing="0" border="0">
2343
 
        <tr>
2344
 
          <td class="mdPrefix" colspan="4">
2345
 
template&lt;class Alloc, class MS&gt; </td>
2346
 
        </tr>
2347
 
        <tr>
2348
 
          <td class="md" nowrap valign="top"><a class="el" href="a00092.html">reference</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator[]           </td>
2349
 
          <td class="md" valign="top">(&nbsp;</td>
2350
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
2351
 
          <td class="mdname1" valign="top" nowrap> <em>n</em>          </td>
2352
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2353
 
          <td class="md" nowrap><code> [inline]</code></td>
2354
 
        </tr>
2355
 
      </table>
2356
 
    </td>
2357
 
  </tr>
2358
 
</table>
2359
 
<table cellspacing="5" cellpadding="0" border="0">
2360
 
  <tr>
2361
 
    <td>
2362
 
      &nbsp;
2363
 
    </td>
2364
 
    <td>
2365
 
 
2366
 
<p>
2367
 
 
2368
 
<p>
2369
 
Definition at line <a class="el" href="a00137.html#l00866">866</a> of file <a class="el" href="a00137.html">bm.h</a>.
2370
 
<p>
2371
 
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>.    </td>
2372
 
  </tr>
2373
 
</table>
2374
 
<a class="anchor" name="a7" doxytag="bm::bvector::operator^="></a><p>
2375
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2376
 
  <tr>
2377
 
    <td class="mdRow">
2378
 
      <table cellpadding="0" cellspacing="0" border="0">
2379
 
        <tr>
2380
 
          <td class="mdPrefix" colspan="4">
2381
 
template&lt;class Alloc, class MS&gt; </td>
2382
 
        </tr>
2383
 
        <tr>
2384
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator^=           </td>
2385
 
          <td class="md" valign="top">(&nbsp;</td>
2386
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
2387
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
2388
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2389
 
          <td class="md" nowrap><code> [inline]</code></td>
2390
 
        </tr>
2391
 
      </table>
2392
 
    </td>
2393
 
  </tr>
2394
 
</table>
2395
 
<table cellspacing="5" cellpadding="0" border="0">
2396
 
  <tr>
2397
 
    <td>
2398
 
      &nbsp;
2399
 
    </td>
2400
 
    <td>
2401
 
 
2402
 
<p>
2403
 
 
2404
 
<p>
2405
 
Definition at line <a class="el" href="a00137.html#l00884">884</a> of file <a class="el" href="a00137.html">bm.h</a>.
2406
 
<p>
2407
 
References <a class="el" href="a00137.html#l01294">bm::bvector&lt; Alloc, MS &gt;::bit_xor()</a>.    </td>
2408
 
  </tr>
2409
 
</table>
2410
 
<a class="anchor" name="a8" doxytag="bm::bvector::operator|="></a><p>
2411
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2412
 
  <tr>
2413
 
    <td class="mdRow">
2414
 
      <table cellpadding="0" cellspacing="0" border="0">
2415
 
        <tr>
2416
 
          <td class="mdPrefix" colspan="4">
2417
 
template&lt;class Alloc, class MS&gt; </td>
2418
 
        </tr>
2419
 
        <tr>
2420
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator|=           </td>
2421
 
          <td class="md" valign="top">(&nbsp;</td>
2422
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
2423
 
          <td class="mdname1" valign="top" nowrap> <em>bvect</em>          </td>
2424
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2425
 
          <td class="md" nowrap><code> [inline]</code></td>
2426
 
        </tr>
2427
 
      </table>
2428
 
    </td>
2429
 
  </tr>
2430
 
</table>
2431
 
<table cellspacing="5" cellpadding="0" border="0">
2432
 
  <tr>
2433
 
    <td>
2434
 
      &nbsp;
2435
 
    </td>
2436
 
    <td>
2437
 
 
2438
 
<p>
2439
 
 
2440
 
<p>
2441
 
Definition at line <a class="el" href="a00137.html#l00889">889</a> of file <a class="el" href="a00137.html">bm.h</a>.
2442
 
<p>
2443
 
References <a class="el" href="a00137.html#l01272">bm::bvector&lt; Alloc, MS &gt;::bit_or()</a>.    </td>
2444
 
  </tr>
2445
 
</table>
2446
 
<a class="anchor" name="a16" doxytag="bm::bvector::operator~"></a><p>
2447
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2448
 
  <tr>
2449
 
    <td class="mdRow">
2450
 
      <table cellpadding="0" cellspacing="0" border="0">
2451
 
        <tr>
2452
 
          <td class="mdPrefix" colspan="4">
2453
 
template&lt;class Alloc, class MS&gt; </td>
2454
 
        </tr>
2455
 
        <tr>
2456
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>&lt;Alloc, MS&gt; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::operator~           </td>
2457
 
          <td class="md" valign="top">(&nbsp;</td>
2458
 
          <td class="mdname1" valign="top" nowrap>          </td>
2459
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2460
 
          <td class="md" nowrap> const<code> [inline]</code></td>
2461
 
        </tr>
2462
 
      </table>
2463
 
    </td>
2464
 
  </tr>
2465
 
</table>
2466
 
<table cellspacing="5" cellpadding="0" border="0">
2467
 
  <tr>
2468
 
    <td>
2469
 
      &nbsp;
2470
 
    </td>
2471
 
    <td>
2472
 
 
2473
 
<p>
2474
 
 
2475
 
<p>
2476
 
Definition at line <a class="el" href="a00137.html#l00929">929</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
2477
 
  </tr>
2478
 
</table>
2479
 
<a class="anchor" name="a55" doxytag="bm::bvector::optimize"></a><p>
2480
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2481
 
  <tr>
2482
 
    <td class="mdRow">
2483
 
      <table cellpadding="0" cellspacing="0" border="0">
2484
 
        <tr>
2485
 
          <td class="mdPrefix" colspan="4">
2486
 
template&lt;typename Alloc, typename MS&gt; </td>
2487
 
        </tr>
2488
 
        <tr>
2489
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::optimize           </td>
2490
 
          <td class="md" valign="top">(&nbsp;</td>
2491
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a27">bm::word_t</a> *&nbsp;</td>
2492
 
          <td class="mdname" nowrap> <em>temp_block</em> = <code>0</code>, </td>
2493
 
        </tr>
2494
 
        <tr>
2495
 
          <td class="md" nowrap align="right"></td>
2496
 
          <td class="md"></td>
2497
 
          <td class="md" nowrap><a class="el" href="a00084.html#w7">optmode</a>&nbsp;</td>
2498
 
          <td class="mdname" nowrap> <em>opt_mode</em> = <code>opt_compress</code>, </td>
2499
 
        </tr>
2500
 
        <tr>
2501
 
          <td class="md" nowrap align="right"></td>
2502
 
          <td class="md"></td>
2503
 
          <td class="md" nowrap><a class="el" href="a00093.html">statistics</a> *&nbsp;</td>
2504
 
          <td class="mdname" nowrap> <em>stat</em> = <code>0</code></td>
2505
 
        </tr>
2506
 
        <tr>
2507
 
          <td class="md"></td>
2508
 
          <td class="md">)&nbsp;</td>
2509
 
          <td class="md" colspan="2"></td>
2510
 
        </tr>
2511
 
      </table>
2512
 
    </td>
2513
 
  </tr>
2514
 
</table>
2515
 
<table cellspacing="5" cellpadding="0" border="0">
2516
 
  <tr>
2517
 
    <td>
2518
 
      &nbsp;
2519
 
    </td>
2520
 
    <td>
2521
 
 
2522
 
<p>
2523
 
Optimize memory bitvector's memory allocation. 
2524
 
<p>
2525
 
Function analyze all blocks in the bitvector, compresses blocks with a regular structure, frees some memory. This function is recommended after a bulk modification of the bitvector using set_bit, clear_bit or logical operations.<p>
2526
 
Optionally function can calculate vector post optimization statistics<p>
2527
 
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#w7">optmode</a>, <a class="el" href="a00084.html#a56">optimize_gap_size</a> </dd></dl>
2528
 
 
2529
 
<p>
2530
 
Definition at line <a class="el" href="a00137.html#l01830">1830</a> of file <a class="el" href="a00137.html">bm.h</a>.
2531
 
<p>
2532
 
References <a class="el" href="a00141.html#l00535">bm::for_each_nzblock()</a>, and <a class="el" href="a00137.html#l02351">bm::bvector&lt; Alloc, MS &gt;::stat()</a>.
2533
 
<p>
2534
 
Referenced by <a class="el" href="a00148.html#l00075">main()</a>, and <a class="el" href="a00149.html#l00077">serialize_bvector()</a>.    </td>
2535
 
  </tr>
2536
 
</table>
2537
 
<a class="anchor" name="a56" doxytag="bm::bvector::optimize_gap_size"></a><p>
2538
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2539
 
  <tr>
2540
 
    <td class="mdRow">
2541
 
      <table cellpadding="0" cellspacing="0" border="0">
2542
 
        <tr>
2543
 
          <td class="mdPrefix" colspan="4">
2544
 
template&lt;typename Alloc, typename MS&gt; </td>
2545
 
        </tr>
2546
 
        <tr>
2547
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::optimize_gap_size           </td>
2548
 
          <td class="md" valign="top">(&nbsp;</td>
2549
 
          <td class="mdname1" valign="top" nowrap>          </td>
2550
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2551
 
          <td class="md" nowrap></td>
2552
 
        </tr>
2553
 
      </table>
2554
 
    </td>
2555
 
  </tr>
2556
 
</table>
2557
 
<table cellspacing="5" cellpadding="0" border="0">
2558
 
  <tr>
2559
 
    <td>
2560
 
      &nbsp;
2561
 
    </td>
2562
 
    <td>
2563
 
 
2564
 
<p>
2565
 
Optimize sizes of GAP blocks. 
2566
 
<p>
2567
 
This method runs an analysis to find optimal GAP levels for the specific vector. Current GAP compression algorithm uses several fixed GAP sizes. By default bvector uses some reasonable preset. 
2568
 
<p>
2569
 
Definition at line <a class="el" href="a00137.html#l01872">1872</a> of file <a class="el" href="a00137.html">bm.h</a>.
2570
 
<p>
2571
 
References <a class="el" href="a00084.html#a47">bm::bvector&lt; Alloc, MS &gt;::calc_stat()</a>, <a class="el" href="a00139.html#l00072">bm::gap_levels</a>, <a class="el" href="a00141.html#l03977">bm::improve_gap_levels()</a>, and <a class="el" href="a00137.html#l01893">bm::bvector&lt; Alloc, MS &gt;::set_gap_levels()</a>.    </td>
2572
 
  </tr>
2573
 
</table>
2574
 
<a class="anchor" name="a34" doxytag="bm::bvector::recalc_count"></a><p>
2575
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2576
 
  <tr>
2577
 
    <td class="mdRow">
2578
 
      <table cellpadding="0" cellspacing="0" border="0">
2579
 
        <tr>
2580
 
          <td class="mdPrefix" colspan="4">
2581
 
template&lt;class Alloc, class MS&gt; </td>
2582
 
        </tr>
2583
 
        <tr>
2584
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::recalc_count           </td>
2585
 
          <td class="md" valign="top">(&nbsp;</td>
2586
 
          <td class="mdname1" valign="top" nowrap>          </td>
2587
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2588
 
          <td class="md" nowrap><code> [inline]</code></td>
2589
 
        </tr>
2590
 
      </table>
2591
 
    </td>
2592
 
  </tr>
2593
 
</table>
2594
 
<table cellspacing="5" cellpadding="0" border="0">
2595
 
  <tr>
2596
 
    <td>
2597
 
      &nbsp;
2598
 
    </td>
2599
 
    <td>
2600
 
 
2601
 
<p>
2602
 
 
2603
 
<p>
2604
 
Definition at line <a class="el" href="a00137.html#l01118">1118</a> of file <a class="el" href="a00137.html">bm.h</a>.
2605
 
<p>
2606
 
References <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l01638">bm::bvector&lt; Alloc, MS &gt;::count()</a>.    </td>
2607
 
  </tr>
2608
 
</table>
2609
 
<a class="anchor" name="a27" doxytag="bm::bvector::reset"></a><p>
2610
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2611
 
  <tr>
2612
 
    <td class="mdRow">
2613
 
      <table cellpadding="0" cellspacing="0" border="0">
2614
 
        <tr>
2615
 
          <td class="mdPrefix" colspan="4">
2616
 
template&lt;class Alloc, class MS&gt; </td>
2617
 
        </tr>
2618
 
        <tr>
2619
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>&lt;Alloc, MS&gt;&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::reset           </td>
2620
 
          <td class="md" valign="top">(&nbsp;</td>
2621
 
          <td class="mdname1" valign="top" nowrap>          </td>
2622
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2623
 
          <td class="md" nowrap><code> [inline]</code></td>
2624
 
        </tr>
2625
 
      </table>
2626
 
    </td>
2627
 
  </tr>
2628
 
</table>
2629
 
<table cellspacing="5" cellpadding="0" border="0">
2630
 
  <tr>
2631
 
    <td>
2632
 
      &nbsp;
2633
 
    </td>
2634
 
    <td>
2635
 
 
2636
 
<p>
2637
 
Clears every bit in the bitvector. 
2638
 
<p>
2639
 
<dl compact><dt><b>Returns:</b></dt><dd>*this; </dd></dl>
2640
 
 
2641
 
<p>
2642
 
Definition at line <a class="el" href="a00137.html#l01054">1054</a> of file <a class="el" href="a00137.html">bm.h</a>.
2643
 
<p>
2644
 
References <a class="el" href="a00137.html#l01044">bm::bvector&lt; Alloc, MS &gt;::clear()</a>.    </td>
2645
 
  </tr>
2646
 
</table>
2647
 
<a class="anchor" name="a31" doxytag="bm::bvector::resize"></a><p>
2648
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2649
 
  <tr>
2650
 
    <td class="mdRow">
2651
 
      <table cellpadding="0" cellspacing="0" border="0">
2652
 
        <tr>
2653
 
          <td class="mdPrefix" colspan="4">
2654
 
template&lt;typename Alloc, typename MS&gt; </td>
2655
 
        </tr>
2656
 
        <tr>
2657
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::resize           </td>
2658
 
          <td class="md" valign="top">(&nbsp;</td>
2659
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html#w2">size_type</a>&nbsp;</td>
2660
 
          <td class="mdname1" valign="top" nowrap> <em>new_size</em>          </td>
2661
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2662
 
          <td class="md" nowrap></td>
2663
 
        </tr>
2664
 
      </table>
2665
 
    </td>
2666
 
  </tr>
2667
 
</table>
2668
 
<table cellspacing="5" cellpadding="0" border="0">
2669
 
  <tr>
2670
 
    <td>
2671
 
      &nbsp;
2672
 
    </td>
2673
 
    <td>
2674
 
 
2675
 
<p>
2676
 
Change size of the bvector. 
2677
 
<p>
2678
 
<dl compact><dt><b>Parameters:</b></dt><dd>
2679
 
  <table border="0" cellspacing="2" cellpadding="0">
2680
 
    <tr><td valign="top"></td><td valign="top"><em>new_size</em>&nbsp;</td><td>- new size in bits </td></tr>
2681
 
  </table>
2682
 
</dl>
2683
 
 
2684
 
<p>
2685
 
Definition at line <a class="el" href="a00137.html#l01660">1660</a> of file <a class="el" href="a00137.html">bm.h</a>.
2686
 
<p>
2687
 
References <a class="el" href="a00137.html#l01615">bm::bvector&lt; Alloc, MS &gt;::set_range()</a>.
2688
 
<p>
2689
 
Referenced by <a class="el" href="a00153.html#l00069">main()</a>, and <a class="el" href="a00137.html#l00858">bm::bvector&lt; Alloc, MS &gt;::operator=()</a>.    </td>
2690
 
  </tr>
2691
 
</table>
2692
 
<a class="anchor" name="a22" doxytag="bm::bvector::set"></a><p>
2693
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2694
 
  <tr>
2695
 
    <td class="mdRow">
2696
 
      <table cellpadding="0" cellspacing="0" border="0">
2697
 
        <tr>
2698
 
          <td class="mdPrefix" colspan="4">
2699
 
template&lt;class Alloc, class MS&gt; </td>
2700
 
        </tr>
2701
 
        <tr>
2702
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>&lt;Alloc, MS&gt;&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::set           </td>
2703
 
          <td class="md" valign="top">(&nbsp;</td>
2704
 
          <td class="mdname1" valign="top" nowrap>          </td>
2705
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2706
 
          <td class="md" nowrap><code> [inline]</code></td>
2707
 
        </tr>
2708
 
      </table>
2709
 
    </td>
2710
 
  </tr>
2711
 
</table>
2712
 
<table cellspacing="5" cellpadding="0" border="0">
2713
 
  <tr>
2714
 
    <td>
2715
 
      &nbsp;
2716
 
    </td>
2717
 
    <td>
2718
 
 
2719
 
<p>
2720
 
Sets every bit in this bitset to 1. 
2721
 
<p>
2722
 
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
2723
 
 
2724
 
<p>
2725
 
Definition at line <a class="el" href="a00137.html#l00997">997</a> of file <a class="el" href="a00137.html">bm.h</a>.
2726
 
<p>
2727
 
References <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l01615">bm::bvector&lt; Alloc, MS &gt;::set_range()</a>.
2728
 
<p>
2729
 
Referenced by <a class="el" href="a00137.html#l01032">bm::bvector&lt; Alloc, MS &gt;::clear_bit()</a>, and <a class="el" href="a00137.html#l01191">bm::bvector&lt; Alloc, MS &gt;::flip()</a>.    </td>
2730
 
  </tr>
2731
 
</table>
2732
 
<a class="anchor" name="a21" doxytag="bm::bvector::set"></a><p>
2733
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2734
 
  <tr>
2735
 
    <td class="mdRow">
2736
 
      <table cellpadding="0" cellspacing="0" border="0">
2737
 
        <tr>
2738
 
          <td class="mdPrefix" colspan="4">
2739
 
template&lt;class Alloc, class MS&gt; </td>
2740
 
        </tr>
2741
 
        <tr>
2742
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>&lt;Alloc, MS&gt;&amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::set           </td>
2743
 
          <td class="md" valign="top">(&nbsp;</td>
2744
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
2745
 
          <td class="mdname" nowrap> <em>n</em>, </td>
2746
 
        </tr>
2747
 
        <tr>
2748
 
          <td class="md" nowrap align="right"></td>
2749
 
          <td class="md"></td>
2750
 
          <td class="md" nowrap>bool&nbsp;</td>
2751
 
          <td class="mdname" nowrap> <em>val</em> = <code>true</code></td>
2752
 
        </tr>
2753
 
        <tr>
2754
 
          <td class="md"></td>
2755
 
          <td class="md">)&nbsp;</td>
2756
 
          <td class="md" colspan="2"><code> [inline]</code></td>
2757
 
        </tr>
2758
 
      </table>
2759
 
    </td>
2760
 
  </tr>
2761
 
</table>
2762
 
<table cellspacing="5" cellpadding="0" border="0">
2763
 
  <tr>
2764
 
    <td>
2765
 
      &nbsp;
2766
 
    </td>
2767
 
    <td>
2768
 
 
2769
 
<p>
2770
 
Sets bit n if val is true, clears bit n if val is false. 
2771
 
<p>
2772
 
<dl compact><dt><b>Parameters:</b></dt><dd>
2773
 
  <table border="0" cellspacing="2" cellpadding="0">
2774
 
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>- index of the bit to be set </td></tr>
2775
 
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>- new bit value </td></tr>
2776
 
  </table>
2777
 
</dl>
2778
 
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
2779
 
 
2780
 
<p>
2781
 
Definition at line <a class="el" href="a00137.html#l00985">985</a> of file <a class="el" href="a00137.html">bm.h</a>.
2782
 
<p>
2783
 
References <a class="el" href="a00137.html#l00946">bm::bvector&lt; Alloc, MS &gt;::set_bit()</a>.
2784
 
<p>
2785
 
Referenced by <a class="el" href="a00146.html#l00044">main()</a>.    </td>
2786
 
  </tr>
2787
 
</table>
2788
 
<a class="anchor" name="a18" doxytag="bm::bvector::set_bit"></a><p>
2789
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2790
 
  <tr>
2791
 
    <td class="mdRow">
2792
 
      <table cellpadding="0" cellspacing="0" border="0">
2793
 
        <tr>
2794
 
          <td class="mdPrefix" colspan="4">
2795
 
template&lt;class Alloc, class MS&gt; </td>
2796
 
        </tr>
2797
 
        <tr>
2798
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::set_bit           </td>
2799
 
          <td class="md" valign="top">(&nbsp;</td>
2800
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
2801
 
          <td class="mdname" nowrap> <em>n</em>, </td>
2802
 
        </tr>
2803
 
        <tr>
2804
 
          <td class="md" nowrap align="right"></td>
2805
 
          <td class="md"></td>
2806
 
          <td class="md" nowrap>bool&nbsp;</td>
2807
 
          <td class="mdname" nowrap> <em>val</em> = <code>true</code></td>
2808
 
        </tr>
2809
 
        <tr>
2810
 
          <td class="md"></td>
2811
 
          <td class="md">)&nbsp;</td>
2812
 
          <td class="md" colspan="2"><code> [inline]</code></td>
2813
 
        </tr>
2814
 
      </table>
2815
 
    </td>
2816
 
  </tr>
2817
 
</table>
2818
 
<table cellspacing="5" cellpadding="0" border="0">
2819
 
  <tr>
2820
 
    <td>
2821
 
      &nbsp;
2822
 
    </td>
2823
 
    <td>
2824
 
 
2825
 
<p>
2826
 
Sets bit n. 
2827
 
<p>
2828
 
<dl compact><dt><b>Parameters:</b></dt><dd>
2829
 
  <table border="0" cellspacing="2" cellpadding="0">
2830
 
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>- index of the bit to be set. </td></tr>
2831
 
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>- new bit value </td></tr>
2832
 
  </table>
2833
 
</dl>
2834
 
<dl compact><dt><b>Returns:</b></dt><dd>TRUE if bit was changed </dd></dl>
2835
 
 
2836
 
<p>
2837
 
Definition at line <a class="el" href="a00137.html#l00946">946</a> of file <a class="el" href="a00137.html">bm.h</a>.
2838
 
<p>
2839
 
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>.
2840
 
<p>
2841
 
Referenced by <a class="el" href="a00137.html#l00985">bm::bvector&lt; Alloc, MS &gt;::set()</a>.    </td>
2842
 
  </tr>
2843
 
</table>
2844
 
<a class="anchor" name="a19" doxytag="bm::bvector::set_bit_and"></a><p>
2845
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2846
 
  <tr>
2847
 
    <td class="mdRow">
2848
 
      <table cellpadding="0" cellspacing="0" border="0">
2849
 
        <tr>
2850
 
          <td class="mdPrefix" colspan="4">
2851
 
template&lt;class Alloc, class MS&gt; </td>
2852
 
        </tr>
2853
 
        <tr>
2854
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::set_bit_and           </td>
2855
 
          <td class="md" valign="top">(&nbsp;</td>
2856
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
2857
 
          <td class="mdname" nowrap> <em>n</em>, </td>
2858
 
        </tr>
2859
 
        <tr>
2860
 
          <td class="md" nowrap align="right"></td>
2861
 
          <td class="md"></td>
2862
 
          <td class="md" nowrap>bool&nbsp;</td>
2863
 
          <td class="mdname" nowrap> <em>val</em> = <code>true</code></td>
2864
 
        </tr>
2865
 
        <tr>
2866
 
          <td class="md"></td>
2867
 
          <td class="md">)&nbsp;</td>
2868
 
          <td class="md" colspan="2"><code> [inline]</code></td>
2869
 
        </tr>
2870
 
      </table>
2871
 
    </td>
2872
 
  </tr>
2873
 
</table>
2874
 
<table cellspacing="5" cellpadding="0" border="0">
2875
 
  <tr>
2876
 
    <td>
2877
 
      &nbsp;
2878
 
    </td>
2879
 
    <td>
2880
 
 
2881
 
<p>
2882
 
Sets bit n using bit AND with the provided value. 
2883
 
<p>
2884
 
<dl compact><dt><b>Parameters:</b></dt><dd>
2885
 
  <table border="0" cellspacing="2" cellpadding="0">
2886
 
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>- index of the bit to be set. </td></tr>
2887
 
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>- new bit value </td></tr>
2888
 
  </table>
2889
 
</dl>
2890
 
<dl compact><dt><b>Returns:</b></dt><dd>TRUE if bit was changed </dd></dl>
2891
 
 
2892
 
<p>
2893
 
Definition at line <a class="el" href="a00137.html#l00958">958</a> of file <a class="el" href="a00137.html">bm.h</a>.
2894
 
<p>
2895
 
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>.    </td>
2896
 
  </tr>
2897
 
</table>
2898
 
<a class="anchor" name="a20" doxytag="bm::bvector::set_bit_conditional"></a><p>
2899
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2900
 
  <tr>
2901
 
    <td class="mdRow">
2902
 
      <table cellpadding="0" cellspacing="0" border="0">
2903
 
        <tr>
2904
 
          <td class="mdPrefix" colspan="4">
2905
 
template&lt;class Alloc, class MS&gt; </td>
2906
 
        </tr>
2907
 
        <tr>
2908
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::set_bit_conditional           </td>
2909
 
          <td class="md" valign="top">(&nbsp;</td>
2910
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
2911
 
          <td class="mdname" nowrap> <em>n</em>, </td>
2912
 
        </tr>
2913
 
        <tr>
2914
 
          <td class="md" nowrap align="right"></td>
2915
 
          <td class="md"></td>
2916
 
          <td class="md" nowrap>bool&nbsp;</td>
2917
 
          <td class="mdname" nowrap> <em>val</em>, </td>
2918
 
        </tr>
2919
 
        <tr>
2920
 
          <td class="md" nowrap align="right"></td>
2921
 
          <td class="md"></td>
2922
 
          <td class="md" nowrap>bool&nbsp;</td>
2923
 
          <td class="mdname" nowrap> <em>condition</em></td>
2924
 
        </tr>
2925
 
        <tr>
2926
 
          <td class="md"></td>
2927
 
          <td class="md">)&nbsp;</td>
2928
 
          <td class="md" colspan="2"><code> [inline]</code></td>
2929
 
        </tr>
2930
 
      </table>
2931
 
    </td>
2932
 
  </tr>
2933
 
</table>
2934
 
<table cellspacing="5" cellpadding="0" border="0">
2935
 
  <tr>
2936
 
    <td>
2937
 
      &nbsp;
2938
 
    </td>
2939
 
    <td>
2940
 
 
2941
 
<p>
2942
 
Sets bit n only if current value is equal to the condition. 
2943
 
<p>
2944
 
<dl compact><dt><b>Parameters:</b></dt><dd>
2945
 
  <table border="0" cellspacing="2" cellpadding="0">
2946
 
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>- index of the bit to be set. </td></tr>
2947
 
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</td><td>- new bit value </td></tr>
2948
 
    <tr><td valign="top"></td><td valign="top"><em>condition</em>&nbsp;</td><td>- expected current value </td></tr>
2949
 
  </table>
2950
 
</dl>
2951
 
<dl compact><dt><b>Returns:</b></dt><dd>TRUE if bit was changed </dd></dl>
2952
 
 
2953
 
<p>
2954
 
Definition at line <a class="el" href="a00137.html#l00971">971</a> of file <a class="el" href="a00137.html">bm.h</a>.
2955
 
<p>
2956
 
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>.    </td>
2957
 
  </tr>
2958
 
</table>
2959
 
<a class="anchor" name="a57" doxytag="bm::bvector::set_gap_levels"></a><p>
2960
 
<table class="mdTable" cellpadding="2" cellspacing="0">
2961
 
  <tr>
2962
 
    <td class="mdRow">
2963
 
      <table cellpadding="0" cellspacing="0" border="0">
2964
 
        <tr>
2965
 
          <td class="mdPrefix" colspan="4">
2966
 
template&lt;typename Alloc, typename MS&gt; </td>
2967
 
        </tr>
2968
 
        <tr>
2969
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::set_gap_levels           </td>
2970
 
          <td class="md" valign="top">(&nbsp;</td>
2971
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00129.html#a36">gap_word_t</a> *&nbsp;</td>
2972
 
          <td class="mdname1" valign="top" nowrap> <em>glevel_len</em>          </td>
2973
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
2974
 
          <td class="md" nowrap></td>
2975
 
        </tr>
2976
 
      </table>
2977
 
    </td>
2978
 
  </tr>
2979
 
</table>
2980
 
<table cellspacing="5" cellpadding="0" border="0">
2981
 
  <tr>
2982
 
    <td>
2983
 
      &nbsp;
2984
 
    </td>
2985
 
    <td>
2986
 
 
2987
 
<p>
2988
 
Sets new GAP lengths table. All GAP blocks will be reallocated to match the new scheme. 
2989
 
<p>
2990
 
<dl compact><dt><b>Parameters:</b></dt><dd>
2991
 
  <table border="0" cellspacing="2" cellpadding="0">
2992
 
    <tr><td valign="top"></td><td valign="top"><em>glevel_len</em>&nbsp;</td><td>- pointer on C-style array keeping GAP block sizes. </td></tr>
2993
 
  </table>
2994
 
</dl>
2995
 
 
2996
 
<p>
2997
 
Definition at line <a class="el" href="a00137.html#l01893">1893</a> of file <a class="el" href="a00137.html">bm.h</a>.
2998
 
<p>
2999
 
References <a class="el" href="a00141.html#l00535">bm::for_each_nzblock()</a>, and <a class="el" href="a00137.html#l01893">bm::bvector&lt; Alloc, MS &gt;::set_gap_levels()</a>.
3000
 
<p>
3001
 
Referenced by <a class="el" href="a00137.html#l01872">bm::bvector&lt; Alloc, MS &gt;::optimize_gap_size()</a>, and <a class="el" href="a00137.html#l01893">bm::bvector&lt; Alloc, MS &gt;::set_gap_levels()</a>.    </td>
3002
 
  </tr>
3003
 
</table>
3004
 
<a class="anchor" name="a52" doxytag="bm::bvector::set_new_blocks_strat"></a><p>
3005
 
<table class="mdTable" cellpadding="2" cellspacing="0">
3006
 
  <tr>
3007
 
    <td class="mdRow">
3008
 
      <table cellpadding="0" cellspacing="0" border="0">
3009
 
        <tr>
3010
 
          <td class="mdPrefix" colspan="4">
3011
 
template&lt;class Alloc, class MS&gt; </td>
3012
 
        </tr>
3013
 
        <tr>
3014
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::set_new_blocks_strat           </td>
3015
 
          <td class="md" valign="top">(&nbsp;</td>
3016
 
          <td class="md" nowrap valign="top"><a class="el" href="a00132.html#ga0">strategy</a>&nbsp;</td>
3017
 
          <td class="mdname1" valign="top" nowrap> <em>strat</em>          </td>
3018
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
3019
 
          <td class="md" nowrap><code> [inline]</code></td>
3020
 
        </tr>
3021
 
      </table>
3022
 
    </td>
3023
 
  </tr>
3024
 
</table>
3025
 
<table cellspacing="5" cellpadding="0" border="0">
3026
 
  <tr>
3027
 
    <td>
3028
 
      &nbsp;
3029
 
    </td>
3030
 
    <td>
3031
 
 
3032
 
<p>
3033
 
Sets new blocks allocation strategy. 
3034
 
<p>
3035
 
<dl compact><dt><b>Parameters:</b></dt><dd>
3036
 
  <table border="0" cellspacing="2" cellpadding="0">
3037
 
    <tr><td valign="top"></td><td valign="top"><em>strat</em>&nbsp;</td><td>- Strategy code 0 - bitblocks allocation only. 1 - Blocks mutation mode (adaptive algorithm) </td></tr>
3038
 
  </table>
3039
 
</dl>
3040
 
 
3041
 
<p>
3042
 
Definition at line <a class="el" href="a00137.html#l01318">1318</a> of file <a class="el" href="a00137.html">bm.h</a>.
3043
 
<p>
3044
 
Referenced by <a class="el" href="a00148.html#l00075">main()</a>.    </td>
3045
 
  </tr>
3046
 
</table>
3047
 
<a class="anchor" name="a23" doxytag="bm::bvector::set_range"></a><p>
3048
 
<table class="mdTable" cellpadding="2" cellspacing="0">
3049
 
  <tr>
3050
 
    <td class="mdRow">
3051
 
      <table cellpadding="0" cellspacing="0" border="0">
3052
 
        <tr>
3053
 
          <td class="mdPrefix" colspan="4">
3054
 
template&lt;typename Alloc, typename MS&gt; </td>
3055
 
        </tr>
3056
 
        <tr>
3057
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp; <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::set_range           </td>
3058
 
          <td class="md" valign="top">(&nbsp;</td>
3059
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
3060
 
          <td class="mdname" nowrap> <em>left</em>, </td>
3061
 
        </tr>
3062
 
        <tr>
3063
 
          <td class="md" nowrap align="right"></td>
3064
 
          <td class="md"></td>
3065
 
          <td class="md" nowrap><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
3066
 
          <td class="mdname" nowrap> <em>right</em>, </td>
3067
 
        </tr>
3068
 
        <tr>
3069
 
          <td class="md" nowrap align="right"></td>
3070
 
          <td class="md"></td>
3071
 
          <td class="md" nowrap>bool&nbsp;</td>
3072
 
          <td class="mdname" nowrap> <em>value</em> = <code>true</code></td>
3073
 
        </tr>
3074
 
        <tr>
3075
 
          <td class="md"></td>
3076
 
          <td class="md">)&nbsp;</td>
3077
 
          <td class="md" colspan="2"></td>
3078
 
        </tr>
3079
 
      </table>
3080
 
    </td>
3081
 
  </tr>
3082
 
</table>
3083
 
<table cellspacing="5" cellpadding="0" border="0">
3084
 
  <tr>
3085
 
    <td>
3086
 
      &nbsp;
3087
 
    </td>
3088
 
    <td>
3089
 
 
3090
 
<p>
3091
 
Sets all bits in the specified closed interval [left,right] Interval must be inside the bvector's size. This method DOES NOT resize vector. 
3092
 
<p>
3093
 
<dl compact><dt><b>Parameters:</b></dt><dd>
3094
 
  <table border="0" cellspacing="2" cellpadding="0">
3095
 
    <tr><td valign="top"></td><td valign="top"><em>left</em>&nbsp;</td><td>- interval start </td></tr>
3096
 
    <tr><td valign="top"></td><td valign="top"><em>right</em>&nbsp;</td><td>- interval end (closed interval) </td></tr>
3097
 
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>- value to set interval in</td></tr>
3098
 
  </table>
3099
 
</dl>
3100
 
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
3101
 
 
3102
 
<p>
3103
 
Definition at line <a class="el" href="a00137.html#l01615">1615</a> of file <a class="el" href="a00137.html">bm.h</a>.
3104
 
<p>
3105
 
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>, <a class="el" href="a00140.html#l00093">BM_SET_MMX_GUARD</a>, and <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>.
3106
 
<p>
3107
 
Referenced by <a class="el" href="a00137.html#l02612">bm::bvector&lt; Alloc, MS &gt;::combine_operation()</a>, <a class="el" href="a00137.html#l01660">bm::bvector&lt; Alloc, MS &gt;::resize()</a>, and <a class="el" href="a00137.html#l00997">bm::bvector&lt; Alloc, MS &gt;::set()</a>.    </td>
3108
 
  </tr>
3109
 
</table>
3110
 
<a class="anchor" name="a30" doxytag="bm::bvector::size"></a><p>
3111
 
<table class="mdTable" cellpadding="2" cellspacing="0">
3112
 
  <tr>
3113
 
    <td class="mdRow">
3114
 
      <table cellpadding="0" cellspacing="0" border="0">
3115
 
        <tr>
3116
 
          <td class="mdPrefix" colspan="4">
3117
 
template&lt;class Alloc, class MS&gt; </td>
3118
 
        </tr>
3119
 
        <tr>
3120
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html#w2">size_type</a> <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::size           </td>
3121
 
          <td class="md" valign="top">(&nbsp;</td>
3122
 
          <td class="mdname1" valign="top" nowrap>          </td>
3123
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
3124
 
          <td class="md" nowrap> const<code> [inline]</code></td>
3125
 
        </tr>
3126
 
      </table>
3127
 
    </td>
3128
 
  </tr>
3129
 
</table>
3130
 
<table cellspacing="5" cellpadding="0" border="0">
3131
 
  <tr>
3132
 
    <td>
3133
 
      &nbsp;
3134
 
    </td>
3135
 
    <td>
3136
 
 
3137
 
<p>
3138
 
return current size of the vector (bits) 
3139
 
<p>
3140
 
 
3141
 
<p>
3142
 
Definition at line <a class="el" href="a00137.html#l01078">1078</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
3143
 
  </tr>
3144
 
</table>
3145
 
<a class="anchor" name="a54" doxytag="bm::bvector::stat"></a><p>
3146
 
<table class="mdTable" cellpadding="2" cellspacing="0">
3147
 
  <tr>
3148
 
    <td class="mdRow">
3149
 
      <table cellpadding="0" cellspacing="0" border="0">
3150
 
        <tr>
3151
 
          <td class="mdPrefix" colspan="4">
3152
 
template&lt;class Alloc, class MS&gt; </td>
3153
 
        </tr>
3154
 
        <tr>
3155
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::stat           </td>
3156
 
          <td class="md" valign="top">(&nbsp;</td>
3157
 
          <td class="md" nowrap valign="top">unsigned&nbsp;</td>
3158
 
          <td class="mdname1" valign="top" nowrap> <em>blocks</em> = <code>0</code>          </td>
3159
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
3160
 
          <td class="md" nowrap> const</td>
3161
 
        </tr>
3162
 
      </table>
3163
 
    </td>
3164
 
  </tr>
3165
 
</table>
3166
 
<table cellspacing="5" cellpadding="0" border="0">
3167
 
  <tr>
3168
 
    <td>
3169
 
      &nbsp;
3170
 
    </td>
3171
 
    <td>
3172
 
 
3173
 
<p>
3174
 
 
3175
 
<p>
3176
 
Definition at line <a class="el" href="a00137.html#l02351">2351</a> of file <a class="el" href="a00137.html">bm.h</a>.
3177
 
<p>
3178
 
References <a class="el" href="a00141.html#l02373">bm::bit_block_calc_count()</a>, <a class="el" href="a00140.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00137.html#l01638">bm::bvector&lt; Alloc, MS &gt;::count()</a>, <a class="el" href="a00141.html#l00659">bm::gap_bit_count()</a>, <a class="el" href="a00141.html#l01867">bm::gap_control_sum()</a>, <a class="el" href="a00141.html#l02027">bm::gap_length()</a>, <a class="el" href="a00141.html#l02069">bm::gap_level()</a>, <a class="el" href="a00137.html#l01444">bm::bvector&lt; Alloc, MS &gt;::get_block()</a>, and <a class="el" href="a00140.html#l00024">IS_FULL_BLOCK</a>.
3179
 
<p>
3180
 
Referenced by <a class="el" href="a00137.html#l01830">bm::bvector&lt; Alloc, MS &gt;::optimize()</a>.    </td>
3181
 
  </tr>
3182
 
</table>
3183
 
<a class="anchor" name="a43" doxytag="bm::bvector::swap"></a><p>
3184
 
<table class="mdTable" cellpadding="2" cellspacing="0">
3185
 
  <tr>
3186
 
    <td class="mdRow">
3187
 
      <table cellpadding="0" cellspacing="0" border="0">
3188
 
        <tr>
3189
 
          <td class="mdPrefix" colspan="4">
3190
 
template&lt;class Alloc, class MS&gt; </td>
3191
 
        </tr>
3192
 
        <tr>
3193
 
          <td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::swap           </td>
3194
 
          <td class="md" valign="top">(&nbsp;</td>
3195
 
          <td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>&lt; Alloc, MS &gt; &amp;&nbsp;</td>
3196
 
          <td class="mdname1" valign="top" nowrap> <em>bv</em>          </td>
3197
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
3198
 
          <td class="md" nowrap><code> [inline]</code></td>
3199
 
        </tr>
3200
 
      </table>
3201
 
    </td>
3202
 
  </tr>
3203
 
</table>
3204
 
<table cellspacing="5" cellpadding="0" border="0">
3205
 
  <tr>
3206
 
    <td>
3207
 
      &nbsp;
3208
 
    </td>
3209
 
    <td>
3210
 
 
3211
 
<p>
3212
 
Exchanges content of bv and this bitvector. 
3213
 
<p>
3214
 
 
3215
 
<p>
3216
 
Definition at line <a class="el" href="a00137.html#l01208">1208</a> of file <a class="el" href="a00137.html">bm.h</a>.
3217
 
<p>
3218
 
References <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00141.html#l00329">bm::xor_swap()</a>.    </td>
3219
 
  </tr>
3220
 
</table>
3221
 
<a class="anchor" name="a38" doxytag="bm::bvector::test"></a><p>
3222
 
<table class="mdTable" cellpadding="2" cellspacing="0">
3223
 
  <tr>
3224
 
    <td class="mdRow">
3225
 
      <table cellpadding="0" cellspacing="0" border="0">
3226
 
        <tr>
3227
 
          <td class="mdPrefix" colspan="4">
3228
 
template&lt;class Alloc, class MS&gt; </td>
3229
 
        </tr>
3230
 
        <tr>
3231
 
          <td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>&lt; Alloc, MS &gt;::test           </td>
3232
 
          <td class="md" valign="top">(&nbsp;</td>
3233
 
          <td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a>&nbsp;</td>
3234
 
          <td class="mdname1" valign="top" nowrap> <em>n</em>          </td>
3235
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
3236
 
          <td class="md" nowrap> const<code> [inline]</code></td>
3237
 
        </tr>
3238
 
      </table>
3239
 
    </td>
3240
 
  </tr>
3241
 
</table>
3242
 
<table cellspacing="5" cellpadding="0" border="0">
3243
 
  <tr>
3244
 
    <td>
3245
 
      &nbsp;
3246
 
    </td>
3247
 
    <td>
3248
 
 
3249
 
<p>
3250
 
returns true if bit n is set and false is bit n is 0. 
3251
 
<p>
3252
 
<dl compact><dt><b>Parameters:</b></dt><dd>
3253
 
  <table border="0" cellspacing="2" cellpadding="0">
3254
 
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>- Index of the bit to check. </td></tr>
3255
 
  </table>
3256
 
</dl>
3257
 
<dl compact><dt><b>Returns:</b></dt><dd>Bit value (1 or 0) </dd></dl>
3258
 
 
3259
 
<p>
3260
 
Definition at line <a class="el" href="a00137.html#l01154">1154</a> of file <a class="el" href="a00137.html">bm.h</a>.
3261
 
<p>
3262
 
References <a class="el" href="a00137.html#l01796">bm::bvector&lt; Alloc, MS &gt;::get_bit()</a>.    </td>
3263
 
  </tr>
3264
 
</table>
3265
 
<hr><h2>Friends And Related Function Documentation</h2>
3266
 
<a class="anchor" name="n1" doxytag="bm::bvector::enumerator"></a><p>
3267
 
<table class="mdTable" cellpadding="2" cellspacing="0">
3268
 
  <tr>
3269
 
    <td class="mdRow">
3270
 
      <table cellpadding="0" cellspacing="0" border="0">
3271
 
        <tr>
3272
 
          <td class="mdPrefix" colspan="4">
3273
 
template&lt;class Alloc, class MS&gt; </td>
3274
 
        </tr>
3275
 
        <tr>
3276
 
          <td class="md" nowrap valign="top">friend class <a class="el" href="a00086.html">enumerator</a><code> [friend]</code>          </td>
3277
 
        </tr>
3278
 
      </table>
3279
 
    </td>
3280
 
  </tr>
3281
 
</table>
3282
 
<table cellspacing="5" cellpadding="0" border="0">
3283
 
  <tr>
3284
 
    <td>
3285
 
      &nbsp;
3286
 
    </td>
3287
 
    <td>
3288
 
 
3289
 
<p>
3290
 
 
3291
 
<p>
3292
 
Definition at line <a class="el" href="a00137.html#l00773">773</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
3293
 
  </tr>
3294
 
</table>
3295
 
<a class="anchor" name="n0" doxytag="bm::bvector::iterator_base"></a><p>
3296
 
<table class="mdTable" cellpadding="2" cellspacing="0">
3297
 
  <tr>
3298
 
    <td class="mdRow">
3299
 
      <table cellpadding="0" cellspacing="0" border="0">
3300
 
        <tr>
3301
 
          <td class="mdPrefix" colspan="4">
3302
 
template&lt;class Alloc, class MS&gt; </td>
3303
 
        </tr>
3304
 
        <tr>
3305
 
          <td class="md" nowrap valign="top">friend class <a class="el" href="a00088.html">iterator_base</a><code> [friend]</code>          </td>
3306
 
        </tr>
3307
 
      </table>
3308
 
    </td>
3309
 
  </tr>
3310
 
</table>
3311
 
<table cellspacing="5" cellpadding="0" border="0">
3312
 
  <tr>
3313
 
    <td>
3314
 
      &nbsp;
3315
 
    </td>
3316
 
    <td>
3317
 
 
3318
 
<p>
3319
 
 
3320
 
<p>
3321
 
Definition at line <a class="el" href="a00137.html#l00772">772</a> of file <a class="el" href="a00137.html">bm.h</a>.    </td>
3322
 
  </tr>
3323
 
</table>
3324
 
<hr>The documentation for this class was generated from the following file:<ul>
3325
 
<li><a class="el" href="a00137.html">bm.h</a></ul>
3326
 
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 5 14:12:37 2007 for BitMagic by&nbsp;
3327
 
<a href="http://www.doxygen.org/index.html">
3328
 
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
3329
 
</body>
3330
 
</html>