mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-03-22 04:42:10 +08:00
993 lines
70 KiB
HTML
993 lines
70 KiB
HTML
<!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=9"/>
|
|
<meta name="generator" content="Doxygen 1.9.1"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Algorithms_in_C++: large_number Class Reference</title>
|
|
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="../../jquery.js"></script>
|
|
<script type="text/javascript" src="../../dynsections.js"></script>
|
|
<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">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.1 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "../../search",false,'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:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(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:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(document).ready(function(){initNavTree('db/d82/classlarge__number.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="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pub-static-methods">Static Public Member Functions</a> |
|
|
<a href="#pri-methods">Private Member Functions</a> |
|
|
<a href="#pri-attribs">Private Attributes</a> |
|
|
<a href="#friends">Friends</a> |
|
|
<a href="../../de/dc8/classlarge__number-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">large_number Class Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p><code>#include <<a class="el" href="../../d4/d86/large__number_8h_source.html">large_number.h</a>></code></p>
|
|
<div class="dynheader">
|
|
Collaboration diagram for large_number:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d1/dc5/classlarge__number__coll__graph.svg" width="159" height="142"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
<center><span class="legend">[<a target="top" href="../../graph_legend.html">legend</a>]</span></center></div>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a10119a83839e65962621b73df46a5337"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#a10119a83839e65962621b73df46a5337">large_number</a> ()</td></tr>
|
|
<tr class="separator:a10119a83839e65962621b73df46a5337"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af4598f1f2794b5e17e10c25e0501e41a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#af4598f1f2794b5e17e10c25e0501e41a">large_number</a> (int n)</td></tr>
|
|
<tr class="separator:af4598f1f2794b5e17e10c25e0501e41a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0b1efd203274e38a67b78937dfb9b872"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#a0b1efd203274e38a67b78937dfb9b872">large_number</a> (const <a class="el" href="../../db/d82/classlarge__number.html">large_number</a> &a)</td></tr>
|
|
<tr class="separator:a0b1efd203274e38a67b78937dfb9b872"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a76ddf1ed1b00fb8c107ea56f7f91e42f"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#a76ddf1ed1b00fb8c107ea56f7f91e42f">large_number</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< unsigned char > &vec)</td></tr>
|
|
<tr class="separator:a76ddf1ed1b00fb8c107ea56f7f91e42f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:adf804e60309bf016f7954fdcb0a4d103"><td class="memItemLeft" align="right" valign="top"><a id="adf804e60309bf016f7954fdcb0a4d103"></a>
|
|
 </td><td class="memItemRight" valign="bottom"><b>large_number</b> (char const *number_str)</td></tr>
