Documentation for 2dadbf73f4

This commit is contained in:
github-actions
2024-02-12 20:07:08 +00:00
parent b5b4d78981
commit a1eb9bd385
1261 changed files with 30404 additions and 29974 deletions

View File

@@ -3,16 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: range_queries::fenwick_tree Class 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>
<script type="text/javascript" src="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
@@ -41,7 +43,7 @@ MathJax.Hub.Config({
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
@@ -53,7 +55,7 @@ var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
$(function() { init_search(); });
});
/* @license-end */
</script>
@@ -71,7 +73,7 @@ $(function() {
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('de/d0d/classrange__queries_1_1fenwick__tree.html','../../'); initResizable(); });
$(function(){initNavTree('de/d0d/classrange__queries_1_1fenwick__tree.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
@@ -107,7 +109,7 @@ $(document).ready(function(){initNavTree('de/d0d/classrange__queries_1_1fenwick_
<div class="contents">
<p>The class that initializes the Fenwick Tree.
<a href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#details">More...</a></p>
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for range_queries::fenwick_tree:</div>
<div class="dyncontent">
@@ -117,28 +119,28 @@ Collaboration diagram for range_queries::fenwick_tree:</div>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a5ea37183524553bbf2234a36a44a4b9a" id="r_a5ea37183524553bbf2234a36a44a4b9a"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a5ea37183524553bbf2234a36a44a4b9a"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#a5ea37183524553bbf2234a36a44a4b9a">fenwick_tree</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;arr)</td></tr>
<tr class="memitem:a5ea37183524553bbf2234a36a44a4b9a"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a5ea37183524553bbf2234a36a44a4b9a">fenwick_tree</a> (const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;arr)</td></tr>
<tr class="memdesc:a5ea37183524553bbf2234a36a44a4b9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class Constructor. <br /></td></tr>
<tr class="separator:a5ea37183524553bbf2234a36a44a4b9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef7ba885b91af093e9e514358fa0f36c" id="r_aef7ba885b91af093e9e514358fa0f36c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aef7ba885b91af093e9e514358fa0f36c"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#aef7ba885b91af093e9e514358fa0f36c">fenwick_tree</a> (T x)</td></tr>
<tr class="memitem:aef7ba885b91af093e9e514358fa0f36c"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aef7ba885b91af093e9e514358fa0f36c">fenwick_tree</a> (T x)</td></tr>
<tr class="memdesc:aef7ba885b91af093e9e514358fa0f36c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class Constructor. <br /></td></tr>
<tr class="separator:aef7ba885b91af093e9e514358fa0f36c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19dea5e88bbd7683a719030623315de9" id="r_a19dea5e88bbd7683a719030623315de9"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a19dea5e88bbd7683a719030623315de9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#a19dea5e88bbd7683a719030623315de9">update</a> (T id, T val)</td></tr>
<tr class="memitem:a19dea5e88bbd7683a719030623315de9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a19dea5e88bbd7683a719030623315de9">update</a> (T id, T val)</td></tr>
<tr class="memdesc:a19dea5e88bbd7683a719030623315de9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the value of an element in original array and accordingly updates the values in BIT array. <br /></td></tr>
<tr class="separator:a19dea5e88bbd7683a719030623315de9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fa0559d987fde0044761b17b35f5abd" id="r_a1fa0559d987fde0044761b17b35f5abd"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a1fa0559d987fde0044761b17b35f5abd"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#a1fa0559d987fde0044761b17b35f5abd">sum</a> (T id)</td></tr>
<tr class="memitem:a1fa0559d987fde0044761b17b35f5abd"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a1fa0559d987fde0044761b17b35f5abd">sum</a> (T id)</td></tr>
<tr class="memdesc:a1fa0559d987fde0044761b17b35f5abd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the sum of elements in range from 0 to ID. <br /></td></tr>
<tr class="separator:a1fa0559d987fde0044761b17b35f5abd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0914a4b1401a7c427de91c92885724fe" id="r_a0914a4b1401a7c427de91c92885724fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#a0914a4b1401a7c427de91c92885724fe">sum_range</a> (int l, int r)</td></tr>
<tr class="memitem:a0914a4b1401a7c427de91c92885724fe" id="r_a0914a4b1401a7c427de91c92885724fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0914a4b1401a7c427de91c92885724fe">sum_range</a> (int l, int r)</td></tr>
<tr class="memdesc:a0914a4b1401a7c427de91c92885724fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the prefix sum in range from L to R. <br /></td></tr>
<tr class="separator:a0914a4b1401a7c427de91c92885724fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-methods" name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:ab492ebf07cab0e3c32d277ad986de801" id="r_ab492ebf07cab0e3c32d277ad986de801"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#ab492ebf07cab0e3c32d277ad986de801">offset</a> (int x)</td></tr>
<tr class="memitem:ab492ebf07cab0e3c32d277ad986de801" id="r_ab492ebf07cab0e3c32d277ad986de801"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab492ebf07cab0e3c32d277ad986de801">offset</a> (int x)</td></tr>
<tr class="memdesc:ab492ebf07cab0e3c32d277ad986de801"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the highest power of two which is not more than <code>x</code>. <br /></td></tr>
<tr class="separator:ab492ebf07cab0e3c32d277ad986de801"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@@ -148,7 +150,7 @@ Private Attributes</h2></td></tr>
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>n</b> = 0</td></tr>
<tr class="memdesc:af9f543aa5976b8cc5422490b3d6250c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">No. of elements present in input array. <br /></td></tr>
<tr class="separator:af9f543aa5976b8cc5422490b3d6250c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7b7a8c1c5724ed8683d7e28bef526e6" id="r_af7b7a8c1c5724ed8683d7e28bef526e6"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af7b7a8c1c5724ed8683d7e28bef526e6">bit</a> {}</td></tr>
<tr class="memitem:af7b7a8c1c5724ed8683d7e28bef526e6" id="r_af7b7a8c1c5724ed8683d7e28bef526e6"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af7b7a8c1c5724ed8683d7e28bef526e6">bit</a> {}</td></tr>
<tr class="memdesc:af7b7a8c1c5724ed8683d7e28bef526e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array that represents Binary Indexed Tree. <br /></td></tr>
<tr class="separator:af7b7a8c1c5724ed8683d7e28bef526e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -169,8 +171,7 @@ template&lt;typename T &gt; </div>
<tr>
<td class="memname">range_queries::fenwick_tree::fenwick_tree </td>
<td>(</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>arr</em></td><td>)</td>
<td class="paramtype">const <a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>&lt; T &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>arr</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -195,16 +196,16 @@ template&lt;typename T &gt; </div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 50</span> : <a class="code hl_variable" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af9f543aa5976b8cc5422490b3d6250c6">n</a>(arr.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>()) {</div>
<div class="line"><span class="lineno"> 51</span> <a class="code hl_variable" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af7b7a8c1c5724ed8683d7e28bef526e6">bit</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/assign.html">assign</a>(<a class="code hl_variable" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af9f543aa5976b8cc5422490b3d6250c6">n</a> + 1, 0);</div>
<div class="line"><span class="lineno"> 52</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code hl_variable" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af9f543aa5976b8cc5422490b3d6250c6">n</a>; ++i) {</div>
<div class="line"><span class="lineno"> 53</span> <a class="code hl_function" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#a19dea5e88bbd7683a719030623315de9">update</a>(i, arr[i]);</div>
<div class="fragment"><div class="line"><span class="lineno"> 50</span> : <a class="code hl_variable" href="#af9f543aa5976b8cc5422490b3d6250c6">n</a>(arr.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>()) {</div>
<div class="line"><span class="lineno"> 51</span> <a class="code hl_variable" href="#af7b7a8c1c5724ed8683d7e28bef526e6">bit</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/assign.html">assign</a>(<a class="code hl_variable" href="#af9f543aa5976b8cc5422490b3d6250c6">n</a> + 1, 0);</div>
<div class="line"><span class="lineno"> 52</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; <a class="code hl_variable" href="#af9f543aa5976b8cc5422490b3d6250c6">n</a>; ++i) {</div>
<div class="line"><span class="lineno"> 53</span> <a class="code hl_function" href="#a19dea5e88bbd7683a719030623315de9">update</a>(i, arr[i]);</div>
<div class="line"><span class="lineno"> 54</span> }</div>
<div class="line"><span class="lineno"> 55</span> }</div>
<div class="ttc" id="aassign_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/assign.html">std::vector::assign</a></div><div class="ttdeci">T assign(T... args)</div></div>
<div class="ttc" id="aclassrange__queries_1_1fenwick__tree_html_a19dea5e88bbd7683a719030623315de9"><div class="ttname"><a href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#a19dea5e88bbd7683a719030623315de9">range_queries::fenwick_tree::update</a></div><div class="ttdeci">void update(T id, T val)</div><div class="ttdoc">Updates the value of an element in original array and accordingly updates the values in BIT array.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:75</div></div>
<div class="ttc" id="aclassrange__queries_1_1fenwick__tree_html_af7b7a8c1c5724ed8683d7e28bef526e6"><div class="ttname"><a href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af7b7a8c1c5724ed8683d7e28bef526e6">range_queries::fenwick_tree::bit</a></div><div class="ttdeci">std::vector&lt; int &gt; bit</div><div class="ttdoc">Array that represents Binary Indexed Tree.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:34</div></div>
<div class="ttc" id="aclassrange__queries_1_1fenwick__tree_html_af9f543aa5976b8cc5422490b3d6250c6"><div class="ttname"><a href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af9f543aa5976b8cc5422490b3d6250c6">range_queries::fenwick_tree::n</a></div><div class="ttdeci">size_t n</div><div class="ttdoc">No. of elements present in input array.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:33</div></div>
<div class="ttc" id="aclassrange__queries_1_1fenwick__tree_html_a19dea5e88bbd7683a719030623315de9"><div class="ttname"><a href="#a19dea5e88bbd7683a719030623315de9">range_queries::fenwick_tree::update</a></div><div class="ttdeci">void update(T id, T val)</div><div class="ttdoc">Updates the value of an element in original array and accordingly updates the values in BIT array.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:75</div></div>
<div class="ttc" id="aclassrange__queries_1_1fenwick__tree_html_af7b7a8c1c5724ed8683d7e28bef526e6"><div class="ttname"><a href="#af7b7a8c1c5724ed8683d7e28bef526e6">range_queries::fenwick_tree::bit</a></div><div class="ttdeci">std::vector&lt; int &gt; bit</div><div class="ttdoc">Array that represents Binary Indexed Tree.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:34</div></div>
<div class="ttc" id="aclassrange__queries_1_1fenwick__tree_html_af9f543aa5976b8cc5422490b3d6250c6"><div class="ttname"><a href="#af9f543aa5976b8cc5422490b3d6250c6">range_queries::fenwick_tree::n</a></div><div class="ttdeci">size_t n</div><div class="ttdoc">No. of elements present in input array.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:33</div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
@@ -228,8 +229,7 @@ template&lt;typename T &gt; </div>
<tr>
<td class="memname">range_queries::fenwick_tree::fenwick_tree </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>x</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -254,7 +254,7 @@ template&lt;typename T &gt; </div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 64</span>: <a class="code hl_variable" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af9f543aa5976b8cc5422490b3d6250c6">n</a>(x) { <a class="code hl_variable" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af7b7a8c1c5724ed8683d7e28bef526e6">bit</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/assign.html">assign</a>(<a class="code hl_variable" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af9f543aa5976b8cc5422490b3d6250c6">n</a> + 1, 0); }</div>
<div class="fragment"><div class="line"><span class="lineno"> 64</span>: <a class="code hl_variable" href="#af9f543aa5976b8cc5422490b3d6250c6">n</a>(x) { <a class="code hl_variable" href="#af7b7a8c1c5724ed8683d7e28bef526e6">bit</a>.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/assign.html">assign</a>(<a class="code hl_variable" href="#af9f543aa5976b8cc5422490b3d6250c6">n</a> + 1, 0); }</div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -276,8 +276,7 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int range_queries::fenwick_tree::offset </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>x</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -314,8 +313,7 @@ template&lt;typename T &gt; </div>
<tr>
<td class="memname">int range_queries::fenwick_tree::sum </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>id</em></span></td><td>)</td>
<td></td>
</tr>
</table>
@@ -344,12 +342,12 @@ template&lt;typename T &gt; </div>
<div class="line"><span class="lineno"> 91</span> <span class="keywordtype">id</span>++;</div>
<div class="line"><span class="lineno"> 92</span> T res = 0;</div>
<div class="line"><span class="lineno"> 93</span> <span class="keywordflow">while</span> (<span class="keywordtype">id</span> &gt; 0) {</div>
<div class="line"><span class="lineno"> 94</span> res += <a class="code hl_variable" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af7b7a8c1c5724ed8683d7e28bef526e6">bit</a>[id];</div>
<div class="line"><span class="lineno"> 95</span> <span class="keywordtype">id</span> -= <a class="code hl_function" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#ab492ebf07cab0e3c32d277ad986de801">offset</a>(<span class="keywordtype">id</span>);</div>
<div class="line"><span class="lineno"> 94</span> res += <a class="code hl_variable" href="#af7b7a8c1c5724ed8683d7e28bef526e6">bit</a>[id];</div>
<div class="line"><span class="lineno"> 95</span> <span class="keywordtype">id</span> -= <a class="code hl_function" href="#ab492ebf07cab0e3c32d277ad986de801">offset</a>(<span class="keywordtype">id</span>);</div>
<div class="line"><span class="lineno"> 96</span> }</div>
<div class="line"><span class="lineno"> 97</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><span class="lineno"> 98</span> }</div>
<div class="ttc" id="aclassrange__queries_1_1fenwick__tree_html_ab492ebf07cab0e3c32d277ad986de801"><div class="ttname"><a href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#ab492ebf07cab0e3c32d277ad986de801">range_queries::fenwick_tree::offset</a></div><div class="ttdeci">int offset(int x)</div><div class="ttdoc">Returns the highest power of two which is not more than x.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:41</div></div>
<div class="ttc" id="aclassrange__queries_1_1fenwick__tree_html_ab492ebf07cab0e3c32d277ad986de801"><div class="ttname"><a href="#ab492ebf07cab0e3c32d277ad986de801">range_queries::fenwick_tree::offset</a></div><div class="ttdeci">int offset(int x)</div><div class="ttdoc">Returns the highest power of two which is not more than x.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:41</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -370,19 +368,12 @@ Here is the call graph for this function:</div>
<tr>
<td class="memname">int range_queries::fenwick_tree::sum_range </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>l</em>, </td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>l</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>r</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>r</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -401,8 +392,8 @@ Here is the call graph for this function:</div>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Sum of elements in range from L to R. </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 106</span>{ <span class="keywordflow">return</span> <a class="code hl_function" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#a1fa0559d987fde0044761b17b35f5abd">sum</a>(r) - <a class="code hl_function" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#a1fa0559d987fde0044761b17b35f5abd">sum</a>(l - 1); }</div>
<div class="ttc" id="aclassrange__queries_1_1fenwick__tree_html_a1fa0559d987fde0044761b17b35f5abd"><div class="ttname"><a href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#a1fa0559d987fde0044761b17b35f5abd">range_queries::fenwick_tree::sum</a></div><div class="ttdeci">int sum(T id)</div><div class="ttdoc">Returns the sum of elements in range from 0 to ID.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:90</div></div>
<div class="fragment"><div class="line"><span class="lineno"> 106</span>{ <span class="keywordflow">return</span> <a class="code hl_function" href="#a1fa0559d987fde0044761b17b35f5abd">sum</a>(r) - <a class="code hl_function" href="#a1fa0559d987fde0044761b17b35f5abd">sum</a>(l - 1); }</div>
<div class="ttc" id="aclassrange__queries_1_1fenwick__tree_html_a1fa0559d987fde0044761b17b35f5abd"><div class="ttname"><a href="#a1fa0559d987fde0044761b17b35f5abd">range_queries::fenwick_tree::sum</a></div><div class="ttdeci">int sum(T id)</div><div class="ttdoc">Returns the sum of elements in range from 0 to ID.</div><div class="ttdef"><b>Definition</b> fenwick_tree.cpp:90</div></div>
</div><!-- fragment --><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
@@ -425,19 +416,12 @@ template&lt;typename T &gt; </div>
<tr>
<td class="memname">void range_queries::fenwick_tree::update </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>id</em>, </td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>id</em>, </span></td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>val</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
<td class="paramtype">T</td> <td class="paramname"><span class="paramname"><em>val</em></span>&#160;)</td>
</tr>
</table>
</td>
@@ -464,9 +448,9 @@ template&lt;typename T &gt; </div>
<dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
<div class="fragment"><div class="line"><span class="lineno"> 75</span> {</div>
<div class="line"><span class="lineno"> 76</span> <span class="keywordtype">id</span>++;</div>
<div class="line"><span class="lineno"> 77</span> <span class="keywordflow">while</span> (<span class="keywordtype">id</span> &lt;= <a class="code hl_variable" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af9f543aa5976b8cc5422490b3d6250c6">n</a>) {</div>
<div class="line"><span class="lineno"> 78</span> <a class="code hl_variable" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#af7b7a8c1c5724ed8683d7e28bef526e6">bit</a>[id] += val;</div>
<div class="line"><span class="lineno"> 79</span> <span class="keywordtype">id</span> += <a class="code hl_function" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html#ab492ebf07cab0e3c32d277ad986de801">offset</a>(<span class="keywordtype">id</span>);</div>
<div class="line"><span class="lineno"> 77</span> <span class="keywordflow">while</span> (<span class="keywordtype">id</span> &lt;= <a class="code hl_variable" href="#af9f543aa5976b8cc5422490b3d6250c6">n</a>) {</div>
<div class="line"><span class="lineno"> 78</span> <a class="code hl_variable" href="#af7b7a8c1c5724ed8683d7e28bef526e6">bit</a>[id] += val;</div>
<div class="line"><span class="lineno"> 79</span> <span class="keywordtype">id</span> += <a class="code hl_function" href="#ab492ebf07cab0e3c32d277ad986de801">offset</a>(<span class="keywordtype">id</span>);</div>
<div class="line"><span class="lineno"> 80</span> }</div>
<div class="line"><span class="lineno"> 81</span> }</div>
</div><!-- fragment --><div class="dynheader">
@@ -512,7 +496,7 @@ Here is the call graph for this function:</div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dd/d69/namespacerange__queries.html">range_queries</a></li><li class="navelem"><a class="el" href="../../de/d0d/classrange__queries_1_1fenwick__tree.html">fenwick_tree</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0 </li>
</ul>
</div>
</body>