Skip to content

Commit

Permalink
Deploying to gh-pages from @ 1072de6 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
sumiya11 committed Oct 14, 2024
1 parent ffc06e8 commit 16f15d1
Show file tree
Hide file tree
Showing 12 changed files with 83 additions and 35 deletions.
8 changes: 8 additions & 0 deletions assets/interface/code/lowlevel.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# This file was generated, do not modify it. # hide
using Groebner
# define {x y - 1, x^3 + 7 y^2} modulo 65537 in DRL
ring = Groebner.PolyRing(2, Groebner.DegRevLex(), 65537)
monoms = [ [[1, 1], [0, 0]], [[3, 0], [0, 2]] ]
coeffs = [ [1, -1], [1, 7] ]
# compute a GB
gb_monoms, gb_coeffs = Groebner.groebner(ring, monoms, coeffs)
Empty file.
1 change: 1 addition & 0 deletions assets/interface/code/output/lowlevel.res
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(Vector{Vector{UInt32}}[[[0x00000001, 0x00000001], [0x00000000, 0x00000000]], [[0x00000000, 0x00000003], [0x00000002, 0x00000000]], [[0x00000003, 0x00000000], [0x00000000, 0x00000002]]], Vector{UInt32}[[0x00000001, 0x00010000], [0x00000001, 0x00004925], [0x00000001, 0x00000007]])
2 changes: 1 addition & 1 deletion assets/tutorial/code/output/gcd3.out
Original file line number Diff line number Diff line change
@@ -1 +1 @@
81.782 μs (1669 allocations: 64.62 KiB)
84.277 μs (1669 allocations: 64.62 KiB)
2 changes: 1 addition & 1 deletion assets/tutorial/code/output/gcd4.out
Original file line number Diff line number Diff line change
@@ -1 +1 @@
151.401 μs (2706 allocations: 160.52 KiB)
152.125 μs (2706 allocations: 160.52 KiB)
18 changes: 9 additions & 9 deletions assets/tutorial/code/output/graph2.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 9 additions & 9 deletions assets/tutorial/code/output/graphcolored.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 5 additions & 2 deletions benchmarks/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
<nav class="sidebar-nav" style="opacity: 0.9">
<a class="sidebar-nav-item " href="/Groebner.jl/">Home</a>
<!-- <a class="sidebar-nav-item {{ispage tutorial.html}}active{{end}}" href="/Groebner.jl/tutorial/">Tutorials</a> -->
<li class="sidebar-nav-item "><a href="/Groebner.jl/tutorial/">Introductory tutorial</a>
<!-- <li class="sidebar-nav-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/">Introductory tutorial</a> -->
<!-- <ul class="menu-list-child-list ">
<li class="menu-list-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/#introduction" class="menu-list-link">Introduction</a>
<li class="menu-list-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/#gcd_rref" class="menu-list-link">Gcd & Rref</a>
Expand All @@ -77,8 +77,10 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
class="menu-list-link">Monomial orderings</a>
<li class="menu-list-item "><a href="/Groebner.jl/interface/#learn_and_apply"
class="menu-list-link">Learn and Apply</a>
<li class="menu-list-item "><a href="/Groebner.jl/interface/#low-level_interface"
class="menu-list-link">Low-level interface</a>
</ul>
<li class="sidebar-nav-item "><a href="/Groebner.jl/developer/">Development</a>
<!-- <li class="sidebar-nav-item {{ispage developer.html}}active{{end}}"><a href="/Groebner.jl/developer/">Development</a> -->
</nav>

</div>
Expand All @@ -92,6 +94,7 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
</div>
</div>
<div class="content container">

