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: BIT functions</title>
3
<title>BitMagic: dbg_ptr_allocator Class Reference</title>
4
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
6
<!-- Generated by Doxygen 1.4.1 -->
7
7
<div class="qindex"><a class="qindex" href="index.html">Main 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 Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="examples.html">Examples</a></div>
10
[<a class="el" href="a00094.html">BitMagic C++ Library</a>]</small>
13
Collaboration diagram for BIT functions:<center><table><tr><td><img src="a00097.png" border="0" alt="" usemap="#a00156_map">
14
<map name="a00156_map">
15
<area href="a00094.html" shape="rect" coords="19,5,152,26" alt="">
16
</map></td></tr></table></center>
17
<table border="0" cellpadding="0" cellspacing="0">
8
<h1>dbg_ptr_allocator Class Reference</h1><table border="0" cellpadding="0" cellspacing="0">
19
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
20
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html">bm::bit_count_table< T ></a></td></tr>
22
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure to aid in counting bits table contains count of bits in 0-255 diapason of numbers. <a href="a00046.html#_details">More...</a><br></td></tr>
23
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html">bm::block_set_table< T ></a></td></tr>
25
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure keeps all-left/right ON bits masks. <a href="a00047.html#_details">More...</a><br></td></tr>
26
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00067.html">bm::first_bit_table< T ></a></td></tr>
28
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure keeps index of first ON bit for every byte. <a href="a00067.html#_details">More...</a><br></td></tr>
29
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html">bm::all_set< T ></a></td></tr>
31
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure carries pointer on bit block with all bits 1. <a href="a00044.html#_details">More...</a><br></td></tr>
32
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
33
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga40">BM_INCWORD_BITCOUNT</a>(cnt, w)</td></tr>
35
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
36
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga0">bm::word_bitcount64</a> (<a class="el" href="a00092.html#a8">bm::id64_t</a> w)</td></tr>
38
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T> </td></tr>
39
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00097.html#ga1">bm::wordcmp0</a> (T w1, T w2)</td></tr>
41
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lexicographical comparison of two words as bit strings. Auxiliary implementation for testing and reference purposes. <a href="#ga1"></a><br></td></tr>
42
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T> </td></tr>
43
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00097.html#ga2">bm::wordcmp</a> (T a, T b)</td></tr>
45
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lexicographical comparison of two words as bit strings. Auxiliary implementation for testing and reference purposes. <a href="#ga2"></a><br></td></tr>
46
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga3">bm::or_bit_block</a> (unsigned *dest, unsigned bitpos, unsigned bitcount)</td></tr>
48
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets bits to 1 in the bitblock. <a href="#ga3"></a><br></td></tr>
49
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga4">bm::sub_bit_block</a> (unsigned *dest, unsigned bitpos, unsigned bitcount)</td></tr>
51
<tr><td class="mdescLeft"> </td><td class="mdescRight">SUB (AND NOT) bit interval to 1 in the bitblock. <a href="#ga4"></a><br></td></tr>
52
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga5">bm::xor_bit_block</a> (unsigned *dest, unsigned bitpos, unsigned bitcount)</td></tr>
54
<tr><td class="mdescLeft"> </td><td class="mdescRight">XOR bit interval to 1 in the bitblock. <a href="#ga5"></a><br></td></tr>
55
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T> </td></tr>
56
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00097.html#ga6">bm::gap_bitset_and_count</a> (const unsigned *block, const T *buf)</td></tr>
58
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block AND masked by GAP block. <a href="#ga6"></a><br></td></tr>
59
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T> </td></tr>
60
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00097.html#ga7">bm::gap_bitset_sub_count</a> (const unsigned *block, const T *buf)</td></tr>
62
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block SUB masked by GAP block. <a href="#ga7"></a><br></td></tr>
63
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T> </td></tr>
64
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00097.html#ga8">bm::gap_bitset_xor_count</a> (const unsigned *block, const T *buf)</td></tr>
66
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block XOR masked by GAP block. <a href="#ga8"></a><br></td></tr>
67
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T> </td></tr>
68
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00097.html#ga9">bm::gap_bitset_or_count</a> (const unsigned *block, const T *buf)</td></tr>
70
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block OR masked by GAP block. <a href="#ga9"></a><br></td></tr>
71
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga10">bm::bit_block_set</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT dst, <a class="el" href="a00092.html#a10">bm::word_t</a> value)</td></tr>
73
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitblock memset operation. <a href="#ga10"></a><br></td></tr>
74
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T> </td></tr>
75
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00097.html#ga11">bm::bitcmp</a> (const T *buf1, const T *buf2, unsigned len)</td></tr>
77
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lexicographical comparison of BIT buffers. <a href="#ga11"></a><br></td></tr>
78
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T> </td></tr>
79
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00097.html#ga12">bm::bit_convert_to_arr</a> (T *BMRESTRICT dest, const unsigned *BMRESTRICT src, <a class="el" href="a00092.html#a9">bm::id_t</a> bits, unsigned dest_len)</td></tr>
81
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert bit block into an array of ints corresponding to 1 bits. <a href="#ga12"></a><br></td></tr>
82
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga13">bm::bit_block_calc_count</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *block, const <a class="el" href="a00092.html#a10">bm::word_t</a> *block_end)</td></tr>
84
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitcount for bit string. <a href="#ga13"></a><br></td></tr>
85
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga14">bm::bit_count_change</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> w)</td></tr>
87
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga15">bm::bit_block_calc_count_change</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *block, const <a class="el" href="a00092.html#a10">bm::word_t</a> *block_end)</td></tr>
89
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga16">bm::bit_block_calc_count_range</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *block, <a class="el" href="a00092.html#a10">bm::word_t</a> left, <a class="el" href="a00092.html#a10">bm::word_t</a> right)</td></tr>
91
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T> </td></tr>
92
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00097.html#ga17">bm::bit_invert</a> (T *start, T *end)</td></tr>
94
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga18">bm::is_bits_one</a> (const <a class="el" href="a00092.html#a31">bm::wordop_t</a> *start, const <a class="el" href="a00092.html#a31">bm::wordop_t</a> *end)</td></tr>
96
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns "true" if all bits in the block are 1. <a href="#ga18"></a><br></td></tr>
97
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga19">bm::bit_is_all_zero</a> (const <a class="el" href="a00092.html#a31">bm::wordop_t</a> *start, const <a class="el" href="a00092.html#a31">bm::wordop_t</a> *end)</td></tr>
99
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns "true" if all bits in the block are 0. <a href="#ga19"></a><br></td></tr>
100
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga20">bm::bit_block_copy</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src)</td></tr>
102
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitblock copy operation. <a href="#ga20"></a><br></td></tr>
103
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga21">bm::bit_block_and</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src)</td></tr>
105
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bitblock AND operation. Function does not analyse availability of source and destination blocks. <a href="#ga21"></a><br></td></tr>
106
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga22">bm::bit_block_and_count</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *src1, const <a class="el" href="a00092.html#a10">bm::word_t</a> *src1_end, const <a class="el" href="a00092.html#a10">bm::word_t</a> *src2)</td></tr>
108
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function ANDs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks. <a href="#ga22"></a><br></td></tr>
109
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga23">bm::bit_block_xor_count</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src2)</td></tr>
111
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function XORs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks. <a href="#ga23"></a><br></td></tr>
112
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga24">bm::bit_block_sub_count</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src2)</td></tr>
114
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function SUBs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks. <a href="#ga24"></a><br></td></tr>
115
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga25">bm::bit_block_or_count</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *src1, const <a class="el" href="a00092.html#a10">bm::word_t</a> *src1_end, const <a class="el" href="a00092.html#a10">bm::word_t</a> *src2)</td></tr>
117
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function ORs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks. <a href="#ga25"></a><br></td></tr>
118
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga26">bm::bit_operation_and</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src)</td></tr>
120
<tr><td class="mdescLeft"> </td><td class="mdescRight">bitblock AND operation. <a href="#ga26"></a><br></td></tr>
121
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga27">bm::bit_operation_and_count</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src2)</td></tr>
123
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock AND operation and calculates bitcount of the result. <a href="#ga27"></a><br></td></tr>
124
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga28">bm::bit_operation_sub_count</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src2)</td></tr>
126
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock SUB operation and calculates bitcount of the result. <a href="#ga28"></a><br></td></tr>
127
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga29">bm::bit_operation_or_count</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src2)</td></tr>
129
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock OR operation and calculates bitcount of the result. <a href="#ga29"></a><br></td></tr>
130
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga30">bm::bit_block_or</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src)</td></tr>
132
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bitblock OR operation. Function does not analyse availability of source and destination blocks. <a href="#ga30"></a><br></td></tr>
133
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga31">bm::bit_operation_or</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src)</td></tr>
135
<tr><td class="mdescLeft"> </td><td class="mdescRight">Block OR operation. Makes analysis if block is 0 or FULL. <a href="#ga31"></a><br></td></tr>
136
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga32">bm::bit_block_sub</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src)</td></tr>
138
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bitblock SUB (AND NOT) operation. Function does not analyse availability of source and destination blocks. <a href="#ga32"></a><br></td></tr>
139
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga33">bm::bit_operation_sub</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src)</td></tr>
141
<tr><td class="mdescLeft"> </td><td class="mdescRight">bitblock SUB operation. <a href="#ga33"></a><br></td></tr>
142
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga34">bm::bit_block_xor</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src)</td></tr>
144
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bitblock XOR operation. Function does not analyse availability of source and destination blocks. <a href="#ga34"></a><br></td></tr>
145
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga35">bm::bit_operation_xor</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src)</td></tr>
147
<tr><td class="mdescLeft"> </td><td class="mdescRight">bitblock XOR operation. <a href="#ga35"></a><br></td></tr>
148
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga36">bm::bit_operation_xor_count</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT src2)</td></tr>
150
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock XOR operation and calculates bitcount of the result. <a href="#ga36"></a><br></td></tr>
151
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga37">bm::bit_find_head_tail</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *data, unsigned *head_idx, unsigned *tail_idx)</td></tr>
153
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inspects bit block for zero words at the head and at the end. <a href="#ga37"></a><br></td></tr>
154
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#ga38">bm::bit_find_in_block</a> (const <a class="el" href="a00092.html#a10">bm::word_t</a> *data, unsigned nbit, <a class="el" href="a00092.html#a9">bm::id_t</a> *prev)</td></tr>
156
<tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for the next 1 bit in the BIT block. <a href="#ga38"></a><br></td></tr>
157
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T, typename B> </td></tr>
158
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00097.html#ga39">bm::bit_list</a> (T w, B *bits)</td></tr>
160
<tr><td class="mdescLeft"> </td><td class="mdescRight">Unpacks word into list of ON bit indexes. <a href="#ga39"></a><br></td></tr>
10
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
11
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#e0">allocate</a> (size_t n, const void *)</td></tr>
13
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#e1">deallocate</a> (void *p, size_t n)</td></tr>
15
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#e2">balance</a> ()</td></tr>
17
<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
18
<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#s0">na_</a> = 0</td></tr>
20
<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html#s1">nf_</a> = 0</td></tr>
162
23
<hr><a name="_details"></a><h2>Detailed Description</h2>
163
Bit functions implement different opereations on bit blocks and serve as a minimal building blocks. <hr><h2>Define Documentation</h2>
164
<a class="anchor" name="ga40" doxytag="bmfunc.h::BM_INCWORD_BITCOUNT"></a><p>
24
<dl compact><dt><b>Examples: </b></dt><dd>
27
<a class="el" href="a00057.html#_a34">sample6.cpp</a>.</dl>
31
Definition at line <a class="el" href="a00151.html#l00077">77</a> of file <a class="el" href="a00151.html">sample6.cpp</a>.<hr><h2>Member Function Documentation</h2>
32
<a class="anchor" name="e0" doxytag="dbg_ptr_allocator::allocate"></a><p>
165
33
<table class="mdTable" cellpadding="2" cellspacing="0">
167
35
<td class="mdRow">
168
36
<table cellpadding="0" cellspacing="0" border="0">
170
<td class="md" nowrap valign="top">#define BM_INCWORD_BITCOUNT </td>
38
<td class="md" nowrap valign="top">static void* dbg_ptr_allocator::allocate </td>
171
39
<td class="md" valign="top">( </td>
172
<td class="md" nowrap valign="top">cnt, <tr>
40
<td class="md" nowrap valign="top">size_t </td>
41
<td class="mdname" nowrap> <em>n</em>, </td>
173
44
<td class="md" nowrap align="right"></td>
174
45
<td class="md"></td>
175
<td class="md" nowrap>w </td>
46
<td class="md" nowrap>const void * </td>
47
<td class="mdname" nowrap></td>
51
<td class="md">) </td>
52
<td class="md" colspan="2"><code> [inline, static]</code></td>
58
<table cellspacing="5" cellpadding="0" border="0">
68
Definition at line <a class="el" href="a00151.html#l00083">83</a> of file <a class="el" href="a00151.html">sample6.cpp</a>.
70
References <a class="el" href="a00151.html#l00109">na_</a>. </td>
73
<a class="anchor" name="e2" doxytag="dbg_ptr_allocator::balance"></a><p>
74
<table class="mdTable" cellpadding="2" cellspacing="0">
77
<table cellpadding="0" cellspacing="0" border="0">
79
<td class="md" nowrap valign="top">static int dbg_ptr_allocator::balance </td>
80
<td class="md" valign="top">( </td>
176
81
<td class="mdname1" valign="top" nowrap> </td>
177
82
<td class="md" valign="top"> ) </td>
178
<td class="md" nowrap></td>
184
<table cellspacing="5" cellpadding="0" border="0">
192
<b>Value:</b><div class="fragment"><pre class="fragment">cnt += \
193
<a class="code" href="a00046.html">bm::bit_count_table<true></a>::_count[(<span class="keywordtype">unsigned</span> char)(w)] + \
194
<a class="code" href="a00046.html">bm::bit_count_table<true></a>::_count[(<span class="keywordtype">unsigned</span> char)((w) >> 8)] + \
195
<a class="code" href="a00046.html">bm::bit_count_table<true></a>::_count[(<span class="keywordtype">unsigned</span> char)((w) >> 16)] + \
196
<a class="code" href="a00046.html">bm::bit_count_table<true></a>::_count[(<span class="keywordtype">unsigned</span> char)((w) >> 24)];
197
</pre></div>Define calculates number of 1 bits in 32-bit word.
199
Definition at line <a class="el" href="a00106.html#l00167">167</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
201
Referenced by <a class="el" href="a00106.html#l02522">bm::bit_block_and_count()</a>, <a class="el" href="a00106.html#l02021">bm::bit_block_calc_count()</a>, <a class="el" href="a00106.html#l02113">bm::bit_block_calc_count_change()</a>, <a class="el" href="a00106.html#l02201">bm::bit_block_calc_count_range()</a>, <a class="el" href="a00106.html#l02627">bm::bit_block_or_count()</a>, <a class="el" href="a00106.html#l02592">bm::bit_block_sub_count()</a>, <a class="el" href="a00106.html#l02557">bm::bit_block_xor_count()</a>, and <a class="el" href="a00106.html#l02095">bm::bit_count_change()</a>. </td>
204
<hr><h2>Function Documentation</h2>
205
<a class="anchor" name="ga21" doxytag="bm::bit_block_and"></a><p>
206
<table class="mdTable" cellpadding="2" cellspacing="0">
209
<table cellpadding="0" cellspacing="0" border="0">
211
<td class="md" nowrap valign="top">void bit_block_and </td>
212
<td class="md" valign="top">( </td>
213
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
214
<td class="mdname" nowrap> <em>dst</em>, </td>
217
<td class="md" nowrap align="right"></td>
219
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
220
<td class="mdname" nowrap> <em>src</em></td>
224
<td class="md">) </td>
225
<td class="md" colspan="2"><code> [inline]</code></td>
231
<table cellspacing="5" cellpadding="0" border="0">
239
Plain bitblock AND operation. Function does not analyse availability of source and destination blocks.
241
<dl compact><dt><b>Parameters:</b></dt><dd>
242
<table border="0" cellspacing="2" cellpadding="0">
243
<tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>- destination block. </td></tr>
244
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>- source block. </td></tr>
249
Definition at line <a class="el" href="a00106.html#l02488">2488</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
251
References <a class="el" href="a00105.html#l00070">BMRESTRICT</a>, and <a class="el" href="a00107.html#l00587">VECT_AND_ARR</a>.
253
Referenced by <a class="el" href="a00106.html#l02663">bm::bit_operation_and()</a>. </td>
256
<a class="anchor" name="ga22" doxytag="bm::bit_block_and_count"></a><p>
257
<table class="mdTable" cellpadding="2" cellspacing="0">
260
<table cellpadding="0" cellspacing="0" border="0">
262
<td class="md" nowrap valign="top">unsigned bit_block_and_count </td>
263
<td class="md" valign="top">( </td>
264
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
265
<td class="mdname" nowrap> <em>src1</em>, </td>
268
<td class="md" nowrap align="right"></td>
270
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
271
<td class="mdname" nowrap> <em>src1_end</em>, </td>
274
<td class="md" nowrap align="right"></td>
276
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
277
<td class="mdname" nowrap> <em>src2</em></td>
281
<td class="md">) </td>
282
<td class="md" colspan="2"><code> [inline]</code></td>
288
<table cellspacing="5" cellpadding="0" border="0">
296
Function ANDs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks.
298
<dl compact><dt><b>Parameters:</b></dt><dd>
299
<table border="0" cellspacing="2" cellpadding="0">
300
<tr><td valign="top"></td><td valign="top"><em>src1</em> </td><td>- first bit block </td></tr>
301
<tr><td valign="top"></td><td valign="top"><em>src1_end</em> </td><td>- first bit block end </td></tr>
302
<tr><td valign="top"></td><td valign="top"><em>src2</em> </td><td>- second bit block </td></tr>
307
Definition at line <a class="el" href="a00106.html#l02522">2522</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
309
References <a class="el" href="a00106.html#l00167">BM_INCWORD_BITCOUNT</a>, and <a class="el" href="a00107.html#l00572">VECT_BITCOUNT_AND</a>.
311
Referenced by <a class="el" href="a00106.html#l02728">bm::bit_operation_and_count()</a>. </td>
314
<a class="anchor" name="ga13" doxytag="bm::bit_block_calc_count"></a><p>
315
<table class="mdTable" cellpadding="2" cellspacing="0">
318
<table cellpadding="0" cellspacing="0" border="0">
320
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> bit_block_calc_count </td>
321
<td class="md" valign="top">( </td>
322
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
323
<td class="mdname" nowrap> <em>block</em>, </td>
326
<td class="md" nowrap align="right"></td>
328
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
329
<td class="mdname" nowrap> <em>block_end</em></td>
333
<td class="md">) </td>
334
<td class="md" colspan="2"><code> [inline]</code></td>
340
<table cellspacing="5" cellpadding="0" border="0">
348
Bitcount for bit string.
350
Function calculates number of 1 bits in the given array of words. Make sure the addresses are aligned.
352
Definition at line <a class="el" href="a00106.html#l02021">2021</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
354
References <a class="el" href="a00105.html#l00014">BM_ASSERT</a>, <a class="el" href="a00106.html#l00167">BM_INCWORD_BITCOUNT</a>, and <a class="el" href="a00106.html#l00178">bm::word_bitcount64()</a>.
356
Referenced by <a class="el" href="a00106.html#l02781">bm::bit_operation_or_count()</a>, <a class="el" href="a00106.html#l02752">bm::bit_operation_sub_count()</a>, <a class="el" href="a00106.html#l03081">bm::bit_operation_xor_count()</a>, <a class="el" href="a00103.html#l00099">bm::combine_count_operation_with_block()</a>, and <a class="el" href="a00102.html#l02132">bm::bvector< Alloc, MS >::stat()</a>. </td>
359
<a class="anchor" name="ga15" doxytag="bm::bit_block_calc_count_change"></a><p>
360
<table class="mdTable" cellpadding="2" cellspacing="0">
363
<table cellpadding="0" cellspacing="0" border="0">
365
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> bit_block_calc_count_change </td>
366
<td class="md" valign="top">( </td>
367
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
368
<td class="mdname" nowrap> <em>block</em>, </td>
371
<td class="md" nowrap align="right"></td>
373
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
374
<td class="mdname" nowrap> <em>block_end</em></td>
378
<td class="md">) </td>
379
<td class="md" colspan="2"><code> [inline]</code></td>
385
<table cellspacing="5" cellpadding="0" border="0">
393
Function calculates number of times when bit value changed (1-0 or 0-1) in the bit block.
395
Definition at line <a class="el" href="a00106.html#l02113">2113</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
397
References <a class="el" href="a00105.html#l00014">BM_ASSERT</a>, <a class="el" href="a00106.html#l00167">BM_INCWORD_BITCOUNT</a>, and <a class="el" href="a00106.html#l00178">bm::word_bitcount64()</a>. </td>
400
<a class="anchor" name="ga16" doxytag="bm::bit_block_calc_count_range"></a><p>
401
<table class="mdTable" cellpadding="2" cellspacing="0">
404
<table cellpadding="0" cellspacing="0" border="0">
406
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> bit_block_calc_count_range </td>
407
<td class="md" valign="top">( </td>
408
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
409
<td class="mdname" nowrap> <em>block</em>, </td>
412
<td class="md" nowrap align="right"></td>
414
<td class="md" nowrap><a class="el" href="a00092.html#a10">bm::word_t</a> </td>
415
<td class="mdname" nowrap> <em>left</em>, </td>
418
<td class="md" nowrap align="right"></td>
420
<td class="md" nowrap><a class="el" href="a00092.html#a10">bm::word_t</a> </td>
421
<td class="mdname" nowrap> <em>right</em></td>
425
<td class="md">) </td>
426
<td class="md" colspan="2"><code> [inline]</code></td>
432
<table cellspacing="5" cellpadding="0" border="0">
440
Function calculates number of 1 bits in the given array of words in the range between left anf right bits (borders included) Make sure the addresses are aligned.
442
Definition at line <a class="el" href="a00106.html#l02201">2201</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
444
References <a class="el" href="a00105.html#l00014">BM_ASSERT</a>, and <a class="el" href="a00106.html#l00167">BM_INCWORD_BITCOUNT</a>.
446
Referenced by <a class="el" href="a00102.html#l01638">bm::bvector< Alloc, MS >::count_range()</a>, <a class="el" href="a00106.html#l01280">bm::gap_bitset_and_count()</a>, <a class="el" href="a00106.html#l01390">bm::gap_bitset_or_count()</a>, <a class="el" href="a00106.html#l01316">bm::gap_bitset_sub_count()</a>, and <a class="el" href="a00106.html#l01350">bm::gap_bitset_xor_count()</a>. </td>
449
<a class="anchor" name="ga20" doxytag="bm::bit_block_copy"></a><p>
450
<table class="mdTable" cellpadding="2" cellspacing="0">
453
<table cellpadding="0" cellspacing="0" border="0">
455
<td class="md" nowrap valign="top">void bit_block_copy </td>
456
<td class="md" valign="top">( </td>
457
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
458
<td class="mdname" nowrap> <em>dst</em>, </td>
461
<td class="md" nowrap align="right"></td>
463
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
464
<td class="mdname" nowrap> <em>src</em></td>
468
<td class="md">) </td>
469
<td class="md" colspan="2"><code> [inline]</code></td>
475
<table cellspacing="5" cellpadding="0" border="0">
483
Bitblock copy operation.
485
<dl compact><dt><b>Parameters:</b></dt><dd>
486
<table border="0" cellspacing="2" cellpadding="0">
487
<tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>- destination block. </td></tr>
488
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>- source block. </td></tr>
493
Definition at line <a class="el" href="a00106.html#l02468">2468</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
495
References <a class="el" href="a00107.html#l00599">VECT_COPY_BLOCK</a>. </td>
498
<a class="anchor" name="ga30" doxytag="bm::bit_block_or"></a><p>
499
<table class="mdTable" cellpadding="2" cellspacing="0">
502
<table cellpadding="0" cellspacing="0" border="0">
504
<td class="md" nowrap valign="top">void bit_block_or </td>
505
<td class="md" valign="top">( </td>
506
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
507
<td class="mdname" nowrap> <em>dst</em>, </td>
510
<td class="md" nowrap align="right"></td>
512
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
513
<td class="mdname" nowrap> <em>src</em></td>
517
<td class="md">) </td>
518
<td class="md" colspan="2"><code> [inline]</code></td>
524
<table cellspacing="5" cellpadding="0" border="0">
532
Plain bitblock OR operation. Function does not analyse availability of source and destination blocks.
534
<dl compact><dt><b>Parameters:</b></dt><dd>
535
<table border="0" cellspacing="2" cellpadding="0">
536
<tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>- destination block. </td></tr>
537
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>- source block. </td></tr>
542
Definition at line <a class="el" href="a00106.html#l02811">2811</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
544
References <a class="el" href="a00105.html#l00070">BMRESTRICT</a>, and <a class="el" href="a00107.html#l00590">VECT_OR_ARR</a>.
546
Referenced by <a class="el" href="a00106.html#l02849">bm::bit_operation_or()</a>. </td>
549
<a class="anchor" name="ga25" doxytag="bm::bit_block_or_count"></a><p>
550
<table class="mdTable" cellpadding="2" cellspacing="0">
553
<table cellpadding="0" cellspacing="0" border="0">
555
<td class="md" nowrap valign="top">unsigned bit_block_or_count </td>
556
<td class="md" valign="top">( </td>
557
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
558
<td class="mdname" nowrap> <em>src1</em>, </td>
561
<td class="md" nowrap align="right"></td>
563
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
564
<td class="mdname" nowrap> <em>src1_end</em>, </td>
567
<td class="md" nowrap align="right"></td>
569
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
570
<td class="mdname" nowrap> <em>src2</em></td>
574
<td class="md">) </td>
575
<td class="md" colspan="2"><code> [inline]</code></td>
581
<table cellspacing="5" cellpadding="0" border="0">
589
Function ORs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks.
591
<dl compact><dt><b>Parameters:</b></dt><dd>
592
<table border="0" cellspacing="2" cellpadding="0">
593
<tr><td valign="top"></td><td valign="top"><em>src1</em> </td><td>- first bit block </td></tr>
594
<tr><td valign="top"></td><td valign="top"><em>src1_end</em> </td><td>- first block end </td></tr>
595
<tr><td valign="top"></td><td valign="top"><em>src2</em> </td><td>- second bit block. </td></tr>
600
Definition at line <a class="el" href="a00106.html#l02627">2627</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
602
References <a class="el" href="a00106.html#l00167">BM_INCWORD_BITCOUNT</a>, and <a class="el" href="a00107.html#l00575">VECT_BITCOUNT_OR</a>.
604
Referenced by <a class="el" href="a00106.html#l02781">bm::bit_operation_or_count()</a>. </td>
607
<a class="anchor" name="ga10" doxytag="bm::bit_block_set"></a><p>
608
<table class="mdTable" cellpadding="2" cellspacing="0">
611
<table cellpadding="0" cellspacing="0" border="0">
613
<td class="md" nowrap valign="top">void bit_block_set </td>
614
<td class="md" valign="top">( </td>
615
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
616
<td class="mdname" nowrap> <em>dst</em>, </td>
619
<td class="md" nowrap align="right"></td>
621
<td class="md" nowrap><a class="el" href="a00092.html#a10">bm::word_t</a> </td>
622
<td class="mdname" nowrap> <em>value</em></td>
626
<td class="md">) </td>
627
<td class="md" colspan="2"><code> [inline]</code></td>
633
<table cellspacing="5" cellpadding="0" border="0">
641
Bitblock memset operation.
643
<dl compact><dt><b>Parameters:</b></dt><dd>
644
<table border="0" cellspacing="2" cellpadding="0">
645
<tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>- destination block. </td></tr>
646
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>- value to set. </td></tr>
651
Definition at line <a class="el" href="a00106.html#l01438">1438</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
653
Referenced by <a class="el" href="a00106.html#l01456">bm::gap_convert_to_bitset()</a>. </td>
656
<a class="anchor" name="ga32" doxytag="bm::bit_block_sub"></a><p>
657
<table class="mdTable" cellpadding="2" cellspacing="0">
660
<table cellpadding="0" cellspacing="0" border="0">
662
<td class="md" nowrap valign="top">void bit_block_sub </td>
663
<td class="md" valign="top">( </td>
664
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
665
<td class="mdname" nowrap> <em>dst</em>, </td>
668
<td class="md" nowrap align="right"></td>
670
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
671
<td class="mdname" nowrap> <em>src</em></td>
675
<td class="md">) </td>
676
<td class="md" colspan="2"><code> [inline]</code></td>
682
<table cellspacing="5" cellpadding="0" border="0">
690
Plain bitblock SUB (AND NOT) operation. Function does not analyse availability of source and destination blocks.
692
<dl compact><dt><b>Parameters:</b></dt><dd>
693
<table border="0" cellspacing="2" cellpadding="0">
694
<tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>- destination block. </td></tr>
695
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>- source block. </td></tr>
700
Definition at line <a class="el" href="a00106.html#l02907">2907</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
702
References <a class="el" href="a00105.html#l00070">BMRESTRICT</a>, and <a class="el" href="a00107.html#l00593">VECT_SUB_ARR</a>.
704
Referenced by <a class="el" href="a00106.html#l02947">bm::bit_operation_sub()</a>. </td>
707
<a class="anchor" name="ga24" doxytag="bm::bit_block_sub_count"></a><p>
708
<table class="mdTable" cellpadding="2" cellspacing="0">
711
<table cellpadding="0" cellspacing="0" border="0">
713
<td class="md" nowrap valign="top">unsigned bit_block_sub_count </td>
714
<td class="md" valign="top">( </td>
715
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
716
<td class="mdname" nowrap> <em>src1</em>, </td>
719
<td class="md" nowrap align="right"></td>
721
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
722
<td class="mdname" nowrap> <em>src1_end</em>, </td>
725
<td class="md" nowrap align="right"></td>
727
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
728
<td class="mdname" nowrap> <em>src2</em></td>
732
<td class="md">) </td>
733
<td class="md" colspan="2"><code> [inline]</code></td>
739
<table cellspacing="5" cellpadding="0" border="0">
747
Function SUBs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks.
749
<dl compact><dt><b>Parameters:</b></dt><dd>
750
<table border="0" cellspacing="2" cellpadding="0">
751
<tr><td valign="top"></td><td valign="top"><em>src1</em> </td><td>- first bit block. </td></tr>
752
<tr><td valign="top"></td><td valign="top"><em>src1_end</em> </td><td>- first bit block end </td></tr>
753
<tr><td valign="top"></td><td valign="top"><em>src2</em> </td><td>- second bit block. </td></tr>
758
Definition at line <a class="el" href="a00106.html#l02592">2592</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
760
References <a class="el" href="a00106.html#l00167">BM_INCWORD_BITCOUNT</a>, and <a class="el" href="a00107.html#l00581">VECT_BITCOUNT_SUB</a>.
762
Referenced by <a class="el" href="a00106.html#l02752">bm::bit_operation_sub_count()</a>. </td>
765
<a class="anchor" name="ga34" doxytag="bm::bit_block_xor"></a><p>
766
<table class="mdTable" cellpadding="2" cellspacing="0">
769
<table cellpadding="0" cellspacing="0" border="0">
771
<td class="md" nowrap valign="top">void bit_block_xor </td>
772
<td class="md" valign="top">( </td>
773
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
774
<td class="mdname" nowrap> <em>dst</em>, </td>
777
<td class="md" nowrap align="right"></td>
779
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
780
<td class="mdname" nowrap> <em>src</em></td>
784
<td class="md">) </td>
785
<td class="md" colspan="2"><code> [inline]</code></td>
791
<table cellspacing="5" cellpadding="0" border="0">
799
Plain bitblock XOR operation. Function does not analyse availability of source and destination blocks.
801
<dl compact><dt><b>Parameters:</b></dt><dd>
802
<table border="0" cellspacing="2" cellpadding="0">
803
<tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>- destination block. </td></tr>
804
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>- source block. </td></tr>
809
Definition at line <a class="el" href="a00106.html#l03003">3003</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
811
References <a class="el" href="a00105.html#l00070">BMRESTRICT</a>, and <a class="el" href="a00107.html#l00596">VECT_XOR_ARR</a>.
813
Referenced by <a class="el" href="a00106.html#l03043">bm::bit_operation_xor()</a>. </td>
816
<a class="anchor" name="ga23" doxytag="bm::bit_block_xor_count"></a><p>
817
<table class="mdTable" cellpadding="2" cellspacing="0">
820
<table cellpadding="0" cellspacing="0" border="0">
822
<td class="md" nowrap valign="top">unsigned bit_block_xor_count </td>
823
<td class="md" valign="top">( </td>
824
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
825
<td class="mdname" nowrap> <em>src1</em>, </td>
828
<td class="md" nowrap align="right"></td>
830
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
831
<td class="mdname" nowrap> <em>src1_end</em>, </td>
834
<td class="md" nowrap align="right"></td>
836
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
837
<td class="mdname" nowrap> <em>src2</em></td>
841
<td class="md">) </td>
842
<td class="md" colspan="2"><code> [inline]</code></td>
848
<table cellspacing="5" cellpadding="0" border="0">
856
Function XORs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks.
858
<dl compact><dt><b>Parameters:</b></dt><dd>
859
<table border="0" cellspacing="2" cellpadding="0">
860
<tr><td valign="top"></td><td valign="top"><em>src1</em> </td><td>- first bit block. </td></tr>
861
<tr><td valign="top"></td><td valign="top"><em>src1_end</em> </td><td>- first bit block end </td></tr>
862
<tr><td valign="top"></td><td valign="top"><em>src2</em> </td><td>- second bit block. </td></tr>
867
Definition at line <a class="el" href="a00106.html#l02557">2557</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
869
References <a class="el" href="a00106.html#l00167">BM_INCWORD_BITCOUNT</a>, and <a class="el" href="a00107.html#l00578">VECT_BITCOUNT_XOR</a>.
871
Referenced by <a class="el" href="a00106.html#l03081">bm::bit_operation_xor_count()</a>. </td>
874
<a class="anchor" name="ga12" doxytag="bm::bit_convert_to_arr"></a><p>
875
<table class="mdTable" cellpadding="2" cellspacing="0">
878
<table cellpadding="0" cellspacing="0" border="0">
880
<td class="mdPrefix" colspan="4">
881
template<typename T> </td>
884
<td class="md" nowrap valign="top">T bit_convert_to_arr </td>
885
<td class="md" valign="top">( </td>
886
<td class="md" nowrap valign="top">T *BMRESTRICT </td>
887
<td class="mdname" nowrap> <em>dest</em>, </td>
890
<td class="md" nowrap align="right"></td>
892
<td class="md" nowrap>const unsigned *BMRESTRICT </td>
893
<td class="mdname" nowrap> <em>src</em>, </td>
896
<td class="md" nowrap align="right"></td>
898
<td class="md" nowrap><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
899
<td class="mdname" nowrap> <em>bits</em>, </td>
902
<td class="md" nowrap align="right"></td>
904
<td class="md" nowrap>unsigned </td>
905
<td class="mdname" nowrap> <em>dest_len</em></td>
909
<td class="md">) </td>
910
<td class="md" colspan="2"></td>
916
<table cellspacing="5" cellpadding="0" border="0">
924
Convert bit block into an array of ints corresponding to 1 bits.
928
Definition at line <a class="el" href="a00106.html#l01956">1956</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
930
References <a class="el" href="a00105.html#l00070">BMRESTRICT</a>. </td>
933
<a class="anchor" name="ga14" doxytag="bm::bit_count_change"></a><p>
934
<table class="mdTable" cellpadding="2" cellspacing="0">
937
<table cellpadding="0" cellspacing="0" border="0">
939
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> bit_count_change </td>
940
<td class="md" valign="top">( </td>
941
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> </td>
942
<td class="mdname1" valign="top" nowrap> <em>w</em> </td>
943
<td class="md" valign="top"> ) </td>
944
<td class="md" nowrap><code> [inline]</code></td>
950
<table cellspacing="5" cellpadding="0" border="0">
958
Function calculates number of times when bit value changed (1-0 or 0-1).<p>
959
For 001 result is 2 010 - 3 011 - 2 111 - 1
961
Definition at line <a class="el" href="a00106.html#l02095">2095</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
963
References <a class="el" href="a00106.html#l00167">BM_INCWORD_BITCOUNT</a>. </td>
966
<a class="anchor" name="ga37" doxytag="bm::bit_find_head_tail"></a><p>
967
<table class="mdTable" cellpadding="2" cellspacing="0">
970
<table cellpadding="0" cellspacing="0" border="0">
972
<td class="md" nowrap valign="top">void bit_find_head_tail </td>
973
<td class="md" valign="top">( </td>
974
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
975
<td class="mdname" nowrap> <em>data</em>, </td>
978
<td class="md" nowrap align="right"></td>
980
<td class="md" nowrap>unsigned * </td>
981
<td class="mdname" nowrap> <em>head_idx</em>, </td>
984
<td class="md" nowrap align="right"></td>
986
<td class="md" nowrap>unsigned * </td>
987
<td class="mdname" nowrap> <em>tail_idx</em></td>
991
<td class="md">) </td>
992
<td class="md" colspan="2"><code> [inline]</code></td>
998
<table cellspacing="5" cellpadding="0" border="0">
1006
Inspects bit block for zero words at the head and at the end.
1008
If there are no head-tail zeroes output parameters head_idx and tail_idx are going to be [0, <a class="el" href="a00092.html#a13">bm::set_block_size</a>-1]. If block is all-zero head_idx is -1<p>
1009
<dl compact><dt><b>Parameters:</b></dt><dd>
1010
<table border="0" cellspacing="2" cellpadding="0">
1011
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>- bit block pointer </td></tr>
1012
<tr><td valign="top"></td><td valign="top"><em>head_idx</em> </td><td>- index of first non-zero word in block </td></tr>
1013
<tr><td valign="top"></td><td valign="top"><em>tail_idx</em> </td><td>- index of the last non-zero word in block </td></tr>
1018
Definition at line <a class="el" href="a00106.html#l03109">3109</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1020
References <a class="el" href="a00105.html#l00014">BM_ASSERT</a>. </td>
1023
<a class="anchor" name="ga38" doxytag="bm::bit_find_in_block"></a><p>
1024
<table class="mdTable" cellpadding="2" cellspacing="0">
1027
<table cellpadding="0" cellspacing="0" border="0">
1029
<td class="md" nowrap valign="top">int bit_find_in_block </td>
1030
<td class="md" valign="top">( </td>
1031
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
1032
<td class="mdname" nowrap> <em>data</em>, </td>
1035
<td class="md" nowrap align="right"></td>
1036
<td class="md"></td>
1037
<td class="md" nowrap>unsigned </td>
1038
<td class="mdname" nowrap> <em>nbit</em>, </td>
1041
<td class="md" nowrap align="right"></td>
1042
<td class="md"></td>
1043
<td class="md" nowrap><a class="el" href="a00092.html#a9">bm::id_t</a> * </td>
1044
<td class="mdname" nowrap> <em>prev</em></td>
1047
<td class="md"></td>
1048
<td class="md">) </td>
1049
<td class="md" colspan="2"><code> [inline]</code></td>
1055
<table cellspacing="5" cellpadding="0" border="0">
1063
Searches for the next 1 bit in the BIT block.
1065
<dl compact><dt><b>Parameters:</b></dt><dd>
1066
<table border="0" cellspacing="2" cellpadding="0">
1067
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>- BIT buffer </td></tr>
1068
<tr><td valign="top"></td><td valign="top"><em>nbit</em> </td><td>- bit index to start checking from </td></tr>
1069
<tr><td valign="top"></td><td valign="top"><em>prev</em> </td><td>- returns previously checked value </td></tr>
1074
Definition at line <a class="el" href="a00106.html#l03150">3150</a> of file <a class="el" href="a00106.html">bmfunc.h</a>. </td>
1077
<a class="anchor" name="ga17" doxytag="bm::bit_invert"></a><p>
1078
<table class="mdTable" cellpadding="2" cellspacing="0">
1081
<table cellpadding="0" cellspacing="0" border="0">
1083
<td class="mdPrefix" colspan="4">
1084
template<typename T> </td>
1087
<td class="md" nowrap valign="top">void bit_invert </td>
1088
<td class="md" valign="top">( </td>
1089
<td class="md" nowrap valign="top">T * </td>
1090
<td class="mdname" nowrap> <em>start</em>, </td>
1093
<td class="md" nowrap align="right"></td>
1094
<td class="md"></td>
1095
<td class="md" nowrap>T * </td>
1096
<td class="mdname" nowrap> <em>end</em></td>
1099
<td class="md"></td>
1100
<td class="md">) </td>
1101
<td class="md" colspan="2"></td>
1107
<table cellspacing="5" cellpadding="0" border="0">
1115
Function inverts block of bits
1117
Definition at line <a class="el" href="a00106.html#l02267">2267</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1119
References <a class="el" href="a00107.html#l00584">VECT_INVERT_ARR</a>. </td>
1122
<a class="anchor" name="ga19" doxytag="bm::bit_is_all_zero"></a><p>
1123
<table class="mdTable" cellpadding="2" cellspacing="0">
1126
<table cellpadding="0" cellspacing="0" border="0">
1128
<td class="md" nowrap valign="top">bool bit_is_all_zero </td>
1129
<td class="md" valign="top">( </td>
1130
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a31">bm::wordop_t</a> * </td>
1131
<td class="mdname" nowrap> <em>start</em>, </td>
1134
<td class="md" nowrap align="right"></td>
1135
<td class="md"></td>
1136
<td class="md" nowrap>const <a class="el" href="a00092.html#a31">bm::wordop_t</a> * </td>
1137
<td class="mdname" nowrap> <em>end</em></td>
1140
<td class="md"></td>
1141
<td class="md">) </td>
1142
<td class="md" colspan="2"><code> [inline]</code></td>
1148
<table cellspacing="5" cellpadding="0" border="0">
1156
Returns "true" if all bits in the block are 0.
1160
Definition at line <a class="el" href="a00106.html#l02309">2309</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1162
Referenced by <a class="el" href="a00102.html#l01845">bm::bvector< Alloc, MS >::compare()</a>. </td>
1165
<a class="anchor" name="ga39" doxytag="bm::bit_list"></a><p>
1166
<table class="mdTable" cellpadding="2" cellspacing="0">
1169
<table cellpadding="0" cellspacing="0" border="0">
1171
<td class="mdPrefix" colspan="4">
1172
template<typename T, typename B> </td>
1175
<td class="md" nowrap valign="top">unsigned bit_list </td>
1176
<td class="md" valign="top">( </td>
1177
<td class="md" nowrap valign="top">T </td>
1178
<td class="mdname" nowrap> <em>w</em>, </td>
1181
<td class="md" nowrap align="right"></td>
1182
<td class="md"></td>
1183
<td class="md" nowrap>B * </td>
1184
<td class="mdname" nowrap> <em>bits</em></td>
1187
<td class="md"></td>
1188
<td class="md">) </td>
1189
<td class="md" colspan="2"></td>
1195
<table cellspacing="5" cellpadding="0" border="0">
1203
Unpacks word into list of ON bit indexes.
1205
<dl compact><dt><b>Parameters:</b></dt><dd>
1206
<table border="0" cellspacing="2" cellpadding="0">
1207
<tr><td valign="top"></td><td valign="top"><em>w</em> </td><td>- value </td></tr>
1208
<tr><td valign="top"></td><td valign="top"><em>bits</em> </td><td>- pointer on the result array </td></tr>
1211
<dl compact><dt><b>Returns:</b></dt><dd>number of bits in the list </dd></dl>
1214
Definition at line <a class="el" href="a00106.html#l03193">3193</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1216
Referenced by <a class="el" href="a00102.html#l00499">bm::bvector< Alloc, MS >::enumerator::go_up()</a>. </td>
1219
<a class="anchor" name="ga26" doxytag="bm::bit_operation_and"></a><p>
1220
<table class="mdTable" cellpadding="2" cellspacing="0">
1223
<table cellpadding="0" cellspacing="0" border="0">
1225
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a>* bit_operation_and </td>
1226
<td class="md" valign="top">( </td>
1227
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1228
<td class="mdname" nowrap> <em>dst</em>, </td>
1231
<td class="md" nowrap align="right"></td>
1232
<td class="md"></td>
1233
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1234
<td class="mdname" nowrap> <em>src</em></td>
1237
<td class="md"></td>
1238
<td class="md">) </td>
1239
<td class="md" colspan="2"><code> [inline]</code></td>
1245
<table cellspacing="5" cellpadding="0" border="0">
1253
bitblock AND operation.
1255
<dl compact><dt><b>Parameters:</b></dt><dd>
1256
<table border="0" cellspacing="2" cellpadding="0">
1257
<tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>- destination block. </td></tr>
1258
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>- source block.</td></tr>
1261
<dl compact><dt><b>Returns:</b></dt><dd>pointer on destination block. If returned value equal to src means that block mutation requested. NULL is valid return value. </dd></dl>
1264
Definition at line <a class="el" href="a00106.html#l02663">2663</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1266
References <a class="el" href="a00106.html#l02488">bm::bit_block_and()</a>, <a class="el" href="a00105.html#l00014">BM_ASSERT</a>, <a class="el" href="a00105.html#l00025">IS_EMPTY_BLOCK</a>, <a class="el" href="a00105.html#l00024">IS_FULL_BLOCK</a>, and <a class="el" href="a00105.html#l00023">IS_VALID_ADDR</a>. </td>
1269
<a class="anchor" name="ga27" doxytag="bm::bit_operation_and_count"></a><p>
1270
<table class="mdTable" cellpadding="2" cellspacing="0">
1273
<table cellpadding="0" cellspacing="0" border="0">
1275
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> bit_operation_and_count </td>
1276
<td class="md" valign="top">( </td>
1277
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1278
<td class="mdname" nowrap> <em>src1</em>, </td>
1281
<td class="md" nowrap align="right"></td>
1282
<td class="md"></td>
1283
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1284
<td class="mdname" nowrap> <em>src1_end</em>, </td>
1287
<td class="md" nowrap align="right"></td>
1288
<td class="md"></td>
1289
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1290
<td class="mdname" nowrap> <em>src2</em></td>
1293
<td class="md"></td>
1294
<td class="md">) </td>
1295
<td class="md" colspan="2"><code> [inline]</code></td>
1301
<table cellspacing="5" cellpadding="0" border="0">
1309
Performs bitblock AND operation and calculates bitcount of the result.
1311
<dl compact><dt><b>Parameters:</b></dt><dd>
1312
<table border="0" cellspacing="2" cellpadding="0">
1313
<tr><td valign="top"></td><td valign="top"><em>src1</em> </td><td>- first bit block. </td></tr>
1314
<tr><td valign="top"></td><td valign="top"><em>src1_end</em> </td><td>- first bit block end </td></tr>
1315
<tr><td valign="top"></td><td valign="top"><em>src2</em> </td><td>- second bit block.</td></tr>
1318
<dl compact><dt><b>Returns:</b></dt><dd>bitcount value </dd></dl>
1321
Definition at line <a class="el" href="a00106.html#l02728">2728</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1323
References <a class="el" href="a00106.html#l02522">bm::bit_block_and_count()</a>, and <a class="el" href="a00105.html#l00025">IS_EMPTY_BLOCK</a>.
1325
Referenced by <a class="el" href="a00103.html#l00099">bm::combine_count_operation_with_block()</a>. </td>
1328
<a class="anchor" name="ga31" doxytag="bm::bit_operation_or"></a><p>
1329
<table class="mdTable" cellpadding="2" cellspacing="0">
1332
<table cellpadding="0" cellspacing="0" border="0">
1334
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a>* bit_operation_or </td>
1335
<td class="md" valign="top">( </td>
1336
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1337
<td class="mdname" nowrap> <em>dst</em>, </td>
1340
<td class="md" nowrap align="right"></td>
1341
<td class="md"></td>
1342
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1343
<td class="mdname" nowrap> <em>src</em></td>
1346
<td class="md"></td>
1347
<td class="md">) </td>
1348
<td class="md" colspan="2"><code> [inline]</code></td>
1354
<table cellspacing="5" cellpadding="0" border="0">
1362
Block OR operation. Makes analysis if block is 0 or FULL.
1364
<dl compact><dt><b>Parameters:</b></dt><dd>
1365
<table border="0" cellspacing="2" cellpadding="0">
1366
<tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>- destination block. </td></tr>
1367
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>- source block.</td></tr>
1370
<dl compact><dt><b>Returns:</b></dt><dd>pointer on destination block. If returned value equal to src means that block mutation requested. NULL is valid return value. </dd></dl>
1373
Definition at line <a class="el" href="a00106.html#l02849">2849</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1375
References <a class="el" href="a00106.html#l02811">bm::bit_block_or()</a>, <a class="el" href="a00105.html#l00014">BM_ASSERT</a>, <a class="el" href="a00105.html#l00022">FULL_BLOCK_ADDR</a>, <a class="el" href="a00105.html#l00024">IS_FULL_BLOCK</a>, and <a class="el" href="a00105.html#l00023">IS_VALID_ADDR</a>. </td>
1378
<a class="anchor" name="ga29" doxytag="bm::bit_operation_or_count"></a><p>
1379
<table class="mdTable" cellpadding="2" cellspacing="0">
1382
<table cellpadding="0" cellspacing="0" border="0">
1384
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> bit_operation_or_count </td>
1385
<td class="md" valign="top">( </td>
1386
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1387
<td class="mdname" nowrap> <em>src1</em>, </td>
1390
<td class="md" nowrap align="right"></td>
1391
<td class="md"></td>
1392
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1393
<td class="mdname" nowrap> <em>src1_end</em>, </td>
1396
<td class="md" nowrap align="right"></td>
1397
<td class="md"></td>
1398
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1399
<td class="mdname" nowrap> <em>src2</em></td>
1402
<td class="md"></td>
1403
<td class="md">) </td>
1404
<td class="md" colspan="2"><code> [inline]</code></td>
1410
<table cellspacing="5" cellpadding="0" border="0">
1418
Performs bitblock OR operation and calculates bitcount of the result.
1420
<dl compact><dt><b>Parameters:</b></dt><dd>
1421
<table border="0" cellspacing="2" cellpadding="0">
1422
<tr><td valign="top"></td><td valign="top"><em>src1</em> </td><td>- first bit block. </td></tr>
1423
<tr><td valign="top"></td><td valign="top"><em>src1_end</em> </td><td>- first bit block end </td></tr>
1424
<tr><td valign="top"></td><td valign="top"><em>src2</em> </td><td>- second bit block.</td></tr>
1427
<dl compact><dt><b>Returns:</b></dt><dd>bitcount value </dd></dl>
1430
Definition at line <a class="el" href="a00106.html#l02781">2781</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1432
References <a class="el" href="a00106.html#l02021">bm::bit_block_calc_count()</a>, <a class="el" href="a00106.html#l02627">bm::bit_block_or_count()</a>, and <a class="el" href="a00105.html#l00025">IS_EMPTY_BLOCK</a>.
1434
Referenced by <a class="el" href="a00103.html#l00099">bm::combine_count_operation_with_block()</a>. </td>
1437
<a class="anchor" name="ga33" doxytag="bm::bit_operation_sub"></a><p>
1438
<table class="mdTable" cellpadding="2" cellspacing="0">
1441
<table cellpadding="0" cellspacing="0" border="0">
1443
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a>* bit_operation_sub </td>
1444
<td class="md" valign="top">( </td>
1445
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1446
<td class="mdname" nowrap> <em>dst</em>, </td>
1449
<td class="md" nowrap align="right"></td>
1450
<td class="md"></td>
1451
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1452
<td class="mdname" nowrap> <em>src</em></td>
1455
<td class="md"></td>
1456
<td class="md">) </td>
1457
<td class="md" colspan="2"><code> [inline]</code></td>
1463
<table cellspacing="5" cellpadding="0" border="0">
1471
bitblock SUB operation.
1473
<dl compact><dt><b>Parameters:</b></dt><dd>
1474
<table border="0" cellspacing="2" cellpadding="0">
1475
<tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>- destination block. </td></tr>
1476
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>- source block.</td></tr>
1479
<dl compact><dt><b>Returns:</b></dt><dd>pointer on destination block. If returned value equal to src means that block mutation requested. NULL is valid return value. </dd></dl>
1482
Definition at line <a class="el" href="a00106.html#l02947">2947</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1484
References <a class="el" href="a00106.html#l02907">bm::bit_block_sub()</a>, <a class="el" href="a00105.html#l00014">BM_ASSERT</a>, <a class="el" href="a00105.html#l00024">IS_FULL_BLOCK</a>, and <a class="el" href="a00105.html#l00023">IS_VALID_ADDR</a>. </td>
1487
<a class="anchor" name="ga28" doxytag="bm::bit_operation_sub_count"></a><p>
1488
<table class="mdTable" cellpadding="2" cellspacing="0">
1491
<table cellpadding="0" cellspacing="0" border="0">
1493
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> bit_operation_sub_count </td>
1494
<td class="md" valign="top">( </td>
1495
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1496
<td class="mdname" nowrap> <em>src1</em>, </td>
1499
<td class="md" nowrap align="right"></td>
1500
<td class="md"></td>
1501
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1502
<td class="mdname" nowrap> <em>src1_end</em>, </td>
1505
<td class="md" nowrap align="right"></td>
1506
<td class="md"></td>
1507
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1508
<td class="mdname" nowrap> <em>src2</em></td>
1511
<td class="md"></td>
1512
<td class="md">) </td>
1513
<td class="md" colspan="2"><code> [inline]</code></td>
1519
<table cellspacing="5" cellpadding="0" border="0">
1527
Performs bitblock SUB operation and calculates bitcount of the result.
1529
<dl compact><dt><b>Parameters:</b></dt><dd>
1530
<table border="0" cellspacing="2" cellpadding="0">
1531
<tr><td valign="top"></td><td valign="top"><em>src1</em> </td><td>- first bit block. </td></tr>
1532
<tr><td valign="top"></td><td valign="top"><em>src1_end</em> </td><td>- first bit block end </td></tr>
1533
<tr><td valign="top"></td><td valign="top"><em>src2</em> </td><td>- second bit block</td></tr>
1536
<dl compact><dt><b>Returns:</b></dt><dd>bitcount value </dd></dl>
1539
Definition at line <a class="el" href="a00106.html#l02752">2752</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1541
References <a class="el" href="a00106.html#l02021">bm::bit_block_calc_count()</a>, <a class="el" href="a00106.html#l02592">bm::bit_block_sub_count()</a>, and <a class="el" href="a00105.html#l00025">IS_EMPTY_BLOCK</a>.
1543
Referenced by <a class="el" href="a00103.html#l00099">bm::combine_count_operation_with_block()</a>. </td>
1546
<a class="anchor" name="ga35" doxytag="bm::bit_operation_xor"></a><p>
1547
<table class="mdTable" cellpadding="2" cellspacing="0">
1550
<table cellpadding="0" cellspacing="0" border="0">
1552
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a>* bit_operation_xor </td>
1553
<td class="md" valign="top">( </td>
1554
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1555
<td class="mdname" nowrap> <em>dst</em>, </td>
1558
<td class="md" nowrap align="right"></td>
1559
<td class="md"></td>
1560
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1561
<td class="mdname" nowrap> <em>src</em></td>
1564
<td class="md"></td>
1565
<td class="md">) </td>
1566
<td class="md" colspan="2"><code> [inline]</code></td>
1572
<table cellspacing="5" cellpadding="0" border="0">
1580
bitblock XOR operation.
1582
<dl compact><dt><b>Parameters:</b></dt><dd>
1583
<table border="0" cellspacing="2" cellpadding="0">
1584
<tr><td valign="top"></td><td valign="top"><em>dst</em> </td><td>- destination block. </td></tr>
1585
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>- source block.</td></tr>
1588
<dl compact><dt><b>Returns:</b></dt><dd>pointer on destination block. If returned value equal to src means that block mutation requested. NULL is valid return value. </dd></dl>
1591
Definition at line <a class="el" href="a00106.html#l03043">3043</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1593
References <a class="el" href="a00106.html#l03003">bm::bit_block_xor()</a>, <a class="el" href="a00105.html#l00014">BM_ASSERT</a>, and <a class="el" href="a00105.html#l00023">IS_VALID_ADDR</a>. </td>
1596
<a class="anchor" name="ga36" doxytag="bm::bit_operation_xor_count"></a><p>
1597
<table class="mdTable" cellpadding="2" cellspacing="0">
1600
<table cellpadding="0" cellspacing="0" border="0">
1602
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> bit_operation_xor_count </td>
1603
<td class="md" valign="top">( </td>
1604
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1605
<td class="mdname" nowrap> <em>src1</em>, </td>
1608
<td class="md" nowrap align="right"></td>
1609
<td class="md"></td>
1610
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1611
<td class="mdname" nowrap> <em>src1_end</em>, </td>
1614
<td class="md" nowrap align="right"></td>
1615
<td class="md"></td>
1616
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> *BMRESTRICT </td>
1617
<td class="mdname" nowrap> <em>src2</em></td>
1620
<td class="md"></td>
1621
<td class="md">) </td>
1622
<td class="md" colspan="2"><code> [inline]</code></td>
1628
<table cellspacing="5" cellpadding="0" border="0">
1636
Performs bitblock XOR operation and calculates bitcount of the result.
1638
<dl compact><dt><b>Parameters:</b></dt><dd>
1639
<table border="0" cellspacing="2" cellpadding="0">
1640
<tr><td valign="top"></td><td valign="top"><em>src1</em> </td><td>- first bit block. </td></tr>
1641
<tr><td valign="top"></td><td valign="top"><em>src2</em> </td><td>- second bit block.</td></tr>
1644
<dl compact><dt><b>Returns:</b></dt><dd>bitcount value </dd></dl>
1647
Definition at line <a class="el" href="a00106.html#l03081">3081</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1649
References <a class="el" href="a00106.html#l02021">bm::bit_block_calc_count()</a>, <a class="el" href="a00106.html#l02557">bm::bit_block_xor_count()</a>, and <a class="el" href="a00105.html#l00025">IS_EMPTY_BLOCK</a>.
1651
Referenced by <a class="el" href="a00103.html#l00099">bm::combine_count_operation_with_block()</a>. </td>
1654
<a class="anchor" name="ga11" doxytag="bm::bitcmp"></a><p>
1655
<table class="mdTable" cellpadding="2" cellspacing="0">
1658
<table cellpadding="0" cellspacing="0" border="0">
1660
<td class="mdPrefix" colspan="4">
1661
template<typename T> </td>
1664
<td class="md" nowrap valign="top">int bitcmp </td>
1665
<td class="md" valign="top">( </td>
1666
<td class="md" nowrap valign="top">const T * </td>
1667
<td class="mdname" nowrap> <em>buf1</em>, </td>
1670
<td class="md" nowrap align="right"></td>
1671
<td class="md"></td>
1672
<td class="md" nowrap>const T * </td>
1673
<td class="mdname" nowrap> <em>buf2</em>, </td>
1676
<td class="md" nowrap align="right"></td>
1677
<td class="md"></td>
1678
<td class="md" nowrap>unsigned </td>
1679
<td class="mdname" nowrap> <em>len</em></td>
1682
<td class="md"></td>
1683
<td class="md">) </td>
1684
<td class="md" colspan="2"></td>
1690
<table cellspacing="5" cellpadding="0" border="0">
1698
Lexicographical comparison of BIT buffers.
1700
<dl compact><dt><b>Parameters:</b></dt><dd>
1701
<table border="0" cellspacing="2" cellpadding="0">
1702
<tr><td valign="top"></td><td valign="top"><em>buf1</em> </td><td>- First buffer pointer. </td></tr>
1703
<tr><td valign="top"></td><td valign="top"><em>buf2</em> </td><td>- Second buffer pointer. </td></tr>
1704
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>- Buffer length in elements (T). </td></tr>
1707
<dl compact><dt><b>Returns:</b></dt><dd><0 - less, =0 - equal, >0 - greater. </dd></dl>
1710
Definition at line <a class="el" href="a00106.html#l01786">1786</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1712
References <a class="el" href="a00105.html#l00014">BM_ASSERT</a>.
1714
Referenced by <a class="el" href="a00102.html#l01845">bm::bvector< Alloc, MS >::compare()</a>. </td>
1717
<a class="anchor" name="ga6" doxytag="bm::gap_bitset_and_count"></a><p>
1718
<table class="mdTable" cellpadding="2" cellspacing="0">
1721
<table cellpadding="0" cellspacing="0" border="0">
1723
<td class="mdPrefix" colspan="4">
1724
template<typename T> </td>
1727
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> gap_bitset_and_count </td>
1728
<td class="md" valign="top">( </td>
1729
<td class="md" nowrap valign="top">const unsigned * </td>
1730
<td class="mdname" nowrap> <em>block</em>, </td>
1733
<td class="md" nowrap align="right"></td>
1734
<td class="md"></td>
1735
<td class="md" nowrap>const T * </td>
1736
<td class="mdname" nowrap> <em>buf</em></td>
1739
<td class="md"></td>
1740
<td class="md">) </td>
1741
<td class="md" colspan="2"></td>
1747
<table cellspacing="5" cellpadding="0" border="0">
1755
Compute bitcount of bit block AND masked by GAP block.
1757
<dl compact><dt><b>Parameters:</b></dt><dd>
1758
<table border="0" cellspacing="2" cellpadding="0">
1759
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>- bitblock buffer pointer. </td></tr>
1760
<tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>- GAP buffer pointer. </td></tr>
1765
Definition at line <a class="el" href="a00106.html#l01280">1280</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1767
References <a class="el" href="a00106.html#l02201">bm::bit_block_calc_count_range()</a>, and <a class="el" href="a00105.html#l00014">BM_ASSERT</a>.
1769
Referenced by <a class="el" href="a00103.html#l00099">bm::combine_count_operation_with_block()</a>. </td>
1772
<a class="anchor" name="ga9" doxytag="bm::gap_bitset_or_count"></a><p>
1773
<table class="mdTable" cellpadding="2" cellspacing="0">
1776
<table cellpadding="0" cellspacing="0" border="0">
1778
<td class="mdPrefix" colspan="4">
1779
template<typename T> </td>
1782
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> gap_bitset_or_count </td>
1783
<td class="md" valign="top">( </td>
1784
<td class="md" nowrap valign="top">const unsigned * </td>
1785
<td class="mdname" nowrap> <em>block</em>, </td>
1788
<td class="md" nowrap align="right"></td>
1789
<td class="md"></td>
1790
<td class="md" nowrap>const T * </td>
1791
<td class="mdname" nowrap> <em>buf</em></td>
1794
<td class="md"></td>
1795
<td class="md">) </td>
1796
<td class="md" colspan="2"></td>
1802
<table cellspacing="5" cellpadding="0" border="0">
1810
Compute bitcount of bit block OR masked by GAP block.
1812
<dl compact><dt><b>Parameters:</b></dt><dd>
1813
<table border="0" cellspacing="2" cellpadding="0">
1814
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>- bitblock buffer pointer. </td></tr>
1815
<tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>- GAP buffer pointer. </td></tr>
1820
Definition at line <a class="el" href="a00106.html#l01390">1390</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1822
References <a class="el" href="a00106.html#l02201">bm::bit_block_calc_count_range()</a>, and <a class="el" href="a00105.html#l00014">BM_ASSERT</a>.
1824
Referenced by <a class="el" href="a00103.html#l00099">bm::combine_count_operation_with_block()</a>. </td>
1827
<a class="anchor" name="ga7" doxytag="bm::gap_bitset_sub_count"></a><p>
1828
<table class="mdTable" cellpadding="2" cellspacing="0">
1831
<table cellpadding="0" cellspacing="0" border="0">
1833
<td class="mdPrefix" colspan="4">
1834
template<typename T> </td>
1837
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> gap_bitset_sub_count </td>
1838
<td class="md" valign="top">( </td>
1839
<td class="md" nowrap valign="top">const unsigned * </td>
1840
<td class="mdname" nowrap> <em>block</em>, </td>
1843
<td class="md" nowrap align="right"></td>
1844
<td class="md"></td>
1845
<td class="md" nowrap>const T * </td>
1846
<td class="mdname" nowrap> <em>buf</em></td>
1849
<td class="md"></td>
1850
<td class="md">) </td>
1851
<td class="md" colspan="2"></td>
1857
<table cellspacing="5" cellpadding="0" border="0">
1865
Compute bitcount of bit block SUB masked by GAP block.
1867
<dl compact><dt><b>Parameters:</b></dt><dd>
1868
<table border="0" cellspacing="2" cellpadding="0">
1869
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>- bitblock buffer pointer. </td></tr>
1870
<tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>- GAP buffer pointer. </td></tr>
1875
Definition at line <a class="el" href="a00106.html#l01316">1316</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1877
References <a class="el" href="a00106.html#l02201">bm::bit_block_calc_count_range()</a>, and <a class="el" href="a00105.html#l00014">BM_ASSERT</a>.
1879
Referenced by <a class="el" href="a00103.html#l00099">bm::combine_count_operation_with_block()</a>. </td>
1882
<a class="anchor" name="ga8" doxytag="bm::gap_bitset_xor_count"></a><p>
1883
<table class="mdTable" cellpadding="2" cellspacing="0">
1886
<table cellpadding="0" cellspacing="0" border="0">
1888
<td class="mdPrefix" colspan="4">
1889
template<typename T> </td>
1892
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> gap_bitset_xor_count </td>
1893
<td class="md" valign="top">( </td>
1894
<td class="md" nowrap valign="top">const unsigned * </td>
1895
<td class="mdname" nowrap> <em>block</em>, </td>
1898
<td class="md" nowrap align="right"></td>
1899
<td class="md"></td>
1900
<td class="md" nowrap>const T * </td>
1901
<td class="mdname" nowrap> <em>buf</em></td>
1904
<td class="md"></td>
1905
<td class="md">) </td>
1906
<td class="md" colspan="2"></td>
1912
<table cellspacing="5" cellpadding="0" border="0">
1920
Compute bitcount of bit block XOR masked by GAP block.
1922
<dl compact><dt><b>Parameters:</b></dt><dd>
1923
<table border="0" cellspacing="2" cellpadding="0">
1924
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>- bitblock buffer pointer. </td></tr>
1925
<tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>- GAP buffer pointer. </td></tr>
1930
Definition at line <a class="el" href="a00106.html#l01350">1350</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
1932
References <a class="el" href="a00106.html#l02201">bm::bit_block_calc_count_range()</a>, and <a class="el" href="a00105.html#l00014">BM_ASSERT</a>.
1934
Referenced by <a class="el" href="a00103.html#l00099">bm::combine_count_operation_with_block()</a>. </td>
1937
<a class="anchor" name="ga18" doxytag="bm::is_bits_one"></a><p>
1938
<table class="mdTable" cellpadding="2" cellspacing="0">
1941
<table cellpadding="0" cellspacing="0" border="0">
1943
<td class="md" nowrap valign="top">bool is_bits_one </td>
1944
<td class="md" valign="top">( </td>
1945
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a31">bm::wordop_t</a> * </td>
1946
<td class="mdname" nowrap> <em>start</em>, </td>
1949
<td class="md" nowrap align="right"></td>
1950
<td class="md"></td>
1951
<td class="md" nowrap>const <a class="el" href="a00092.html#a31">bm::wordop_t</a> * </td>
1952
<td class="mdname" nowrap> <em>end</em></td>
1955
<td class="md"></td>
1956
<td class="md">) </td>
1957
<td class="md" colspan="2"><code> [inline]</code></td>
1963
<table cellspacing="5" cellpadding="0" border="0">
1971
Returns "true" if all bits in the block are 1.
1975
Definition at line <a class="el" href="a00106.html#l02288">2288</a> of file <a class="el" href="a00106.html">bmfunc.h</a>. </td>
1978
<a class="anchor" name="ga3" doxytag="bm::or_bit_block"></a><p>
1979
<table class="mdTable" cellpadding="2" cellspacing="0">
1982
<table cellpadding="0" cellspacing="0" border="0">
1984
<td class="md" nowrap valign="top">void or_bit_block </td>
1985
<td class="md" valign="top">( </td>
1986
<td class="md" nowrap valign="top">unsigned * </td>
1987
<td class="mdname" nowrap> <em>dest</em>, </td>
1990
<td class="md" nowrap align="right"></td>
1991
<td class="md"></td>
1992
<td class="md" nowrap>unsigned </td>
1993
<td class="mdname" nowrap> <em>bitpos</em>, </td>
1996
<td class="md" nowrap align="right"></td>
1997
<td class="md"></td>
1998
<td class="md" nowrap>unsigned </td>
1999
<td class="mdname" nowrap> <em>bitcount</em></td>
2002
<td class="md"></td>
2003
<td class="md">) </td>
2004
<td class="md" colspan="2"><code> [inline]</code></td>
2010
<table cellspacing="5" cellpadding="0" border="0">
2018
Sets bits to 1 in the bitblock.
2020
<dl compact><dt><b>Parameters:</b></dt><dd>
2021
<table border="0" cellspacing="2" cellpadding="0">
2022
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>- Bitset buffer. </td></tr>
2023
<tr><td valign="top"></td><td valign="top"><em>bitpos</em> </td><td>- Offset of the start bit. </td></tr>
2024
<tr><td valign="top"></td><td valign="top"><em>bitcount</em> </td><td>- number of bits to set. </td></tr>
2029
Definition at line <a class="el" href="a00106.html#l00965">965</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
2031
Referenced by <a class="el" href="a00106.html#l01215">bm::gap_add_to_bitset()</a>. </td>
2034
<a class="anchor" name="ga4" doxytag="bm::sub_bit_block"></a><p>
2035
<table class="mdTable" cellpadding="2" cellspacing="0">
2038
<table cellpadding="0" cellspacing="0" border="0">
2040
<td class="md" nowrap valign="top">void sub_bit_block </td>
2041
<td class="md" valign="top">( </td>
2042
<td class="md" nowrap valign="top">unsigned * </td>
2043
<td class="mdname" nowrap> <em>dest</em>, </td>
2046
<td class="md" nowrap align="right"></td>
2047
<td class="md"></td>
2048
<td class="md" nowrap>unsigned </td>
2049
<td class="mdname" nowrap> <em>bitpos</em>, </td>
2052
<td class="md" nowrap align="right"></td>
2053
<td class="md"></td>
2054
<td class="md" nowrap>unsigned </td>
2055
<td class="mdname" nowrap> <em>bitcount</em></td>
2058
<td class="md"></td>
2059
<td class="md">) </td>
2060
<td class="md" colspan="2"><code> [inline]</code></td>
2066
<table cellspacing="5" cellpadding="0" border="0">
2074
SUB (AND NOT) bit interval to 1 in the bitblock.
2076
<dl compact><dt><b>Parameters:</b></dt><dd>
2077
<table border="0" cellspacing="2" cellpadding="0">
2078
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>- Bitset buffer. </td></tr>
2079
<tr><td valign="top"></td><td valign="top"><em>bitpos</em> </td><td>- Offset of the start bit. </td></tr>
2080
<tr><td valign="top"></td><td valign="top"><em>bitcount</em> </td><td>- number of bits to set. </td></tr>
2085
Definition at line <a class="el" href="a00106.html#l01027">1027</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
2087
Referenced by <a class="el" href="a00106.html#l01247">bm::gap_and_to_bitset()</a>, and <a class="el" href="a00106.html#l01151">bm::gap_sub_to_bitset()</a>. </td>
2090
<a class="anchor" name="ga0" doxytag="bm::word_bitcount64"></a><p>
2091
<table class="mdTable" cellpadding="2" cellspacing="0">
2094
<table cellpadding="0" cellspacing="0" border="0">
2096
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> word_bitcount64 </td>
2097
<td class="md" valign="top">( </td>
2098
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a8">bm::id64_t</a> </td>
2099
<td class="mdname1" valign="top" nowrap> <em>w</em> </td>
2100
<td class="md" valign="top"> ) </td>
2101
<td class="md" nowrap><code> [inline]</code></td>
2107
<table cellspacing="5" cellpadding="0" border="0">
2115
Function calculates number of 1 bits in 64-bit word.
2117
Definition at line <a class="el" href="a00106.html#l00178">178</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
2119
Referenced by <a class="el" href="a00106.html#l02021">bm::bit_block_calc_count()</a>, and <a class="el" href="a00106.html#l02113">bm::bit_block_calc_count_change()</a>. </td>
2122
<a class="anchor" name="ga2" doxytag="bm::wordcmp"></a><p>
2123
<table class="mdTable" cellpadding="2" cellspacing="0">
2126
<table cellpadding="0" cellspacing="0" border="0">
2128
<td class="mdPrefix" colspan="4">
2129
template<typename T> </td>
2132
<td class="md" nowrap valign="top">int wordcmp </td>
2133
<td class="md" valign="top">( </td>
2134
<td class="md" nowrap valign="top">T </td>
2135
<td class="mdname" nowrap> <em>a</em>, </td>
2138
<td class="md" nowrap align="right"></td>
2139
<td class="md"></td>
2140
<td class="md" nowrap>T </td>
2141
<td class="mdname" nowrap> <em>b</em></td>
2144
<td class="md"></td>
2145
<td class="md">) </td>
2146
<td class="md" colspan="2"></td>
2152
<table cellspacing="5" cellpadding="0" border="0">
2160
Lexicographical comparison of two words as bit strings. Auxiliary implementation for testing and reference purposes.
2162
<dl compact><dt><b>Parameters:</b></dt><dd>
2163
<table border="0" cellspacing="2" cellpadding="0">
2164
<tr><td valign="top"></td><td valign="top"><em>buf1</em> </td><td>- First word. </td></tr>
2165
<tr><td valign="top"></td><td valign="top"><em>buf2</em> </td><td>- Second word. </td></tr>
2168
<dl compact><dt><b>Returns:</b></dt><dd><0 - less, =0 - equal, >0 - greater. </dd></dl>
2171
Definition at line <a class="el" href="a00106.html#l00281">281</a> of file <a class="el" href="a00106.html">bmfunc.h</a>. </td>
2174
<a class="anchor" name="ga1" doxytag="bm::wordcmp0"></a><p>
2175
<table class="mdTable" cellpadding="2" cellspacing="0">
2178
<table cellpadding="0" cellspacing="0" border="0">
2180
<td class="mdPrefix" colspan="4">
2181
template<typename T> </td>
2184
<td class="md" nowrap valign="top">int wordcmp0 </td>
2185
<td class="md" valign="top">( </td>
2186
<td class="md" nowrap valign="top">T </td>
2187
<td class="mdname" nowrap> <em>w1</em>, </td>
2190
<td class="md" nowrap align="right"></td>
2191
<td class="md"></td>
2192
<td class="md" nowrap>T </td>
2193
<td class="mdname" nowrap> <em>w2</em></td>
2196
<td class="md"></td>
2197
<td class="md">) </td>
2198
<td class="md" colspan="2"></td>
2204
<table cellspacing="5" cellpadding="0" border="0">
2212
Lexicographical comparison of two words as bit strings. Auxiliary implementation for testing and reference purposes.
2214
<dl compact><dt><b>Parameters:</b></dt><dd>
2215
<table border="0" cellspacing="2" cellpadding="0">
2216
<tr><td valign="top"></td><td valign="top"><em>buf1</em> </td><td>- First word. </td></tr>
2217
<tr><td valign="top"></td><td valign="top"><em>buf2</em> </td><td>- Second word. </td></tr>
2220
<dl compact><dt><b>Returns:</b></dt><dd><0 - less, =0 - equal, >0 - greater. </dd></dl>
2223
Definition at line <a class="el" href="a00106.html#l00251">251</a> of file <a class="el" href="a00106.html">bmfunc.h</a>. </td>
2226
<a class="anchor" name="ga5" doxytag="bm::xor_bit_block"></a><p>
2227
<table class="mdTable" cellpadding="2" cellspacing="0">
2230
<table cellpadding="0" cellspacing="0" border="0">
2232
<td class="md" nowrap valign="top">void xor_bit_block </td>
2233
<td class="md" valign="top">( </td>
2234
<td class="md" nowrap valign="top">unsigned * </td>
2235
<td class="mdname" nowrap> <em>dest</em>, </td>
2238
<td class="md" nowrap align="right"></td>
2239
<td class="md"></td>
2240
<td class="md" nowrap>unsigned </td>
2241
<td class="mdname" nowrap> <em>bitpos</em>, </td>
2244
<td class="md" nowrap align="right"></td>
2245
<td class="md"></td>
2246
<td class="md" nowrap>unsigned </td>
2247
<td class="mdname" nowrap> <em>bitcount</em></td>
2250
<td class="md"></td>
2251
<td class="md">) </td>
2252
<td class="md" colspan="2"><code> [inline]</code></td>
2258
<table cellspacing="5" cellpadding="0" border="0">
2266
XOR bit interval to 1 in the bitblock.
2268
<dl compact><dt><b>Parameters:</b></dt><dd>
2269
<table border="0" cellspacing="2" cellpadding="0">
2270
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>- Bitset buffer. </td></tr>
2271
<tr><td valign="top"></td><td valign="top"><em>bitpos</em> </td><td>- Offset of the start bit. </td></tr>
2272
<tr><td valign="top"></td><td valign="top"><em>bitcount</em> </td><td>- number of bits to set. </td></tr>
2277
Definition at line <a class="el" href="a00106.html#l01089">1089</a> of file <a class="el" href="a00106.html">bmfunc.h</a>.
2279
Referenced by <a class="el" href="a00106.html#l01183">bm::gap_xor_to_bitset()</a>. </td>
2282
<hr size="1"><address style="align: right;"><small>Generated on Thu Apr 20 13:29:10 2006 for BitMagic by
83
<td class="md" nowrap><code> [inline, static]</code></td>
89
<table cellspacing="5" cellpadding="0" border="0">
99
Definition at line <a class="el" href="a00151.html#l00102">102</a> of file <a class="el" href="a00151.html">sample6.cpp</a>.
101
References <a class="el" href="a00151.html#l00109">na_</a>, and <a class="el" href="a00151.html#l00110">nf_</a>. </td>
104
<a class="anchor" name="e1" doxytag="dbg_ptr_allocator::deallocate"></a><p>
105
<table class="mdTable" cellpadding="2" cellspacing="0">
108
<table cellpadding="0" cellspacing="0" border="0">
110
<td class="md" nowrap valign="top">static void dbg_ptr_allocator::deallocate </td>
111
<td class="md" valign="top">( </td>
112
<td class="md" nowrap valign="top">void * </td>
113
<td class="mdname" nowrap> <em>p</em>, </td>
116
<td class="md" nowrap align="right"></td>
118
<td class="md" nowrap>size_t </td>
119
<td class="mdname" nowrap> <em>n</em></td>
123
<td class="md">) </td>
124
<td class="md" colspan="2"><code> [inline, static]</code></td>
130
<table cellspacing="5" cellpadding="0" border="0">
140
Definition at line <a class="el" href="a00151.html#l00093">93</a> of file <a class="el" href="a00151.html">sample6.cpp</a>.
142
References <a class="el" href="a00151.html#l00110">nf_</a>. </td>
145
<hr><h2>Field Documentation</h2>
146
<a class="anchor" name="s0" doxytag="dbg_ptr_allocator::na_"></a><p>
147
<table class="mdTable" cellpadding="2" cellspacing="0">
150
<table cellpadding="0" cellspacing="0" border="0">
152
<td class="md" nowrap valign="top">unsigned <a class="el" href="a00097.html#s0">dbg_ptr_allocator::na_</a> = 0<code> [static]</code> </td>
158
<table cellspacing="5" cellpadding="0" border="0">
168
Definition at line <a class="el" href="a00151.html#l00109">109</a> of file <a class="el" href="a00151.html">sample6.cpp</a>.
170
Referenced by <a class="el" href="a00151.html#l00083">allocate()</a>, and <a class="el" href="a00151.html#l00102">balance()</a>. </td>
173
<a class="anchor" name="s1" doxytag="dbg_ptr_allocator::nf_"></a><p>
174
<table class="mdTable" cellpadding="2" cellspacing="0">
177
<table cellpadding="0" cellspacing="0" border="0">
179
<td class="md" nowrap valign="top">unsigned <a class="el" href="a00097.html#s1">dbg_ptr_allocator::nf_</a> = 0<code> [static]</code> </td>
185
<table cellspacing="5" cellpadding="0" border="0">
195
Definition at line <a class="el" href="a00151.html#l00110">110</a> of file <a class="el" href="a00151.html">sample6.cpp</a>.
197
Referenced by <a class="el" href="a00151.html#l00102">balance()</a>, and <a class="el" href="a00151.html#l00093">deallocate()</a>. </td>
200
<hr>The documentation for this class was generated from the following file:<ul>
201
<li><a class="el" href="a00151.html">sample6.cpp</a></ul>
202
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 5 14:12:35 2007 for BitMagic by
2283
203
<a href="http://www.doxygen.org/index.html">
2284
204
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>