|
|
<tr class="separator:adf804e60309bf016f7954fdcb0a4d103"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a60c436d1a1c5e3795d6177d3815ad615"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#a60c436d1a1c5e3795d6177d3815ad615">add_digit</a> (unsigned int value)</td></tr>
|
|
<tr class="separator:a60c436d1a1c5e3795d6177d3815ad615"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac09a05ec4aafb4d9e0b4440d6f0e2a93"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#ac09a05ec4aafb4d9e0b4440d6f0e2a93">num_digits</a> () const</td></tr>
|
|
<tr class="separator:ac09a05ec4aafb4d9e0b4440d6f0e2a93"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ace19126cf343a09efc0010735f6e3a8d"><td class="memItemLeft" align="right" valign="top">unsigned char & </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#ace19126cf343a09efc0010735f6e3a8d">operator[]</a> (size_t n)</td></tr>
|
|
<tr class="separator:ace19126cf343a09efc0010735f6e3a8d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab53e3d0d72a547243a6e995e918ba87c"><td class="memItemLeft" align="right" valign="top"><a id="ab53e3d0d72a547243a6e995e918ba87c"></a>
|
|
const unsigned char & </td><td class="memItemRight" valign="bottom"><b>operator[]</b> (size_t n) const</td></tr>
|
|
<tr class="separator:ab53e3d0d72a547243a6e995e918ba87c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a622d84883180ff42f04955909adea5a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#a622d84883180ff42f04955909adea5a9">operator++</a> ()</td></tr>
|
|
<tr class="separator:a622d84883180ff42f04955909adea5a9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac4fafa6289295419d48d444f0ae4b706"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#ac4fafa6289295419d48d444f0ae4b706">operator++</a> (int)</td></tr>
|
|
<tr class="separator:ac4fafa6289295419d48d444f0ae4b706"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac27b399ed872731758ec33ebb102730e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#ac27b399ed872731758ec33ebb102730e">operator+=</a> (<a class="el" href="../../db/d82/classlarge__number.html">large_number</a> n)</td></tr>
|
|
<tr class="separator:ac27b399ed872731758ec33ebb102730e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aad394466f3207b21b5d3e994b3a8ed72"><td class="memItemLeft" align="right" valign="top"><a id="aad394466f3207b21b5d3e994b3a8ed72"></a>
|
|
<a class="el" href="../../db/d82/classlarge__number.html">large_number</a> & </td><td class="memItemRight" valign="bottom"><b>operator+=</b> (int n)</td></tr>
|
|
<tr class="separator:aad394466f3207b21b5d3e994b3a8ed72"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aeb22d2aae39d1b1e0bd39c7f47b333eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#aeb22d2aae39d1b1e0bd39c7f47b333eb">operator=</a> (const <a class="el" href="../../db/d82/classlarge__number.html">large_number</a> &b)</td></tr>
|
|
<tr class="separator:aeb22d2aae39d1b1e0bd39c7f47b333eb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab1af3e0f425cdf7ea2039c9dcfe22f0b"><td class="memTemplParams" colspan="2">template<class T > </td></tr>
|
|
<tr class="memitem:ab1af3e0f425cdf7ea2039c9dcfe22f0b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#ab1af3e0f425cdf7ea2039c9dcfe22f0b">operator*=</a> (const T n)</td></tr>
|
|
<tr class="separator:ab1af3e0f425cdf7ea2039c9dcfe22f0b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ae35a55607cf52c0b0d485f2129bd39ac"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#ae35a55607cf52c0b0d485f2129bd39ac">digit_char</a> (size_t i) const</td></tr>
|
|
<tr class="separator:ae35a55607cf52c0b0d485f2129bd39ac"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
|
|
Static Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a959c5c1a982949bbf98e1ea0f9afe6a9"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#a959c5c1a982949bbf98e1ea0f9afe6a9">test</a> ()</td></tr>
|
|
<tr class="separator:a959c5c1a982949bbf98e1ea0f9afe6a9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
|
|
Private Member Functions</h2></td></tr>
|
|
<tr class="memitem:a2f5571e66305cf68bb8283e4aeda58bc"><td class="memTemplParams" colspan="2">template<class T > </td></tr>
|
|
<tr class="memitem:a2f5571e66305cf68bb8283e4aeda58bc"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#a2f5571e66305cf68bb8283e4aeda58bc">multiply</a> (const T n)</td></tr>
|
|
<tr class="separator:a2f5571e66305cf68bb8283e4aeda58bc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
|
|
Private Attributes</h2></td></tr>
|
|
<tr class="memitem:af2b3ec9c35842d3a46ac7326f268af57"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< unsigned char > </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#af2b3ec9c35842d3a46ac7326f268af57">_digits</a></td></tr>
|
|
<tr class="separator:af2b3ec9c35842d3a46ac7326f268af57"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
|
|
Friends</h2></td></tr>
|
|
<tr class="memitem:a778428c4761b6ea5e7770743f0eab5ab"><td class="memItemLeft" align="right" valign="top"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#a778428c4761b6ea5e7770743f0eab5ab">operator<<</a> (<a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> &out, const <a class="el" href="../../db/d82/classlarge__number.html">large_number</a> &a)</td></tr>
|
|
<tr class="separator:a778428c4761b6ea5e7770743f0eab5ab"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7ba872b9a3ce1f3da6c06c5409663cca"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#a7ba872b9a3ce1f3da6c06c5409663cca">operator==</a> (<a class="el" href="../../db/d82/classlarge__number.html">large_number</a> const &a, <a class="el" href="../../db/d82/classlarge__number.html">large_number</a> const &b)</td></tr>
|
|
<tr class="separator:a7ba872b9a3ce1f3da6c06c5409663cca"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a72ae1ef050c4c28c50952ecab22d4b94"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#a72ae1ef050c4c28c50952ecab22d4b94">operator!=</a> (<a class="el" href="../../db/d82/classlarge__number.html">large_number</a> const &a, <a class="el" href="../../db/d82/classlarge__number.html">large_number</a> const &b)</td></tr>
|
|
<tr class="separator:a72ae1ef050c4c28c50952ecab22d4b94"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a70d23d67535e67030db570e56c00e16d"><td class="memTemplParams" colspan="2">template<class T > </td></tr>
|
|
<tr class="memitem:a70d23d67535e67030db570e56c00e16d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../db/d82/classlarge__number.html#a70d23d67535e67030db570e56c00e16d">operator+</a> (const <a class="el" href="../../db/d82/classlarge__number.html">large_number</a> &a, const T &b)</td></tr>
|
|
<tr class="separator:a70d23d67535e67030db570e56c00e16d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Store large unsigned numbers as a C++ vector The class provides convenience functions to add a digit to the number, perform multiplication of large number with long unsigned integers. </p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="a10119a83839e65962621b73df46a5337"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a10119a83839e65962621b73df46a5337">◆ </a></span>large_number() <span class="overload">[1/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">large_number::large_number </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>< initializer with value = 1 </p>
|
|
<div class="fragment"><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> { <a class="code" href="../../db/d82/classlarge__number.html#af2b3ec9c35842d3a46ac7326f268af57">_digits</a>.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(1); }</div>
|
|
<div class="ttc" id="aclasslarge__number_html_af2b3ec9c35842d3a46ac7326f268af57"><div class="ttname"><a href="../../db/d82/classlarge__number.html#af2b3ec9c35842d3a46ac7326f268af57">large_number::_digits</a></div><div class="ttdeci">std::vector< unsigned char > _digits</div><div class="ttdef"><b>Definition:</b> large_number.h:285</div></div>
|
|
<div class="ttc" id="apush_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">std::vector::push_back</a></div><div class="ttdeci">T push_back(T... args)</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../db/d82/classlarge__number_a10119a83839e65962621b73df46a5337_cgraph.svg" width="350" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af4598f1f2794b5e17e10c25e0501e41a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af4598f1f2794b5e17e10c25e0501e41a">◆ </a></span>large_number() <span class="overload">[2/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">large_number::large_number </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>n</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>< initializer from an integer initializer from another <a class="el" href="../../db/d82/classlarge__number.html">large_number</a> </p>
|
|
<div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../db/d82/classlarge__number_af4598f1f2794b5e17e10c25e0501e41a_cgraph.svg" width="558" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a0b1efd203274e38a67b78937dfb9b872"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a0b1efd203274e38a67b78937dfb9b872">◆ </a></span>large_number() <span class="overload">[3/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">large_number::large_number </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../db/d82/classlarge__number.html">large_number</a> & </td>
|
|
<td class="paramname"><em>a</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>initializer from a vector </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a76ddf1ed1b00fb8c107ea56f7f91e42f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a76ddf1ed1b00fb8c107ea56f7f91e42f">◆ </a></span>large_number() <span class="overload">[4/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">large_number::large_number </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a>< unsigned char > & </td>
|
|
<td class="paramname"><em>vec</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>initializer from a string </p>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Function Documentation</h2>
|
|
<a id="a60c436d1a1c5e3795d6177d3815ad615"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a60c436d1a1c5e3795d6177d3815ad615">◆ </a></span>add_digit()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void large_number::add_digit </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned int </td>
|
|
<td class="paramname"><em>value</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>add a digit at MSB to the large number </p>
|
|
<div class="fragment"><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  {</div>
|
|
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">if</span> (value > 9) {</div>
|
|
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"digit > 9!!\n"</span>;</div>
|
|
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/utility/program/exit.html">exit</a>(EXIT_FAILURE);</div>
|
|
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div>
|
|
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div>
|
|
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="../../db/d82/classlarge__number.html#af2b3ec9c35842d3a46ac7326f268af57">_digits</a>.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">push_back</a>(value);</div>
|
|
<div class="line"><a name="l00125"></a><span class="lineno"> 125</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::cerr</a></div></div>
|
|
<div class="ttc" id="aexit_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/utility/program/exit.html">std::exit</a></div><div class="ttdeci">T exit(T... args)</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../db/d82/classlarge__number_a60c436d1a1c5e3795d6177d3815ad615_cgraph.svg" width="374" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ae35a55607cf52c0b0d485f2129bd39ac"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ae35a55607cf52c0b0d485f2129bd39ac">◆ </a></span>digit_char()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">char large_number::digit_char </td>
|
|
<td>(</td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>i</em></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>returns i^th digit as an ASCII character </p>
|
|
<div class="fragment"><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  {</div>
|
|
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">return</span> <a class="code" href="../../db/d82/classlarge__number.html#af2b3ec9c35842d3a46ac7326f268af57">_digits</a>[<a class="code" href="../../db/d82/classlarge__number.html#ac09a05ec4aafb4d9e0b4440d6f0e2a93">num_digits</a>() - i - 1] + <span class="charliteral">'0'</span>;</div>
|
|
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div>
|
|
<div class="ttc" id="aclasslarge__number_html_ac09a05ec4aafb4d9e0b4440d6f0e2a93"><div class="ttname"><a href="../../db/d82/classlarge__number.html#ac09a05ec4aafb4d9e0b4440d6f0e2a93">large_number::num_digits</a></div><div class="ttdeci">size_t num_digits() const</div><div class="ttdef"><b>Definition:</b> large_number.h:130</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../db/d82/classlarge__number_ae35a55607cf52c0b0d485f2129bd39ac_cgraph.svg" width="558" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a2f5571e66305cf68bb8283e4aeda58bc"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a2f5571e66305cf68bb8283e4aeda58bc">◆ </a></span>multiply()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<class T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void large_number::multiply </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const T </td>
|
|
<td class="paramname"><em>n</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>multiply large number with another integer and store the result in the same large number </p>
|
|
<div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  {</div>
|
|
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  static_assert(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral<T>::value</a>,</div>
|
|
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="stringliteral">"Can only have integer types."</span>);</div>
|
|
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="comment">// assert(!(std::is_signed<T>::value)); //, "Implemented only for</span></div>
|
|
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="comment">// unsigned integer types.");</span></div>
|
|
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  </div>
|
|
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordtype">size_t</span> i;</div>
|
|
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  uint64_t carry = 0, temp;</div>
|
|
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">for</span> (i = 0; i < this-><a class="code" href="../../db/d82/classlarge__number.html#ac09a05ec4aafb4d9e0b4440d6f0e2a93">num_digits</a>(); i++) {</div>
|
|
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  temp = <span class="keyword">static_cast<</span>uint64_t<span class="keyword">></span>((*this)[i]) * n;</div>
|
|
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  temp += carry;</div>
|
|
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">if</span> (temp < 10) {</div>
|
|
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  carry = 0;</div>
|
|
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  } <span class="keywordflow">else</span> {</div>
|
|
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  carry = temp / 10;</div>
|
|
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  temp = temp % 10;</div>
|
|
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div>
|
|
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  (*this)[i] = temp;</div>
|
|
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div>
|
|
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  </div>
|
|
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">while</span> (carry != 0) {</div>
|
|
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  this-><a class="code" href="../../db/d82/classlarge__number.html#a60c436d1a1c5e3795d6177d3815ad615">add_digit</a>(carry % 10);</div>
|
|
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  carry /= 10;</div>
|
|
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  }</div>
|
|
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div>
|
|
<div class="ttc" id="aclasslarge__number_html_a60c436d1a1c5e3795d6177d3815ad615"><div class="ttname"><a href="../../db/d82/classlarge__number.html#a60c436d1a1c5e3795d6177d3815ad615">large_number::add_digit</a></div><div class="ttdeci">void add_digit(unsigned int value)</div><div class="ttdef"><b>Definition:</b> large_number.h:118</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><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../db/d82/classlarge__number_a2f5571e66305cf68bb8283e4aeda58bc_cgraph.svg" width="586" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac09a05ec4aafb4d9e0b4440d6f0e2a93"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac09a05ec4aafb4d9e0b4440d6f0e2a93">◆ </a></span>num_digits()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">size_t large_number::num_digits </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td> const</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Get number of digits in the number </p>
|
|
<div class="fragment"><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> { <span class="keywordflow">return</span> <a class="code" href="../../db/d82/classlarge__number.html#af2b3ec9c35842d3a46ac7326f268af57">_digits</a>.<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector/size.html">size</a>(); }</div>
|
|
<div class="ttc" id="asize_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/size.html">std::vector::size</a></div><div class="ttdeci">T size(T... args)</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../db/d82/classlarge__number_ac09a05ec4aafb4d9e0b4440d6f0e2a93_cgraph.svg" width="346" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab1af3e0f425cdf7ea2039c9dcfe22f0b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab1af3e0f425cdf7ea2039c9dcfe22f0b">◆ </a></span>operator*=()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<class T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a>& large_number::operator*= </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const T </td>
|
|
<td class="paramname"><em>n</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>operator overload to increment </p>
|
|
<div class="fragment"><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  {</div>
|
|
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  static_assert(<a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/types/is_integral.html">std::is_integral<T>::value</a>,</div>
|
|
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="stringliteral">"Must be integer addition unsigned integer types."</span>);</div>
|
|
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  this-><a class="code" href="../../db/d82/classlarge__number.html#a2f5571e66305cf68bb8283e4aeda58bc">multiply</a>(n);</div>
|
|
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div>
|
|
<div class="ttc" id="aclasslarge__number_html_a2f5571e66305cf68bb8283e4aeda58bc"><div class="ttname"><a href="../../db/d82/classlarge__number.html#a2f5571e66305cf68bb8283e4aeda58bc">large_number::multiply</a></div><div class="ttdeci">void multiply(const T n)</div><div class="ttdef"><b>Definition:</b> large_number.h:258</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../db/d82/classlarge__number_ab1af3e0f425cdf7ea2039c9dcfe22f0b_cgraph.svg" width="100%" height="366"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a622d84883180ff42f04955909adea5a9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a622d84883180ff42f04955909adea5a9">◆ </a></span>operator++() <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a>& large_number::operator++ </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>operator overload to increment (prefix) </p>
|
|
<div class="fragment"><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  {</div>
|
|
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  (*this) += 1;</div>
|
|
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="ac4fafa6289295419d48d444f0ae4b706"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac4fafa6289295419d48d444f0ae4b706">◆ </a></span>operator++() <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a>& large_number::operator++ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>operator overload to increment (postfix) </p>
|
|
<div class="fragment"><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  {</div>
|
|
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">static</span> <a class="code" href="../../db/d82/classlarge__number.html">large_number</a> tmp(<a class="code" href="../../db/d82/classlarge__number.html#af2b3ec9c35842d3a46ac7326f268af57">_digits</a>);</div>
|
|
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  ++(*this);</div>
|
|
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">return</span> tmp;</div>
|
|
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div>
|
|
<div class="ttc" id="aclasslarge__number_html"><div class="ttname"><a href="../../db/d82/classlarge__number.html">large_number</a></div><div class="ttdef"><b>Definition:</b> large_number.h:24</div></div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="ac27b399ed872731758ec33ebb102730e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac27b399ed872731758ec33ebb102730e">◆ </a></span>operator+=()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a>& large_number::operator+= </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a> </td>
|
|
<td class="paramname"><em>n</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>operator overload to add </p>
|
|
<div class="fragment"><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  {</div>
|
|
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">// if adding with another large_number</span></div>
|
|
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="../../db/d82/classlarge__number.html">large_number</a> *b = <span class="keyword">reinterpret_cast<</span><a class="code" href="../../db/d82/classlarge__number.html">large_number</a> *<span class="keyword">></span>(&n);</div>
|
|
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> max_L = <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a>(this-><a class="code" href="../../db/d82/classlarge__number.html#ac09a05ec4aafb4d9e0b4440d6f0e2a93">num_digits</a>(), b-><a class="code" href="../../db/d82/classlarge__number.html#ac09a05ec4aafb4d9e0b4440d6f0e2a93">num_digits</a>());</div>
|
|
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> carry = 0;</div>
|
|
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordtype">size_t</span> i;</div>
|
|
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">for</span> (i = 0; i < max_L || carry != 0; i++) {</div>
|
|
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">if</span> (i < b-><a class="code" href="../../db/d82/classlarge__number.html#ac09a05ec4aafb4d9e0b4440d6f0e2a93">num_digits</a>())</div>
|
|
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  carry += (*b)[i];</div>
|
|
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">if</span> (i < this-><a class="code" href="../../db/d82/classlarge__number.html#ac09a05ec4aafb4d9e0b4440d6f0e2a93">num_digits</a>())</div>
|
|
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  carry += (*this)[i];</div>
|
|
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">if</span> (i < this-><a class="code" href="../../db/d82/classlarge__number.html#ac09a05ec4aafb4d9e0b4440d6f0e2a93">num_digits</a>())</div>
|
|
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  (*this)[i] = carry % 10;</div>
|
|
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">else</span></div>
|
|
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  this-><a class="code" href="../../db/d82/classlarge__number.html#a60c436d1a1c5e3795d6177d3815ad615">add_digit</a>(carry % 10);</div>
|
|
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  carry /= 10;</div>
|
|
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div>
|
|
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div>
|
|
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/max.html">std::max</a></div><div class="ttdeci">T max(T... args)</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../db/d82/classlarge__number_ac27b399ed872731758ec33ebb102730e_cgraph.svg" width="603" height="139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aeb22d2aae39d1b1e0bd39c7f47b333eb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aeb22d2aae39d1b1e0bd39c7f47b333eb">◆ </a></span>operator=()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a>& large_number::operator= </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../db/d82/classlarge__number.html">large_number</a> & </td>
|
|
<td class="paramname"><em>b</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>assignment operator </p>
|
|
<div class="fragment"><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div>
|
|
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  this-><a class="code" href="../../db/d82/classlarge__number.html#af2b3ec9c35842d3a46ac7326f268af57">_digits</a> = b.<a class="code" href="../../db/d82/classlarge__number.html#af2b3ec9c35842d3a46ac7326f268af57">_digits</a>;</div>
|
|
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
|
|
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="ace19126cf343a09efc0010735f6e3a8d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ace19126cf343a09efc0010735f6e3a8d">◆ </a></span>operator[]()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned char& large_number::operator[] </td>
|
|
<td>(</td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>n</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>operator over load to access the i^th digit conveniently and also assign value to it </p>
|
|
<div class="fragment"><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> { <span class="keywordflow">return</span> this-><a class="code" href="../../db/d82/classlarge__number.html#af2b3ec9c35842d3a46ac7326f268af57">_digits</a>[n]; }</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="a959c5c1a982949bbf98e1ea0f9afe6a9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a959c5c1a982949bbf98e1ea0f9afe6a9">◆ </a></span>test()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static bool large_number::test </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>Function to check implementation </p>
|
|
<div class="fragment"><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  {</div>
|
|
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"------ Checking `large_number` class implementations\t"</span></div>
|
|
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
|
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="../../db/d82/classlarge__number.html">large_number</a> a(40);</div>
|
|
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// 1. test multiplication</span></div>
|
|
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  a *= 10;</div>
|
|
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">if</span> (a != <a class="code" href="../../db/d82/classlarge__number.html#a10119a83839e65962621b73df46a5337">large_number</a>(400)) {</div>
|
|
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"\tFailed 1/6 ("</span> << a << <span class="stringliteral">"!=400)"</span> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
|
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div>
|
|
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\tPassed 1/6..."</span>;</div>
|
|
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">// 2. test compound addition with integer</span></div>
|
|
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  a += 120;</div>
|
|
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span> (a != <a class="code" href="../../db/d82/classlarge__number.html#a10119a83839e65962621b73df46a5337">large_number</a>(520)) {</div>
|
|
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"\tFailed 2/6 ("</span> << a << <span class="stringliteral">"!=520)"</span> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
|
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div>
|
|
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\tPassed 2/6..."</span>;</div>
|
|
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="comment">// 3. test compound multiplication again</span></div>
|
|
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  a *= 10;</div>
|
|
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span> (a != <a class="code" href="../../db/d82/classlarge__number.html#a10119a83839e65962621b73df46a5337">large_number</a>(5200)) {</div>
|
|
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"\tFailed 3/6 ("</span> << a << <span class="stringliteral">"!=5200)"</span> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
|
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div>
|
|
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\tPassed 3/6..."</span>;</div>
|
|
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// 4. test increment (prefix)</span></div>
|
|
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  ++a;</div>
|
|
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">if</span> (a != <a class="code" href="../../db/d82/classlarge__number.html#a10119a83839e65962621b73df46a5337">large_number</a>(5201)) {</div>
|
|
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"\tFailed 4/6 ("</span> << a << <span class="stringliteral">"!=5201)"</span> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
|
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div>
|
|
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\tPassed 4/6..."</span>;</div>
|
|
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// 5. test increment (postfix)</span></div>
|
|
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  a++;</div>
|
|
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span> (a != <a class="code" href="../../db/d82/classlarge__number.html#a10119a83839e65962621b73df46a5337">large_number</a>(5202)) {</div>
|
|
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"\tFailed 5/6 ("</span> << a << <span class="stringliteral">"!=5202)"</span> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
|
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div>
|
|
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\tPassed 5/6..."</span>;</div>
|
|
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// 6. test addition with another large number</span></div>
|
|
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  a = a + <a class="code" href="../../db/d82/classlarge__number.html#a10119a83839e65962621b73df46a5337">large_number</a>(<span class="stringliteral">"7000000000000000000000000000000"</span>);</div>
|
|
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">if</span> (a != <a class="code" href="../../db/d82/classlarge__number.html#a10119a83839e65962621b73df46a5337">large_number</a>(<span class="stringliteral">"7000000000000000000000000005202"</span>)) {</div>
|
|
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cerr</a> << <span class="stringliteral">"\tFailed 6/6 ("</span> << a</div>
|
|
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  << <span class="stringliteral">"!=7000000000000000000000000005202)"</span> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
|
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div>
|
|
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::cout</a> << <span class="stringliteral">"\tPassed 6/6..."</span> << <a class="codeRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a>;</div>
|
|
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div>
|
|
<div class="ttc" id="aclasslarge__number_html_a10119a83839e65962621b73df46a5337"><div class="ttname"><a href="../../db/d82/classlarge__number.html#a10119a83839e65962621b73df46a5337">large_number::large_number</a></div><div class="ttdeci">large_number()</div><div class="ttdef"><b>Definition:</b> large_number.h:27</div></div>
|
|
<div class="ttc" id="aendl_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/io/manip/endl.html">std::endl</a></div><div class="ttdeci">T endl(T... args)</div></div>
|
|
</div><!-- fragment --><div class="dynheader">
|
|
Here is the call graph for this function:</div>
|
|
<div class="dyncontent">
|
|
<div class="center"><iframe scrolling="no" frameborder="0" src="../../db/d82/classlarge__number_a959c5c1a982949bbf98e1ea0f9afe6a9_cgraph.svg" width="528" height="104"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Friends And Related Function Documentation</h2>
|
|
<a id="a72ae1ef050c4c28c50952ecab22d4b94"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a72ae1ef050c4c28c50952ecab22d4b94">◆ </a></span>operator!=</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool operator!= </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a> const & </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a> const & </td>
|
|
<td class="paramname"><em>b</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>operator overload to compare two numbers </p>
|
|
<div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  {</div>
|
|
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> !(a == b);</div>
|
|
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="a70d23d67535e67030db570e56c00e16d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a70d23d67535e67030db570e56c00e16d">◆ </a></span>operator+</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<class T > </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a>& operator+ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="../../db/d82/classlarge__number.html">large_number</a> & </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const T & </td>
|
|
<td class="paramname"><em>b</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>operator overload to perform addition </p>
|
|
<div class="fragment"><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  {</div>
|
|
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keyword">static</span> <a class="code" href="../../db/d82/classlarge__number.html">large_number</a> c = a;</div>
|
|
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  c += b;</div>
|
|
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> c;</div>
|
|
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="a778428c4761b6ea5e7770743f0eab5ab"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a778428c4761b6ea5e7770743f0eab5ab">◆ </a></span>operator<<</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a>& operator<< </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/io/basic_ostream.html">std::ostream</a> & </td>
|
|
<td class="paramname"><em>out</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="../../db/d82/classlarge__number.html">large_number</a> & </td>
|
|
<td class="paramname"><em>a</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>operator overload to compare two numbers </p>
|
|
<div class="fragment"><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  {</div>
|
|
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = a.num_digits(); i > 0; i--)</div>
|
|
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  out << static_cast<int>(a[i - 1]);</div>
|
|
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">return</span> out;</div>
|
|
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a id="a7ba872b9a3ce1f3da6c06c5409663cca"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7ba872b9a3ce1f3da6c06c5409663cca">◆ </a></span>operator==</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool operator== </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a> const & </td>
|
|
<td class="paramname"><em>a</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="../../db/d82/classlarge__number.html">large_number</a> const & </td>
|
|
<td class="paramname"><em>b</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>operator overload to compare two numbers </p>
|
|
<div class="fragment"><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div>
|
|
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordtype">size_t</span> N = a.num_digits();</div>
|
|
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">if</span> (N != b.num_digits())</div>
|
|
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < N; i++)</div>
|
|
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">if</span> (a[i] != b[i])</div>
|
|
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Data Documentation</h2>
|
|
<a id="af2b3ec9c35842d3a46ac7326f268af57"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af2b3ec9c35842d3a46ac7326f268af57">◆ </a></span>_digits</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="elRef" target="_blank" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector</a><unsigned char> large_number::_digits</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">private</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<p>where individual digits are stored </p>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
|
<li>math/<a class="el" href="../../d4/d86/large__number_8h_source.html">large_number.h</a></li>
|
|
</ul>
|
|
</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="../../db/d82/classlarge__number.html">large_number</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.1 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|