Skip to content

Commit

Permalink
Merge pull request #160 from sumiya11/upd-docs
Browse files Browse the repository at this point in the history
Docs: remove sections tutorial, development
  • Loading branch information
sumiya11 authored Oct 13, 2024
2 parents 4760481 + 288e69f commit b57919f
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 7 deletions.
6 changes: 4 additions & 2 deletions docs/_layout/sidebar.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ <h1 class="sidebar-title"><a href="/">Groebner<span style="opacity:0.4">.jl</spa
<nav class="sidebar-nav" style="opacity: 0.9">
<a class="sidebar-nav-item {{ispage index.html}}active{{end}}" href="/">Home</a>
<!-- <a class="sidebar-nav-item {{ispage tutorial.html}}active{{end}}" href="/tutorial/">Tutorials</a> -->
<li class="sidebar-nav-item {{ispage tutorial.html}}active{{end}}"><a href="/tutorial/">Introductory tutorial</a>
<!-- <li class="sidebar-nav-item {{ispage tutorial.html}}active{{end}}"><a href="/tutorial/">Introductory tutorial</a> -->
<!-- <ul class="menu-list-child-list ">
<li class="menu-list-item {{ispage tutorial.html}}active{{end}}"><a href="/tutorial/#introduction" class="menu-list-link">Introduction</a>
<li class="menu-list-item {{ispage tutorial.html}}active{{end}}"><a href="/tutorial/#gcd_rref" class="menu-list-link">Gcd & Rref</a>
Expand All @@ -50,8 +50,10 @@ <h1 class="sidebar-title"><a href="/">Groebner<span style="opacity:0.4">.jl</spa
class="menu-list-link">Monomial orderings</a>
<li class="menu-list-item {{ispage interface.html}}active{{end}}"><a href="/interface/#learn_and_apply"
class="menu-list-link">Learn and Apply</a>
<li class="menu-list-item {{ispage interface.html}}active{{end}}"><a href="/interface/#lowlevel"
class="menu-list-link">Low-level interface</a>
</ul>
<li class="sidebar-nav-item {{ispage developer.html}}active{{end}}"><a href="/developer/">Development</a>
<!-- <li class="sidebar-nav-item {{ispage developer.html}}active{{end}}"><a href="/developer/">Development</a> -->
</nav>

</div>
Expand Down
15 changes: 11 additions & 4 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ where appropriate -->
![](/assets/logo-with-text.svg)
@@

Groebner.jl is a package for fast and generic Gröbner bases computations based on Faugère's [F4 algorithm](https://www-polsys.lip6.fr/~jcf/Papers/F99a.pdf) written in Julia.
Groebner.jl is a package for Gröbner bases computation based on the Faugère's F4 algorithm written in Julia.

## Installation

Expand All @@ -24,12 +24,19 @@ Pkg.add(url="https://github.com/sumiya11/Groebner.jl") # hide
using Pkg; Pkg.add("Groebner")
```

See [Interface](interface) for a description of all exported functions. For a quick introduction to Groebner bases we refer to [Tutorials](tutorial). Meanwhile, below are simple examples.
## Features

Groebner.jl features:

- Gröbner bases over integers modulo a prime and over the rationals
- Gröbner trace algorithms
- Multi-threading by default

See [Interface](interface) page for a list of all exported functions.

## Examples

Currently, polynomials from AbstractAlgebra.jl, DynamicPolynomials.jl, and Nemo.jl
are supported as input.
As input, Groebner.jl supports polynomials from AbstractAlgebra.jl, DynamicPolynomials.jl, and Nemo.jl.

### with AbstractAlgebra.jl

Expand Down
26 changes: 26 additions & 0 deletions docs/interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,29 @@ using Groebner # hide
{{doc groebner_learn groebner_learn fn}}

{{doc groebner_apply! groebner_apply! fn}}

## Low-level interface

```julia:load_groebner
using Groebner # hide
```

Some functions in the interface have a low-level entry point. Low-level functions accept and output ''raw'' exponent vectors and coefficients. This could be convenient when one does not want to depend on a frontend.

For example,

```julia:lowlevel
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)
```

The list of functions that provide a low-level entry point: `groebner`, `normalform`, `isgroebner`, `groebner_learn`, `groebner_apply`.

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.
2 changes: 1 addition & 1 deletion src/interface.jl
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ flag, gb_2 = groebner_apply!(
@assert gb_2 == groebner([2x2*y2^2 + 3x2, 4y2*x2^2 + 5y2], ordering=DegRevLex())
```
Using `groebner_apply!` in batches (works only in `:degrevlex` at the moment):
Using `groebner_apply!` in batches:
```jldoctest
using Groebner, AbstractAlgebra
Expand Down

0 comments on commit b57919f

Please sign in to comment.