<!-- Content appended here -->
<div class="franklin-content"><h1 id="benchmarks"><a href="#benchmarks" class="header-anchor">Benchmarks</a></h1>
<p>Here we compare Groebner.jl vs Singular.jl groebner implementations over fields of <em>characteristic zero</em>. The table below lists runtimes for several standard benchmark systems in seconds</p>
Expand Down
7 changes: 5 additions & 2 deletions developer/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
<nav class="sidebar-nav" style="opacity: 0.9">
<a class="sidebar-nav-item " href="/Groebner.jl/">Home</a>
<!-- <a class="sidebar-nav-item {{ispage tutorial.html}}active{{end}}" href="/Groebner.jl/tutorial/">Tutorials</a> -->
<li class="sidebar-nav-item "><a href="/Groebner.jl/tutorial/">Introductory tutorial</a>
<!-- <li class="sidebar-nav-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/">Introductory tutorial</a> -->
<!-- <ul class="menu-list-child-list ">
<li class="menu-list-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/#introduction" class="menu-list-link">Introduction</a>
<li class="menu-list-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/#gcd_rref" class="menu-list-link">Gcd & Rref</a>
Expand All @@ -78,8 +78,10 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
class="menu-list-link">Monomial orderings</a>
<li class="menu-list-item "><a href="/Groebner.jl/interface/#learn_and_apply"
class="menu-list-link">Learn and Apply</a>
<li class="menu-list-item "><a href="/Groebner.jl/interface/#low-level_interface"
class="menu-list-link">Low-level interface</a>
</ul>
<li class="sidebar-nav-item active"><a href="/Groebner.jl/developer/">Development</a>
<!-- <li class="sidebar-nav-item {{ispage developer.html}}active{{end}}"><a href="/Groebner.jl/developer/">Development</a> -->
</nav>

</div>
Expand All @@ -93,6 +95,7 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
</div>
</div>
<div class="content container">

<!-- Content appended here -->
<div class="franklin-content"><h2 id="development"><a href="#development" class="header-anchor">Development</a></h2>

Expand Down
22 changes: 18 additions & 4 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
<nav class="sidebar-nav" style="opacity: 0.9">
<a class="sidebar-nav-item active" href="/Groebner.jl/">Home</a>
<!-- <a class="sidebar-nav-item {{ispage tutorial.html}}active{{end}}" href="/Groebner.jl/tutorial/">Tutorials</a> -->
<li class="sidebar-nav-item "><a href="/Groebner.jl/tutorial/">Introductory tutorial</a>
<!-- <li class="sidebar-nav-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/">Introductory tutorial</a> -->
<!-- <ul class="menu-list-child-list ">
<li class="menu-list-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/#introduction" class="menu-list-link">Introduction</a>
<li class="menu-list-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/#gcd_rref" class="menu-list-link">Gcd & Rref</a>
Expand All @@ -78,8 +78,10 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
class="menu-list-link">Monomial orderings</a>
<li class="menu-list-item "><a href="/Groebner.jl/interface/#learn_and_apply"
class="menu-list-link">Learn and Apply</a>
<li class="menu-list-item "><a href="/Groebner.jl/interface/#low-level_interface"
class="menu-list-link">Low-level interface</a>
</ul>
<li class="sidebar-nav-item "><a href="/Groebner.jl/developer/">Development</a>
<!-- <li class="sidebar-nav-item {{ispage developer.html}}active{{end}}"><a href="/Groebner.jl/developer/">Development</a> -->
</nav>

</div>
Expand All @@ -93,16 +95,28 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
</div>
</div>
<div class="content container">

<!-- Content appended here -->
<div class="franklin-content"><div class="im-50"><img src="/Groebner.jl/assets/logo-with-text.svg" alt="" /></div>
<p>Groebner.jl is a package for fast and generic Gröbner bases computations based on Faugère&#39;s <a href="https://www-polsys.lip6.fr/~jcf/Papers/F99a.pdf">F4 algorithm</a> written in Julia.</p>
<p>Groebner.jl is a package for Gröbner bases computations based on the Faugère&#39;s F4 algorithm written in Julia.</p>
<h2 id="installation"><a href="#installation" class="header-anchor">Installation</a></h2>
<p>To install Groebner.jl, run the following in the Julia REPL:</p>

