Math.Gmp.Native/docs/html/c40ea3de-d1be-146b-fe7a-deff566ca817.htm

67 lines
104 KiB
HTML
Raw Normal View History

2017-11-06 13:38:19 +01:00
<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>gmp_lib.mpn_divexact_by3c Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="mpn_divexact_by3c method" /><meta name="System.Keywords" content="gmp_lib.mpn_divexact_by3c method" /><meta name="Microsoft.Help.F1" content="Math.Gmp.Native.gmp_lib.mpn_divexact_by3c" /><meta name="Microsoft.Help.Id" content="M:Math.Gmp.Native.gmp_lib.mpn_divexact_by3c(Math.Gmp.Native.mp_ptr,Math.Gmp.Native.mp_ptr,Math.Gmp.Native.mp_size_t,Math.Gmp.Native.mp_limb_t)" /><meta name="Description" content="Divide {, } by 3, expecting it to divide exactly, and writing the result to {, }." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Math.Gmp.Native" /><meta name="file" content="c40ea3de-d1be-146b-fe7a-deff566ca817" /><meta name="guid" content="c40ea3de-d1be-146b-fe7a-deff566ca817" /><link type="text/css" rel="stylesheet" href="../styles/highlight.css" /><script type="text/javascript" src="../scripts/highlight.js"> </script><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script><script type="text/javascript" src="../scripts/clipboard.min.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">GMP Native Interface for .NET<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="846f5c8a-6cba-433e-9f18-cde2ff5695cd.htm" title="GMP Native Interface for .NET" tocid="roottoc">GMP Native Interface for .NET</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm" title="Math.Gmp.Native" tocid="d9c51b9f-0c54-770b-28ea-6eebd8fef368">Math.Gmp.Native</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm" title="gmp_lib Class" tocid="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f">gmp_lib Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="0fa7cbf3-e8f4-6b14-d829-8aa663e77c74.htm" title="gmp_lib Methods" tocid="0fa7cbf3-e8f4-6b14-d829-8aa663e77c74">gmp_lib Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="c9cb6a67-59b8-5c03-f31d-f252441c53f6.htm" title="_mpz_realloc Method " tocid="c9cb6a67-59b8-5c03-f31d-f252441c53f6">_mpz_realloc Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="2c68671c-cd5c-e2ec-52a2-65b0ca31c3d1.htm" title="allocate Method " tocid="2c68671c-cd5c-e2ec-52a2-65b0ca31c3d1">allocate Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="92160da3-b1af-e005-cb05-e3fb4dd524d8.htm" title="free Method " tocid="92160da3-b1af-e005-cb05-e3fb4dd524d8">free M
2017-11-04 16:02:37 +01:00
Divide {<span class="parameter">sp</span>, <span class="parameter">n</span>} by <span class="code">3</span>, expecting it to divide exactly, and writing the result to {<span class="parameter">rp</span>, <span class="parameter">n</span>}.
</div><p> </p>
<strong>Namespace:</strong>
 <a href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native</a><br />
<strong>Assembly:</strong>
 Math.Gmp.Native (in Math.Gmp.Native.dll) Version: 1.0.0.0 (1.0.0.0)<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">mp_limb_t</span> <span class="identifier">mpn_divexact_by3c</span>(
