One Hat Cyber Team
Your IP :
216.73.216.216
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
Macaulay2
/
LLLBases
/
html
/
Edit File:
___L__L__L.html
<!DOCTYPE html> <html lang="en"> <head> <title>LLL -- compute an LLL basis</title> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <link type="text/css" rel="stylesheet" href="../../../../Macaulay2/Style/doc.css"> <link rel="stylesheet" href="../../../../Macaulay2/Style/katex/katex.min.css"> <script defer="defer" src="../../../../Macaulay2/Style/katex/katex.min.js"></script> <script defer="defer" src="../../../../Macaulay2/Style/katex/contrib/auto-render.min.js"></script> <script> var macros = { "\\break": "\\\\", "\\ZZ": "\\mathbb{Z}", "\\NN": "\\mathbb{N}", "\\QQ": "\\mathbb{Q}", "\\RR": "\\mathbb{R}", "\\CC": "\\mathbb{C}", "\\PP": "\\mathbb{P}" }, delimiters = [ { left: "$$", right: "$$", display: true}, { left: "\\[", right: "\\]", display: true}, { left: "$", right: "$", display: false}, { left: "\\(", right: "\\)", display: false} ], ignoredTags = [ "kbd", "var", "samp", "script", "noscript", "style", "textarea", "pre", "code", "option" ]; document.addEventListener("DOMContentLoaded", function() { renderMathInElement(document.body, { delimiters: delimiters, macros: macros, ignoredTags: ignoredTags, trust: true }); }); </script> <style>.katex { font-size: 1em; }</style> <script defer="defer" src="../../../../Macaulay2/Style/katex/contrib/copy-tex.min.js"></script> <script defer="defer" src="../../../../Macaulay2/Style/katex/contrib/render-a11y-string.min.js"></script> <script src="../../../../Macaulay2/Style/prism.js"></script> <script>var current_version = '1.25.06';</script> <script src="../../../../Macaulay2/Style/version-select.js"></script> <link type="image/x-icon" rel="icon" href="../../../../Macaulay2/Style/icon.gif"> </head> <body> <div id="buttons"> <div> <a href="https://macaulay2.com/">Macaulay2</a> <span id="version-select-container"></span> » <a title="Macaulay2 documentation" href="../../Macaulay2Doc/html/index.html">Documentation </a> <br><a href="../../Macaulay2Doc/html/_packages_spprovided_spwith_sp__Macaulay2.html">Packages</a> » <span><a title="lattice reduction (Lenstra-Lenstra-Lovasz bases)" href="index.html">LLLBases</a> » <a title="compute an LLL basis" href="___L__L__L.html">LLL</a></span> </div> <div class="right"> <form method="get" action="https://www.google.com/search"> <input placeholder="Search" type="text" name="q" value=""> <input type="hidden" name="q" value="site:macaulay2.com/doc"> </form> <a href="_kernel__L__L__L.html">next</a> | previous | <a href="_kernel__L__L__L.html">forward</a> | <a href="index.html">backward</a> | <a href="index.html">up</a> | <a href="master.html">index</a> | <a href="toc.html">toc</a> </div> </div> <hr> <div> <h1>LLL -- compute an LLL basis</h1> <ul> <li> <dl class="element"> <dt>Usage: </dt> <dd><code class="language-macaulay2">LLL m</code></dd> </dl> </li> <li>Inputs: <ul> <li><span><span class="tt">m</span>, <span>a <a title="the class of all matrices" href="../../Macaulay2Doc/html/___Matrix.html">matrix</a></span>, or a <a title="the class of all mutable matrices" href="../../Macaulay2Doc/html/___Mutable__Matrix.html">MutableMatrix</a>, over <a title="the class of all integers" href="../../Macaulay2Doc/html/___Z__Z.html">ZZ</a>, whose columns are linearly independent</span></li> </ul> </li> <li><a href="../../Macaulay2Doc/html/_using_spfunctions_spwith_spoptional_spinputs.html">Optional inputs</a>: <ul> <li><span><a title="also find change of basis matrix" href="___L__L__L_lp..._cm__Change__Matrix_eq_gt..._rp.html">ChangeMatrix</a><span class="tt"> => </span><span class="tt">...</span>, <span>default value false</span>, <span>also find change of basis matrix</span></span></li> <li><span><span class="tt">Limit</span> (missing documentation)<!--tag: [LLL, Limit]--> <span class="tt"> => </span><span class="tt">...</span>, <span>default value infinity</span>, <span></span></span></li> <li><span><a title="choose among different algorithms" href="___L__L__L_lp..._cm__Strategy_eq_gt..._rp.html">Strategy</a><span class="tt"> => </span><span class="tt">...</span>, <span>default value NTL</span>, <span>choose among different algorithms</span></span></li> <li><span><span class="tt">Threshold</span> (missing documentation)<!--tag: [LLL, Threshold]--> <span class="tt"> => </span><span class="tt">...</span>, <span>default value null</span>, <span></span></span></li> </ul> </li> <li>Outputs: <ul> <li><span>A matrix or mutable matrix, respectively, whose columns form an LLL (Lenstra-Lenstra-Lovasz) basis of the image lattice of the matrix</span></li> </ul> </li> </ul> <div> <h2>Description</h2> <p></p> This function is provided by the package <a title="lattice reduction (Lenstra-Lenstra-Lovasz bases)" href="index.html">LLLBases</a>. If the optional argument <span class="tt">ChangeMatrix=>true</span> is given, then the output is a pair of matrices: the first is the LLL matrix as above, and the second is the change of basis matrix from the original basis to the new basis. <p></p> In this example, we compute the LLL basis of the nullspace of a matrix. This is an example of Havas et al. <table class="examples"> <tr> <td> <pre><code class="language-macaulay2">i1 : m1 = map(ZZ^10, ZZ^10, (j,i) -> (i+1)^3 * (j+1)^2 + i + j + 2) o1 = | 3 11 31 69 131 223 351 521 739 1011 | | 7 36 113 262 507 872 1381 2058 2927 4012 | | 13 77 249 583 1133 1953 3097 4619 6573 9013 | | 21 134 439 1032 2009 3466 5499 8204 11677 16014 | | 31 207 683 1609 3135 5411 8587 12813 18239 25015 | | 43 296 981 2314 4511 7788 12361 18446 26259 36016 | | 57 401 1333 3147 6137 10597 16821 25103 35737 49017 | | 73 522 1739 4108 8013 13838 21967 32784 46673 64018 | | 91 659 2199 5197 10139 17511 27799 41489 59067 81019 | | 111 812 2713 6414 12515 21616 34317 51218 72919 100020 | 10 10 o1 : Matrix ZZ <-- ZZ</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i2 : m = syz m1 o2 = | -3 -1632481 -2819632 -4476373 -6680969 -9511685 -13046786 | | 8 4353284 7519023 11937004 17815934 25364520 34791469 | | -7 -3809126 -6579152 -10444892 -15588965 -22193990 -30442586 | | 2 1088324 1879762 2984262 4454001 6341156 8697904 | | 0 -1 0 0 0 0 0 | | 0 0 -1 0 0 0 0 | | 0 0 0 -1 0 0 0 | | 0 0 0 0 -1 0 0 | | 0 0 0 0 0 -1 0 | | 0 0 0 0 0 0 -1 | 10 7 o2 : Matrix ZZ <-- ZZ</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i3 : LLL m o3 = | 1 0 1 0 1 1 1 | | -1 1 0 1 0 -1 -2 | | -1 -1 -1 -2 -2 0 1 | | 0 -1 -1 0 1 -1 1 | | 2 1 -1 1 -1 1 -2 | | -1 -1 2 1 1 0 0 | | 0 2 0 0 -1 0 2 | | 0 -1 1 -2 1 -1 -1 | | 0 0 -1 1 1 2 0 | | 0 0 0 0 -1 -1 0 | 10 7 o3 : Matrix ZZ <-- ZZ</code></pre> </td> </tr> </table> It is also possible to get the change of basis matrix from the original basis to the LLL basis. For example, <table class="examples"> <tr> <td> <pre><code class="language-macaulay2">i4 : (n,c) = LLL(m, Strategy => NTL, ChangeMatrix=>true) o4 = (| 1 0 1 0 1 1 1 |, | 148443 361542 392022 200620 -47785 309365 | -1 1 0 1 0 -1 -2 | | -2 -1 1 -1 1 -1 | -1 -1 -1 -2 -2 0 1 | | 1 1 -2 -1 -1 0 | 0 -1 -1 0 1 -1 1 | | 0 -2 0 0 1 0 | 2 1 -1 1 -1 1 -2 | | 0 1 -1 2 -1 1 | -1 -1 2 1 1 0 0 | | 0 0 1 -1 -1 -2 | 0 2 0 0 -1 0 2 | | 0 0 0 0 1 1 | 0 -1 1 -2 1 -1 -1 | | 0 0 -1 1 1 2 0 | | 0 0 0 0 -1 -1 0 | ------------------------------------------------------------------------ -331062 |) 2 | 0 | -2 | 1 | 0 | 0 | o4 : Sequence</code></pre> </td> </tr> <tr> <td> <pre><code class="language-macaulay2">i5 : m * c == n o5 = true</code></pre> </td> </tr> </table> </div> <div> <h2>Caveat</h2> If the strategy given is not an NTL strategy, then the columns of the matrix m must be linearly independent.In any case, the matrix must be defined over the ring ZZ. </div> <div> <h2>See also</h2> <ul> <li><span><a title="is a basis an LLL basis?" href="_is__L__L__L.html">isLLL</a> -- is a basis an LLL basis?</span></li> <li><span><a title="compute the gcd of integers, and small multipliers" href="_gcd__L__L__L.html">gcdLLL</a> -- compute the gcd of integers, and small multipliers</span></li> <li><span><span class="tt">kernelLLL</span> (missing documentation)<!--tag: kernelLLL--> </span></li> <li><span><span class="tt">hermite</span> (missing documentation)<!--tag: hermite--> </span></li> </ul> </div> <div> <div class="waystouse"> <h2>Ways to use <span class="tt">LLL</span>:</h2> <ul> <li><kbd>LLL(Matrix)</kbd></li> <li><kbd>LLL(MutableMatrix)</kbd></li> </ul> </div> <div class="waystouse"> <h2>For the programmer</h2> <p>The object <a title="compute an LLL basis" href="___L__L__L.html">LLL</a> is <span>a <a title="a type of method function" href="../../Macaulay2Doc/html/___Method__Function__With__Options.html">method function with options</a></span>.</p> </div> <hr> <div class="waystouse"> <p>The source of this document is in <span class="tt">LLLBases.m2:851:0</span>.</p> </div> </div> </div> </body> </html>
Simpan