<pre><code class="julia hljs"><span class="hljs-keyword">using</span> Pkg; Pkg.add(<span class="hljs-string">&quot;Groebner&quot;</span>)</code></pre>
<p>See <a href="interface">Interface</a> for a description of all exported functions. For a quick introduction to Groebner bases we refer to <a href="tutorial">Tutorials</a>. Meanwhile, below are simple examples.</p>
<h2 id="features"><a href="#features" class="header-anchor">Features</a></h2>
<p>Groebner.jl features:</p>
<ul>
<li><p>Gröbner basis computation over integers modulo a prime and over the rationals</p>
</li>
<li><p>Gröbner trace algorithms</p>
</li>
<li><p>Multi-threading by default</p>
</li>
</ul>
<p>See <a href="interface">Interface</a> page for a list of all exported functions.</p>
<h2 id="examples"><a href="#examples" class="header-anchor">Examples</a></h2>
<p>Currently, polynomials from AbstractAlgebra.jl, DynamicPolynomials.jl, and Nemo.jl are supported as input.</p>
<p>As input, Groebner.jl supports polynomials from AbstractAlgebra.jl, DynamicPolynomials.jl, and Nemo.jl.</p>
<h3 id="with_abstractalgebrajl"><a href="#with_abstractalgebrajl" class="header-anchor">with AbstractAlgebra.jl</a></h3>
<p>First, import AbstractAlgebra.jl. Then, we can create an array of polynomials over a finite field</p>

Expand Down
22 changes: 19 additions & 3 deletions interface/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
<nav class="sidebar-nav" style="opacity: 0.9">
<a class="sidebar-nav-item " href="/Groebner.jl/">Home</a>
<!-- <a class="sidebar-nav-item {{ispage tutorial.html}}active{{end}}" href="/Groebner.jl/tutorial/">Tutorials</a> -->
<li class="sidebar-nav-item "><a href="/Groebner.jl/tutorial/">Introductory tutorial</a>
<!-- <li class="sidebar-nav-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/">Introductory tutorial</a> -->
<!-- <ul class="menu-list-child-list ">
<li class="menu-list-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/#introduction" class="menu-list-link">Introduction</a>
<li class="menu-list-item {{ispage tutorial.html}}active{{end}}"><a href="/Groebner.jl/tutorial/#gcd_rref" class="menu-list-link">Gcd & Rref</a>
Expand All @@ -78,8 +78,10 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
class="menu-list-link">Monomial orderings</a>
<li class="menu-list-item active"><a href="/Groebner.jl/interface/#learn_and_apply"
class="menu-list-link">Learn and Apply</a>
<li class="menu-list-item active"><a href="/Groebner.jl/interface/#low-level_interface"
class="menu-list-link">Low-level interface</a>
</ul>
<li class="sidebar-nav-item "><a href="/Groebner.jl/developer/">Development</a>
<!-- <li class="sidebar-nav-item {{ispage developer.html}}active{{end}}"><a href="/Groebner.jl/developer/">Development</a> -->
</nav>

</div>
Expand All @@ -93,6 +95,7 @@ <h1 class="sidebar-title"><a href="/Groebner.jl/">Groebner<span style="opacity:0
</div>
</div>
<div class="content container">

<!-- Content appended here -->
<div class="franklin-content"><h1 id="interface"><a href="#interface" class="header-anchor">Interface</a></h1>
<h2 id="exported_functions"><a href="#exported_functions" class="header-anchor">Exported functions</a></h2>
Expand Down Expand Up @@ -548,7 +551,7 @@ <h2 id="example__12"><a href="#example__12" class="header-anchor">Example</a></h

