<!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>FflasFfpack: FFPACK Namespace 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">FflasFfpack</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 class="current"><a href="namespaces.html"><span>Namespaces</span></a></li> <li><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> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="namespaces.html"><span>Namespace List</span></a></li> <li><a href="namespacemembers.html"><span>Namespace Members</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#namespaces">Namespaces</a> | <a href="#nested-classes">Data Structures</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">FFPACK Namespace Reference</div> </div> </div> <div class="contents"> <p>Set of elimination based routines for dense linear algebra with matrices over finite prime field of characteristic less than 2^26. <a href="#details">More...</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="namespaces"></a> Namespaces</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k_1_1_protected.html">Protected</a></td></tr> <tr><td colspan="2"><h2><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_charpoly_failed.html">CharpolyFailed</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1call_l_udivine__small.html">callLUdivine_small</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1call_l_udivine__small_3_01double_01_4.html">callLUdivine_small< double ></a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1call_l_udivine__small_3_01float_01_4.html">callLUdivine_small< float ></a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_modular_balanced_3_01double_01_4.html">ModularBalanced< double ></a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_modular_balanced_3_01float_01_4.html">ModularBalanced< float ></a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_modular_balanced_3_01int32__t_01_4.html">ModularBalanced< int32_t ></a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_modular_balanced_3_01int64__t_01_4.html">ModularBalanced< int64_t ></a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html">Modular< double ></a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01float_01_4.html">Modular< float ></a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01int32__t_01_4.html">Modular< int32_t ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Specialization of Modular to int32_t element type with efficient dot product. <a href="class_f_f_p_a_c_k_1_1_modular_3_01int32__t_01_4.html#details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01int64__t_01_4.html">Modular< int64_t ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Specialization of Modular to int64_t element type with efficient dot product. <a href="class_f_f_p_a_c_k_1_1_modular_3_01int64__t_01_4.html#details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_modular_rand_iter.html">ModularRandIter</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_modular_balanced_rand_iter.html">ModularBalancedRandIter</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_nonzero_rand_iter.html">NonzeroRandIter</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Random iterator for nonzero random numbers. <a href="class_f_f_p_a_c_k_1_1_nonzero_rand_iter.html#details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_unparametric_field.html">UnparametricField</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_f_f_p_a_c_k_1_1_failure.html">Failure</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A precondtion failed. <a href="class_f_f_p_a_c_k_1_1_failure.html#details">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="enum-members"></a> Enumerations</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k.html#ac2a6401775cab6ca594bdd80a18fb3fa">FFPACK_LUDIVINE_TAG</a> { <a class="el" href="namespace_f_f_p_a_c_k.html#ac2a6401775cab6ca594bdd80a18fb3faaa8acc2f7ffc071663ff5573922aeae1c">FfpackLQUP</a> = 1, <a class="el" href="namespace_f_f_p_a_c_k.html#ac2a6401775cab6ca594bdd80a18fb3faa29b9cff9bd4d1b6950355b5ae2b3d5d5">FfpackSingular</a> = 2 }</td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k.html#a308e1e35711a432504e8e39edbebc136">FFPACK_CHARPOLY_TAG</a> { <br/>   <a class="el" href="namespace_f_f_p_a_c_k.html#a308e1e35711a432504e8e39edbebc136a557d37b329a7fc7bd9cdb78d9b9d16b2">FfpackLUK</a> = 1, <a class="el" href="namespace_f_f_p_a_c_k.html#a308e1e35711a432504e8e39edbebc136a50f7c15be5df03caaa681535e1024bfd">FfpackKG</a> = 2, <a class="el" href="namespace_f_f_p_a_c_k.html#a308e1e35711a432504e8e39edbebc136a32820ba1670feaf44f8641e308ce2dbe">FfpackHybrid</a> = 3, <a class="el" href="namespace_f_f_p_a_c_k.html#a308e1e35711a432504e8e39edbebc136aa01e156ff516a1fd665949ee5ffb1b98">FfpackKGFast</a> = 4, <br/>   <a class="el" href="namespace_f_f_p_a_c_k.html#a308e1e35711a432504e8e39edbebc136a33efaeb06725c76afa632539aba47174">FfpackDanilevski</a> = 5, <a class="el" href="namespace_f_f_p_a_c_k.html#a308e1e35711a432504e8e39edbebc136af0a6883491a308daf287f29eedb1ad57">FfpackArithProg</a> = 6, <a class="el" href="namespace_f_f_p_a_c_k.html#a308e1e35711a432504e8e39edbebc136ab88094c87972b8bd08e8a685acb31b18">FfpackKGFastG</a> = 7 <br/> }</td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k.html#a107f52467704859a1154ec9cd5a4689d">FFPACK_MINPOLY_TAG</a> { <a class="el" href="namespace_f_f_p_a_c_k.html#a107f52467704859a1154ec9cd5a4689dad0e55ce97ccfcce7620232f2ca14f682">FfpackDense</a> = 1, <a class="el" href="namespace_f_f_p_a_c_k.html#a107f52467704859a1154ec9cd5a4689da28e9c013fa3d4db7ce10f499d5967429">FfpackKGF</a> = 2 }</td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Field > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">size_t </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k.html#a44576b7a71abab3e7593e9448d18436f">LUpdate</a> (const <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html">Field</a> &F, const <a class="el" href="namespace_f_f_l_a_s.html#a953b1159fd5330713d8a05ec27fbb068">FFLAS::FFLAS_DIAG</a> Diag, const <a class="el" href="namespace_f_f_l_a_s.html#afb7f98f2ba205ba04f6f90a5dfc8d838">FFLAS::FFLAS_TRANSPOSE</a> trans, const size_t M, const size_t N, typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> *A, const size_t lda, const size_t R, const size_t K, typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> *B, const size_t ldb, size_t *P, size_t *Q, const <a class="el" href="namespace_f_f_p_a_c_k.html#ac2a6401775cab6ca594bdd80a18fb3fa">FFPACK::FFPACK_LUDIVINE_TAG</a> LuTag, const size_t cutoff)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Updates an existing LU factorisation with more rows. <a href="#a44576b7a71abab3e7593e9448d18436f"></a><br/></td></tr> <tr><td class="memTemplParams" colspan="2">template<class Polynomial , class Field > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Polynomial & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k.html#ae54749e7452fded7ef46dda992d3bb80">mulpoly</a> (const <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html">Field</a> &F, Polynomial &res, const Polynomial &P1, const Polynomial &P2)</td></tr> <tr><td class="memTemplParams" colspan="2">template<class Field , class Polynomial > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">std::list< Polynomial > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k.html#af733613958eb46dad44c368d017a782d">Danilevski</a> (const <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html">Field</a> &F, std::list< Polynomial > &charp, const size_t N, typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> *A, const size_t lda)</td></tr> <tr><td class="memTemplParams" colspan="2">template<class Field , class Polynomial > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Polynomial & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k.html#ab050656edb83f9c3ecdeacb6351b42b4">MinPoly</a> (const <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html">Field</a> &F, Polynomial &minP, const size_t N, const typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> *A, const size_t lda, typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> *U, size_t ldu, typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> *X, size_t ldx, size_t *P)</td></tr> <tr><td class="memTemplParams" colspan="2">template<class T > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">std::ostream & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k.html#a31868e3a3c511eacf11db88943267e38">operator<<</a> (std::ostream &o, const Modular< T > &F)</td></tr> <tr><td class="memTemplParams" colspan="2">template<class T > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">std::ostream & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k.html#a9167e396cb9195beb4f92a6f567067be">operator<<</a> (std::ostream &o, const ModularBalanced< T > &F)</td></tr> <tr><td class="memTemplParams" colspan="2">template<class T > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">std::ostream & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k.html#a8b4b4f574d74b75d2d4746e07b36e16f">operator<<</a> (std::ostream &o, const <a class="el" href="class_f_f_p_a_c_k_1_1_unparametric_field.html">UnparametricField</a>< T > &F)</td></tr> <tr><td class="memTemplParams" colspan="2">template<typename Target , typename Source > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">Target & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespace_f_f_p_a_c_k.html#aa3b627889642c2bcc578621430e64fbe">Caster</a> (Target &t, const Source &s)</td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Set of elimination based routines for dense linear algebra with matrices over finite prime field of characteristic less than 2^26. </p> <p>This class only provides a set of static member functions. No instantiation is allowed.</p> <p>It enlarges the set of BLAS routines of the class <a class="el" href="namespace_f_f_l_a_s.html" title="FFLAS: Finite Field Linear Algebra Subroutines.">FFLAS</a>, with higher level routines based on elimination. </p> </div><hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="ac2a6401775cab6ca594bdd80a18fb3fa"></a><!-- doxytag: member="FFPACK::FFPACK_LUDIVINE_TAG" ref="ac2a6401775cab6ca594bdd80a18fb3fa" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="namespace_f_f_p_a_c_k.html#ac2a6401775cab6ca594bdd80a18fb3fa">FFPACK_LUDIVINE_TAG</a></td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="ac2a6401775cab6ca594bdd80a18fb3faaa8acc2f7ffc071663ff5573922aeae1c"></a><!-- doxytag: member="FfpackLQUP" ref="ac2a6401775cab6ca594bdd80a18fb3faaa8acc2f7ffc071663ff5573922aeae1c" args="" -->FfpackLQUP</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ac2a6401775cab6ca594bdd80a18fb3faa29b9cff9bd4d1b6950355b5ae2b3d5d5"></a><!-- doxytag: member="FfpackSingular" ref="ac2a6401775cab6ca594bdd80a18fb3faa29b9cff9bd4d1b6950355b5ae2b3d5d5" args="" -->FfpackSingular</em> </td><td> </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a308e1e35711a432504e8e39edbebc136"></a><!-- doxytag: member="FFPACK::FFPACK_CHARPOLY_TAG" ref="a308e1e35711a432504e8e39edbebc136" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="namespace_f_f_p_a_c_k.html#a308e1e35711a432504e8e39edbebc136">FFPACK_CHARPOLY_TAG</a></td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a308e1e35711a432504e8e39edbebc136a557d37b329a7fc7bd9cdb78d9b9d16b2"></a><!-- doxytag: member="FfpackLUK" ref="a308e1e35711a432504e8e39edbebc136a557d37b329a7fc7bd9cdb78d9b9d16b2" args="" -->FfpackLUK</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a308e1e35711a432504e8e39edbebc136a50f7c15be5df03caaa681535e1024bfd"></a><!-- doxytag: member="FfpackKG" ref="a308e1e35711a432504e8e39edbebc136a50f7c15be5df03caaa681535e1024bfd" args="" -->FfpackKG</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a308e1e35711a432504e8e39edbebc136a32820ba1670feaf44f8641e308ce2dbe"></a><!-- doxytag: member="FfpackHybrid" ref="a308e1e35711a432504e8e39edbebc136a32820ba1670feaf44f8641e308ce2dbe" args="" -->FfpackHybrid</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a308e1e35711a432504e8e39edbebc136aa01e156ff516a1fd665949ee5ffb1b98"></a><!-- doxytag: member="FfpackKGFast" ref="a308e1e35711a432504e8e39edbebc136aa01e156ff516a1fd665949ee5ffb1b98" args="" -->FfpackKGFast</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a308e1e35711a432504e8e39edbebc136a33efaeb06725c76afa632539aba47174"></a><!-- doxytag: member="FfpackDanilevski" ref="a308e1e35711a432504e8e39edbebc136a33efaeb06725c76afa632539aba47174" args="" -->FfpackDanilevski</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a308e1e35711a432504e8e39edbebc136af0a6883491a308daf287f29eedb1ad57"></a><!-- doxytag: member="FfpackArithProg" ref="a308e1e35711a432504e8e39edbebc136af0a6883491a308daf287f29eedb1ad57" args="" -->FfpackArithProg</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a308e1e35711a432504e8e39edbebc136ab88094c87972b8bd08e8a685acb31b18"></a><!-- doxytag: member="FfpackKGFastG" ref="a308e1e35711a432504e8e39edbebc136ab88094c87972b8bd08e8a685acb31b18" args="" -->FfpackKGFastG</em> </td><td> </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a107f52467704859a1154ec9cd5a4689d"></a><!-- doxytag: member="FFPACK::FFPACK_MINPOLY_TAG" ref="a107f52467704859a1154ec9cd5a4689d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="namespace_f_f_p_a_c_k.html#a107f52467704859a1154ec9cd5a4689d">FFPACK_MINPOLY_TAG</a></td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a107f52467704859a1154ec9cd5a4689dad0e55ce97ccfcce7620232f2ca14f682"></a><!-- doxytag: member="FfpackDense" ref="a107f52467704859a1154ec9cd5a4689dad0e55ce97ccfcce7620232f2ca14f682" args="" -->FfpackDense</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a107f52467704859a1154ec9cd5a4689da28e9c013fa3d4db7ce10f499d5967429"></a><!-- doxytag: member="FfpackKGF" ref="a107f52467704859a1154ec9cd5a4689da28e9c013fa3d4db7ce10f499d5967429" args="" -->FfpackKGF</em> </td><td> </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a44576b7a71abab3e7593e9448d18436f"></a><!-- doxytag: member="FFPACK::LUpdate" ref="a44576b7a71abab3e7593e9448d18436f" args="(const Field &F, const FFLAS::FFLAS_DIAG Diag, const FFLAS::FFLAS_TRANSPOSE trans, const size_t M, const size_t N, typename Field::Element *A, const size_t lda, const size_t R, const size_t K, typename Field::Element *B, const size_t ldb, size_t *P, size_t *Q, const FFPACK::FFPACK_LUDIVINE_TAG LuTag, const size_t cutoff)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t LUpdate </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html">Field</a> & </td> <td class="paramname"><em>F</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="namespace_f_f_l_a_s.html#a953b1159fd5330713d8a05ec27fbb068">FFLAS::FFLAS_DIAG</a> </td> <td class="paramname"><em>Diag</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="namespace_f_f_l_a_s.html#afb7f98f2ba205ba04f6f90a5dfc8d838">FFLAS::FFLAS_TRANSPOSE</a> </td> <td class="paramname"><em>trans</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const size_t </td> <td class="paramname"><em>M</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const size_t </td> <td class="paramname"><em>N</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> * </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const size_t </td> <td class="paramname"><em>lda</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const size_t </td> <td class="paramname"><em>R</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const size_t </td> <td class="paramname"><em>K</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> * </td> <td class="paramname"><em>B</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const size_t </td> <td class="paramname"><em>ldb</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t * </td> <td class="paramname"><em>P</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t * </td> <td class="paramname"><em>Q</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="namespace_f_f_p_a_c_k.html#ac2a6401775cab6ca594bdd80a18fb3fa">FFPACK::FFPACK_LUDIVINE_TAG</a> </td> <td class="paramname"><em>LuTag</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const size_t </td> <td class="paramname"><em>cutoff</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Updates an existing LU factorisation with more rows. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">F</td><td>Field on which arithmetic is done </td></tr> <tr><td class="paramname">Diag</td><td>Is <code>L</code> unit ? (if so, <code><a class="el" href="namespace_f_f_l_a_s.html#a953b1159fd5330713d8a05ec27fbb068ac08ba3f3a8fb3434ac74ea713d5bc0b4" title="Triangular matrix has an implicit unit diagonal ( )">FFLAS::FflasUnit</a></code>) </td></tr> <tr><td class="paramname">trans</td><td>Not used yet, should be <code><a class="el" href="namespace_f_f_l_a_s.html#afb7f98f2ba205ba04f6f90a5dfc8d838a7c0e29ca635cd7c7cf53517eed237d48" title="Matrix is not transposed.">FFLAS::FflasNoTrans</a></code> </td></tr> <tr><td class="paramname">M</td><td>rows in <code>A</code> </td></tr> <tr><td class="paramname">N</td><td>cols in <code>A</code> </td></tr> <tr><td class="paramname">A</td><td><code>A</code> is already in <code>LU</code> factorisation </td></tr> <tr><td class="paramname">lda</td><td>leading dimension of <code>A</code> </td></tr> <tr><td class="paramname">R</td><td>rank of <code>A</code> </td></tr> <tr><td class="paramname">K</td><td>rows in <code>B</code> </td></tr> <tr><td class="paramname">B</td><td>more rows to append to <code>A</code> </td></tr> <tr><td class="paramname">ldb</td><td>leading dimension of <code>B</code> (not tested if != lda) </td></tr> <tr><td class="paramname">P</td><td>permutation for <code>LU</code> in <code>A</code>. Should be big enough so it can store the permutation for <code>LU</code> of <code>A</code> and <code>B</code> </td></tr> <tr><td class="paramname">Q</td><td>same as <code>P</code> </td></tr> <tr><td class="paramname">LuTag</td><td>see <code>LUdivine</code>. </td></tr> <tr><td class="paramname">cutoff</td><td>see <code>LUdivine</code>.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>rank of <code>A.append(B)</code> </dd></dl> <p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>std::swap ? </dd></dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>std::swap ? </dd></dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>std::swap ? </dd></dl> <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000006">Todo:</a></b></dt><dd>std::swap ? </dd></dl> </p> </div> </div> <a class="anchor" id="ae54749e7452fded7ef46dda992d3bb80"></a><!-- doxytag: member="FFPACK::mulpoly" ref="ae54749e7452fded7ef46dda992d3bb80" args="(const Field &F, Polynomial &res, const Polynomial &P1, const Polynomial &P2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Polynomial& FFPACK::mulpoly </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html">Field</a> & </td> <td class="paramname"><em>F</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Polynomial & </td> <td class="paramname"><em>res</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Polynomial & </td> <td class="paramname"><em>P1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Polynomial & </td> <td class="paramname"><em>P2</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="af733613958eb46dad44c368d017a782d"></a><!-- doxytag: member="FFPACK::Danilevski" ref="af733613958eb46dad44c368d017a782d" args="(const Field &F, std::list< Polynomial > &charp, const size_t N, typename Field::Element *A, const size_t lda)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::list<Polynomial>& FFPACK::Danilevski </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html">Field</a> & </td> <td class="paramname"><em>F</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">std::list< Polynomial > & </td> <td class="paramname"><em>charp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const size_t </td> <td class="paramname"><em>N</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> * </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const size_t </td> <td class="paramname"><em>lda</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ab050656edb83f9c3ecdeacb6351b42b4"></a><!-- doxytag: member="FFPACK::MinPoly" ref="ab050656edb83f9c3ecdeacb6351b42b4" args="(const Field &F, Polynomial &minP, const size_t N, const typename Field::Element *A, const size_t lda, typename Field::Element *U, size_t ldu, typename Field::Element *X, size_t ldx, size_t *P)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Polynomial& FFPACK::MinPoly </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html">Field</a> & </td> <td class="paramname"><em>F</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Polynomial & </td> <td class="paramname"><em>minP</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const size_t </td> <td class="paramname"><em>N</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> * </td> <td class="paramname"><em>A</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const size_t </td> <td class="paramname"><em>lda</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> * </td> <td class="paramname"><em>U</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>ldu</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">typename <a class="el" href="class_f_f_p_a_c_k_1_1_modular_3_01double_01_4.html#a5afafa54b23c86d7cf88fc9225afe3b6">Field::Element</a> * </td> <td class="paramname"><em>X</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>ldx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t * </td> <td class="paramname"><em>P</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a31868e3a3c511eacf11db88943267e38"></a><!-- doxytag: member="FFPACK::operator<<" ref="a31868e3a3c511eacf11db88943267e38" args="(std::ostream &o, const Modular< T > &F)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::ostream& FFPACK::operator<< </td> <td>(</td> <td class="paramtype">std::ostream & </td> <td class="paramname"><em>o</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Modular< T > & </td> <td class="paramname"><em>F</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a9167e396cb9195beb4f92a6f567067be"></a><!-- doxytag: member="FFPACK::operator<<" ref="a9167e396cb9195beb4f92a6f567067be" args="(std::ostream &o, const ModularBalanced< T > &F)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::ostream& FFPACK::operator<< </td> <td>(</td> <td class="paramtype">std::ostream & </td> <td class="paramname"><em>o</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const ModularBalanced< T > & </td> <td class="paramname"><em>F</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a8b4b4f574d74b75d2d4746e07b36e16f"></a><!-- doxytag: member="FFPACK::operator<<" ref="a8b4b4f574d74b75d2d4746e07b36e16f" args="(std::ostream &o, const UnparametricField< T > &F)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::ostream& FFPACK::operator<< </td> <td>(</td> <td class="paramtype">std::ostream & </td> <td class="paramname"><em>o</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const UnparametricField< T > & </td> <td class="paramname"><em>F</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="aa3b627889642c2bcc578621430e64fbe"></a><!-- doxytag: member="FFPACK::Caster" ref="aa3b627889642c2bcc578621430e64fbe" args="(Target &t, const Source &s)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Target& FFPACK::Caster </td> <td>(</td> <td class="paramtype">Target & </td> <td class="paramname"><em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const Source & </td> <td class="paramname"><em>s</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> </div> <hr class="footer"/><address class="footer"><small>Generated on Mon Aug 29 2011 for FflasFfpack 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>