1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
<title>BitMagic: bmtrans.h File Reference</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
<link href="tabs.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.5.5 -->
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
<title>BitMagic: bmserial.h File Reference</title>
6
<link href="tabs.css" rel="stylesheet" type="text/css"/>
7
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
10
<!-- Generated by Doxygen 1.6.1 -->
8
11
<div class="navigation" id="top">
11
14
<li><a href="index.html"><span>Main Page</span></a></li>
12
15
<li><a href="modules.html"><span>Modules</span></a></li>
13
16
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
14
<li><a href="classes.html"><span>Data Structures</span></a></li>
17
<li><a href="annotated.html"><span>Data Structures</span></a></li>
15
18
<li class="current"><a href="files.html"><span>Files</span></a></li>
16
19
<li><a href="examples.html"><span>Examples</span></a></li>
24
<li><a href="files.html"><span>File List</span></a></li>
25
<li><a href="globals.html"><span>Globals</span></a></li>
20
29
<div class="contents">
21
<h1>bmtrans.h File Reference</h1>
30
<h1>bmserial.h File Reference</h1><code>#include "<a class="el" href="a00084_source.html">bm.h</a>"</code><br/>
31
<code>#include "<a class="el" href="a00100_source.html">encoding.h</a>"</code><br/>
32
<code>#include "<a class="el" href="a00089_source.html">bmdef.h</a>"</code><br/>
33
<code>#include "<a class="el" href="a00090_source.html">bmfunc.h</a>"</code><br/>
34
<code>#include "<a class="el" href="a00096_source.html">bmtrans.h</a>"</code><br/>
35
<code>#include "<a class="el" href="a00086_source.html">bmalgo_impl.h</a>"</code><br/>
36
<code>#include "<a class="el" href="a00098_source.html">bmutil.h</a>"</code><br/>
37
<code>#include "<a class="el" href="a00097_source.html">bmundef.h</a>"</code><br/>
38
<div class="dynheader">
39
Include dependency graph for bmserial.h:</div>
40
<div class="dynsection">
41
<div class="center"><img src="a00136.png" border="0" usemap="#bmserial_8h_map" alt=""/></div>
42
<map name="bmserial_8h_map" id="bmserial_8h">
43
<area shape="rect" href="a00084.html" title="bm.h" alt="" coords="497,83,548,112"/><area shape="rect" href="a00089.html" title="bmdef.h" alt="" coords="997,315,1064,344"/><area shape="rect" href="a00090.html" title="bmfunc.h" alt="" coords="864,160,939,189"/><area shape="rect" href="a00098.html" title="bmutil.h" alt="" coords="1085,237,1152,267"/><area shape="rect" href="a00100.html" title="encoding.h" alt="" coords="963,160,1045,189"/><area shape="rect" href="a00097.html" title="bmundef.h" alt="" coords="1069,160,1152,189"/><area shape="rect" href="a00096.html" title="bmtrans.h" alt="" coords="1277,83,1357,112"/><area shape="rect" href="a00086.html" title="bmalgo_impl.h" alt="" coords="1381,83,1485,112"/><area shape="rect" href="a00088.html" title="bmconst.h" alt="" coords="617,315,700,344"/><area shape="rect" href="a00093.html" title="bmsse2.h" alt="" coords="663,160,740,189"/><area shape="rect" href="a00099.html" title="bmvmin.h" alt="" coords="99,160,176,189"/><area shape="rect" href="a00087.html" title="bmalloc.h" alt="" coords="336,160,413,189"/><area shape="rect" href="a00095.html" title="bmsse_util.h" alt="" coords="653,237,749,267"/></map>
23
45
<div class="dynheader">
24
46
This graph shows which files directly or indirectly include this file:</div>
25
47
<div class="dynsection">
26
<p><center><img src="a00160.png" border="0" usemap="#bmtrans.hdep_map" alt=""></center>
27
<map name="bmtrans.hdep_map">
28
<area shape="rect" id="node3" href="a00090.html" title="bmserial.h" alt="" coords="13,83,93,111">
b'<area shape="rect" id="node5" href="a00100.html" title="sample4.cpp" alt="" coords="5,161,101,189">'
48
<div class="center"><img src="a00137.png" border="0" usemap="#bmserial_8hdep_map" alt=""/></div>
49
<map name="bmserial_8hdep_map" id="bmserial_8hdep">
50
<area shape="rect" href="a00104.html" title="sample4.cpp" alt="" coords="5,83,101,112"/></map>
32
<a href="a00138.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
34
<tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
35
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html">bm</a></td></tr>
37
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
38
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00081.html">bm::tmatrix< T, ROWS, COLS ></a></td></tr>
40
<tr><td class="mdescLeft"> </td><td class="mdescRight">Mini-matrix for bit transposition purposes. <a href="a00081.html#_details">More...</a><br></td></tr>
41
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html">bm::bit_grabber< T, BPC ></a></td></tr>
43
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html">bm::bm::bit_grabber< unsigned, 32 ></a></td></tr>
45
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html">bm::bm::bit_grabber< unsigned short, 16 ></a></td></tr>
47
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html">bm::bm::bit_grabber< unsigned char, 8 ></a></td></tr>
49
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html">bm::bit_trans_grabber< T, BPC, BPS ></a></td></tr>
51
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00069.html">bm::gap_transpose_engine< GT, BT, BLOCK_SIZE ></a></td></tr>
53
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit-plain splicing of a GAP block. <a href="a00069.html#_details">More...</a><br></td></tr>
54
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
55
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T, unsigned BPC, unsigned BPS> </td></tr>
56
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00106.html#2e3af9c9f2eb481130d240ba4cd6fd68">bm::vect_bit_transpose</a> (const T *arr, unsigned arr_size, T tmatrix[BPC][BPS])</td></tr>
58
<tr><td class="mdescLeft"> </td><td class="mdescRight">Generic bit-array transposition function T - array type (any int) BPC - bit plain count BPS - bit plain size. <a href="#2e3af9c9f2eb481130d240ba4cd6fd68"></a><br></td></tr>
59
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T, unsigned BPC, unsigned BPS> </td></tr>
60
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00106.html#089ac7cd17ddca4bf3c661c96f749f3f">bm::vect_bit_trestore</a> (const T tmatrix[BPC][BPS], T *arr)</td></tr>
62
<tr><td class="mdescLeft"> </td><td class="mdescRight">Restore bit array from the transposition matrix T - array type (any int) BPC - bit plain count BPS - bit plain size. <a href="#089ac7cd17ddca4bf3c661c96f749f3f"></a><br></td></tr>
63
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T, unsigned BPC, unsigned BPS> </td></tr>
64
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00111.html#g3fe02492f64cd8a9dfbb1a00ec71c0ae">bm::tmatrix_distance</a> (const T tmatrix[BPC][BPS], unsigned distance[BPC][BPC])</td></tr>
66
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute pairwise Row x Row Humming distances on plains(rows) of the transposed bit block. <a href="a00111.html#g3fe02492f64cd8a9dfbb1a00ec71c0ae"></a><br></td></tr>
67
<tr><td class="memTemplParams" nowrap colspan="2">template<typename T, unsigned BPC, unsigned BPS> </td></tr>
68
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00111.html#gbdc11d48fda6a69873eefd219c4b7e75">bm::bit_iblock_make_pcv</a> (const unsigned distance[BPC][BPC], unsigned char *pc_vector)</td></tr>
70
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< ibpc limiter <a href="a00111.html#gbdc11d48fda6a69873eefd219c4b7e75"></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="a00106.html#dfae226f696ef821c7d351216c00fe0d">bm::bit_iblock_pcv_stat</a> (const unsigned char *BMRESTRICT pc_vector, const unsigned char *BMRESTRICT pc_vector_end, unsigned *BMRESTRICT pc_vector_stat)</td></tr>
73
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute number of ibpc codes in pc_vector. <a href="#dfae226f696ef821c7d351216c00fe0d"></a><br></td></tr>
74
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#62808b64adfcf2a7e610a4f713f470c0">bm::bit_iblock_reduce</a> (const unsigned tmatrix[<a class="el" href="a00106.html#3428cf384446982017ba9ee68152d238">bm::set_block_plain_cnt</a>][<a class="el" href="a00106.html#35780565f6d8f2831ebff8877d3ba662">bm::set_block_plain_size</a>], const unsigned char *BMRESTRICT pc_vector, const unsigned char *BMRESTRICT pc_vector_end, unsigned tmatrix_out[<a class="el" href="a00106.html#3428cf384446982017ba9ee68152d238">bm::set_block_plain_cnt</a>][<a class="el" href="a00106.html#35780565f6d8f2831ebff8877d3ba662">bm::set_block_plain_size</a>])</td></tr>
76
<tr><td class="mdescLeft"> </td><td class="mdescRight">Matrix reduction based on transformation pc vector. <a href="#62808b64adfcf2a7e610a4f713f470c0"></a><br></td></tr>
77
<tr><td class="memTemplParams" nowrap colspan="2">template<typename GT, typename BT> </td></tr>
78
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00106.html#76724fb233f93c15146641482311ce28">bm::gap_2_bitblock</a> (const GT *BMRESTRICT gap_buf, BT *BMRESTRICT block, unsigned block_size)</td></tr>
80
<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy GAP block body to bit block with DGap transformation. <a href="#76724fb233f93c15146641482311ce28"></a><br></td></tr>
81
<tr><td class="memTemplParams" nowrap colspan="2">template<typename TM> </td></tr>
82
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00106.html#f92597461aff2926f9adcbf51bac98f9">bm::find_effective_columns</a> (const TM &tmatrix)</td></tr>
84
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute effective right column border of the t-matrix. <a href="#f92597461aff2926f9adcbf51bac98f9"></a><br></td></tr>
85
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
86
<tr><td class="memItemLeft" nowrap align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#e34de9206be7a8aa05db9d5dc38bfc90">bm::ibpc_uncompr</a> = 0</td></tr>
88
<tr><td class="memItemLeft" nowrap align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#aca6d3c887b5b7b66a78e95471f9a326">bm::ibpc_all_zero</a> = 1</td></tr>
90
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< plain uncompressed <a href="#aca6d3c887b5b7b66a78e95471f9a326"></a><br></td></tr>
91
<tr><td class="memItemLeft" nowrap align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#a6f59be0b838db693e0f081bcaf750f0">bm::ibpc_all_one</a> = 2</td></tr>
93
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< plain ALL ZERO <a href="#a6f59be0b838db693e0f081bcaf750f0"></a><br></td></tr>
94
<tr><td class="memItemLeft" nowrap align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#748d4095c39c9372a590b431e0ec17fe">bm::ibpc_equiv</a> = 3</td></tr>
96
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< plain ALL ONE <a href="#748d4095c39c9372a590b431e0ec17fe"></a><br></td></tr>
97
<tr><td class="memItemLeft" nowrap align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#a61bf7691d32a9bc7c65c05bb62657e5">bm::ibpc_close</a> = 4</td></tr>
99
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< plain is equal to plain M <a href="#a61bf7691d32a9bc7c65c05bb62657e5"></a><br></td></tr>
100
<tr><td class="memItemLeft" nowrap align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00106.html#e4f14f0c2c5a9ee277808d36fd94693f">bm::ibpc_end</a> = 8</td></tr>
102
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< plain is close to plain M <a href="#e4f14f0c2c5a9ee277808d36fd94693f"></a><br></td></tr>
53
<p><a href="a00092_source.html">Go to the source code of this file.</a></p>
54
<table border="0" cellpadding="0" cellspacing="0">
55
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
56
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html">bm::serializer< BV ></a></td></tr>
57
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit-vector serialization class. <a href="a00080.html#_details">More...</a><br/></td></tr>
58
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html">bm::deseriaizer_base< DEC ></a></td></tr>
59
<tr><td class="mdescLeft"> </td><td class="mdescRight">Base deserialization class. <a href="a00057.html#_details">More...</a><br/></td></tr>
60
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00058.html">bm::deserializer< BV, DEC ></a></td></tr>
61
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class <a class="el" href="a00058.html" title="Class deserializer.">deserializer</a>. <a href="a00058.html#_details">More...</a><br/></td></tr>
62
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00072.html">bm::iterator_deserializer< BV, SerialIterator ></a></td></tr>
63
<tr><td class="mdescLeft"> </td><td class="mdescRight">Iterator to walk forward the serialized stream. <a href="a00072.html#_details">More...</a><br/></td></tr>
64
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">bm::serial_stream_iterator< DEC ></a></td></tr>
65
<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialization stream iterator. <a href="a00079.html#_details">More...</a><br/></td></tr>
66
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html">bm::operation_deserializer< BV ></a></td></tr>
67
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class <a class="el" href="a00058.html" title="Class deserializer.">deserializer</a>, can perform logical operation on bit-vector and serialized bit-vector. <a href="a00075.html#_details">More...</a><br/></td></tr>
68
<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
69
<tr><td class="memItemLeft" align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html">bm</a></td></tr>
70
<tr><td colspan="2"><h2>Defines</h2></td></tr>
71
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#a6a3d8841118b48dc31cf507ac70c763a">SER_NEXT_GRP</a>(enc, nb, B_1ZERO, B_8ZERO, B_16ZERO, B_32ZERO)</td></tr>
72
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html#a045ab59db462c831654a8acefdf65443">BM_SET_ONE_BLOCKS</a>(x)</td></tr>
73
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
74
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#ab69f66b71d349b0757370f54318bb2c0">bm::serialization_header_mask</a> { <br/>
75
<a class="el" href="a00110.html#ab69f66b71d349b0757370f54318bb2c0a97434d6617bb5f0d6f3bf44491f712ca">bm::BM_HM_DEFAULT</a> = 1,
76
<a class="el" href="a00110.html#ab69f66b71d349b0757370f54318bb2c0af4fbefa0ed0a8ff42dd664f120782c27">bm::BM_HM_RESIZE</a> = (1 << 1),
77
<a class="el" href="a00110.html#ab69f66b71d349b0757370f54318bb2c0a64c44c57a6f8b8e89f0916db9e120d47">bm::BM_HM_ID_LIST</a> = (1 << 2),
78
<a class="el" href="a00110.html#ab69f66b71d349b0757370f54318bb2c0a6b127bde401907318702dd4827c8f74e">bm::BM_HM_NO_BO</a> = (1 << 3),
80
<a class="el" href="a00110.html#ab69f66b71d349b0757370f54318bb2c0a04c714af376c203bc8b082856ad622a3">bm::BM_HM_NO_GAPL</a> = (1 << 4)
83
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga537dfe6318f1f1fe18d86dac312be978">bm::serialization_flags</a> { <a class="el" href="a00121.html#gga537dfe6318f1f1fe18d86dac312be978acdd8c071c079589388c3ca7bd4f367c8">bm::BM_NO_BYTE_ORDER</a> = 1,
84
<a class="el" href="a00121.html#gga537dfe6318f1f1fe18d86dac312be978a5521473081d341bc32ac59538e6a8096">bm::BM_NO_GAP_LENGTH</a> = (1 << 1)
86
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Bit mask flags for serialization algorithm. </p>
87
<a href="a00121.html#ga537dfe6318f1f1fe18d86dac312be978">More...</a><br/></td></tr>
88
<tr><td colspan="2"><h2>Functions</h2></td></tr>
89
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
90
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga5210c3bda57254ef2e8c71e23306cc88">bm::serialize</a> (const BV &bv, unsigned char *buf, <a class="el" href="a00110.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_block, unsigned serialization_flags=0)</td></tr>
91
<tr><td class="mdescLeft"> </td><td class="mdescRight">Saves bitvector into memory. <a href="a00121.html#ga5210c3bda57254ef2e8c71e23306cc88"></a><br/></td></tr>
92
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
93
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga213033b5cc6add74aa4bd1d614b56192">bm::serialize</a> (BV &bv, unsigned char *buf, unsigned serialization_flags=0)</td></tr>
94
<tr><td class="mdescLeft"> </td><td class="mdescRight">Saves bitvector into memory. Allocates temporary memory block for <a class="el" href="a00043.html" title="bitvector with runtime compression of bits.">bvector</a>. <a href="a00121.html#ga213033b5cc6add74aa4bd1d614b56192"></a><br/></td></tr>
95
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
96
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#gafbe633db8da3d867f098468269fd8d3d">bm::deserialize</a> (BV &bv, const unsigned char *buf, <a class="el" href="a00110.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_block=0)</td></tr>
97
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitvector deserialization from memory. <a href="a00121.html#gafbe633db8da3d867f098468269fd8d3d"></a><br/></td></tr>
98
<tr><td colspan="2"><h2>Variables</h2></td></tr>
99
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#aa24e7c08930cf959d383c6b930fb0508">bm::set_block_end</a> = 0</td></tr>
100
<tr><td class="mdescLeft"> </td><td class="mdescRight">End of serialization. <a href="#aa24e7c08930cf959d383c6b930fb0508"></a><br/></td></tr>
101
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a9e9cf918ca2ebec84eaf844d0e4c8bdb">bm::set_block_1zero</a> = 1</td></tr>
102
<tr><td class="mdescLeft"> </td><td class="mdescRight">One all-zero block. <a href="#a9e9cf918ca2ebec84eaf844d0e4c8bdb"></a><br/></td></tr>
103
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a715131318a361bcccf59fc0b1e41d444">bm::set_block_1one</a> = 2</td></tr>
104
<tr><td class="mdescLeft"> </td><td class="mdescRight">One block all-set (1111...). <a href="#a715131318a361bcccf59fc0b1e41d444"></a><br/></td></tr>
105
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#ac9b85b261ab49b37d5e15b84ed2d8b99">bm::set_block_8zero</a> = 3</td></tr>
106
<tr><td class="mdescLeft"> </td><td class="mdescRight">Up to 256 zero blocks. <a href="#ac9b85b261ab49b37d5e15b84ed2d8b99"></a><br/></td></tr>
107
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a57ad1090d6f380cf5de5f98c699b5a75">bm::set_block_8one</a> = 4</td></tr>
108
<tr><td class="mdescLeft"> </td><td class="mdescRight">Up to 256 all-set blocks. <a href="#a57ad1090d6f380cf5de5f98c699b5a75"></a><br/></td></tr>
109
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#aef47eda6538ebf2624c1612d35694c01">bm::set_block_16zero</a> = 5</td></tr>
110
<tr><td class="mdescLeft"> </td><td class="mdescRight">Up to 65536 zero blocks. <a href="#aef47eda6538ebf2624c1612d35694c01"></a><br/></td></tr>
111
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a3fad4a939708df59b1201910c7d37e30">bm::set_block_16one</a> = 6</td></tr>
112
<tr><td class="mdescLeft"> </td><td class="mdescRight">UP to 65536 all-set blocks. <a href="#a3fad4a939708df59b1201910c7d37e30"></a><br/></td></tr>
113
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#ac7dfbd94a0534df88849bbce9e6c419a">bm::set_block_32zero</a> = 7</td></tr>
114
<tr><td class="mdescLeft"> </td><td class="mdescRight">Up to 4G zero blocks. <a href="#ac7dfbd94a0534df88849bbce9e6c419a"></a><br/></td></tr>
115
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a5b87c58ae617ad1f104b4c6bc3ed6447">bm::set_block_32one</a> = 8</td></tr>
116
<tr><td class="mdescLeft"> </td><td class="mdescRight">UP to 4G all-set blocks. <a href="#a5b87c58ae617ad1f104b4c6bc3ed6447"></a><br/></td></tr>
117
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#ae87b5c61d7ba6e2e592a279db0b21cc0">bm::set_block_azero</a> = 9</td></tr>
118
<tr><td class="mdescLeft"> </td><td class="mdescRight">All other blocks zero. <a href="#ae87b5c61d7ba6e2e592a279db0b21cc0"></a><br/></td></tr>
119
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#ad506b63262c52870758432a95e71907e">bm::set_block_aone</a> = 10</td></tr>
120
<tr><td class="mdescLeft"> </td><td class="mdescRight">All other blocks one. <a href="#ad506b63262c52870758432a95e71907e"></a><br/></td></tr>
121
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#aef86ab2eb42c198272eea7cdfe42951b">bm::set_block_bit</a> = 11</td></tr>
122
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bit block. <a href="#aef86ab2eb42c198272eea7cdfe42951b"></a><br/></td></tr>
123
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#afe4b1011b09271c5f3882b926e250d39">bm::set_block_sgapbit</a> = 12</td></tr>
124
<tr><td class="mdescLeft"> </td><td class="mdescRight">SGAP compressed bitblock. <a href="#afe4b1011b09271c5f3882b926e250d39"></a><br/></td></tr>
125
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#ab3a8d57c0b898c3c5a23cd27a8f856ad">bm::set_block_sgapgap</a> = 13</td></tr>
126
<tr><td class="mdescLeft"> </td><td class="mdescRight">SGAP compressed GAP block. <a href="#ab3a8d57c0b898c3c5a23cd27a8f856ad"></a><br/></td></tr>
127
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a09b8c4b17b7d6f613c237c46d04a9cd6">bm::set_block_gap</a> = 14</td></tr>
128
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain GAP block. <a href="#a09b8c4b17b7d6f613c237c46d04a9cd6"></a><br/></td></tr>
129
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a77dc965397e31a1d39c3d8e628792779">bm::set_block_gapbit</a> = 15</td></tr>
130
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP compressed bitblock. <a href="#a77dc965397e31a1d39c3d8e628792779"></a><br/></td></tr>
131
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a6ec6acb175ce77a229003f088ecd3923">bm::set_block_arrbit</a> = 16</td></tr>
132
<tr><td class="mdescLeft"> </td><td class="mdescRight">List of bits ON. <a href="#a6ec6acb175ce77a229003f088ecd3923"></a><br/></td></tr>
133
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a0f2d3289a95dc3bd224a6a73c3d3afce">bm::set_block_bit_interval</a> = 17</td></tr>
134
<tr><td class="mdescLeft"> </td><td class="mdescRight">Interval block. <a href="#a0f2d3289a95dc3bd224a6a73c3d3afce"></a><br/></td></tr>
135
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#aae33ceefae804cdd94412beee8c52720">bm::set_block_arrgap</a> = 18</td></tr>
136
<tr><td class="mdescLeft"> </td><td class="mdescRight">List of bits ON (GAP block). <a href="#aae33ceefae804cdd94412beee8c52720"></a><br/></td></tr>
137
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#ad0e6607a9771fa49a658c3078208c2dc">bm::set_block_bit_1bit</a> = 19</td></tr>
138
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit block with 1 bit ON. <a href="#ad0e6607a9771fa49a658c3078208c2dc"></a><br/></td></tr>
139
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#ac47dea3917e15264ed3ba0cf4055adbe">bm::set_block_gap_egamma</a> = 20</td></tr>
140
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gamma compressed GAP block. <a href="#ac47dea3917e15264ed3ba0cf4055adbe"></a><br/></td></tr>
141
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a9674ddb1b9ee66948465249688708188">bm::set_block_arrgap_egamma</a> = 21</td></tr>
142
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gamma compressed delta GAP array. <a href="#a9674ddb1b9ee66948465249688708188"></a><br/></td></tr>
143
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a5e21adca3bc6902f33e43e5cfd824f0e">bm::set_block_bit_0runs</a> = 22</td></tr>
144
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit block with encoded zero intervals. <a href="#a5e21adca3bc6902f33e43e5cfd824f0e"></a><br/></td></tr>
145
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a1caddb62b332a568ba590794800610f6">bm::set_block_arrgap_egamma_inv</a> = 23</td></tr>
146
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gamma compressed inverted delta GAP array. <a href="#a1caddb62b332a568ba590794800610f6"></a><br/></td></tr>
147
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html#a746a03f6f5563cc8c75db93bba40095d">bm::set_block_arrgap_inv</a> = 24</td></tr>
148
<tr><td class="mdescLeft"> </td><td class="mdescRight">List of bits OFF (GAP block). <a href="#a746a03f6f5563cc8c75db93bba40095d"></a><br/></td></tr>
105
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Oct 12 12:16:46 2009 for BitMagic by
150
<hr/><h2>Define Documentation</h2>
151
<a class="anchor" id="a045ab59db462c831654a8acefdf65443"></a><!-- doxytag: member="bmserial.h::BM_SET_ONE_BLOCKS" ref="a045ab59db462c831654a8acefdf65443" args="(x)" -->
152
<div class="memitem">
153
<div class="memproto">
154
<table class="memname">
156
<td class="memname">#define BM_SET_ONE_BLOCKS</td>
158
<td class="paramtype">x </td>
159
<td class="paramname"></td>
160
<td> ) </td>
166
<b>Value:</b><div class="fragment"><pre class="fragment">{\
167
<span class="keywordtype">unsigned</span> end_block = i + x; \
168
<span class="keywordflow">for</span> (;i < end_block; ++i) \
169
bman.set_block_all_set(i); \
173
<p>Definition at line <a class="el" href="a00092_source.html#l00125">125</a> of file <a class="el" href="a00092_source.html">bmserial.h</a>.</p>
175
<p>Referenced by <a class="el" href="a00092_source.html#l01453">bm::deserializer< BV, DEC >::deserialize()</a>.</p>
179
<a class="anchor" id="a6a3d8841118b48dc31cf507ac70c763a"></a><!-- doxytag: member="bmserial.h::SER_NEXT_GRP" ref="a6a3d8841118b48dc31cf507ac70c763a" args="(enc, nb, B_1ZERO, B_8ZERO, B_16ZERO, B_32ZERO)" -->
180
<div class="memitem">
181
<div class="memproto">
182
<table class="memname">
184
<td class="memname">#define SER_NEXT_GRP</td>
186
<td class="paramtype">enc, </td>
189
<td class="paramkey"></td>
191
<td class="paramtype">nb, </td>
194
<td class="paramkey"></td>
196
<td class="paramtype">B_1ZERO, </td>
199
<td class="paramkey"></td>
201
<td class="paramtype">B_8ZERO, </td>
204
<td class="paramkey"></td>
206
<td class="paramtype">B_16ZERO, </td>
209
<td class="paramkey"></td>
211
<td class="paramtype">B_32ZERO </td>
212
<td class="paramname"></td>
213
<td> ) </td>
219
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (nb == 1) \
220
enc.put_8(B_1ZERO); \
221
<span class="keywordflow">else</span> <span class="keywordflow">if</span> (nb < 256) \
223
enc.put_8(B_8ZERO); \
224
enc.put_8((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>)nb); \
226
<span class="keywordflow">else</span> <span class="keywordflow">if</span> (nb < 65536) \
228
enc.put_8(B_16ZERO); \
229
enc.put_16((<span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>)nb); \
231
<span class="keywordflow">else</span> \
233
enc.put_8(B_32ZERO); \
237
<p>Definition at line <a class="el" href="a00092_source.html#l00105">105</a> of file <a class="el" href="a00092_source.html">bmserial.h</a>.</p>
239
<p>Referenced by <a class="el" href="a00092_source.html#l00758">bm::serializer< BV >::serialize()</a>.</p>
244
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 22 10:49:36 2009 for BitMagic by
106
245
<a href="http://www.doxygen.org/index.html">
107
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
246
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>