<html><head><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><linkrel="shortcut icon"href="../icons/favicon.ico"/><linkrel="stylesheet"type="text/css"href="../styles/branding.css"/><linkrel="stylesheet"type="text/css"href="../styles/branding-en-US.css"/><scripttype="text/javascript"src="../scripts/branding.js"></script><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"/><title>gmp_lib.mpn_sec_div_qr Method </title><metaname="Language"content="en-us"/><metaname="System.Keywords"content="mpn_sec_div_qr method"/><metaname="System.Keywords"content="gmp_lib.mpn_sec_div_qr method"/><metaname="Microsoft.Help.F1"content="Math.Gmp.Native.gmp_lib.mpn_sec_div_qr"/><metaname="Microsoft.Help.Id"content="M:Math.Gmp.Native.gmp_lib.mpn_sec_div_qr(Math.Gmp.Native.mp_ptr,Math.Gmp.Native.mp_ptr,Math.Gmp.Native.mp_size_t,Math.Gmp.Native.mp_ptr,Math.Gmp.Native.mp_size_t,Math.Gmp.Native.mp_ptr)"/><metaname="Description"content="Set Q to the truncated quotient N / D and R to N modulo D, where N = {, }, D = {, }, Q’s most significant limb is the function return value and the remaining limbs are {, - }, and R = {, }."/><metaname="Microsoft.Help.ContentType"content="Reference"/><metaname="BrandingAware"content="true"/><metaname="container"content="Math.Gmp.Native"/><metaname="file"content="6f1dca2b-39f4-3acd-71fb-4f1e5a0d04e6"/><metaname="guid"content="6f1dca2b-39f4-3acd-71fb-4f1e5a0d04e6"/><linktype="text/css"rel="stylesheet"href="../styles/highlight.css"/><scripttype="text/javascript"src="../scripts/highlight.js"></script><linkrel="stylesheet"type="text/css"href="../styles/branding-Website.css"/><scripttype="text/javascript"src="../scripts/jquery-1.11.0.min.js"></script><scripttype="text/javascript"src="../scripts/branding-Website.js"></script><scripttype="text/javascript"src="../scripts/clipboard.min.js"></script></head><bodyonload="OnLoad('cs')"><inputtype="hidden"id="userDataCache"class="userDataStyle"/><divclass="pageHeader"id="PageHeader">GMP Native Interface for .NET<formid="SearchForm"method="get"action="#"onsubmit="javascript:TransferToSearchPage(); return false;"><inputid="SearchTextBox"type="text"maxlength="200"/><buttonid="SearchButton"type="submit"></button></form></div><divclass="pageBody"><divclass="leftNav"id="leftNav"><divid="tocNav"><divclass="toclevel0"data-toclevel="0"><aclass="tocCollapsed"onclick="javascript: Toggle(this);"href="#!"/><adata-tochassubtree="true"href="846f5c8a-6cba-433e-9f18-cde2ff5695cd.htm"title="GMP Native Interface for .NET"tocid="roottoc">GMP Native Interface for .NET</a></div><divclass="toclevel0"data-toclevel="0"><aclass="tocCollapsed"onclick="javascript: Toggle(this);"href="#!"/><adata-tochassubtree="true"href="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm"title="Math.Gmp.Native"tocid="d9c51b9f-0c54-770b-28ea-6eebd8fef368">Math.Gmp.Native</a></div><divclass="toclevel0"data-toclevel="0"><aclass="tocCollapsed"onclick="javascript: Toggle(this);"href="#!"/><adata-tochassubtree="true"href="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm"title="gmp_lib Class"tocid="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f">gmp_lib Class</a></div><divclass="toclevel1"data-toclevel="1"data-childrenloaded="true"><aclass="tocExpanded"onclick="javascript: Toggle(this);"href="#!"/><adata-tochassubtree="true"href="0fa7cbf3-e8f4-6b14-d829-8aa663e77c74.htm"title="gmp_lib Methods"tocid="0fa7cbf3-e8f4-6b14-d829-8aa663e77c74">gmp_lib Methods</a></div><divclass="toclevel2"data-toclevel="2"><adata-tochassubtree="false"href="c9cb6a67-59b8-5c03-f31d-f252441c53f6.htm"title="_mpz_realloc Method "tocid="c9cb6a67-59b8-5c03-f31d-f252441c53f6">_mpz_realloc Method </a></div><divclass="toclevel2"data-toclevel="2"><adata-tochassubtree="false"href="2c68671c-cd5c-e2ec-52a2-65b0ca31c3d1.htm"title="allocate Method "tocid="2c68671c-cd5c-e2ec-52a2-65b0ca31c3d1">allocate Method </a></div><divclass="toclevel2"data-toclevel="2"><aclass="tocCollapsed"onclick="javascript: Toggle(this);"href="#!"/><adata-
Set Q to the truncated quotient N / D and R to N modulo D, where N = {<spanclass="parameter">np</span>, <spanclass="parameter">nn</span>}, D = {<spanclass="parameter">dp</span>, <spanclass="parameter">dn</span>}, Q’s most significant limb is the function return value and the remaining limbs are {<spanclass="parameter">qp</span>, <spanclass="parameter">nn</span> - <spanclass="parameter">dn</span>}, and R = {<spanclass="parameter">np</span>, <spanclass="parameter">dn</span>}.
</pre></div></div></div><scripttype="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4class="subHeading">Parameters</h4><dl><dt><spanclass="parameter">qp</span></dt><dd>Type:<ahref="4609ac5e-5cf9-cd20-2fa9-8040101c165c.htm">Math.Gmp.Native<spanid="LSTAC79E741_1"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_ptr</a><br/>The quotient result operand.</dd><dt><spanclass="parameter">np</span></dt><dd>Type:<ahref="4609ac5e-5cf9-cd20-2fa9-8040101c165c.htm">Math.Gmp.Native<spanid="LSTAC79E741_2"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_ptr</a><br/>The first operand and remainder result integer.</dd><dt><spanclass="parameter">nn</span></dt><dd>Type:<ahref="4b58a584-7a0e-b600-18fa-ebd493861eb3.htm">Math.Gmp.Native<spanid="LSTAC79E741_3"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_size_t</a><br/>The number of limbs of <spanclass="parameter">np</span>.</dd><dt><spanclass="parameter">dp</span></dt><dd>Type:<ahref="4609ac5e-5cf9-cd20-2fa9-8040101c165c.htm">Math.Gmp.Native<spanid="LSTAC79E741_4"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_ptr</a><br/>The second operand integer.</dd><dt><spanclass="parameter">dn</span></dt><dd>Type:<ahref="4b58a584-7a0e-b600-18fa-ebd493861eb3.htm">Math.Gmp.Native<spanid="LSTAC79E741_5"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_size_t</a><br/>The number of limbs of <spanclass="parameter">dp</span>.</dd><dt><spanclass="parameter">tp</span></dt><dd>Type:<ahref="4609ac5e-5cf9-cd20-2fa9-8040101c165c.htm">Math.Gmp.Native<spanid="LSTAC79E741_6"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_ptr</a><br/>The scratch operand integer.</dd></dl><h4class="subHeading">Return Value</h4>Type:<ahref="bf1f694d-f9b2-6413-12e5-ebae603d5b49.htm">mp_limb_t</a><br/>Q’s most significant limb.</div><divclass="collapsibleAreaRegion"><spanclass="collapsibleRegionTitle"onclick="SectionExpandCollapse('ID2RB')"onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)"tabindex="0"><imgid="ID2RBToggle"class="collapseToggle"src="../icons/SectionExpanded.png"/>Remarks</span></div><divid="ID2RBSection"class="collapsibleSection"><p>
It is required that <spanclass="parameter">nn</span> ≥ <spanclass="parameter">dn</span> ≥ 1, and that <spanclass="parameter">dp</span>[<spanclass="parameter">dn</span> - 1] ≠ 0.
This does not imply that N ≥ D since N might be zero-padded.
This function requires scratch space of <ahref="b9e1a8f8-5156-ca69-337b-e67c2fd851f7.htm">mpn_sec_div_qr_itch(mp_size_t, mp_size_t)</a>(<spanclass="parameter">nn</span>, <spanclass="parameter">dn</span>)
gmp_lib.free(qp, np, dp, remainder, tp)</pre></div><divid="ID0EDAABA_code_Div3"class="codeSnippetContainerCode"style="display: none"><p>No code example is currently available or this language may not be supported.</p></div><divid="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><scripttype="text/javascript">AddLanguageTabSet("ID0EDAABA");</script></div><divclass="collapsibleAreaRegion"id="seeAlsoSection"><spanclass="collapsibleRegionTitle"onclick="SectionExpandCollapse('ID4RB')"onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)"tabindex="0"><imgid="ID4RBToggle"class="collapseToggle"src="../icons/SectionExpanded.png"/>See Also</span></div><divid="ID4RBSection"class="collapsibleSection"><h4class="subHeading">Reference</h4><divclass="seeAlsoStyle"><ahref="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm">gmp_lib Class</a></div><divclass="seeAlsoStyle"><ahref="d9c51b9f-0c54-770b-28ea-6eebd8fef368.htm">Math.Gmp.Native Namespace</a></div><divclass="seeAlsoStyle"><ahref="27902901-3a7d-b5b3-d3fc-3900f754bff1.htm">gmp_lib<spanid="LSTAC79E741_7"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_cnd_add_n(mp_limb_t, mp_ptr, mp_ptr, mp_ptr, mp_size_t)</a></div><divclass="seeAlsoStyle"><ahref="b82bad6a-f8f0-db53-a6d3-ed6002046257.htm">gmp_lib<spanid="LSTAC79E741_8"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_cnd_sub_n(mp_limb_t, mp_ptr, mp_ptr, mp_ptr, mp_size_t)</a></div><divclass="seeAlsoStyle"><ahref="1555cd52-98d2-6253-214a-d342a539bfb5.htm">gmp_lib<spanid="LSTAC79E741_9"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_sec_add_1(mp_ptr, mp_ptr, mp_size_t, mp_limb_t, mp_ptr)</a></div><divclass="seeAlsoStyle"><ahref="9137a632-abd2-7963-1991-85e6d753bf13.htm">gmp_lib<spanid="LSTAC79E741_10"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_sec_sub_1(mp_ptr, mp_ptr, mp_size_t, mp_limb_t, mp_ptr)</a></div><divclass="seeAlsoStyle"><ahref="f0985ccc-17da-8a0b-066c-53df9b1921a1.htm">gmp_lib<spanid="LSTAC79E741_11"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_cnd_swap(mp_limb_t, mp_ptr, mp_ptr, mp_size_t)</a></div><divclass="seeAlsoStyle"><ahref="028e92d4-3699-77ff-e8da-9ff4c367f5b3.htm">gmp_lib<spanid="LSTAC79E741_12"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_12?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_sec_mul(mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_ptr)</a></div><divclass="seeAlsoStyle"><ahref="bfe1e9b5-6fc1-95f2-d5b6-137fe87c071a.htm">gmp_lib<spanid="LSTAC79E741_13"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_13?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_sec_sqr(mp_ptr, mp_ptr, mp_size_t, mp_ptr)</a></div><divclass="seeAlsoStyle"><ahref="a38b87c5-c6ac-fa68-6d58-c45793bf933e.htm">gmp_lib<spanid="LSTAC79E741_14"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_14?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_sec_powm(mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_bitcnt_t, mp_ptr, mp_size_t, mp_ptr)</a></div><divclass="seeAlsoStyle"><ahref="3588cf60-567a-6182-20e8-5e2836498f49.htm">gmp_lib<spanid="LSTAC79E741_15"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_15?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_sec_tabselect(mp_ptr, mp_ptr, mp_size_t, mp_size_t, mp_size_t)</a></div><divclass="seeAlsoStyle"><ahref="b9e1a8f8-5156-ca69-337b-e67c2fd851f7.htm">gmp_lib<spanid="LSTAC79E741_16"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTAC79E741_16?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mpn_sec_div_qr_itch(mp_size_t, mp_size_t)</a></div><divclass="seeAlsoSty