Files
C-Plus-Plus/da/da3/uint256__t_8hpp_source.html
2021-09-03 19:56:17 +00:00

1283 lines
249 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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=11"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Algorithms_in_C++: ciphers/uint256_t.hpp Source File</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="../../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>
<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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Algorithms_in_C++<span id="projectnumber">&#160;1.0.0</span>
</div>
<div id="projectbrief">Set of algorithms implemented in C++.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('da/da3/uint256__t_8hpp_source.html','../../'); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">uint256_t.hpp</div></div>
</div><!--header-->
<div class="contents">
<a href="../../da/da3/uint256__t_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/**</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * @file</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * @details Implementation of 256-bit unsigned integers.</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> * @note The implementation can be flagged as not completed. This header is used</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> * with enough operations to demonstrate the usage of ECDH (Elliptic Curve</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment"> * Diffie-Hellman) Key exchange.</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment"> * @author [Ashish Daulatabad](https://github.com/AshishYUO)</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment"> */</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;string&gt;</span> <span class="comment">/// for `std::string`</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;utility&gt;</span> <span class="comment">/// for `std::pair` library</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;<a class="code" href="../../da/d41/uint128__t_8hpp.html">uint128_t.hpp</a>&quot;</span> <span class="comment">/// for uint128_t integer</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#ifndef CIPHERS_UINT256_T_HPP_</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="../../da/da3/uint256__t_8hpp.html#a1d8c5ec5b5e419c5c8a740251485102c"> 16</a></span><span class="preprocessor">#define CIPHERS_UINT256_T_HPP_</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">class </span><a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>;</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="../../d7/d47/structstd_1_1is__integral_3_01uint256__t_01_4.html"> 21</a></span><span class="keyword">struct </span><a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral</a>&lt;<a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>&gt; : <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/integral_constant.html">std::true_type</a> {};</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="../../dc/d6d/structstd_1_1is__arithmetic_3_01uint256__t_01_4.html"> 24</a></span><span class="keyword">struct </span><a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_arithmetic.html">std::is_arithmetic</a>&lt;<a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>&gt; : <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/integral_constant.html">std::true_type</a> {};</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="../../df/d99/structstd_1_1is__unsigned_3_01uint256__t_01_4.html"> 27</a></span><span class="keyword">struct </span><a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_unsigned.html">std::is_unsigned</a>&lt;<a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>&gt; : <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/integral_constant.html">std::true_type</a> {};</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"></span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment">/**</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"> * @class uint256_t</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> * @brief class for 256-bit unsigned integer</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment"> */</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html"> 33</a></span><span class="keyword">class </span><a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> {</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> f{}, s{}; <span class="comment">/// First and second half of 256 bit number</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment"></span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment"> * @brief Get integer from given string.</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment"> * @details Create an integer from a given string</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment"> * @param str integer string, can be hexadecimal (starting on 0x... or</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment"> * number)</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment"> * @returns void</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"> */</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#afee82fa5052e9d8c946b9205b943cec4"> 43</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#afee82fa5052e9d8c946b9205b943cec4">__get_integer_from_string</a>(<span class="keyword">const</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;str) {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> this-&gt;f = this-&gt;s = <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(0);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">if</span> (str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>() &gt; 1 &amp;&amp; str[1] == <span class="charliteral">&#39;x&#39;</span>) {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> i = 2; i &lt; str.<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">size</a>(); ++i) {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> *<span class="keyword">this</span> *= 16LL;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">if</span> (str[i] &gt;= <span class="charliteral">&#39;0&#39;</span> &amp;&amp; str[i] &lt;= <span class="charliteral">&#39;9&#39;</span>) {</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> *<span class="keyword">this</span> += (str[i] - <span class="charliteral">&#39;0&#39;</span>);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (str[i] &gt;= <span class="charliteral">&#39;A&#39;</span> &amp;&amp; str[i] &lt;= <span class="charliteral">&#39;F&#39;</span>) {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> *<span class="keyword">this</span> += (str[i] - <span class="charliteral">&#39;A&#39;</span> + 10);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (str[i] &gt;= <span class="charliteral">&#39;a&#39;</span> &amp;&amp; str[i] &lt;= <span class="charliteral">&#39;f&#39;</span>) {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> *<span class="keyword">this</span> += (str[i] - <span class="charliteral">&#39;a&#39;</span> + 10);</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;x : str) {</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> *<span class="keyword">this</span> *= 10LL;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> *<span class="keyword">this</span> += (x - <span class="charliteral">&#39;0&#39;</span>);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> }</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> }</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// Constructors</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment"></span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment"> * @brief Parameterized constructor</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment"> * @tparam T template for integer types</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> * @param low Integer denoting lower 128-bits</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> */</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#aed0f8c3d5be23644c4bcb2fd2551e1dc"> 75</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#aed0f8c3d5be23644c4bcb2fd2551e1dc">uint256_t</a>(T low) : s(low), f(0) {}</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment"></span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment"> * @brief Parameterized constructor</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment"> * @param str Integer string (hexadecimal starting with 0x.. or decimal)</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="comment"> */</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a1fa3d95584d071add9b46597d3747b39"> 81</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a1fa3d95584d071add9b46597d3747b39">uint256_t</a>(<span class="keyword">const</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;str) {</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#afee82fa5052e9d8c946b9205b943cec4">__get_integer_from_string</a>(str);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment"></span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="comment"> * @brief Copy constructor</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment"> * @param num 256-bit unsigned integer</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"> */</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a42bf7490b31d8c750a67fd9bb6f2df2e"> 89</a></span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a42bf7490b31d8c750a67fd9bb6f2df2e">uint256_t</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;num) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"></span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment"> * @brief Move constructor</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"> * @param num 256-bit unsigned integer</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment"> */</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a092a766421ba5833452e86a2357d7cfa"> 95</a></span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a092a766421ba5833452e86a2357d7cfa">uint256_t</a>(<a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;&amp;num) noexcept</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> : f(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">std::move</a>(num.f)), s(<a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/move.html">std::move</a>(num.s)) {}</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment"></span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment"> * @brief Parameterized constructor</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> * @param high higher part 128-bit unsigned integer</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> * @param low lower part 128-bit unsigned integer</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment"> */</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a02616a4a46727b4c158b2b90de8c75c3"> 103</a></span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a02616a4a46727b4c158b2b90de8c75c3">uint256_t</a>(<a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> high, <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> low)</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> : f(<a class="code hl_namespace" href="../../d8/dcc/namespacestd.html">std</a>::move(high)), s(<a class="code hl_namespace" href="../../d8/dcc/namespacestd.html">std</a>::move(low)) {}</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment"></span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment"> * @brief Parameterized constructor</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment"> * @param high higher part 64-bit unsigned integer</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment"> * @param low lower part 64-bit unsigned integer</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"> */</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a2b5f745c05d10fa85ba5c409ad92d052"> 111</a></span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a2b5f745c05d10fa85ba5c409ad92d052">uint256_t</a>(<span class="keyword">const</span> uint64_t high, <span class="keyword">const</span> uint64_t low) : f(high), s(low) {}</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"></span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment"> * @brief Destructor for uint256_t</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment"> */</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a3ff17ab14b2371eb3239107d10947067"> 116</a></span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a3ff17ab14b2371eb3239107d10947067">~uint256_t</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment"></span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment"> * @brief Leading zeroes in binary</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"> * @details Calculates leading zeros in 256-bit integer</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment"> * @returns Integer denoting leading zeroes</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment"> */</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a033d66c965e8d1fbc5bafb59ad60e163"> 123</a></span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a033d66c965e8d1fbc5bafb59ad60e163">_lez</a>() {</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (f) {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">return</span> f.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#af139bb6e630f1a61919f180978611cd2">_lez</a>();</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keywordflow">return</span> 128 + s.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#af139bb6e630f1a61919f180978611cd2">_lez</a>();</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> }</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"></span> </div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> * @brief Trailing zeroes in binary</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment"> * @details Calculates leading zeros in 256-bit integer</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment"> * @returns Integer denoting Trailing zeroes</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment"> */</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a9ddd133cee83f3a2ab6ed60a7ccbc250"> 135</a></span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a9ddd133cee83f3a2ab6ed60a7ccbc250">_trz</a>() {</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">if</span> (s) {</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">return</span> s.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#a7d2285a8a6e20b77f82f1f0351afe76e">_trz</a>();</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> }</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">return</span> 128 + f.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#a7d2285a8a6e20b77f82f1f0351afe76e">_trz</a>();</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment"></span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment"> * @brief casting operator to boolean value</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment"> * @returns true if value of this is non-zero, else false</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment"> */</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a28aa5786bbfce1b00398a8d38691bdaa"> 146</a></span> <span class="keyword">inline</span> <span class="keyword">explicit</span> <span class="keyword">operator</span> bool()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> f || s; }</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="comment"></span> </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="comment"> * @brief casting operator to any integer value</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="comment"> * @tparam T any integer type</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="comment"> * @returns integer value casted to mentioned type</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="comment"> */</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a9e1b39a46ea16bc6587e25e294c6c363"> 155</a></span> <span class="keyword">inline</span> <span class="keyword">explicit</span> <span class="keyword">operator</span> T()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(s);</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> }</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="comment"></span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="comment"> * @brief casting operator to uint128_t</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="comment"> * @returns returns lower 128-bit integer part</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment"> */</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#ad5bd38b2d3becca998457af1124d6e8b"> 163</a></span> <span class="keyword">inline</span> <span class="keyword">explicit</span> <span class="keyword">operator</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> s; }</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="comment"></span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment"> * @brief returns lower 128-bit integer part</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="comment"> * @returns returns lower 128-bit integer part</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="comment"> */</span></div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#aa4cf08fa6a33f17594b5a842866f39a1"> 169</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#aa4cf08fa6a33f17594b5a842866f39a1">lower</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> s; }</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="comment"></span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="comment"> * @brief returns upper 128-bit integer part</span></div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="comment"> * @returns returns upper 128-bit integer part</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><span class="comment"> */</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#aecb2883133c8c8b9fcfb77ab69b03ab5"> 175</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#aecb2883133c8c8b9fcfb77ab69b03ab5">upper</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> f; }</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="comment"></span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="comment"> * @brief operator = for uint256_t</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="comment"> * @param p an 256-bit integer to assign it&#39;s value</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="comment"> * @returns this pointer with it&#39;s value equal to `p`</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="comment"> */</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a4c6db67d21c4927a45a4e1e7c2357bfc"> 182</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a4c6db67d21c4927a45a4e1e7c2357bfc">operator=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="comment"></span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment"> * @brief operator = for other types</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="comment"> * @tparam T denoting any integer type</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="comment"> * @param p an integer to assign it&#39;s value</span></div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="comment"> * @returns this pointer with it&#39;s value equal to `p`</span></div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="comment"> */</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#addff5645f6005e7b50a6ad0731e4f19c"> 192</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#addff5645f6005e7b50a6ad0731e4f19c">operator=</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> this-&gt;s = p;</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> }</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span><span class="comment"></span> </div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span><span class="comment"> * @brief operator = for type string</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="comment"> * @param p a string to assign it&#39;s value to equivalent integer</span></div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="comment"> * @returns this pointer with it&#39;s value equal to `p`</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span><span class="comment"> */</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a86aab081bb7db2771e4a4f30c3eed8e2"> 202</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a86aab081bb7db2771e4a4f30c3eed8e2">operator=</a>(<span class="keyword">const</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> &amp;p) {</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#afee82fa5052e9d8c946b9205b943cec4">__get_integer_from_string</a>(p);</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> }</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="comment"></span> </div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="comment"> * @brief Move assignment operator</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="comment"> */</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a6c5e025f901f6af4b748f98013350638"> 210</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a6c5e025f901f6af4b748f98013350638">operator=</a>(<a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;&amp;p) = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="comment"></span> </div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span><span class="comment"> * @brief operator + for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="comment"> * @tparam T denoting integral type</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="comment"> * @param p a type of integer variable</span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="comment"> * @returns addition of this and p, returning uint256_t integer</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="comment"> */</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a20dc3a017b1a740c4bafd3f146a90b0f"> 220</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a20dc3a017b1a740c4bafd3f146a90b0f">operator+</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordtype">bool</span> app = s + p &lt; s;</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(f + app, s + p);</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> }</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment"></span> </div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="comment"> * @brief operator + for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span><span class="comment"> * @param p 256-bit unsigned integer</span></div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="comment"> * @returns addition of this and p, returning uint256_t integer</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span><span class="comment"> */</span></div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#af18e2e3d7ed635c4056062bc906fef75"> 230</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#af18e2e3d7ed635c4056062bc906fef75">operator+</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordtype">bool</span> app = (s + p.s &lt; s);</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">return</span> {f + app + p.f, s + p.s};</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> }</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span><span class="comment"></span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span><span class="comment"> * @brief operator += for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span><span class="comment"> * @tparam T denoting integral type</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="comment"> * @param p a type of integer variable</span></div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="comment"> * @returns addition of this and p, returning this</span></div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span><span class="comment"> */</span></div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a5363ec0f36de1a8a9c985907db4e95d1"> 243</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a5363ec0f36de1a8a9c985907db4e95d1">operator+=</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordtype">bool</span> app = (p + s &lt; s);</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> this-&gt;f += app;</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> this-&gt;s += p;</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> }</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span><span class="comment"></span> </div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span><span class="comment"> * @brief operator += for uint256_t</span></div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="comment"> * @param p 256-bit unsigned integer</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span><span class="comment"> * @returns addition of this and p, returning this</span></div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="comment"> */</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#ac75a46fe3625caf10e07db1eb75a1d6e"> 255</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#ac75a46fe3625caf10e07db1eb75a1d6e">operator+=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keywordtype">bool</span> app = (s + p.s &lt; s);</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> f = f + app + p.f;</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> s = s + p.s;</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> }</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span><span class="comment"></span> </div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="comment"> * @brief pre-increment operator</span></div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="comment"> * @returns incremented value of this.</span></div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="comment"> */</span></div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#af0ad4080bb5ddc16b54a7e87911005c9"> 266</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#af0ad4080bb5ddc16b54a7e87911005c9">operator++</a>() {</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> *<span class="keyword">this</span> += 1;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> }</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span><span class="comment"></span> </div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span><span class="comment"> * @brief post-increment operator</span></div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="comment"> * @returns incremented value of this.</span></div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span><span class="comment"> */</span></div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a7bbe36e2ebd52df5efab118897b3050c"> 275</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a7bbe36e2ebd52df5efab118897b3050c">operator++</a>(<span class="keywordtype">int</span>) {</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> ++*<span class="keyword">this</span>;</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> }</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span><span class="comment"></span> </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span><span class="comment"> * @brief operator - for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="comment"> * @tparam T denoting integral type</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span><span class="comment"> * @param p a type of integer variable</span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span><span class="comment"> * @returns subtraction of this and p, returning uint256_t integer</span></div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span><span class="comment"> */</span></div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a88978d00fa6a624c50c2737dc2c294b4"> 288</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a88978d00fa6a624c50c2737dc2c294b4">operator-</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordtype">bool</span> app = (p &gt; s);</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(f - app, s - p);</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> }</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span><span class="comment"></span> </div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span><span class="comment"> * @brief operator - for uint256_t</span></div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span><span class="comment"> * @param p a type of integer variable</span></div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span><span class="comment"> * @returns subtraction of this and p, returning uint256_t integer</span></div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span><span class="comment"> */</span></div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#ab909ef62a0c85121e7d743c016fb723d"> 298</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#ab909ef62a0c85121e7d743c016fb723d">operator-</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="keywordtype">bool</span> app = s &lt; p.s;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">return</span> {f - p.f - app, s - p.s};</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> }</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span><span class="comment"></span> </div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span><span class="comment"> * @brief operator - using twos complement</span></div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><span class="comment"> * @returns 2&#39;s complement of this.</span></div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span><span class="comment"> */</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a406c951a07d8173685dbe384c6ab6a06"> 307</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a406c951a07d8173685dbe384c6ab6a06">operator-</a>() { <span class="keywordflow">return</span> ~*<span class="keyword">this</span> + <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(1); }</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span><span class="comment"></span> </div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span><span class="comment"> * @brief operator -- (pre-decrement)</span></div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span><span class="comment"> * @returns decremented value of this</span></div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span><span class="comment"> */</span></div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a9f6f3e39783c893473315bada864a183"> 313</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a9f6f3e39783c893473315bada864a183">operator--</a>() {</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> *<span class="keyword">this</span> -= 1;</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> }</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span><span class="comment"></span> </div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span><span class="comment"> * @brief operator -- (post-decrement)</span></div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span><span class="comment"> * @returns decremented value of this</span></div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span><span class="comment"> */</span></div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a28d26847f9b19a4f86c187791cb0db13"> 322</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a28d26847f9b19a4f86c187791cb0db13">operator--</a>(<span class="keywordtype">int</span> p) {</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> --*<span class="keyword">this</span>;</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> }</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span><span class="comment"></span> </div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span><span class="comment"> * @brief operator -= for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span><span class="comment"> * @tparam T denoting integral type</span></div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span><span class="comment"> * @param p a type of integer variable</span></div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span><span class="comment"> * @returns subtraction of this and p, returning this</span></div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span><span class="comment"> */</span></div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#acd3970c633eb2c597874e2712392f0c7"> 335</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#acd3970c633eb2c597874e2712392f0c7">operator-=</a>(<span class="keyword">const</span> T p) {</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <span class="keywordtype">bool</span> app = (p &gt; s);</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> f = f - app;</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> s = s - p;</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> }</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span><span class="comment"></span> </div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span><span class="comment"> * @brief operator -= for uint256_t</span></div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span><span class="comment"> * @param p 256-bit unsigned integer</span></div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span><span class="comment"> * @returns subtraction of this and p, returning this</span></div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span><span class="comment"> */</span></div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a5e84ed2a2f99cee81ede4a0107702a45"> 347</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a5e84ed2a2f99cee81ede4a0107702a45">operator-=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="keywordtype">bool</span> app = s &lt; p.s;</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> f = f - app - p.f;</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> s = s - p.s;</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> }</div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span><span class="comment"></span> </div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span><span class="comment"> * @brief operator * for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span><span class="comment"> * @tparam T denoting integral type</span></div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span><span class="comment"> * @param p a type of integer variable</span></div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span><span class="comment"> * @returns multiplication of this and p, returning uint256_t integer</span></div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span><span class="comment"> */</span></div>
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#aaca9288fd28fc07e1386f1586bd51616"> 362</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#aaca9288fd28fc07e1386f1586bd51616">operator*</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> <span class="keywordflow">return</span> *<span class="keyword">this</span> * <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p);</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> }</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span><span class="comment"></span> </div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span><span class="comment"> * @brief operator * for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span><span class="comment"> * @param p 256-bit unsigned integer</span></div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span><span class="comment"> * @returns multiplication of this and p, returning uint256_t integer</span></div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span><span class="comment"> */</span></div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#aa9e585b186e71d7cbe9c1d7387c38967"> 371</a></span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#aa9e585b186e71d7cbe9c1d7387c38967">operator*</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> f_first(s.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#a1ee2f1ffbd9984faad34883eb45e9705">upper</a>()), f_second(s.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#aa69e1064c0b0b1df1c61acd2ea04fabd">lower</a>()), s_first(p.s.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#a1ee2f1ffbd9984faad34883eb45e9705">upper</a>()),</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> s_second(p.s.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#aa69e1064c0b0b1df1c61acd2ea04fabd">lower</a>());</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> fi = f_first * s_first, se = f_first * s_second,</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> th = s_first * f_second, fo = s_second * f_second;</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> tmp = se &lt;&lt; 64, tmp2 = th &lt;&lt; 64;</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> <span class="keywordtype">int</span> cc = (tmp + tmp2 &lt; tmp);</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> tmp += tmp2;</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> cc += (tmp + fo &lt; tmp);</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <span class="keywordflow">return</span> {f * p.s + s * p.f + fi + se.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#a1ee2f1ffbd9984faad34883eb45e9705">upper</a>() + th.upper() + cc,</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> tmp + fo};</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> }</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span><span class="comment"></span> </div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span><span class="comment"> * @brief operator *= for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span><span class="comment"> * @tparam T denoting integral type</span></div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span><span class="comment"> * @param p a type of integer variable</span></div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span><span class="comment"> * @returns multiplication of this and p, returning this</span></div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span><span class="comment"> */</span></div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#af2193ff0d0e93143fb71f4847df16028"> 392</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#af2193ff0d0e93143fb71f4847df16028">operator*=</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> <span class="keywordflow">return</span> (*<span class="keyword">this</span> *= <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p));</div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> }</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span><span class="comment"></span> </div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span><span class="comment"> * @brief operator *= for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span><span class="comment"> * @param p 256-bit unsigned integer</span></div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span><span class="comment"> * @returns multiplication of this and p, returning this</span></div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span><span class="comment"> */</span></div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a4645040fe68ff01d83400f173fd2bb21"> 401</a></span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a4645040fe68ff01d83400f173fd2bb21">operator*=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> f_first(s.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#a1ee2f1ffbd9984faad34883eb45e9705">upper</a>()), f_second(s.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#aa69e1064c0b0b1df1c61acd2ea04fabd">lower</a>()), s_first(p.s.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#a1ee2f1ffbd9984faad34883eb45e9705">upper</a>()),</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> s_second(p.s.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#aa69e1064c0b0b1df1c61acd2ea04fabd">lower</a>());</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> fi = f_first * s_first, se = f_first * s_second,</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> th = s_first * f_second, fo = s_second * f_second;</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> tmp = se &lt;&lt; 64, tmp2 = th &lt;&lt; 64;</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> <span class="keywordtype">int</span> cc = (tmp + tmp2 &lt; tmp);</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> tmp += tmp2;</div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> cc += (tmp + fo &lt; tmp);</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> f = f * p.s + s * p.f + fi + se.<a class="code hl_function" href="../../db/d9a/classuint128__t.html#a1ee2f1ffbd9984faad34883eb45e9705">upper</a>() + th.upper() + cc;</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> s = tmp + fo;</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> }</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span><span class="comment"></span> </div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span><span class="comment"> * @brief divide function for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span><span class="comment"> * @details divide this value and</span></div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span><span class="comment"> * @param p 256-bit unsigned integer</span></div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span><span class="comment"> * @returns pair denoting quotient and remainder.</span></div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span><span class="comment"> */</span></div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a8161d52d369e525f4e61129376adfcf1"> 421</a></span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair&lt;uint256_t, uint256_t&gt;</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a8161d52d369e525f4e61129376adfcf1">divide</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> <span class="keywordflow">if</span> (*<span class="keyword">this</span> &lt; p) { <span class="comment">// if this is less than divisor</span></div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <span class="keywordflow">return</span> {<a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(0), *<span class="keyword">this</span>};</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*<span class="keyword">this</span> == p) { <span class="comment">// if this is equal to divisor</span></div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> <span class="keywordflow">return</span> {<a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(1), <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(0)};</div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> }</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> tmp = p, tmp2 = *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> uint16_t left = tmp.<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a033d66c965e8d1fbc5bafb59ad60e163">_lez</a>() - <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a033d66c965e8d1fbc5bafb59ad60e163">_lez</a>();</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> tmp &lt;&lt;= left;</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> quotient(0);</div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> zero(0);</div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <span class="keywordflow">while</span> (left &gt;= 0 &amp;&amp; tmp2 &gt;= p) {</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> uint16_t shf = tmp2._lez() - tmp.<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a033d66c965e8d1fbc5bafb59ad60e163">_lez</a>();</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> <span class="keywordflow">if</span> (shf) {</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> tmp &gt;&gt;= shf;</div>
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> quotient &lt;&lt;= shf;</div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> left -= shf;</div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> }</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> <span class="keywordflow">if</span> (tmp2 &lt; tmp) {</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> tmp &gt;&gt;= 1;</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> quotient &lt;&lt;= 1;</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> --left;</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> }</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> tmp2 -= tmp;</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> ++quotient;</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> }</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> <span class="keywordflow">return</span> {quotient &lt;&lt; left, tmp2};</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> }</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span><span class="comment"></span> </div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span><span class="comment"> * @brief operator / for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span><span class="comment"> * @tparam T denoting integral type</span></div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span><span class="comment"> * @param p a type of integer variable</span></div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span><span class="comment"> * @returns unsigned 256-bit quotient.</span></div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span><span class="comment"> */</span></div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#acac9901ab133caa57d058a377d873bf6"> 458</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#acac9901ab133caa57d058a377d873bf6">operator/</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> tmp = *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> tmp /= <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p);</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> <span class="keywordflow">return</span> tmp;</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> }</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span><span class="comment"></span> </div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span><span class="comment"> * @brief operator / for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span><span class="comment"> * @param p 256-bit unsigned integer</span></div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span><span class="comment"> * @returns unsigned 256-bit quotient.</span></div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span><span class="comment"> */</span></div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a4fdeb4d4bf8cca4ee99b8487e59831df"> 469</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a4fdeb4d4bf8cca4ee99b8487e59831df">operator/</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) { <span class="keywordflow">return</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a8161d52d369e525f4e61129376adfcf1">divide</a>(p).first; }</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span><span class="comment"></span> </div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span><span class="comment"> * @brief operator /= for uint256_t</span></div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span><span class="comment"> * @param p 256-bit unsigned integer</span></div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span><span class="comment"> * @returns this set as unsigned 256-bit quotient.</span></div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span><span class="comment"> */</span></div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#ac1b36e64de42f3622e7d6ec5efa273d4"> 476</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#ac1b36e64de42f3622e7d6ec5efa273d4">operator/=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> *<span class="keyword">this</span> = <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a8161d52d369e525f4e61129376adfcf1">divide</a>(p).first;</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> }</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span><span class="comment"></span> </div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span><span class="comment"> * @brief operator /= for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span><span class="comment"> * @tparam T denoting integral type</span></div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span><span class="comment"> * @param p a type of integer variable</span></div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span><span class="comment"> * @returns this set as unsigned 256-bit quotient.</span></div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span><span class="comment"> */</span></div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#abc793979ec70bb8e5cf177d83649a259"> 489</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#abc793979ec70bb8e5cf177d83649a259">operator/=</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> *<span class="keyword">this</span> /= <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p);</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> }</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span><span class="comment"></span> </div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span><span class="comment"> * @brief operator % for uint256_t</span></div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span><span class="comment"> * @param p 256-bit unsigned integer</span></div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span><span class="comment"> * @returns unsigned 256-bit remainder.</span></div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span><span class="comment"> */</span></div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#ad4928175eaaaa2b559bc945affe63ad2"> 499</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#ad4928175eaaaa2b559bc945affe63ad2">operator%</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) { <span class="keywordflow">return</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a8161d52d369e525f4e61129376adfcf1">divide</a>(p).second; }</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span><span class="comment"></span> </div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span><span class="comment"> * @brief operator % for uint256_t and other integer types.</span></div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span><span class="comment"> * @tparam T denoting integral type</span></div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span><span class="comment"> * @param p a type of integer variable</span></div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span><span class="comment"> * @returns unsigned 256-bit remainder.</span></div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span><span class="comment"> */</span></div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a7bd9693b88c4df08b1f8d1fd81c597cc"> 509</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a7bd9693b88c4df08b1f8d1fd81c597cc">operator%</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> tmp = *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> tmp %= <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p);</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <span class="keywordflow">return</span> tmp;</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> }</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span><span class="comment"></span> </div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span><span class="comment"> * @brief operator %= for uint256_t</span></div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span><span class="comment"> * @param p 256-bit unsigned integer</span></div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span><span class="comment"> * @returns this set as unsigned 256-bit remainder.</span></div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span><span class="comment"> */</span></div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a2cd43a4a92dc825a010a17578b3bdedb"> 520</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a2cd43a4a92dc825a010a17578b3bdedb">operator%=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> *<span class="keyword">this</span> = <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a8161d52d369e525f4e61129376adfcf1">divide</a>(p).second;</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> }</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span><span class="comment"></span> </div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span><span class="comment"> * @brief operator %= for uint256_t</span></div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span><span class="comment"> * @tparam T denoting integral type</span></div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span><span class="comment"> * @param p a type of integer variable</span></div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span><span class="comment"> * @returns this set as unsigned 256-bit remainder.</span></div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span><span class="comment"> */</span></div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a76914bc727eab927a3941ef71275327d"> 533</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a76914bc727eab927a3941ef71275327d">operator%=</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> *<span class="keyword">this</span> %= <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p);</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> }</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span><span class="comment"></span> </div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span><span class="comment"> * @brief operator &lt; for uint256_t</span></div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span><span class="comment"> * @returns true if this is less than other, else false</span></div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span><span class="comment"> */</span></div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#afe9f4828d73dd51a080585dd0b99af96"> 543</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#afe9f4828d73dd51a080585dd0b99af96">operator&lt;</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;other) {</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <span class="keywordflow">return</span> f &lt; other.f || (f == other.f &amp;&amp; s &lt; other.s);</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> }</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span><span class="comment"></span> </div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span><span class="comment"> * @brief operator &lt;= for uint256_t</span></div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span><span class="comment"> * @returns true if this is less than or equal to other, else false</span></div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span><span class="comment"> */</span></div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a19c88f8f2736750822b82ef9a7096d88"> 552</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a19c88f8f2736750822b82ef9a7096d88">operator&lt;=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;other) {</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> <span class="keywordflow">return</span> f &lt; other.f || (f == other.f &amp;&amp; s &lt;= other.s);</div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> }</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span><span class="comment"></span> </div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span><span class="comment"> * @brief operator &gt; for uint256_t</span></div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span><span class="comment"> * @returns true if this is greater than other, else false</span></div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span><span class="comment"> */</span></div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#acadd235e0029ec43d5990d24affaf42d"> 561</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#acadd235e0029ec43d5990d24affaf42d">operator&gt;</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;other) {</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <span class="keywordflow">return</span> f &gt; other.f || (f == other.f &amp;&amp; s &gt; other.s);</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> }</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span><span class="comment"></span> </div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span><span class="comment"> * @brief operator &gt;= for uint256_t</span></div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span><span class="comment"> * @returns true if this is greater than or equal than other, else false</span></div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span><span class="comment"> */</span></div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#adf09395f9113a69a05fed7e25b46c8ad"> 570</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#adf09395f9113a69a05fed7e25b46c8ad">operator&gt;=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;other) {</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> <span class="keywordflow">return</span> (f &gt; other.f) || (f == other.f &amp;&amp; s &gt;= other.s);</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> }</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span><span class="comment"></span> </div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span><span class="comment"> * @brief operator == for uint256_t</span></div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span><span class="comment"> * @returns true if this is equal than other, else false</span></div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span><span class="comment"> */</span></div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a90ce75bec5b525de55bbf92c564a2261"> 579</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a90ce75bec5b525de55bbf92c564a2261">operator==</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;other) {</div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> <span class="keywordflow">return</span> f == other.f &amp;&amp; s == other.s;</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> }</div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span><span class="comment"></span> </div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span><span class="comment"> * @brief operator != for uint256_t</span></div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span><span class="comment"> * @returns true if this is not equal than other, else false</span></div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span><span class="comment"> */</span></div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#aae68a7bd17c14a926fb77758b5c8e547"> 588</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#aae68a7bd17c14a926fb77758b5c8e547">operator!=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;other) {</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <span class="keywordflow">return</span> !((*this) == other);</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> }</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span><span class="comment"></span> </div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span><span class="comment"> * @brief operator ! for uint256_t</span></div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span><span class="comment"> * @returns true if this has zero value, else false</span></div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span><span class="comment"> */</span></div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a028c585069fa53b74c153667ff66352c"> 596</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a028c585069fa53b74c153667ff66352c">operator!</a>() { <span class="keywordflow">return</span> !f &amp;&amp; !s; }</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span><span class="comment"></span> </div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span><span class="comment"> * @brief operator &amp;&amp; for uint256_t</span></div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span><span class="comment"> * @param b number to be compared with this</span></div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span><span class="comment"> * @returns true if both of the values are not zero, else false</span></div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span><span class="comment"> */</span></div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#aa0e532832640e9fe273b35c481b18963"> 603</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#aa0e532832640e9fe273b35c481b18963">operator&amp;&amp;</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;b) {</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> <span class="keywordflow">return</span> (s || f) &amp;&amp; (b.s || b.f);</div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> }</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span><span class="comment"></span> </div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span><span class="comment"> * @brief operator || for uint256_t</span></div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span><span class="comment"> * @param b number to be compared with this</span></div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span><span class="comment"> * @returns true if one of the values are not zero, else false</span></div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span><span class="comment"> */</span></div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a41f4bb928c4ee067732503395b65f9d7"> 612</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a41f4bb928c4ee067732503395b65f9d7">operator||</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;b) {</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <span class="keywordflow">return</span> (s || f) || (b.s || b.f);</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> }</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span><span class="comment"></span> </div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span><span class="comment"> * @brief operator () for uint256_t</span></div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span><span class="comment"> * @returns true if this value is non-zero, else false</span></div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span><span class="comment"> */</span></div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a7ac99dea14428200f0101452293e2b3b"> 620</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a7ac99dea14428200f0101452293e2b3b">operator()</a>() { <span class="keywordflow">return</span> s || f; }</div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span><span class="comment"></span> </div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span><span class="comment"> * @brief operator &lt; for other types</span></div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span><span class="comment"> * @returns true if this is less than other, else false</span></div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span><span class="comment"> */</span></div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#ac6bdcf64653af8173987bf7217e99056"> 630</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#ac6bdcf64653af8173987bf7217e99056">operator&lt;</a>(<span class="keyword">const</span> T &amp;other) {</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <span class="keywordflow">return</span> *<span class="keyword">this</span> &lt; <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(other);</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> }</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span><span class="comment"></span> </div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span><span class="comment"> * @brief operator &lt;= for other types</span></div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span><span class="comment"> * @returns true if this is less than or equal to other, else false</span></div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span><span class="comment"> */</span></div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a2029e9777f999bffef6004429b4f19f2"> 642</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a2029e9777f999bffef6004429b4f19f2">operator&lt;=</a>(<span class="keyword">const</span> T &amp;other) {</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> <span class="keywordflow">return</span> *<span class="keyword">this</span> &lt;= <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(other);</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> }</div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span><span class="comment"></span> </div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span><span class="comment"> * @brief operator &gt; for other types</span></div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span><span class="comment"> * @returns true if this is greater than other, else false</span></div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span><span class="comment"> */</span></div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#ad74d33215517459c2b33ace7a9c6bc13"> 654</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#ad74d33215517459c2b33ace7a9c6bc13">operator&gt;</a>(<span class="keyword">const</span> T &amp;other) {</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> <span class="keywordflow">return</span> *<span class="keyword">this</span> &gt; <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(other);</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> }</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span><span class="comment"></span> </div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span><span class="comment"> * @brief operator &gt;= for other types</span></div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span><span class="comment"> * @returns true if this is greater than or equal other, else false</span></div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span><span class="comment"> */</span></div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#aff4d49cf84de64301b169ad974f00bad"> 666</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#aff4d49cf84de64301b169ad974f00bad">operator&gt;=</a>(<span class="keyword">const</span> T &amp;other) {</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> <span class="keywordflow">return</span> *<span class="keyword">this</span> &gt;= <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(other);</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> }</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span><span class="comment"></span> </div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span><span class="comment"> * @brief operator == for other types</span></div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span><span class="comment"> * @returns true if this is equal to other, else false</span></div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span><span class="comment"> */</span></div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a9879f7ec85fc148e1931fcb492ddc484"> 678</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a9879f7ec85fc148e1931fcb492ddc484">operator==</a>(<span class="keyword">const</span> T &amp;other) {</div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> <span class="keywordflow">return</span> *<span class="keyword">this</span> == <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(other);</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> }</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span><span class="comment"></span> </div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span><span class="comment"> * @brief operator != for other types</span></div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span><span class="comment"> * @returns true if this is not equal to other, else false</span></div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span><span class="comment"> */</span></div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a89cf7fa466458ee08edd9a809d072bcb"> 690</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a89cf7fa466458ee08edd9a809d072bcb">operator!=</a>(<span class="keyword">const</span> T &amp;other) {</div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> <span class="keywordflow">return</span> *<span class="keyword">this</span> != <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(other);</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> }</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span><span class="comment"></span> </div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span><span class="comment"> * @brief operator &amp;&amp; for other types</span></div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span><span class="comment"> * @returns true if this is both values are non-zero, else false</span></div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span><span class="comment"> */</span></div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a303287d7bc8686dcb47fcb04720ad409"> 702</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a303287d7bc8686dcb47fcb04720ad409">operator&amp;&amp;</a>(<span class="keyword">const</span> T &amp;b) {</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> <span class="keywordflow">return</span> (s || f) &amp;&amp; (b);</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> }</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span><span class="comment"></span> </div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span><span class="comment"> * @brief operator || for other types</span></div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span><span class="comment"> * @param other number to be compared with this</span></div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span><span class="comment"> * @returns true if this is either one of the values are non-zero, else</span></div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span><span class="comment"> * false</span></div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span><span class="comment"> */</span></div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a4886747ffff15cdeb6bc93712629f9e7"> 715</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a4886747ffff15cdeb6bc93712629f9e7">operator||</a>(<span class="keyword">const</span> T &amp;b) {</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> <span class="keywordflow">return</span> (s || f) || (b);</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> }</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span><span class="comment"></span> </div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span><span class="comment"> * @brief operator ~ for uint256_t</span></div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span><span class="comment"> * @returns 1&#39;s complement of this number</span></div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span><span class="comment"> */</span></div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a6eec1f632aebfc44fee8a74c395e10c2"> 723</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a6eec1f632aebfc44fee8a74c395e10c2">operator~</a>() { <span class="keywordflow">return</span> {~f, ~s}; }</div>
<div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span><span class="comment"></span> </div>
<div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span><span class="comment"> * @brief operator &lt;&lt; for uint256_t</span></div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span><span class="comment"> * @param p number denoting number of shifts</span></div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span><span class="comment"> * @returns value of this shifted by p to left</span></div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span><span class="comment"> */</span></div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a4831263abc4430c363fdabce6e6e96d5"> 733</a></span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a4831263abc4430c363fdabce6e6e96d5">operator&lt;&lt;</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> <span class="keywordflow">if</span> (!p) {</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> <span class="keywordflow">return</span> {this-&gt;f, this-&gt;s};</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (p &gt;= 128) {</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>((this-&gt;s &lt;&lt; (p - 128)), <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(0));</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> }</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>((this-&gt;f &lt;&lt; p) + (this-&gt;s &gt;&gt; (128 - p)),</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> (this-&gt;s &lt;&lt; p));</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> }</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span><span class="comment"></span> </div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span><span class="comment"> * @brief operator &lt;&lt;= for uint256_t</span></div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span><span class="comment"> * @param p number denoting number of shifts</span></div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span><span class="comment"> * @returns this shifted by p to left</span></div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span><span class="comment"> */</span></div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a0d96ce2d022dc30c2f303ab0698f52f5"> 751</a></span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a0d96ce2d022dc30c2f303ab0698f52f5">operator&lt;&lt;=</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> <span class="keywordflow">if</span> (p) {</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> <span class="keywordflow">if</span> (p &gt;= 128) {</div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span> this-&gt;f = (this-&gt;s &lt;&lt; (p - 128));</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> this-&gt;s = <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(0);</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> f = ((this-&gt;s &gt;&gt; (128 - p)) + (this-&gt;f &lt;&lt; p));</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> s = (this-&gt;s &lt;&lt; p);</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> }</div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> }</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> }</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span><span class="comment"></span> </div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span><span class="comment"> * @brief operator &gt;&gt; for uint256_t</span></div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span><span class="comment"> * @param p number denoting number of shifts</span></div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span><span class="comment"> * @returns value of this shifted by p to right</span></div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span><span class="comment"> */</span></div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a47a19142e86b7369e18da1fc0a713c51"> 772</a></span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a47a19142e86b7369e18da1fc0a713c51">operator&gt;&gt;</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> <span class="keywordflow">if</span> (!p) {</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> <span class="keywordflow">return</span> {this-&gt;f, this-&gt;s};</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (p &gt;= 128) {</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(<a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(0), (this-&gt;f &gt;&gt; (p - 128)));</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> }</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>((this-&gt;f &gt;&gt; p),</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> (this-&gt;s &gt;&gt; p) + (this-&gt;f &lt;&lt; (128 - p)));</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> }</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span><span class="comment"></span> </div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span><span class="comment"> * @brief operator &gt;&gt;= for uint256_t</span></div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span><span class="comment"> * @param p number denoting number of shifts</span></div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span><span class="comment"> * @returns this shifted by p to right</span></div>
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span><span class="comment"> */</span></div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#ad9ce2370b1497efbcc426793048e1f78"> 790</a></span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#ad9ce2370b1497efbcc426793048e1f78">operator&gt;&gt;=</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> <span class="keywordflow">if</span> (p) {</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> <span class="keywordflow">if</span> (p &gt;= 128) {</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> f = <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(0);</div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> s = (this-&gt;f &gt;&gt; (p - 128));</div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> s = (this-&gt;s &gt;&gt; p) + (this-&gt;f &lt;&lt; (128 - p));</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> f = (this-&gt;f &gt;&gt; p);</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> }</div>
<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> }</div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span> }</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span><span class="comment"></span> </div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span><span class="comment"> * @brief operator &amp; for other types (bitwise operator)</span></div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span><span class="comment"> * @returns value of this &amp; p (&amp; is bit-wise operator)</span></div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span><span class="comment"> */</span></div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a6eadaa829087e07eebafca3981566bb8"> 811</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a6eadaa829087e07eebafca3981566bb8">operator&amp;</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> <span class="keywordflow">return</span> *<span class="keyword">this</span> &amp; <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p);</div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> }</div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span><span class="comment"></span> </div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span><span class="comment"> * @brief operator &amp; for uint256_t (bitwise operator)</span></div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span><span class="comment"> * @returns value of this &amp; p (&amp; is bit-wise operator)</span></div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span><span class="comment"> */</span></div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a9bc6cc460108306a59281ce4ca216839"> 820</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a9bc6cc460108306a59281ce4ca216839">operator&amp;</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> <span class="keywordflow">return</span> {f &amp; p.f, s &amp; p.s};</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> }</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span><span class="comment"></span> </div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span><span class="comment"> * @brief operator &amp;= for uint256_t (bitwise operator)</span></div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span><span class="comment"> * @returns this = this &amp; p (&amp; is bit-wise operator)</span></div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span><span class="comment"> */</span></div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a357cdfee6a79e0484cd1e07511eb9f2d"> 829</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a357cdfee6a79e0484cd1e07511eb9f2d">operator&amp;=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> f &amp;= p.f;</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> s &amp;= p.s;</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> }</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span><span class="comment"></span> </div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span><span class="comment"> * @brief operator &amp;= for other types (bitwise operator)</span></div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span><span class="comment"> * @returns this = this &amp; p (&amp; is bit-wise operator)</span></div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span><span class="comment"> */</span></div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#afa79020c27caea31236d04ecaa0e5ef5"> 843</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#afa79020c27caea31236d04ecaa0e5ef5">operator&amp;=</a>(<span class="keyword">const</span> T p) {</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> s &amp;= p.s;</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> }</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span><span class="comment"></span> </div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span><span class="comment"> * @brief operator | for other types (bitwise operator)</span></div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span><span class="comment"> * @returns value of this | p (| is bit-wise operator)</span></div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span><span class="comment"> */</span></div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#acefecc3b1a4044f2be5ab46eea0099bf"> 856</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#acefecc3b1a4044f2be5ab46eea0099bf">operator|</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> <span class="keywordflow">return</span> *<span class="keyword">this</span> | <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p);</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> }</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span><span class="comment"></span> </div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span><span class="comment"> * @brief operator | for uint256_t (bitwise operator)</span></div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span><span class="comment"> * @returns value of this | p (| is bit-wise OR operator)</span></div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span><span class="comment"> */</span></div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a2d7c8a1a5ecaf3e0dcb4bf6b6cff2da2"> 865</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a2d7c8a1a5ecaf3e0dcb4bf6b6cff2da2">operator|</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> <span class="keywordflow">return</span> {this-&gt;f | p.f, this-&gt;s | p.s};</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> }</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span><span class="comment"></span> </div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span><span class="comment"> * @brief operator |= for other types (bitwise operator)</span></div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span><span class="comment"> * @returns this = this | p (| is bit-wise OR operator)</span></div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span><span class="comment"> */</span></div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#af0a6e09fcf1cbf234ed32df6d7265a0b"> 877</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#af0a6e09fcf1cbf234ed32df6d7265a0b">operator|=</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> s |= p;</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> }</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span><span class="comment"></span> </div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span><span class="comment"> * @brief operator |= for uint256_t (bitwise operator)</span></div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span><span class="comment"> * @returns this = this | p (| is bit-wise OR operator)</span></div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span><span class="comment"> */</span></div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#aa28ae272e9176557133a10dffa3b94dc"> 887</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#aa28ae272e9176557133a10dffa3b94dc">operator|=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> f |= p.f;</div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> s |= p.s;</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> }</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span><span class="comment"></span> </div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span><span class="comment"> * @brief operator ^ for other types (bitwise operator)</span></div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span><span class="comment"> * @returns value of this ^ p (^ is bit-wise XOR operator)</span></div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span><span class="comment"> */</span></div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#acb61fe17d064c61adc02defa651f9a5e"> 901</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#acb61fe17d064c61adc02defa651f9a5e">operator^</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(f, s ^ p);</div>
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> }</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span><span class="comment"></span> </div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span><span class="comment"> * @brief operator ^ for uint256_t (bitwise operator)</span></div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span><span class="comment"> * @returns value of this ^ p (^ is bit-wise XOR operator)</span></div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span><span class="comment"> */</span></div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a74d1e1dd8cd2b31e00813ed939943be7"> 910</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../d1/d83/classuint256__t.html#a74d1e1dd8cd2b31e00813ed939943be7">operator^</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> <span class="keywordflow">return</span> {this-&gt;f ^ p.f, this-&gt;s ^ p.s};</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> }</div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span><span class="comment"></span> </div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span><span class="comment"> * @brief operator ^= for uint256_t (bitwise operator)</span></div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span><span class="comment"> * @returns this = this ^ p (^ is bit-wise XOR operator)</span></div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span><span class="comment"> */</span></div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#ac92ac0b2368990fbbaf3cca3ee8247d7"> 919</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#ac92ac0b2368990fbbaf3cca3ee8247d7">operator^=</a>(<span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;p) {</div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> f ^= p.f;</div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> s ^= p.s;</div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> }</div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span><span class="comment"></span> </div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span><span class="comment"> * @brief operator ^= for other types (bitwise operator)</span></div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</span><span class="comment"> * @tparam T integral type</span></div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span><span class="comment"> * @param p number to be operated</span></div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"> 929</span><span class="comment"> * @returns this = this ^ p (^ is bit-wise XOR operator)</span></div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span><span class="comment"> */</span></div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a3dc4d3ab175f5f2a3172eb8d99a60fc3"> 933</a></span> <span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;<a class="code hl_function" href="../../d1/d83/classuint256__t.html#a3dc4d3ab175f5f2a3172eb8d99a60fc3">operator^=</a>(<span class="keyword">const</span> T &amp;p) {</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> s ^= p;</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> }</div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span><span class="comment"></span> </div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span><span class="comment"> /**</span></div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span><span class="comment"> * @brief operator &lt;&lt; for printing uint256_t integer</span></div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span><span class="comment"> * @details Prints the uint256_t integer in decimal form</span></div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span><span class="comment"> * @note Note that this operator is costly since it uses strings to print</span></div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span><span class="comment"> * the value</span></div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</span><span class="comment"> * @param op ostream object</span></div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span><span class="comment"> * @param p 256-bit integer</span></div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span><span class="comment"> * @returns op, ostream object.</span></div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span><span class="comment"> */</span></div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"><a class="line" href="../../d1/d83/classuint256__t.html#a91badfd31be84b12cbb6d85ebc04d13a"> 947</a></span> <span class="keyword">friend</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;<a class="code hl_friend" href="../../d1/d83/classuint256__t.html#a91badfd31be84b12cbb6d85ebc04d13a">operator&lt;&lt;</a>(<a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &amp;op, <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> p) {</div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> <span class="keywordflow">if</span> (!p.f) {</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> op &lt;&lt; p.s;</div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> out = <span class="stringliteral">&quot;0&quot;</span>, p_2 = <span class="stringliteral">&quot;1&quot;</span>;</div>
<div class="line"><a id="l00952" name="l00952"></a><span class="lineno"> 952</span> <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a> L(1);</div>
<div class="line"><a id="l00953" name="l00953"></a><span class="lineno"> 953</span> <span class="keywordflow">for</span> (uint64_t i = 0; i &lt; 128; ++i) {</div>
<div class="line"><a id="l00954" name="l00954"></a><span class="lineno"> 954</span> <span class="keywordflow">if</span> ((p.s &amp; L)) {</div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"> 955</span> out = <a class="code hl_function" href="../../da/d41/uint128__t_8hpp.html#a3ff77262ffd6743df5b808d41382a6f3">add</a>(out, p_2);</div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span> }</div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> p_2 = <a class="code hl_function" href="../../da/d41/uint128__t_8hpp.html#a3ff77262ffd6743df5b808d41382a6f3">add</a>(p_2, p_2);</div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span> L &lt;&lt;= 1;</div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> }</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span> L = <a class="code hl_class" href="../../db/d9a/classuint128__t.html">uint128_t</a>(1);</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 128; ++i) {</div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> <span class="keywordflow">if</span> ((p.f &amp; L)) {</div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> out = <a class="code hl_function" href="../../da/d41/uint128__t_8hpp.html#a3ff77262ffd6743df5b808d41382a6f3">add</a>(out, p_2);</div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</span> }</div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> p_2 = <a class="code hl_function" href="../../da/d41/uint128__t_8hpp.html#a3ff77262ffd6743df5b808d41382a6f3">add</a>(p_2, p_2);</div>
<div class="line"><a id="l00966" name="l00966"></a><span class="lineno"> 966</span> L &lt;&lt;= 1;</div>
<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"> 967</span> }</div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"> 968</span> op &lt;&lt; out;</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span> }</div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> <span class="keywordflow">return</span> op;</div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</span> }</div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span>};</div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span> </div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span><span class="comment">// Artihmetic</span></div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span><span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a01e6c7bf2b09272578b9c5819ce0f36f">operator+</a>(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) + q;</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span>}</div>
<div class="line"><a id="l00980" name="l00980"></a><span class="lineno"> 980</span> </div>
<div class="line"><a id="l00981" name="l00981"></a><span class="lineno"> 981</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00982" name="l00982"></a><span class="lineno"> 982</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00983" name="l00983"></a><span class="lineno"> 983</span><span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a4a6a560dbdd0177633783b72db37dc19">operator-</a>(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l00984" name="l00984"></a><span class="lineno"> 984</span> <span class="keywordflow">return</span> (<a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) - q);</div>
<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"> 985</span>}</div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"> 986</span> </div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span><span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> operator*(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) * q;</div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span>}</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> </div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span><span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> <a class="code hl_function" href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a7a2d742b9a3ae7b85292e1f86428bb4f">operator/</a>(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) / q;</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span>}</div>
<div class="line"><a id="l00998" name="l00998"></a><span class="lineno"> 998</span> </div>
<div class="line"><a id="l00999" name="l00999"></a><span class="lineno"> 999</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01000" name="l01000"></a><span class="lineno"> 1000</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"> 1001</span><span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> operator%(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) % q;</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span>}</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> </div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span><span class="comment">// Bitwise operators</span></div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span><span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> operator&amp;(<span class="keyword">const</span> T &amp;p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) &amp; q;</div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span>}</div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"> 1011</span> </div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span><span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> operator|(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) | q;</div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span>}</div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span> </div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span><span class="keyword">inline</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> operator^(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) ^ q;</div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span>}</div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> </div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span><span class="comment">// Boolean operators</span></div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span><span class="keyword">inline</span> <span class="keywordtype">bool</span> operator&amp;&amp;(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01028" name="l01028"></a><span class="lineno"> 1028</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) &amp;&amp; q;</div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span>}</div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span> </div>
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01032" name="l01032"></a><span class="lineno"> 1032</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"> 1033</span><span class="keyword">inline</span> <span class="keywordtype">bool</span> operator||(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) || q;</div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span>}</div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> </div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span><span class="comment">// Comparison operators</span></div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span><span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="../../d5/d67/complex__numbers_8cpp.html#a5a73e9d4e68af8cedb95bd0864054b89">operator==</a>(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) == q;</div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span>}</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> </div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"> 1045</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"> 1046</span><span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/rel_ops/operator_cmp.html">operator!=</a>(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) != q;</div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span>}</div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> </div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"> 1051</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"> 1052</span><span class="keyword">inline</span> <span class="keywordtype">bool</span> operator&lt;(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) &lt; q;</div>
<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"> 1054</span>}</div>
<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"> 1055</span> </div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"> 1056</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span><span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/rel_ops/operator_cmp.html">operator&lt;=</a>(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) &lt;= q;</div>
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span>}</div>
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> </div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"> 1064</span><span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/rel_ops/operator_cmp.html">operator&gt;</a>(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) &gt; q;</div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"> 1066</span>}</div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> </div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keyword">typename</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a>&lt;</div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> <a class="code hl_classRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral&lt;T&gt;::value</a>, T&gt;::type&gt;</div>
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span><span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_functionRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/rel_ops/operator_cmp.html">operator&gt;=</a>(<span class="keyword">const</span> T p, <span class="keyword">const</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a> &amp;q) {</div>
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> <span class="keywordflow">return</span> <a class="code hl_class" href="../../d1/d83/classuint256__t.html">uint256_t</a>(p) &gt;= q;</div>
<div class="line"><a id="l01072" name="l01072"></a><span class="lineno"> 1072</span>}</div>
<div class="line"><a id="l01073" name="l01073"></a><span class="lineno"> 1073</span> </div>
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span><span class="preprocessor">#endif </span><span class="comment">// CIPHERS_UINT256_T_HPP_</span></div>
<div class="ttc" id="abasic_ostream_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a></div></div>
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div></div>
<div class="ttc" id="aclassuint128__t_html"><div class="ttname"><a href="../../db/d9a/classuint128__t.html">uint128_t</a></div><div class="ttdoc">class for 128-bit unsigned integer</div><div class="ttdef"><b>Definition:</b> uint128_t.hpp:59</div></div>
<div class="ttc" id="aclassuint128__t_html_a1ee2f1ffbd9984faad34883eb45e9705"><div class="ttname"><a href="../../db/d9a/classuint128__t.html#a1ee2f1ffbd9984faad34883eb45e9705">uint128_t::upper</a></div><div class="ttdeci">uint64_t upper() const</div><div class="ttdoc">returns upper 64-bit integer part</div><div class="ttdef"><b>Definition:</b> uint128_t.hpp:207</div></div>
<div class="ttc" id="aclassuint128__t_html_a7d2285a8a6e20b77f82f1f0351afe76e"><div class="ttname"><a href="../../db/d9a/classuint128__t.html#a7d2285a8a6e20b77f82f1f0351afe76e">uint128_t::_trz</a></div><div class="ttdeci">uint32_t _trz()</div><div class="ttdoc">Trailing zeroes in binary.</div><div class="ttdef"><b>Definition:</b> uint128_t.hpp:162</div></div>
<div class="ttc" id="aclassuint128__t_html_aa69e1064c0b0b1df1c61acd2ea04fabd"><div class="ttname"><a href="../../db/d9a/classuint128__t.html#aa69e1064c0b0b1df1c61acd2ea04fabd">uint128_t::lower</a></div><div class="ttdeci">uint64_t lower() const</div><div class="ttdoc">returns lower 64-bit integer part</div><div class="ttdef"><b>Definition:</b> uint128_t.hpp:201</div></div>
<div class="ttc" id="aclassuint128__t_html_af139bb6e630f1a61919f180978611cd2"><div class="ttname"><a href="../../db/d9a/classuint128__t.html#af139bb6e630f1a61919f180978611cd2">uint128_t::_lez</a></div><div class="ttdeci">uint32_t _lez()</div><div class="ttdoc">Leading zeroes in binary.</div><div class="ttdef"><b>Definition:</b> uint128_t.hpp:139</div></div>
<div class="ttc" id="aclassuint256__t_html"><div class="ttname"><a href="../../d1/d83/classuint256__t.html">uint256_t</a></div><div class="ttdoc">class for 256-bit unsigned integer</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:33</div></div>
<div class="ttc" id="aclassuint256__t_html_a02616a4a46727b4c158b2b90de8c75c3"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a02616a4a46727b4c158b2b90de8c75c3">uint256_t::uint256_t</a></div><div class="ttdeci">uint256_t(uint128_t high, uint128_t low)</div><div class="ttdoc">Parameterized constructor.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:103</div></div>
<div class="ttc" id="aclassuint256__t_html_a028c585069fa53b74c153667ff66352c"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a028c585069fa53b74c153667ff66352c">uint256_t::operator!</a></div><div class="ttdeci">bool operator!()</div><div class="ttdoc">operator ! for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:596</div></div>
<div class="ttc" id="aclassuint256__t_html_a033d66c965e8d1fbc5bafb59ad60e163"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a033d66c965e8d1fbc5bafb59ad60e163">uint256_t::_lez</a></div><div class="ttdeci">uint32_t _lez()</div><div class="ttdoc">Leading zeroes in binary.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:123</div></div>
<div class="ttc" id="aclassuint256__t_html_a092a766421ba5833452e86a2357d7cfa"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a092a766421ba5833452e86a2357d7cfa">uint256_t::uint256_t</a></div><div class="ttdeci">uint256_t(uint256_t &amp;&amp;num) noexcept</div><div class="ttdoc">Move constructor.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:95</div></div>
<div class="ttc" id="aclassuint256__t_html_a0d96ce2d022dc30c2f303ab0698f52f5"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a0d96ce2d022dc30c2f303ab0698f52f5">uint256_t::operator&lt;&lt;=</a></div><div class="ttdeci">uint256_t &amp; operator&lt;&lt;=(const T &amp;p)</div><div class="ttdoc">operator &lt;&lt;= for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:751</div></div>
<div class="ttc" id="aclassuint256__t_html_a19c88f8f2736750822b82ef9a7096d88"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a19c88f8f2736750822b82ef9a7096d88">uint256_t::operator&lt;=</a></div><div class="ttdeci">bool operator&lt;=(const uint256_t &amp;other)</div><div class="ttdoc">operator &lt;= for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:552</div></div>
<div class="ttc" id="aclassuint256__t_html_a1fa3d95584d071add9b46597d3747b39"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a1fa3d95584d071add9b46597d3747b39">uint256_t::uint256_t</a></div><div class="ttdeci">uint256_t(const std::string &amp;str)</div><div class="ttdoc">Parameterized constructor.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:81</div></div>
<div class="ttc" id="aclassuint256__t_html_a2029e9777f999bffef6004429b4f19f2"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a2029e9777f999bffef6004429b4f19f2">uint256_t::operator&lt;=</a></div><div class="ttdeci">bool operator&lt;=(const T &amp;other)</div><div class="ttdoc">operator &lt;= for other types</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:642</div></div>
<div class="ttc" id="aclassuint256__t_html_a20dc3a017b1a740c4bafd3f146a90b0f"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a20dc3a017b1a740c4bafd3f146a90b0f">uint256_t::operator+</a></div><div class="ttdeci">uint256_t operator+(const T &amp;p)</div><div class="ttdoc">operator + for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:220</div></div>
<div class="ttc" id="aclassuint256__t_html_a28d26847f9b19a4f86c187791cb0db13"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a28d26847f9b19a4f86c187791cb0db13">uint256_t::operator--</a></div><div class="ttdeci">uint256_t operator--(int p)</div><div class="ttdoc">operator (post-decrement)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:322</div></div>
<div class="ttc" id="aclassuint256__t_html_a2b5f745c05d10fa85ba5c409ad92d052"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a2b5f745c05d10fa85ba5c409ad92d052">uint256_t::uint256_t</a></div><div class="ttdeci">uint256_t(const uint64_t high, const uint64_t low)</div><div class="ttdoc">Parameterized constructor.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:111</div></div>
<div class="ttc" id="aclassuint256__t_html_a2cd43a4a92dc825a010a17578b3bdedb"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a2cd43a4a92dc825a010a17578b3bdedb">uint256_t::operator%=</a></div><div class="ttdeci">uint256_t &amp; operator%=(const uint256_t &amp;p)</div><div class="ttdoc">operator %= for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:520</div></div>
<div class="ttc" id="aclassuint256__t_html_a2d7c8a1a5ecaf3e0dcb4bf6b6cff2da2"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a2d7c8a1a5ecaf3e0dcb4bf6b6cff2da2">uint256_t::operator|</a></div><div class="ttdeci">uint256_t operator|(const uint256_t &amp;p)</div><div class="ttdoc">operator | for uint256_t (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:865</div></div>
<div class="ttc" id="aclassuint256__t_html_a303287d7bc8686dcb47fcb04720ad409"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a303287d7bc8686dcb47fcb04720ad409">uint256_t::operator&amp;&amp;</a></div><div class="ttdeci">bool operator&amp;&amp;(const T &amp;b)</div><div class="ttdoc">operator &amp;&amp; for other types</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:702</div></div>
<div class="ttc" id="aclassuint256__t_html_a357cdfee6a79e0484cd1e07511eb9f2d"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a357cdfee6a79e0484cd1e07511eb9f2d">uint256_t::operator&amp;=</a></div><div class="ttdeci">uint256_t &amp; operator&amp;=(const uint256_t &amp;p)</div><div class="ttdoc">operator &amp;= for uint256_t (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:829</div></div>
<div class="ttc" id="aclassuint256__t_html_a3dc4d3ab175f5f2a3172eb8d99a60fc3"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a3dc4d3ab175f5f2a3172eb8d99a60fc3">uint256_t::operator^=</a></div><div class="ttdeci">uint256_t &amp; operator^=(const T &amp;p)</div><div class="ttdoc">operator ^= for other types (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:933</div></div>
<div class="ttc" id="aclassuint256__t_html_a3ff17ab14b2371eb3239107d10947067"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a3ff17ab14b2371eb3239107d10947067">uint256_t::~uint256_t</a></div><div class="ttdeci">~uint256_t()=default</div><div class="ttdoc">Destructor for uint256_t.</div></div>
<div class="ttc" id="aclassuint256__t_html_a406c951a07d8173685dbe384c6ab6a06"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a406c951a07d8173685dbe384c6ab6a06">uint256_t::operator-</a></div><div class="ttdeci">uint256_t operator-()</div><div class="ttdoc">operator - using twos complement</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:307</div></div>
<div class="ttc" id="aclassuint256__t_html_a41f4bb928c4ee067732503395b65f9d7"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a41f4bb928c4ee067732503395b65f9d7">uint256_t::operator||</a></div><div class="ttdeci">bool operator||(const uint256_t &amp;b)</div><div class="ttdoc">operator || for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:612</div></div>
<div class="ttc" id="aclassuint256__t_html_a42bf7490b31d8c750a67fd9bb6f2df2e"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a42bf7490b31d8c750a67fd9bb6f2df2e">uint256_t::uint256_t</a></div><div class="ttdeci">uint256_t(const uint256_t &amp;num)=default</div><div class="ttdoc">Copy constructor.</div></div>
<div class="ttc" id="aclassuint256__t_html_a4645040fe68ff01d83400f173fd2bb21"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a4645040fe68ff01d83400f173fd2bb21">uint256_t::operator*=</a></div><div class="ttdeci">uint256_t &amp; operator*=(const uint256_t &amp;p)</div><div class="ttdoc">operator *= for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:401</div></div>
<div class="ttc" id="aclassuint256__t_html_a47a19142e86b7369e18da1fc0a713c51"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a47a19142e86b7369e18da1fc0a713c51">uint256_t::operator&gt;&gt;</a></div><div class="ttdeci">uint256_t operator&gt;&gt;(const T &amp;p)</div><div class="ttdoc">operator &gt;&gt; for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:772</div></div>
<div class="ttc" id="aclassuint256__t_html_a4831263abc4430c363fdabce6e6e96d5"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a4831263abc4430c363fdabce6e6e96d5">uint256_t::operator&lt;&lt;</a></div><div class="ttdeci">uint256_t operator&lt;&lt;(const T &amp;p)</div><div class="ttdoc">operator &lt;&lt; for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:733</div></div>
<div class="ttc" id="aclassuint256__t_html_a4886747ffff15cdeb6bc93712629f9e7"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a4886747ffff15cdeb6bc93712629f9e7">uint256_t::operator||</a></div><div class="ttdeci">bool operator||(const T &amp;b)</div><div class="ttdoc">operator || for other types</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:715</div></div>
<div class="ttc" id="aclassuint256__t_html_a4c6db67d21c4927a45a4e1e7c2357bfc"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a4c6db67d21c4927a45a4e1e7c2357bfc">uint256_t::operator=</a></div><div class="ttdeci">uint256_t &amp; operator=(const uint256_t &amp;p)=default</div><div class="ttdoc">operator = for uint256_t</div></div>
<div class="ttc" id="aclassuint256__t_html_a4fdeb4d4bf8cca4ee99b8487e59831df"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a4fdeb4d4bf8cca4ee99b8487e59831df">uint256_t::operator/</a></div><div class="ttdeci">uint256_t operator/(const uint256_t &amp;p)</div><div class="ttdoc">operator / for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:469</div></div>
<div class="ttc" id="aclassuint256__t_html_a5363ec0f36de1a8a9c985907db4e95d1"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a5363ec0f36de1a8a9c985907db4e95d1">uint256_t::operator+=</a></div><div class="ttdeci">uint256_t &amp; operator+=(const T &amp;p)</div><div class="ttdoc">operator += for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:243</div></div>
<div class="ttc" id="aclassuint256__t_html_a5e84ed2a2f99cee81ede4a0107702a45"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a5e84ed2a2f99cee81ede4a0107702a45">uint256_t::operator-=</a></div><div class="ttdeci">uint256_t &amp; operator-=(const uint256_t &amp;p)</div><div class="ttdoc">operator -= for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:347</div></div>
<div class="ttc" id="aclassuint256__t_html_a6c5e025f901f6af4b748f98013350638"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a6c5e025f901f6af4b748f98013350638">uint256_t::operator=</a></div><div class="ttdeci">uint256_t &amp; operator=(uint256_t &amp;&amp;p)=default</div><div class="ttdoc">Move assignment operator.</div></div>
<div class="ttc" id="aclassuint256__t_html_a6eadaa829087e07eebafca3981566bb8"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a6eadaa829087e07eebafca3981566bb8">uint256_t::operator&amp;</a></div><div class="ttdeci">uint256_t operator&amp;(const T &amp;p)</div><div class="ttdoc">operator &amp; for other types (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:811</div></div>
<div class="ttc" id="aclassuint256__t_html_a6eec1f632aebfc44fee8a74c395e10c2"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a6eec1f632aebfc44fee8a74c395e10c2">uint256_t::operator~</a></div><div class="ttdeci">uint256_t operator~()</div><div class="ttdoc">operator ~ for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:723</div></div>
<div class="ttc" id="aclassuint256__t_html_a74d1e1dd8cd2b31e00813ed939943be7"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a74d1e1dd8cd2b31e00813ed939943be7">uint256_t::operator^</a></div><div class="ttdeci">uint256_t operator^(const uint256_t &amp;p)</div><div class="ttdoc">operator ^ for uint256_t (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:910</div></div>
<div class="ttc" id="aclassuint256__t_html_a76914bc727eab927a3941ef71275327d"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a76914bc727eab927a3941ef71275327d">uint256_t::operator%=</a></div><div class="ttdeci">uint256_t &amp; operator%=(const T &amp;p)</div><div class="ttdoc">operator %= for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:533</div></div>
<div class="ttc" id="aclassuint256__t_html_a7ac99dea14428200f0101452293e2b3b"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a7ac99dea14428200f0101452293e2b3b">uint256_t::operator()</a></div><div class="ttdeci">bool operator()()</div><div class="ttdoc">operator () for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:620</div></div>
<div class="ttc" id="aclassuint256__t_html_a7bbe36e2ebd52df5efab118897b3050c"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a7bbe36e2ebd52df5efab118897b3050c">uint256_t::operator++</a></div><div class="ttdeci">uint256_t operator++(int)</div><div class="ttdoc">post-increment operator</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:275</div></div>
<div class="ttc" id="aclassuint256__t_html_a7bd9693b88c4df08b1f8d1fd81c597cc"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a7bd9693b88c4df08b1f8d1fd81c597cc">uint256_t::operator%</a></div><div class="ttdeci">uint256_t operator%(const T &amp;p)</div><div class="ttdoc">operator % for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:509</div></div>
<div class="ttc" id="aclassuint256__t_html_a8161d52d369e525f4e61129376adfcf1"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a8161d52d369e525f4e61129376adfcf1">uint256_t::divide</a></div><div class="ttdeci">std::pair&lt; uint256_t, uint256_t &gt; divide(const uint256_t &amp;p)</div><div class="ttdoc">divide function for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:421</div></div>
<div class="ttc" id="aclassuint256__t_html_a86aab081bb7db2771e4a4f30c3eed8e2"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a86aab081bb7db2771e4a4f30c3eed8e2">uint256_t::operator=</a></div><div class="ttdeci">uint256_t &amp; operator=(const std::string &amp;p)</div><div class="ttdoc">operator = for type string</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:202</div></div>
<div class="ttc" id="aclassuint256__t_html_a88978d00fa6a624c50c2737dc2c294b4"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a88978d00fa6a624c50c2737dc2c294b4">uint256_t::operator-</a></div><div class="ttdeci">uint256_t operator-(const T &amp;p)</div><div class="ttdoc">operator - for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:288</div></div>
<div class="ttc" id="aclassuint256__t_html_a89cf7fa466458ee08edd9a809d072bcb"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a89cf7fa466458ee08edd9a809d072bcb">uint256_t::operator!=</a></div><div class="ttdeci">bool operator!=(const T &amp;other)</div><div class="ttdoc">operator != for other types</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:690</div></div>
<div class="ttc" id="aclassuint256__t_html_a90ce75bec5b525de55bbf92c564a2261"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a90ce75bec5b525de55bbf92c564a2261">uint256_t::operator==</a></div><div class="ttdeci">bool operator==(const uint256_t &amp;other)</div><div class="ttdoc">operator == for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:579</div></div>
<div class="ttc" id="aclassuint256__t_html_a91badfd31be84b12cbb6d85ebc04d13a"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a91badfd31be84b12cbb6d85ebc04d13a">uint256_t::operator&lt;&lt;</a></div><div class="ttdeci">friend std::ostream &amp; operator&lt;&lt;(std::ostream &amp;op, uint256_t p)</div><div class="ttdoc">operator &lt;&lt; for printing uint256_t integer</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:947</div></div>
<div class="ttc" id="aclassuint256__t_html_a9879f7ec85fc148e1931fcb492ddc484"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a9879f7ec85fc148e1931fcb492ddc484">uint256_t::operator==</a></div><div class="ttdeci">bool operator==(const T &amp;other)</div><div class="ttdoc">operator == for other types</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:678</div></div>
<div class="ttc" id="aclassuint256__t_html_a9bc6cc460108306a59281ce4ca216839"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a9bc6cc460108306a59281ce4ca216839">uint256_t::operator&amp;</a></div><div class="ttdeci">uint256_t operator&amp;(const uint256_t &amp;p)</div><div class="ttdoc">operator &amp; for uint256_t (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:820</div></div>
<div class="ttc" id="aclassuint256__t_html_a9ddd133cee83f3a2ab6ed60a7ccbc250"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a9ddd133cee83f3a2ab6ed60a7ccbc250">uint256_t::_trz</a></div><div class="ttdeci">uint32_t _trz()</div><div class="ttdoc">Trailing zeroes in binary.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:135</div></div>
<div class="ttc" id="aclassuint256__t_html_a9f6f3e39783c893473315bada864a183"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#a9f6f3e39783c893473315bada864a183">uint256_t::operator--</a></div><div class="ttdeci">uint256_t &amp; operator--()</div><div class="ttdoc">operator (pre-decrement)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:313</div></div>
<div class="ttc" id="aclassuint256__t_html_aa0e532832640e9fe273b35c481b18963"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#aa0e532832640e9fe273b35c481b18963">uint256_t::operator&amp;&amp;</a></div><div class="ttdeci">bool operator&amp;&amp;(const uint256_t &amp;b)</div><div class="ttdoc">operator &amp;&amp; for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:603</div></div>
<div class="ttc" id="aclassuint256__t_html_aa28ae272e9176557133a10dffa3b94dc"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#aa28ae272e9176557133a10dffa3b94dc">uint256_t::operator|=</a></div><div class="ttdeci">uint256_t &amp; operator|=(const uint256_t &amp;p)</div><div class="ttdoc">operator |= for uint256_t (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:887</div></div>
<div class="ttc" id="aclassuint256__t_html_aa4cf08fa6a33f17594b5a842866f39a1"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#aa4cf08fa6a33f17594b5a842866f39a1">uint256_t::lower</a></div><div class="ttdeci">uint128_t lower() const</div><div class="ttdoc">returns lower 128-bit integer part</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:169</div></div>
<div class="ttc" id="aclassuint256__t_html_aa9e585b186e71d7cbe9c1d7387c38967"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#aa9e585b186e71d7cbe9c1d7387c38967">uint256_t::operator*</a></div><div class="ttdeci">uint256_t operator*(const uint256_t &amp;p)</div><div class="ttdoc">operator * for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:371</div></div>
<div class="ttc" id="aclassuint256__t_html_aaca9288fd28fc07e1386f1586bd51616"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#aaca9288fd28fc07e1386f1586bd51616">uint256_t::operator*</a></div><div class="ttdeci">uint256_t operator*(const T &amp;p)</div><div class="ttdoc">operator * for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:362</div></div>
<div class="ttc" id="aclassuint256__t_html_aae68a7bd17c14a926fb77758b5c8e547"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#aae68a7bd17c14a926fb77758b5c8e547">uint256_t::operator!=</a></div><div class="ttdeci">bool operator!=(const uint256_t &amp;other)</div><div class="ttdoc">operator != for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:588</div></div>
<div class="ttc" id="aclassuint256__t_html_ab909ef62a0c85121e7d743c016fb723d"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#ab909ef62a0c85121e7d743c016fb723d">uint256_t::operator-</a></div><div class="ttdeci">uint256_t operator-(const uint256_t &amp;p)</div><div class="ttdoc">operator - for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:298</div></div>
<div class="ttc" id="aclassuint256__t_html_abc793979ec70bb8e5cf177d83649a259"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#abc793979ec70bb8e5cf177d83649a259">uint256_t::operator/=</a></div><div class="ttdeci">uint256_t &amp; operator/=(const T &amp;p)</div><div class="ttdoc">operator /= for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:489</div></div>
<div class="ttc" id="aclassuint256__t_html_ac1b36e64de42f3622e7d6ec5efa273d4"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#ac1b36e64de42f3622e7d6ec5efa273d4">uint256_t::operator/=</a></div><div class="ttdeci">uint256_t &amp; operator/=(const uint256_t &amp;p)</div><div class="ttdoc">operator /= for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:476</div></div>
<div class="ttc" id="aclassuint256__t_html_ac6bdcf64653af8173987bf7217e99056"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#ac6bdcf64653af8173987bf7217e99056">uint256_t::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const T &amp;other)</div><div class="ttdoc">operator &lt; for other types</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:630</div></div>
<div class="ttc" id="aclassuint256__t_html_ac75a46fe3625caf10e07db1eb75a1d6e"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#ac75a46fe3625caf10e07db1eb75a1d6e">uint256_t::operator+=</a></div><div class="ttdeci">uint256_t &amp; operator+=(const uint256_t &amp;p)</div><div class="ttdoc">operator += for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:255</div></div>
<div class="ttc" id="aclassuint256__t_html_ac92ac0b2368990fbbaf3cca3ee8247d7"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#ac92ac0b2368990fbbaf3cca3ee8247d7">uint256_t::operator^=</a></div><div class="ttdeci">uint256_t &amp; operator^=(const uint256_t &amp;p)</div><div class="ttdoc">operator ^= for uint256_t (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:919</div></div>
<div class="ttc" id="aclassuint256__t_html_acac9901ab133caa57d058a377d873bf6"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#acac9901ab133caa57d058a377d873bf6">uint256_t::operator/</a></div><div class="ttdeci">uint256_t operator/(const T &amp;p)</div><div class="ttdoc">operator / for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:458</div></div>
<div class="ttc" id="aclassuint256__t_html_acadd235e0029ec43d5990d24affaf42d"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#acadd235e0029ec43d5990d24affaf42d">uint256_t::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(const uint256_t &amp;other)</div><div class="ttdoc">operator &gt; for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:561</div></div>
<div class="ttc" id="aclassuint256__t_html_acb61fe17d064c61adc02defa651f9a5e"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#acb61fe17d064c61adc02defa651f9a5e">uint256_t::operator^</a></div><div class="ttdeci">uint256_t operator^(const T &amp;p)</div><div class="ttdoc">operator ^ for other types (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:901</div></div>
<div class="ttc" id="aclassuint256__t_html_acd3970c633eb2c597874e2712392f0c7"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#acd3970c633eb2c597874e2712392f0c7">uint256_t::operator-=</a></div><div class="ttdeci">uint256_t operator-=(const T p)</div><div class="ttdoc">operator -= for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:335</div></div>
<div class="ttc" id="aclassuint256__t_html_acefecc3b1a4044f2be5ab46eea0099bf"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#acefecc3b1a4044f2be5ab46eea0099bf">uint256_t::operator|</a></div><div class="ttdeci">uint256_t operator|(const T &amp;p)</div><div class="ttdoc">operator | for other types (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:856</div></div>
<div class="ttc" id="aclassuint256__t_html_ad4928175eaaaa2b559bc945affe63ad2"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#ad4928175eaaaa2b559bc945affe63ad2">uint256_t::operator%</a></div><div class="ttdeci">uint256_t operator%(const uint256_t &amp;p)</div><div class="ttdoc">operator % for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:499</div></div>
<div class="ttc" id="aclassuint256__t_html_ad74d33215517459c2b33ace7a9c6bc13"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#ad74d33215517459c2b33ace7a9c6bc13">uint256_t::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(const T &amp;other)</div><div class="ttdoc">operator &gt; for other types</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:654</div></div>
<div class="ttc" id="aclassuint256__t_html_ad9ce2370b1497efbcc426793048e1f78"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#ad9ce2370b1497efbcc426793048e1f78">uint256_t::operator&gt;&gt;=</a></div><div class="ttdeci">uint256_t &amp; operator&gt;&gt;=(const T &amp;p)</div><div class="ttdoc">operator &gt;&gt;= for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:790</div></div>
<div class="ttc" id="aclassuint256__t_html_addff5645f6005e7b50a6ad0731e4f19c"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#addff5645f6005e7b50a6ad0731e4f19c">uint256_t::operator=</a></div><div class="ttdeci">uint256_t &amp; operator=(const T &amp;p)</div><div class="ttdoc">operator = for other types</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:192</div></div>
<div class="ttc" id="aclassuint256__t_html_adf09395f9113a69a05fed7e25b46c8ad"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#adf09395f9113a69a05fed7e25b46c8ad">uint256_t::operator&gt;=</a></div><div class="ttdeci">bool operator&gt;=(const uint256_t &amp;other)</div><div class="ttdoc">operator &gt;= for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:570</div></div>
<div class="ttc" id="aclassuint256__t_html_aecb2883133c8c8b9fcfb77ab69b03ab5"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#aecb2883133c8c8b9fcfb77ab69b03ab5">uint256_t::upper</a></div><div class="ttdeci">uint128_t upper() const</div><div class="ttdoc">returns upper 128-bit integer part</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:175</div></div>
<div class="ttc" id="aclassuint256__t_html_aed0f8c3d5be23644c4bcb2fd2551e1dc"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#aed0f8c3d5be23644c4bcb2fd2551e1dc">uint256_t::uint256_t</a></div><div class="ttdeci">uint256_t(T low)</div><div class="ttdoc">Parameterized constructor.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:75</div></div>
<div class="ttc" id="aclassuint256__t_html_af0a6e09fcf1cbf234ed32df6d7265a0b"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#af0a6e09fcf1cbf234ed32df6d7265a0b">uint256_t::operator|=</a></div><div class="ttdeci">uint256_t &amp; operator|=(const T &amp;p)</div><div class="ttdoc">operator |= for other types (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:877</div></div>
<div class="ttc" id="aclassuint256__t_html_af0ad4080bb5ddc16b54a7e87911005c9"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#af0ad4080bb5ddc16b54a7e87911005c9">uint256_t::operator++</a></div><div class="ttdeci">uint256_t &amp; operator++()</div><div class="ttdoc">pre-increment operator</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:266</div></div>
<div class="ttc" id="aclassuint256__t_html_af18e2e3d7ed635c4056062bc906fef75"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#af18e2e3d7ed635c4056062bc906fef75">uint256_t::operator+</a></div><div class="ttdeci">uint256_t operator+(const uint256_t &amp;p)</div><div class="ttdoc">operator + for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:230</div></div>
<div class="ttc" id="aclassuint256__t_html_af2193ff0d0e93143fb71f4847df16028"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#af2193ff0d0e93143fb71f4847df16028">uint256_t::operator*=</a></div><div class="ttdeci">uint256_t &amp; operator*=(const T &amp;p)</div><div class="ttdoc">operator *= for uint256_t and other integer types.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:392</div></div>
<div class="ttc" id="aclassuint256__t_html_afa79020c27caea31236d04ecaa0e5ef5"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#afa79020c27caea31236d04ecaa0e5ef5">uint256_t::operator&amp;=</a></div><div class="ttdeci">uint256_t &amp; operator&amp;=(const T p)</div><div class="ttdoc">operator &amp;= for other types (bitwise operator)</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:843</div></div>
<div class="ttc" id="aclassuint256__t_html_afe9f4828d73dd51a080585dd0b99af96"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#afe9f4828d73dd51a080585dd0b99af96">uint256_t::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const uint256_t &amp;other)</div><div class="ttdoc">operator &lt; for uint256_t</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:543</div></div>
<div class="ttc" id="aclassuint256__t_html_afee82fa5052e9d8c946b9205b943cec4"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#afee82fa5052e9d8c946b9205b943cec4">uint256_t::__get_integer_from_string</a></div><div class="ttdeci">void __get_integer_from_string(const std::string &amp;str)</div><div class="ttdoc">First and second half of 256 bit number.</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:43</div></div>
<div class="ttc" id="aclassuint256__t_html_aff4d49cf84de64301b169ad974f00bad"><div class="ttname"><a href="../../d1/d83/classuint256__t.html#aff4d49cf84de64301b169ad974f00bad">uint256_t::operator&gt;=</a></div><div class="ttdeci">bool operator&gt;=(const T &amp;other)</div><div class="ttdoc">operator &gt;= for other types</div><div class="ttdef"><b>Definition:</b> uint256_t.hpp:666</div></div>
<div class="ttc" id="acomplex__numbers_8cpp_html_a5a73e9d4e68af8cedb95bd0864054b89"><div class="ttname"><a href="../../d5/d67/complex__numbers_8cpp.html#a5a73e9d4e68af8cedb95bd0864054b89">operator==</a></div><div class="ttdeci">bool operator==(const Complex &amp;a, const Complex &amp;b)</div><div class="ttdoc">Operator overload of '==' on Complex class. Logical Equal overload for our Complex class.</div><div class="ttdef"><b>Definition:</b> complex_numbers.cpp:175</div></div>
<div class="ttc" id="aenable_if_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/enable_if.html">std::enable_if</a></div></div>
<div class="ttc" id="aintegral_constant_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integral_constant.html">std::true_type</a></div></div>
<div class="ttc" id="ais_arithmetic_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/is_arithmetic.html">std::is_arithmetic</a></div></div>
<div class="ttc" id="ais_integral_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral</a></div></div>
<div class="ttc" id="ais_unsigned_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/is_unsigned.html">std::is_unsigned</a></div></div>
<div class="ttc" id="amove_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/move.html">std::move</a></div><div class="ttdeci">T move(T... args)</div></div>
<div class="ttc" id="anamespacestd_html"><div class="ttname"><a href="../../d8/dcc/namespacestd.html">std</a></div><div class="ttdoc">STL namespace.</div></div>
<div class="ttc" id="aoperator_cmp_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/rel_ops/operator_cmp.html">std::rel_ops::operator!=</a></div><div class="ttdeci">T operator!=(T... args)</div></div>
<div class="ttc" id="aordinary__least__squares__regressor_8cpp_html_a01e6c7bf2b09272578b9c5819ce0f36f"><div class="ttname"><a href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a01e6c7bf2b09272578b9c5819ce0f36f">operator+</a></div><div class="ttdeci">std::vector&lt; T &gt; operator+(std::vector&lt; T &gt; const &amp;A, std::vector&lt; T &gt; const &amp;B)</div><div class="ttdef"><b>Definition:</b> ordinary_least_squares_regressor.cpp:204</div></div>
<div class="ttc" id="aordinary__least__squares__regressor_8cpp_html_a4a6a560dbdd0177633783b72db37dc19"><div class="ttname"><a href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a4a6a560dbdd0177633783b72db37dc19">operator-</a></div><div class="ttdeci">std::vector&lt; T &gt; operator-(std::vector&lt; T &gt; const &amp;A, std::vector&lt; T &gt; const &amp;B)</div><div class="ttdef"><b>Definition:</b> ordinary_least_squares_regressor.cpp:183</div></div>
<div class="ttc" id="aordinary__least__squares__regressor_8cpp_html_a7a2d742b9a3ae7b85292e1f86428bb4f"><div class="ttname"><a href="../../dc/d38/ordinary__least__squares__regressor_8cpp.html#a7a2d742b9a3ae7b85292e1f86428bb4f">operator/</a></div><div class="ttdeci">std::vector&lt; float &gt; operator/(std::vector&lt; T &gt; const &amp;A, float const scalar)</div><div class="ttdef"><b>Definition:</b> ordinary_least_squares_regressor.cpp:174</div></div>
<div class="ttc" id="apair_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/pair.html">std::pair</a></div></div>
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string/size.html">std::string::size</a></div><div class="ttdeci">T size(T... args)</div></div>
<div class="ttc" id="auint128__t_8hpp_html"><div class="ttname"><a href="../../da/d41/uint128__t_8hpp.html">uint128_t.hpp</a></div></div>
<div class="ttc" id="auint128__t_8hpp_html_a3ff77262ffd6743df5b808d41382a6f3"><div class="ttname"><a href="../../da/d41/uint128__t_8hpp.html#a3ff77262ffd6743df5b808d41382a6f3">add</a></div><div class="ttdeci">std::string add(const std::string &amp;first, const std::string &amp;second)</div><div class="ttdoc">Adding two string.</div><div class="ttdef"><b>Definition:</b> uint128_t.hpp:37</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="../../dir_4d6e05837bf820fb089a8a8cdf2f42b7.html">ciphers</a></li><li class="navelem"><a class="el" href="../../da/da3/uint256__t_8hpp.html">uint256_t.hpp</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.2 </li>
</ul>
</div>
</body>
</html>