<span class="hljs-meta">@assert</span> flag
<span class="hljs-meta">@assert</span> gb_2 == groebner([<span class="hljs-number">2</span>x2*y2^<span class="hljs-number">2</span> + <span class="hljs-number">3</span>x2, <span class="hljs-number">4</span>y2*x2^<span class="hljs-number">2</span> + <span class="hljs-number">5</span>y2], ordering=DegRevLex())</code></pre>
<p>Using <code>groebner_apply&#33;</code> in batches &#40;works only in <code>:degrevlex</code> at the moment&#41;:</p>
<p>Using <code>groebner_apply&#33;</code> in batches:</p>
<pre><code class="julia hljs"><span class="hljs-keyword">using</span> Groebner, AbstractAlgebra
R, (x, y) = polynomial_ring(GF(<span class="hljs-number">2</span>^<span class="hljs-number">31</span>-<span class="hljs-number">1</span>), [<span class="hljs-string">&quot;x&quot;</span>, <span class="hljs-string">&quot;y&quot;</span>], internal_ordering=:degrevlex)

Expand Down Expand Up @@ -622,6 +625,19 @@ <h2 id="notes__6"><a href="#notes__6" class="header-anchor">Notes</a></h2>
</div>
</div>

<h2 id="low-level_interface"><a href="#low-level_interface" class="header-anchor">Low-level interface</a></h2>

<p>Some functions in the interface have a low-level entry point. Low-level functions accept and output &#39;&#39;raw&#39;&#39; exponent vectors and coefficients. This could be convenient when one does not want to depend on a frontend.</p>
<p>For example,</p>
<pre><code class="julia hljs"><span class="hljs-keyword">using</span> Groebner
<span class="hljs-comment"># define {x y - 1, x^3 + 7 y^2} modulo 65537 in DRL</span>
ring = Groebner.PolyRing(<span class="hljs-number">2</span>, Groebner.DegRevLex(), <span class="hljs-number">65537</span>)
monoms = [ [[<span class="hljs-number">1</span>, <span class="hljs-number">1</span>], [<span class="hljs-number">0</span>, <span class="hljs-number">0</span>]], [[<span class="hljs-number">3</span>, <span class="hljs-number">0</span>], [<span class="hljs-number">0</span>, <span class="hljs-number">2</span>]] ]
coeffs = [ [<span class="hljs-number">1</span>, -<span class="hljs-number">1</span>], [<span class="hljs-number">1</span>, <span class="hljs-number">7</span>] ]
<span class="hljs-comment"># compute a GB</span>
gb_monoms, gb_coeffs = Groebner.groebner(ring, monoms, coeffs)</code></pre><pre><code class="plaintext hljs">(Vector{Vector{UInt32}}[[[0x00000001, 0x00000001], [0x00000000, 0x00000000]], [[0x00000000, 0x00000003], [0x00000002, 0x00000000]], [[0x00000003, 0x00000000], [0x00000000, 0x00000002]]], Vector{UInt32}[[0x00000001, 0x00010000], [0x00000001, 0x00004925], [0x00000001, 0x00000007]])</code></pre>
<p>The list of functions that provide a low-level entry point: <code>groebner</code>, <code>normalform</code>, <code>isgroebner</code>, <code>groebner_learn</code>, <code>groebner_apply</code>.</p>
<p>The low-level functions may be faster than their user-facing analogues since they bypass internal checks and conversions. Low-level functions do not make any specific assumptions, that is, all of these are correctly handled in the input: unsorted monomials, nonnormalized coefficients, duplicate terms, aliasing memory.</p>
<div class="page-foot">
<div class="copyright">
&copy; Alexander Demin, Shashi Gowda, and others. Last modified: October 14, 2024. Website built with <a href="https://github.com/tlienart/Franklin.jl">Franklin.jl</a> and <a href="https://github.com/tlienart/PkgPage.jl">PkgPage.jl</a>.
Expand Down
Loading

0 comments on commit 16f15d1

Please sign in to comment.