Giter Club home page Giter Club logo

groebnerwalk.jl's Introduction

Gröbner walk

DOI

GroebnerWalk.jl is a Julia package providing implementations of Gröbner walk algorithms for computing Gröbner bases over fields on top of Oscar.jl.

Usage

GroebnerWalk.jl provides its entire functionality through the function groebner_walk. The following example demonstrates the usage. First, we define the ideal Oscar.jl.

using Oscar

R, (x,y) = QQ[:x, :y]                  # define ring ...
I = ideal([y^4+ x^3-x^2+x,x^4])        # ... and ideal

Then, we can pass the ideal to groebner_walk to calculate the Gröbner basis. Here, we want a Gröbner basis with respect to the lexicographic ordering on R.

using GroebnerWalk

groebner_walk(I, lex(R)) # compute the Groebner basis

Status

This repository represents the status of the code as a submission for MEGA 2024. It is slated for inclusion into OSCAR as experimental package.

At the moment, the standard walk by Collart, Kalkbrener and Mall (1997) and the generic walk by Fukuda et al. are implemented.

Contacts

The library is maintained by Kamillo Ferry (kafe (at) kafe (dot) dev) and Francesco Nowell (francesconowell (at) gmail (dot) com).

Acknowledgement

The current implementation is based on an implementation by Jordi Welp. We thank him for laying the groundwork for this package.

References

  • Collart, S., M. Kalkbrener, and D. Mall. ‘Converting Bases with the Gröbner Walk’. Journal of Symbolic Computation 24, no. 3–4 (September 1997): 465–69. https://doi.org/10.1006/jsco.1996.0145.
  • Fukuda, K., A. N. Jensen, N. Lauritzen, and R. Thomas. ‘The Generic Gröbner Walk’. Journal of Symbolic Computation 42, no. 3 (1 March 2007): 298–312. https://doi.org/10.1016/j.jsc.2006.09.004.

groebnerwalk.jl's People

Contributors

ooinaruhugh avatar ortfs avatar

Watchers

 avatar  avatar

groebnerwalk.jl's Issues

`groebner_walk` fails on OSCAR v1.0.2

How to reproduce

see examples/zero-dimensional/cyclic5.jl

The Error

ERROR: UndefVarError: sym2ringorder not defined
Stacktrace:
  [1] get_fancy_ordering(ordering::Symbol, ordering2::Symbol)
    @ Singular ~/.julia/packages/Singular/tSLjL/src/poly/poly.jl:1575
  [2] _PolynomialRing(R::Singular.Rationals, s::Vector{Symbol}, ordering::Symbol, ordering2::Symbol, cached::Bool, degree_bound::Int64)
    @ Singular ~/.julia/packages/Singular/tSLjL/src/poly/poly.jl:1598
  [3] #polynomial_ring#96
    @ ~/.julia/packages/Singular/tSLjL/src/poly/poly.jl:1607 [inlined]
  [4] singular_poly_ring(Rx::QQMPolyRing; keep_ordering::Bool)
    @ Oscar ~/.julia/packages/Oscar/CziNR/src/Rings/mpoly.jl:550
  [5] singular_assure(I::Oscar.IdealGens{QQMPolyRingElem})
    @ Oscar ~/.julia/packages/Oscar/CziNR/src/Rings/mpoly.jl:676
  [6] singular_generators(B::Oscar.IdealGens{QQMPolyRingElem}, monorder::MonomialOrdering{QQMPolyRing})
    @ Oscar ~/.julia/packages/Oscar/CziNR/src/Rings/mpoly.jl:311
  [7] _compute_standard_basis(B::Oscar.IdealGens{QQMPolyRingElem}, ordering::MonomialOrdering{QQMPolyRing}, complete_reduction::Bool)
    @ Oscar ~/.julia/packages/Oscar/CziNR/src/Rings/groebner.jl:107
  [8] standard_basis(I::MPolyIdeal{QQMPolyRingElem}; ordering::MonomialOrdering{QQMPolyRing}, complete_reduction::Bool, algorithm::Symbol)
    @ Oscar ~/.julia/packages/Oscar/CziNR/src/Rings/groebner.jl:162
  [9] #groebner_basis#388
    @ ~/.julia/packages/Oscar/CziNR/src/Rings/groebner.jl:298 [inlined]
 [10] groebner_walk(I::MPolyIdeal{QQMPolyRingElem}, target::MonomialOrdering{QQMPolyRing}, start::MonomialOrdering{QQMPolyRing}; perturbation_degree::Int64, algorithm::Symbol)
    @ GroebnerWalk /home/datastore/ferry/src/GroebnerWalk.jl/src/walk.jl:105
 [11] top-level scope
    @ ./timing.jl:210 [inlined]
 [12] top-level scope
    @ ./REPL[16]:0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.