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

« back to all changes in this revision

Viewing changes to html/a00084.html

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

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
 
<title>BitMagic: sample2.cpp File Reference</title>
 
3
<title>BitMagic: bm::bvector&lt; Alloc, MS &gt; Class Template Reference</title>
4
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
5
</head><body>
6
6
<!-- Generated by Doxygen 1.4.1 -->
7
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
8
<div class="nav">
9
 
<a class="el" href="dir_000001.html">samples</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">sample2</a></div>
10
 
<h1>sample2.cpp File Reference</h1><code>#include &lt;iostream&gt;</code><br>
11
 
<code>#include "<a class="el" href="a00102.html">bm.h</a>"</code><br>
12
 
 
13
 
<p>
14
 
Include dependency graph for sample2.cpp:<p><center><img src="a00145.png" border="0" usemap="#sample2.cpp_map" alt=""></center>
15
 
<map name="sample2.cpp_map">
16
 
<area href="a00074.html" shape="rect" coords="163,305,203,327" alt="">
17
 
<area href="a00076.html" shape="rect" coords="264,192,333,213" alt="">
18
 
<area href="a00077.html" shape="rect" coords="271,237,327,259" alt="">
19
 
<area href="a00079.html" shape="rect" coords="267,283,331,304" alt="">
20
 
<area href="a00078.html" shape="rect" coords="267,373,331,395" alt="">
21
 
<area href="a00081.html" shape="rect" coords="265,419,332,440" alt="">
22
 
<area href="a00082.html" shape="rect" coords="263,464,335,485" alt="">
23
 
<area href="a00080.html" shape="rect" coords="263,600,335,621" alt="">
24
 
</map>
25
 
 
26
 
<p>
27
 
<a href="a00112.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
 
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">
28
19
<tr><td></td></tr>
29
 
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
30
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a0">print_bvector</a> (const <a class="el" href="a00048.html">bm::bvector</a>&lt;&gt; &amp;bv)</td></tr>
31
 
 
32
 
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a1">main</a> (void)</td></tr>
33
 
 
34
 
</table>
35
 
<hr><h2>Function Documentation</h2>
36
 
<a class="anchor" name="a1" doxytag="sample2.cpp::main"></a><p>
37
 
<table class="mdTable" cellpadding="2" cellspacing="0">
38
 
  <tr>
39
 
    <td class="mdRow">
40
 
      <table cellpadding="0" cellspacing="0" border="0">
41
 
        <tr>
42
 
          <td class="md" nowrap valign="top">int main           </td>
43
 
          <td class="md" valign="top">(&nbsp;</td>
44
 
          <td class="md" nowrap valign="top">void&nbsp;</td>
45
 
          <td class="mdname1" valign="top" nowrap>          </td>
46
 
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
47
 
          <td class="md" nowrap></td>
48
 
        </tr>
49
 
      </table>
50
 
    </td>
51
 
  </tr>
52
 
</table>
53
 
<table cellspacing="5" cellpadding="0" border="0">
54
 
  <tr>
55
 
    <td>
56
 
      &nbsp;
57
 
    </td>
58
 
    <td>
59
 
 
60
 
<p>
61
 
 
62
 
<p>
63
 
Definition at line <a class="el" href="a00112.html#l00055">55</a> of file <a class="el" href="a00112.html">sample2.cpp</a>.
64
 
<p>
65
 
References <a class="el" href="a00102.html#l01845">bm::bvector&lt; Alloc, MS &gt;::compare()</a>, <a class="el" href="a00112.html#l00036">print_bvector()</a>, and <a class="el" href="a00102.html#l00971">bm::bvector&lt; Alloc, MS &gt;::set()</a>.    </td>
66
 
  </tr>
67
 
</table>
68
 
<a class="anchor" name="a0" doxytag="sample2.cpp::print_bvector"></a><p>
69
 
<table class="mdTable" cellpadding="2" cellspacing="0">
70
 
  <tr>
71
 
    <td class="mdRow">
72
 
      <table cellpadding="0" cellspacing="0" border="0">
73
 
        <tr>
74
 
          <td class="md" nowrap valign="top">void print_bvector           </td>
75
 
          <td class="md" valign="top">(&nbsp;</td>
76
 
          <td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bm::bvector</a>&lt;&gt; &amp;&nbsp;</td>
 
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>
77
3196
          <td class="mdname1" valign="top" nowrap> <em>bv</em>          </td>
78
3197
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
79
 
          <td class="md" nowrap></td>
80
 
        </tr>
81
 
      </table>
82
 
    </td>
83
 
  </tr>
84
 
</table>
85
 
<table cellspacing="5" cellpadding="0" border="0">
86
 
  <tr>
87
 
    <td>
88
 
      &nbsp;
89
 
    </td>
90
 
    <td>
91
 
 
92
 
<p>
93
 
<dl compact><dt><b>Examples: </b></dt><dd>
94
 
<a class="el" href="a00035.html#a7">sample2.cpp</a>.</dl>
95
 
<p>
96
 
Definition at line <a class="el" href="a00112.html#l00036">36</a> of file <a class="el" href="a00112.html">sample2.cpp</a>.
97
 
<p>
98
 
Referenced by <a class="el" href="a00112.html#l00055">main()</a>.    </td>
99
 
  </tr>
100
 
</table>
101
 
<hr size="1"><address style="align: right;"><small>Generated on Thu Apr 20 13:29:05 2006 for BitMagic by&nbsp;
 
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;
102
3327
<a href="http://www.doxygen.org/index.html">
103
3328
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
104
3329
</body>