This file is indexed.

/usr/share/doc/liblzma-doc/html/range__common_8h.html is in liblzma-doc 5.1.1alpha+20120614-2ubuntu2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>XZ Utils: liblzma/rangecoder/range_common.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">XZ Utils
   &#160;<span id="projectnumber">5.1.0alpha</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_2e0898c272e1f0f93c8ef15f5da2a912.html">liblzma</a></li><li class="navelem"><a class="el" href="dir_853e2fd5c4ef498883c367265d805e85.html">rangecoder</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a>  </div>
  <div class="headertitle">
<div class="title">range_common.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Common things for range encoder and decoder.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a41c53be1dc32cfb1a4d53b141a60815c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a41c53be1dc32cfb1a4d53b141a60815c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>RC_SHIFT_BITS</b>&#160;&#160;&#160;8</td></tr>
<tr class="separator:a41c53be1dc32cfb1a4d53b141a60815c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a1ca7b414fb34f9886d03df2a3bdc81"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1a1ca7b414fb34f9886d03df2a3bdc81"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>RC_TOP_BITS</b>&#160;&#160;&#160;24</td></tr>
<tr class="separator:a1a1ca7b414fb34f9886d03df2a3bdc81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43771f3c7667e9d8a2bba4f0f0c35a0d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a43771f3c7667e9d8a2bba4f0f0c35a0d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>RC_TOP_VALUE</b>&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; RC_TOP_BITS)</td></tr>
<tr class="separator:a43771f3c7667e9d8a2bba4f0f0c35a0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38bbe381d456abee5209c427f2625586"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a38bbe381d456abee5209c427f2625586"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>RC_BIT_MODEL_TOTAL_BITS</b>&#160;&#160;&#160;11</td></tr>
<tr class="separator:a38bbe381d456abee5209c427f2625586"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeafdaaf760f1363a9cd15f25b9679b27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeafdaaf760f1363a9cd15f25b9679b27"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>RC_BIT_MODEL_TOTAL</b>&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; RC_BIT_MODEL_TOTAL_BITS)</td></tr>
<tr class="separator:aeafdaaf760f1363a9cd15f25b9679b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a411055e99baf222f4ba1d3ad8c2a84cc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a411055e99baf222f4ba1d3ad8c2a84cc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>RC_MOVE_BITS</b>&#160;&#160;&#160;5</td></tr>
<tr class="separator:a411055e99baf222f4ba1d3ad8c2a84cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8346b42d317c2f316c17fc468ae86860"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8346b42d317c2f316c17fc468ae86860"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>bit_reset</b>(prob)&#160;&#160;&#160;prob = RC_BIT_MODEL_TOTAL &gt;&gt; 1</td></tr>
<tr class="separator:a8346b42d317c2f316c17fc468ae86860"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3178e633d96644afeaac8bbd3d78003a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>bittree_reset</b>(probs, bit_levels)</td></tr>
<tr class="separator:a3178e633d96644afeaac8bbd3d78003a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a34c0f9a451832941a8aa04aa8e085efa"><td class="memItemLeft" align="right" valign="top">typedef uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="range__common_8h.html#a34c0f9a451832941a8aa04aa8e085efa">probability</a></td></tr>
<tr class="memdesc:a34c0f9a451832941a8aa04aa8e085efa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of probabilities used with range coder.  <a href="#a34c0f9a451832941a8aa04aa8e085efa">More...</a><br/></td></tr>
<tr class="separator:a34c0f9a451832941a8aa04aa8e085efa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Common things for range encoder and decoder. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a3178e633d96644afeaac8bbd3d78003a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define bittree_reset</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">probs, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">bit_levels&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">for</span> (uint32_t bt_i = 0; bt_i &lt; (1 &lt;&lt; (bit_levels)); ++bt_i) \</div>
<div class="line">                bit_reset((probs)[bt_i])</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a34c0f9a451832941a8aa04aa8e085efa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint16_t <a class="el" href="range__common_8h.html#a34c0f9a451832941a8aa04aa8e085efa">probability</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Type of probabilities used with range coder. </p>
<p>This needs to be at least 12-bit integer, so uint16_t is a logical choice. However, on some architecture and compiler combinations, a bigger type may give better speed, because the probability variables are accessed a lot. On the other hand, bigger probability type increases cache footprint, since there are 2 to 14 thousand probability variables in LZMA (assuming the limit of lc + lp &lt;= 4; with lc + lp &lt;= 12 there would be about 1.5 million variables).</p>
<p>With malicious files, the initialization speed of the LZMA decoder can become important. In that case, smaller probability variables mean that there is less bytes to write to RAM, which makes initialization faster. With big probability type, the initialization can become so slow that it can be a problem e.g. for email servers doing virus scanning.</p>
<p>I will be sticking to uint16_t unless some specific architectures are <em>much</em> faster (20-50 %) with uint32_t. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Feb 12 2014 15:12:37 for XZ Utils by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>