<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/> <title>linbox: NTL_ZZ Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <script type="text/javascript"> function hasClass(ele,cls) { return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)')); } function addClass(ele,cls) { if (!this.hasClass(ele,cls)) ele.className += " "+cls; } function removeClass(ele,cls) { if (hasClass(ele,cls)) { var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)'); ele.className=ele.className.replace(reg,' '); } } function toggleVisibility(linkObj) { var base = linkObj.getAttribute('id'); var summary = document.getElementById(base + '-summary'); var content = document.getElementById(base + '-content'); var trigger = document.getElementById(base + '-trigger'); if ( hasClass(linkObj,'closed') ) { summary.style.display = 'none'; content.style.display = 'block'; trigger.src = 'open.png'; removeClass(linkObj,'closed'); addClass(linkObj,'opened'); } else if ( hasClass(linkObj,'opened') ) { summary.style.display = 'block'; content.style.display = 'none'; trigger.src = 'closed.png'; removeClass(linkObj,'opened'); addClass(linkObj,'closed'); } return false; } </script> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">linbox</div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespace_lin_box.html">LinBox</a> </li> <li class="navelem"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html">NTL_ZZ</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> </div> <div class="headertitle"> <div class="title">NTL_ZZ Class Reference<div class="ingroups"><a class="el" href="group__ring.html">ring</a></div></div> </div> </div> <div class="contents"> <!-- doxytag: class="LinBox::NTL_ZZ" --> <p>the integer ring. <a href="class_lin_box_1_1_n_t_l___z_z.html#details">More...</a></p> <p><code>#include <ntl-ZZ.h></code></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="aa87116f3046c4461498e5ee1d3f86e3b"></a><!-- doxytag: member="LinBox::NTL_ZZ::init" ref="aa87116f3046c4461498e5ee1d3f86e3b" args="(Element &x, const Element2 &y) const " --> template<class Element2 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Element & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#aa87116f3046c4461498e5ee1d3f86e3b">init</a> (Element &x, const Element2 &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Init x from y. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a44cc243235872bd518bc08647d7dcc64"></a><!-- doxytag: member="LinBox::NTL_ZZ::init" ref="a44cc243235872bd518bc08647d7dcc64" args="(Element &x, const Element &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a44cc243235872bd518bc08647d7dcc64">init</a> (Element &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Init from a NTL::ZZ. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a00acc5198e88dfde31949339cec16f6e"></a><!-- doxytag: member="LinBox::NTL_ZZ::init" ref="a00acc5198e88dfde31949339cec16f6e" args="(Element &x, const int64_t &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a00acc5198e88dfde31949339cec16f6e">init</a> (Element &x, const int64_t &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Init from an int64_t. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a589b8ea80fc6a0a200485039b6e44fbd"></a><!-- doxytag: member="LinBox::NTL_ZZ::init" ref="a589b8ea80fc6a0a200485039b6e44fbd" args="(Element &x, const uint64_t &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a589b8ea80fc6a0a200485039b6e44fbd">init</a> (Element &x, const uint64_t &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Init from a uint64_t. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3cd6dff34a8814a8f242427b0be5af1"></a><!-- doxytag: member="LinBox::NTL_ZZ::init" ref="ac3cd6dff34a8814a8f242427b0be5af1" args="(Element &x, const integer &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#ac3cd6dff34a8814a8f242427b0be5af1">init</a> (Element &x, const <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">I don't know how to init from integer efficiently. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac4bb2576b5123c8fde1fab6165264ec3"></a><!-- doxytag: member="LinBox::NTL_ZZ::convert" ref="ac4bb2576b5123c8fde1fab6165264ec3" args="(integer &x, const Element &y) const " --> <a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#ac4bb2576b5123c8fde1fab6165264ec3">convert</a> (<a class="el" href="group__integers.html#gad62eceb96963b157a2357aba991f6d6e">integer</a> &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert y to an Element. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ed3d5d8b4d9f1ab407365c020b18c58"></a><!-- doxytag: member="LinBox::NTL_ZZ::assign" ref="a7ed3d5d8b4d9f1ab407365c020b18c58" args="(Element &x, const Element &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a7ed3d5d8b4d9f1ab407365c020b18c58">assign</a> (Element &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">x = y. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0763bd76c2ed93bc54973d632b98ec90"></a><!-- doxytag: member="LinBox::NTL_ZZ::areEqual" ref="a0763bd76c2ed93bc54973d632b98ec90" args="(const Element &x, const Element &y) const " --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a0763bd76c2ed93bc54973d632b98ec90">areEqual</a> (const Element &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if x == y. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0865272ef30f366f2a7a06323ee7cc22"></a><!-- doxytag: member="LinBox::NTL_ZZ::isZero" ref="a0865272ef30f366f2a7a06323ee7cc22" args="(const Element &x) const " --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a0865272ef30f366f2a7a06323ee7cc22">isZero</a> (const Element &x) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if x == 0. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab37695d9e0fb5b0064c85e8449ed596b"></a><!-- doxytag: member="LinBox::NTL_ZZ::isOne" ref="ab37695d9e0fb5b0064c85e8449ed596b" args="(const Element &x) const " --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#ab37695d9e0fb5b0064c85e8449ed596b">isOne</a> (const Element &x) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if x == 1. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aadf4e83f1ac414b0caa1bef2154dabdb"></a><!-- doxytag: member="LinBox::NTL_ZZ::add" ref="aadf4e83f1ac414b0caa1bef2154dabdb" args="(Element &x, const Element &y, const Element &z) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#aadf4e83f1ac414b0caa1bef2154dabdb">add</a> (Element &x, const Element &y, const Element &z) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return x = y + z <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f2a41d18bd65f48cb5fb894fcd3b51b"></a><!-- doxytag: member="LinBox::NTL_ZZ::sub" ref="a2f2a41d18bd65f48cb5fb894fcd3b51b" args="(Element &x, const Element &y, const Element &z) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a2f2a41d18bd65f48cb5fb894fcd3b51b">sub</a> (Element &x, const Element &y, const Element &z) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return x = y - z <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="af4226d2340aa92d6756b4ac8668155ce"></a><!-- doxytag: member="LinBox::NTL_ZZ::mul" ref="af4226d2340aa92d6756b4ac8668155ce" args="(Element &x, const Element &y, const Int &z) const " --> template<class Int > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Element & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#af4226d2340aa92d6756b4ac8668155ce">mul</a> (Element &x, const Element &y, const Int &z) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return x = y * z <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4d8f0ac0be4b8a5a074f441d74bf4276"></a><!-- doxytag: member="LinBox::NTL_ZZ::div" ref="a4d8f0ac0be4b8a5a074f441d74bf4276" args="(Element &x, const Element &y, const Element &z) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a4d8f0ac0be4b8a5a074f441d74bf4276">div</a> (Element &x, const Element &y, const Element &z) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If z divides y, return x = y / z, otherwise, throw an exception. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b2e67d87131ae67539834cd9cd3fa7a"></a><!-- doxytag: member="LinBox::NTL_ZZ::inv" ref="a9b2e67d87131ae67539834cd9cd3fa7a" args="(Element &x, const Element &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a9b2e67d87131ae67539834cd9cd3fa7a">inv</a> (Element &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If y is a unit, return x = 1 / y, otherwsie, throw an exception. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a608fc0675ac7788b016f686fa3a6ec7e"></a><!-- doxytag: member="LinBox::NTL_ZZ::neg" ref="a608fc0675ac7788b016f686fa3a6ec7e" args="(Element &x, const Element &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a608fc0675ac7788b016f686fa3a6ec7e">neg</a> (Element &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return x = -y; <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a3a66863ff2d10c41d00b2e9d626fc5a2"></a><!-- doxytag: member="LinBox::NTL_ZZ::axpy" ref="a3a66863ff2d10c41d00b2e9d626fc5a2" args="(Element &r, const Element &a, const Int &x, const Element &y) const " --> template<class Int > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Element & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a3a66863ff2d10c41d00b2e9d626fc5a2">axpy</a> (Element &r, const Element &a, const Int &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return r = a x + y <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a25ec1b0d3d2d8da69636a121ef781a55"></a><!-- doxytag: member="LinBox::NTL_ZZ::addin" ref="a25ec1b0d3d2d8da69636a121ef781a55" args="(Element &x, const Element &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a25ec1b0d3d2d8da69636a121ef781a55">addin</a> (Element &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return x += y; <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa14037ab7a2e80c0e663a760acbaff15"></a><!-- doxytag: member="LinBox::NTL_ZZ::subin" ref="aa14037ab7a2e80c0e663a760acbaff15" args="(Element &x, const Element &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#aa14037ab7a2e80c0e663a760acbaff15">subin</a> (Element &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return x -= y; <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a58438280f19463c4fcaa8d2bc3e0a5df"></a><!-- doxytag: member="LinBox::NTL_ZZ::mulin" ref="a58438280f19463c4fcaa8d2bc3e0a5df" args="(Element &x, const Int &y) const " --> template<class Int > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Element & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a58438280f19463c4fcaa8d2bc3e0a5df">mulin</a> (Element &x, const Int &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return x *= y; <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac5966c66651795d1636a032e8bcd28ef"></a><!-- doxytag: member="LinBox::NTL_ZZ::divin" ref="ac5966c66651795d1636a032e8bcd28ef" args="(Element &x, const Element &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#ac5966c66651795d1636a032e8bcd28ef">divin</a> (Element &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If y divides x, return x /= y, otherwise throw an exception. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70edee8df9b06ab0539083af8c55b287"></a><!-- doxytag: member="LinBox::NTL_ZZ::invin" ref="a70edee8df9b06ab0539083af8c55b287" args="(Element &x)" --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a70edee8df9b06ab0539083af8c55b287">invin</a> (Element &x)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If x is a unit, x = 1 / x, otherwise, throw an exception. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a540bdfc0ce896b62d1a13247a2acfce2"></a><!-- doxytag: member="LinBox::NTL_ZZ::negin" ref="a540bdfc0ce896b62d1a13247a2acfce2" args="(Element &x) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a540bdfc0ce896b62d1a13247a2acfce2">negin</a> (Element &x) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return x = -x; <br/></td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a5aca8d25118e68380b815f1beaf7ee4e"></a><!-- doxytag: member="LinBox::NTL_ZZ::axpyin" ref="a5aca8d25118e68380b815f1beaf7ee4e" args="(Element &r, const Element &a, const Int &x) const " --> template<class Int > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Element & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a5aca8d25118e68380b815f1beaf7ee4e">axpyin</a> (Element &r, const Element &a, const Int &x) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return r += a x <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53334b953bf559a4dab5e846ec7bc898"></a><!-- doxytag: member="LinBox::NTL_ZZ::write" ref="a53334b953bf559a4dab5e846ec7bc898" args="(std::ostream &out, const Element &y) const " --> std::ostream & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a53334b953bf559a4dab5e846ec7bc898">write</a> (std::ostream &out, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">out << y; <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf0e7e47abd04f2d043a25a8891b34ca"></a><!-- doxytag: member="LinBox::NTL_ZZ::read" ref="acf0e7e47abd04f2d043a25a8891b34ca" args="(std::istream &in, Element &x) const " --> std::istream & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#acf0e7e47abd04f2d043a25a8891b34ca">read</a> (std::istream &in, Element &x) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">read x from istream in <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a0b93e65d03a783646c50d5738763898f">isUnit</a> (const Element &x) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">some PIR function <a href="#a0b93e65d03a783646c50d5738763898f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e636acb56d9f09127f52f3ef81b9584"></a><!-- doxytag: member="LinBox::NTL_ZZ::gcd" ref="a6e636acb56d9f09127f52f3ef81b9584" args="(Element &g, const Element &a, const Element &b) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a6e636acb56d9f09127f52f3ef81b9584">gcd</a> (Element &g, const Element &a, const Element &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return g = gcd (a, b) <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a74cee6d6ad4e57975cc7bae2fd269c14"></a><!-- doxytag: member="LinBox::NTL_ZZ::gcdin" ref="a74cee6d6ad4e57975cc7bae2fd269c14" args="(Element &g, const Element &b) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a74cee6d6ad4e57975cc7bae2fd269c14">gcdin</a> (Element &g, const Element &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return g = gcd (g, b) <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a371650f2b999208d5f143c62278fc16f">xgcd</a> (Element &g, Element &s, Element &t, const Element &a, const Element &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">g = gcd(a, b) = a*s + b*t. <a href="#a371650f2b999208d5f143c62278fc16f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b12a8ea4574eab41279f5a88362200d"></a><!-- doxytag: member="LinBox::NTL_ZZ::lcm" ref="a1b12a8ea4574eab41279f5a88362200d" args="(Element &c, const Element &a, const Element &b) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a1b12a8ea4574eab41279f5a88362200d">lcm</a> (Element &c, const Element &a, const Element &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">c = lcm (a, b) <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a374790a7ebfac4cb731ec78e3c6b5d00"></a><!-- doxytag: member="LinBox::NTL_ZZ::lcmin" ref="a374790a7ebfac4cb731ec78e3c6b5d00" args="(Element &l, const Element &b) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a374790a7ebfac4cb731ec78e3c6b5d00">lcmin</a> (Element &l, const Element &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">l = lcm (l, b) <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6af9f647de1a6fd731092f51fb8e5889"></a><!-- doxytag: member="LinBox::NTL_ZZ::sqrt" ref="a6af9f647de1a6fd731092f51fb8e5889" args="(Element &x, const Element &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a6af9f647de1a6fd731092f51fb8e5889">sqrt</a> (Element &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">x = floor ( sqrt(y)). <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab9a3350851ed32219769130448869ae"></a><!-- doxytag: member="LinBox::NTL_ZZ::reconstructRational" ref="aab9a3350851ed32219769130448869ae" args="(Element &a, Element &b, const Element &x, const Element &m, const Element &a_bound, const Element &b_bound) const " --> long </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#aab9a3350851ed32219769130448869ae">reconstructRational</a> (Element &a, Element &b, const Element &x, const Element &m, const Element &a_bound, const Element &b_bound) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Requires 0 <= x < m, m > 2 * a_bound * b_bound, a_bound >= 0, b_bound > 0 This routine either returns 0, leaving a and b unchanged, or returns 1 and sets a and b so that (1) a = b x (mod m), (2) |a| <= a_bound, 0 < b <= b_bound, and (3) gcd(m, b) = gcd(a, b). <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a869a3ca1dede7e150ec76adeb8c73c92"></a><!-- doxytag: member="LinBox::NTL_ZZ::quo" ref="a869a3ca1dede7e150ec76adeb8c73c92" args="(Element &q, const Element &a, const Element &b) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a869a3ca1dede7e150ec76adeb8c73c92">quo</a> (Element &q, const Element &a, const Element &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">q = floor (x/y); <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a932cde8264e1b28a6be71cae19d5df74"></a><!-- doxytag: member="LinBox::NTL_ZZ::rem" ref="a932cde8264e1b28a6be71cae19d5df74" args="(Element &r, const Element &a, const Element &b) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a932cde8264e1b28a6be71cae19d5df74">rem</a> (Element &r, const Element &a, const Element &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">r = remindar of a / b <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a34c18b336edb87552b48e09a6ca9b781"></a><!-- doxytag: member="LinBox::NTL_ZZ::quoin" ref="a34c18b336edb87552b48e09a6ca9b781" args="(Element &a, const Element &b) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a34c18b336edb87552b48e09a6ca9b781">quoin</a> (Element &a, const Element &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">a = quotient (a, b) <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a61826cd231477dee595da08389f5aafd"></a><!-- doxytag: member="LinBox::NTL_ZZ::remin" ref="a61826cd231477dee595da08389f5aafd" args="(Element &x, const Element &y) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a61826cd231477dee595da08389f5aafd">remin</a> (Element &x, const Element &y) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">a = quotient (a, b) <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb37625e39118eeff08c67557e64b77d"></a><!-- doxytag: member="LinBox::NTL_ZZ::quoRem" ref="aeb37625e39118eeff08c67557e64b77d" args="(Element &q, Element &r, const Element &a, const Element &b) const " --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#aeb37625e39118eeff08c67557e64b77d">quoRem</a> (Element &q, Element &r, const Element &a, const Element &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">q = [a/b], r = a - b*q |r| < |b|, and if r != 0, sign(r) = sign(b) <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d84a5cc027bf4ba1a6983b861cc1788"></a><!-- doxytag: member="LinBox::NTL_ZZ::isDivisor" ref="a1d84a5cc027bf4ba1a6983b861cc1788" args="(const Element &a, const Element &b) const " --> bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a1d84a5cc027bf4ba1a6983b861cc1788">isDivisor</a> (const Element &a, const Element &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test if b | a. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">long </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#ac08eadda62dbf4324a3a516c884b5288">compare</a> (const Element &a, const Element &b) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">compare two elements, a and b return 1, if a > b return 0, if a = b; return -1. <a href="#ac08eadda62dbf4324a3a516c884b5288"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a689ee77a76545874cffabd22d744772b"></a><!-- doxytag: member="LinBox::NTL_ZZ::abs" ref="a689ee77a76545874cffabd22d744772b" args="(Element &x, const Element &a) const " --> Element & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_lin_box_1_1_n_t_l___z_z.html#a689ee77a76545874cffabd22d744772b">abs</a> (Element &x, const Element &a) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return the absolute value x = abs (a); <br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>the integer ring. </p> </div><hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a0b93e65d03a783646c50d5738763898f"></a><!-- doxytag: member="LinBox::NTL_ZZ::isUnit" ref="a0b93e65d03a783646c50d5738763898f" args="(const Element &x) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool isUnit </td> <td>(</td> <td class="paramtype">const Element & </td> <td class="paramname"><em>x</em></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>some PIR function </p> <p>Test if x is a unit. </p> </div> </div> <a class="anchor" id="a371650f2b999208d5f143c62278fc16f"></a><!-- doxytag: member="LinBox::NTL_ZZ::xgcd" ref="a371650f2b999208d5f143c62278fc16f" args="(Element &g, Element &s, Element &t, const Element &a, const Element &b) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Element& xgcd </td> <td>(</td> <td class="paramtype">Element & </td> <td class="paramname"><em>g</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Element & </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Element & </td> <td class="paramname"><em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Element & </td> <td class="paramname"><em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Element & </td> <td class="paramname"><em>b</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>g = gcd(a, b) = a*s + b*t. </p> <p>The coefficients s and t are defined according to the standard Euclidean algorithm applied to |a| and |b|, with the signs then adjusted according to the signs of a and b. </p> </div> </div> <a class="anchor" id="ac08eadda62dbf4324a3a516c884b5288"></a><!-- doxytag: member="LinBox::NTL_ZZ::compare" ref="ac08eadda62dbf4324a3a516c884b5288" args="(const Element &a, const Element &b) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">long compare </td> <td>(</td> <td class="paramtype">const Element & </td> <td class="paramname"><em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Element & </td> <td class="paramname"><em>b</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>compare two elements, a and b return 1, if a > b return 0, if a = b; return -1. </p> <p>if a < b </p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="field_2ntl-_z_z_8h.html">field/ntl-ZZ.h</a></li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated on Tue Aug 30 2011 for linbox by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address> </body> </html>