<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_sqrtrem Method </title><metaname="Language"content="en-us"/><metaname="System.Keywords"content="mpn_sqrtrem method"/><metaname="System.Keywords"content="gmp_lib.mpn_sqrtrem method"/><metaname="Microsoft.Help.F1"content="Math.Gmp.Native.gmp_lib.mpn_sqrtrem"/><metaname="Microsoft.Help.Id"content="M:Math.Gmp.Native.gmp_lib.mpn_sqrtrem(Math.Gmp.Native.mp_ptr,Math.Gmp.Native.mp_ptr,Math.Gmp.Native.mp_ptr,Math.Gmp.Native.mp_size_t)"/><metaname="Description"content="Compute the square root of {, } and put the result at {, ceil( / 2)} and the remainder at {, retval}."/><metaname="Microsoft.Help.ContentType"content="Reference"/><metaname="BrandingAware"content="true"/><metaname="container"content="Math.Gmp.Native"/><metaname="file"content="ee31871c-38bd-fccc-77f5-e76909dd7a79"/><metaname="guid"content="ee31871c-38bd-fccc-77f5-e76909dd7a79"/><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-tochassubtree="true"href="92160da3-b1af-e005-cb05-e3fb4dd524d8.htm"title="free Method "tocid="92160da3-b1af-e005-cb05-e3fb4dd524d8">free Method </a></d
Compute the square root of {<spanclass="parameter">sp</span>, <spanclass="parameter">n</span>} and put the result at {<spanclass="parameter">r1p</span>, ceil(<spanclass="parameter">n</span> / 2)} and the remainder at {<spanclass="parameter">r2p</span>, retval}.
</pre></div></div></div><scripttype="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4class="subHeading">Parameters</h4><dl><dt><spanclass="parameter">r1p</span></dt><dd>Type:<ahref="4609ac5e-5cf9-cd20-2fa9-8040101c165c.htm">Math.Gmp.Native<spanid="LSTADCD0E13_1"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTADCD0E13_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_ptr</a><br/>The first result integer.</dd><dt><spanclass="parameter">r2p</span></dt><dd>Type:<ahref="4609ac5e-5cf9-cd20-2fa9-8040101c165c.htm">Math.Gmp.Native<spanid="LSTADCD0E13_2"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTADCD0E13_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_ptr</a><br/>The second result integer.</dd><dt><spanclass="parameter">sp</span></dt><dd>Type:<ahref="4609ac5e-5cf9-cd20-2fa9-8040101c165c.htm">Math.Gmp.Native<spanid="LSTADCD0E13_3"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTADCD0E13_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_ptr</a><br/>The operand integwer.</dd><dt><spanclass="parameter">n</span></dt><dd>Type:<ahref="4b58a584-7a0e-b600-18fa-ebd493861eb3.htm">Math.Gmp.Native<spanid="LSTADCD0E13_4"></span><scripttype="text/javascript">AddLanguageSpecificTextSet("LSTADCD0E13_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>mp_size_t</a><br/>The number of limbs of <spanclass="parameter">sp</span>.</dd></dl><h4class="subHeading">Return Value</h4>Type:<ahref="4b58a584-7a0e-b600-18fa-ebd493861eb3.htm">mp_size_t</a><br/>The number of limbs of <spanclass="parameter">r2p</span>.</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><spanclass="parameter">r2p</span> needs space for <spanclass="parameter">n</span> limbs,
but the return value indicates how many are produced.
</p><p>
The most significant limb of {<spanclass="parameter">sp</span>, <spanclass="parameter">n</span>} must be non-zero.
gmp_lib.free(sp, r1p, r2p, result)</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="b9df04c4-224e-f2ad-8e90-fbb3b30bd76d.htm">mpn_add</a></div><divclass="seeAlsoStyle"><ahref="5562b14f-48a4-be75-2eb0-6a129cd0d5ab.htm">mpn_add_1</a></div><divclass="seeAlsoStyle"><ahref="339edb73-5781-7d73-97b6-9b73451a698f.htm">mpn_add_n</a></div><divclass="seeAlsoStyle"><ahref="77fdf32b-986d-4df3-3c76-022e3e3fbb98.htm">mpn_addmul_1</a></div><divclass="seeAlsoStyle"><ahref="1d6343a5-d42c-c362-714e-e10730e6a6d5.htm">mpn_divexact_1</a></div><divclass="seeAlsoStyle"><ahref="75f2a84e-44f3-b7cc-e6ad-392111d5b9cc.htm">mpn_divexact_by3</a></div><divclass="seeAlsoStyle"><ahref="c40ea3de-d1be-146b-fe7a-deff566ca817.htm">mpn_divexact_by3c</a></div><divclass="seeAlsoStyle"><ahref="9074a45b-0d68-cf18-75fe-076e720a9a61.htm">mpn_divmod_1</a></div><divclass="seeAlsoStyle"><ahref="f5c3f25d-1ad5-b3be-fc4b-280a62869912.htm">mpn_divrem_1</a></div><divclass="seeAlsoStyle"><ahref="9aa24cc8-8cf5-4b8a-cd1b-5ded400efa50.htm">mpn_mod_1</a></div><divclass="seeAlsoStyle"><ahref="68d3161d-2909-1909-cda7-e87949ee27ce.htm">mpn_mul</a></div><divclass="seeAlsoStyle"><ahref="b819fb3b-5d3e-ff23-1687-0e71af684bd7.htm">mpn_mul_1</a></div><divclass="seeAlsoStyle"><ahref="ee321a9a-852a-993e-f602-72ff2af02ff6.htm">mpn_mul_n</a></div><divclass="seeAlsoStyle"><ahref="9fb96802-e56e-8fd8-cef2-b44870d09a10.htm">mpn_neg</a></div><divclass="seeAlsoStyle"><ahref="87681f32-b766-3ce2-7c08-98b2d32cb5fa.htm">mpn_sub</a></div><divclass="seeAlsoStyle"><ahref="ae3c6cf7-08a0-54dd-951f-b2fe2112b8b0.htm">mpn_sub_1</a></div><divclass="seeAlsoStyle"><ahref="b104184e-cf49-dbdb-764a-9dee5cf7b2fd.htm">mpn_sub_n</a></div><divclass="seeAlsoStyle"><ahref="95e10fea-31c2-e900-c5b0-f48636e1d76e.htm">mpn_submul_1</a></div><divclass="seeAlsoStyle"><ahref="ff9c2930-ded2-c5b6-46dd-3ff9279cdc5e.htm">mpn_sqr</a></div><divclass="seeAlsoStyle"><ahref="9fe90631-f519-1cf3-5a20-701d2bae1d0d.htm">mpn_tdiv_qr</a></div><divclass="seeAlsoStyle"><ahref="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm"><ahref="/html/3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm#Low_level_Functions">Low-level Functions</a></a></div><divclass="seeAlsoStyle"><ahref="3af6b34c-3242-2b75-e7c7-ab79af8a4b0f.htm"><ahref="https://gmplib.org/manual/Low_002dlevel-Functions.html#Low_002dlevel-Functions">GNU MP - Low-level Functions</a></a></div></div></div></div><divid="pageFooter"class="pageFooter"></div></body></html>