<span class="identifier">mp_ptr</span> <span class="parameter">rp</span>,
<span class="identifier">mp_ptr</span> <span class="parameter">sp</span>,
<span class="identifier">mp_size_t</span> <span class="parameter">n</span>,
<span class="identifier">mp_limb_t</span> <span class="parameter">carry</span>
)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">mpn_divexact_by3c</span> (
<span class="parameter">rp</span> <span class="keyword">As</span> <span class="identifier">mp_ptr</span>,
<span class="parameter">sp</span> <span class="keyword">As</span> <span class="identifier">mp_ptr</span>,
<span class="parameter">n</span> <span class="keyword">As</span> <span class="identifier">mp_size_t</span>,
<span class="parameter">carry</span> <span class="keyword">As</span> <span class="identifier">mp_limb_t</span>
) <span class="keyword">As</span> <span class="identifier">mp_limb_t</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
<span class="keyword">static</span> <span class="identifier">mp_limb_t</span> <span class="identifier">mpn_divexact_by3c</span>(
<span class="identifier">mp_ptr</span>^ <span class="parameter">rp</span>,
<span class="identifier">mp_ptr</span>^ <span class="parameter">sp</span>,
<span class="identifier">mp_size_t</span> <span class="parameter">n</span>,
<span class="identifier">mp_limb_t</span> <span class="parameter">carry</span>
)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">mpn_divexact_by3c</span> :
<span class="parameter">rp</span> : <span class="identifier">mp_ptr</span> *
<span class="parameter">sp</span> : <span class="identifier">mp_ptr</span> *
<span class="parameter">n</span> : <span class="identifier">mp_size_t</span> *
<span class="parameter">carry</span> : <span class="identifier">mp_limb_t</span> <span class="keyword">-&gt;</span> <span class="identifier">mp_limb_t</span>
</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">rp</span></dt><dd>Type: <a href="4609ac5e-5cf9-cd20-2fa9-8040101c165c.htm">Math.Gmp.Native<span id="LST9DAD6B4F_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_ptr</a><br />The result integer.</dd><dt><span class="parameter">sp</span></dt><dd>Type: <a href="4609ac5e-5cf9-cd20-2fa9-8040101c165c.htm">Math.Gmp.Native<span id="LST9DAD6B4F_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_ptr</a><br />The operand integer.</dd><dt><span class="parameter">n</span></dt><dd>Type: <a href="4b58a584-7a0e-b600-18fa-ebd493861eb3.htm">Math.Gmp.Native<span id="LST9DAD6B4F_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_size_t</a><br />The number of limbs in <span class="parameter">sp</span>.</dd><dt><span class="parameter">carry</span></dt><dd>Type: <a href="bf1f694d-f9b2-6413-12e5-ebae603d5b49.htm">Math.Gmp.Native<span id="LST9DAD6B4F_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_limb_t</a><br />The initial carry.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="bf1f694d-f9b2-6413-12e5-ebae603d5b49.htm">mp_limb_t</a><br />If <span class="code">3</span> divides exactly, the return value is zero and the result is the quotient. If not, the return value is non-zero and the result wont be anything useful.</div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Remarks</span></div><div id="ID2RBSection" class="collapsibleSection"><p><span class="selflink">mpn_divexact_by3c(mp_ptr, mp_ptr, mp_size_t, mp_limb_t)</span> takes an initial carry parameter, which can be the return value from a previous call,
so a large calculation can be done piece by piece from low to high.
<a href="75f2a84e-44f3-b7cc-e6ad-392111d5b9cc.htm">mpn_divexact_by3(mp_ptr, mp_ptr, mp_size_t)</a> is simply a macro calling <span class="selflink">mpn_divexact_by3c(mp_ptr, mp_ptr, mp_size_t, mp_limb_t)</span> with a <span class="code">0</span> carry parameter.
</p><p>
These routines use a multiply-by-inverse and will be faster than <a href="f5c3f25d-1ad5-b3be-fc4b-280a62869912.htm">mpn_divrem_1(mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_limb_t)</a> on CPUs with
fast multiplication but slow division.
</p><p>
The source <span class="code">a</span>, result <span class="code">q</span>, size <span class="code">n</span>, initial carry <span class="code">i</span>, and return value <span class="code">c</span> satisfy
<span class="code">c * b^n + a - i = 3 * q</span>, where <span class="code">b = 2^<a href="f88c76a8-118a-5cbd-0df1-e30adcacb8ae.htm">mp_bits_per_limb</a></span>.
The return <span class="code">c</span> is always <span class="code">0</span>, <span class="code">1</span> or <span class="code">2,</span> and the initial carry <span class="code">i</span> must also be <span class="code">0</span>,
<span class="code">1</span> or <span class="code">2</span> (these are both borrows really). When <span class="code">c = 0</span> clearly <span class="code">q = (a - i) / 3</span>.
When <span class="code">c != 0</span>, the remainder <span class="code">(a - i) mod 3</span> is given by <span class="code">3 - c</span>, because
<span class="code">b ≡ 1 mod 3</span> (when <a href="f88c76a8-118a-5cbd-0df1-e30adcacb8ae.htm">mp_bits_per_limb</a> is even, which is always so currently).
</p></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Examples</span></div><div id="ID3RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDAABA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDAABA','cs','1','4');return false;">C#</a></div><div id="ID0EDAABA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDAABA','vb','2','4');return false;">VB</a></div><div id="ID0EDAABA_tab3" class="codeSnippetContainerTabPhantom"><a href="#" onclick="javascript:ChangeTab('ID0EDAABA','cpp','3','4');return false;">C++</a></div><div id="ID0EDAABA_tab4" class="codeSnippetContainerTabPhantom"><a href="#" onclick="javascript:ChangeTab('ID0EDAABA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDAABA_copyCode" href="#" class="copyCodeSnippet" onclick="javascript:CopyToClipboard('ID0EDAABA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDAABA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="highlight-comment">// Create multi-precision operands, and expected result.</span>
mp_ptr sp = <span class="highlight-keyword">new</span> mp_ptr(<span class="highlight-keyword">new</span> <span class="highlight-keyword">uint</span>[] { <span class="highlight-number">0xffffffff</span>, <span class="highlight-number">0x0000ffff</span> });
mp_ptr rp = <span class="highlight-keyword">new</span> mp_ptr(<span class="highlight-keyword">new</span> <span class="highlight-keyword">uint</span>[<span class="highlight-number">2</span>]);
mp_ptr result = <span class="highlight-keyword">new</span> mp_ptr(<span class="highlight-keyword">new</span> <span class="highlight-keyword">uint</span>[] { <span class="highlight-number">0xaaaaaaaa</span>, <span class="highlight-number">0x5555aaaa</span> });
<span class="highlight-comment">// Set rp = sp / 3.</span>
mp_limb_t remainder = gmp_lib.mpn_divexact_by3c(rp, sp, sp.Size, <span class="highlight-number">1</span>);
<span class="highlight-comment">// Assert result of operation.</span>
Assert.IsTrue(remainder == <span class="highlight-number">1</span>);
Assert.IsTrue(rp.SequenceEqual(result));
<span class="highlight-comment">// Release unmanaged memory.</span>
gmp_lib.free(rp, sp, result);</pre></div><div id="ID0EDAABA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="highlight-comment">' Create multi-precision operands, and expected result.</span>
<span class="highlight-keyword">Dim</span> sp <span class="highlight-keyword">As</span> <span class="highlight-keyword">New</span> mp_ptr(<span class="highlight-keyword">New</span> <span class="highlight-keyword">UInteger</span>() { <span class="highlight-number">&amp;Hffffffff</span>UI, <span class="highlight-number">&amp;Hffff</span>})
<span class="highlight-keyword">Dim</span> rp <span class="highlight-keyword">As</span> <span class="highlight-keyword">New</span> mp_ptr(<span class="highlight-keyword">New</span> <span class="highlight-keyword">UInteger</span>(<span class="highlight-number">1</span>) { })
<span class="highlight-keyword">Dim</span> result <span class="highlight-keyword">As</span> <span class="highlight-keyword">New</span> mp_ptr(<span class="highlight-keyword">New</span> <span class="highlight-keyword">UInteger</span>() { <span class="highlight-number">&amp;Haaaaaaaa</span>UI, <span class="highlight-number">&amp;H5555aaaa</span>})
<span class="highlight-comment">' Set rp = sp / 3.</span>
<span class="highlight-keyword">Dim</span> remainder <span class="highlight-keyword">As</span> mp_limb_t = gmp_lib.mpn_divexact_by3c(rp, sp, sp.Size, <span class="highlight-number">1</span>)
<span class="highlight-comment">' Assert result of operation.</span>
Assert.IsTrue(remainder = <span class="highlight-number">1</span>)
Assert.IsTrue(rp.SequenceEqual(result))
<span class="highlight-comment">' Release unmanaged memory.</span>
gmp_lib.free(rp, sp, result)</pre></div><div id="ID0EDAABA_code_Div3" class="codeSnippetContainerCode" style="display: none"><p>No code example is currently available or this language may not be supported.</p></div><div id="ID0EDAABA_code_Div4" class="codeSnippetContainerCode" style="display: none"><p>No code example is currently available or this language may not be supported.</p></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDAABA");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm">gmp_lib Class</a></div><div class="seeAlsoStyle"><a href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native Namespace</a></div><div class="seeAlsoStyle"><a href="b9df04c4-224e-f2ad-8e90-fbb3b30bd76d.htm">gmp_lib<span id="LST9DAD6B4F_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_add(mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t)</a></div><div class="seeAlsoStyle"><a href="5562b14f-48a4-be75-2eb0-6a129cd0d5ab.htm">gmp_lib<span id="LST9DAD6B4F_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_add_1(mp_ptr, mp_ptr, mp_size_t, mp_limb_t)</a></div><div class="seeAlsoStyle"><a href="339edb73-5781-7d73-97b6-9b73451a698f.htm">gmp_lib<span id="LST9DAD6B4F_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_add_n(mp_ptr, mp_ptr, mp_ptr, mp_size_t)</a></div><div class="seeAlsoStyle"><a href="77fdf32b-986d-4df3-3c76-022e3e3fbb98.htm">gmp_lib<span id="LST9DAD6B4F_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_addmul_1(mp_ptr, mp_ptr, mp_size_t, mp_limb_t)</a></div><div class="seeAlsoStyle"><a href="1d6343a5-d42c-c362-714e-e10730e6a6d5.htm">gmp_lib<span id="LST9DAD6B4F_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_divexact_1(mp_ptr, mp_ptr, mp_size_t, mp_limb_t)</a></div><div class="seeAlsoStyle"><a href="75f2a84e-44f3-b7cc-e6ad-392111d5b9cc.htm">gmp_lib<span id="LST9DAD6B4F_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_divexact_by3(mp_ptr, mp_ptr, mp_size_t)</a></div><div class="seeAlsoStyle"><a href="9074a45b-0d68-cf18-75fe-076e720a9a61.htm">gmp_lib<span id="LST9DAD6B4F_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_divmod_1(mp_ptr, mp_ptr, mp_size_t, mp_limb_t)</a></div><div class="seeAlsoStyle"><a href="f5c3f25d-1ad5-b3be-fc4b-280a62869912.htm">gmp_lib<span id="LST9DAD6B4F_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_12?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_divrem_1(mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_limb_t)</a></div><div class="seeAlsoStyle"><a href="9aa24cc8-8cf5-4b8a-cd1b-5ded400efa50.htm">gmp_lib<span id="LST9DAD6B4F_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_13?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_mod_1(mp_ptr, mp_size_t, mp_limb_t)</a></div><div class="seeAlsoStyle"><a href="68d3161d-2909-1909-cda7-e87949ee27ce.htm">gmp_lib<span id="LST9DAD6B4F_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DAD6B4F_14?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_mul(mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t)</a></div><div class="seeAlsoStyle"><a href="b819fb3b-5d3e-ff23-1687-0e71af684bd7.htm">gmp_lib<span id="LST9DAD6B4F_15"></span><script type="text/