Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Let the user choose what function to use for the computation of Groebner bases. #25

Merged
merged 3 commits into from
Oct 3, 2018
Merged

Let the user choose what function to use for the computation of Groebner bases. #25

merged 3 commits into from
Oct 3, 2018

Conversation

erich-9
Copy link
Contributor

@erich-9 erich-9 commented Oct 1, 2018

This is an attempt to address #20 and replaces #21.

At the moment, GBNPGroebnerBasis is used at many places in the source. The first commit in this pull request replaces all occurrences of this function with a variable GroebnerBasisFunction so that QPA can work with whatever package computing Groebner bases. The user may now specify as a third optional argument for PathAlgebra this GroebnerBasisFunction. By default nothing changes.

The second and third commit of this pull request define a function HighLevelGroebnerBasis as an alternative to GBNPGroebnerBasis. I wrote this as a temporary fix for #20.

Maybe it is enough to consider only the first commit for merging in case you think that the last two commits 045eab7 and 1afafbb make the source code unnecessarily bloated and intransparent.

  Replaced everywhere GBNPGroebnerBasis with GroebnerBasisFunction.
  This is a high-level implementation and therefore certainly not as fast
  as GBNPGroebnerBasis. However, GBNPGroebnerBasis sometimes results in
  unpredictable bugs such that having an alternative seems reasonable.
@codecov
Copy link

codecov bot commented Oct 1, 2018

Codecov Report

Merging #25 into master will decrease coverage by 0.11%.
The diff coverage is 26.31%.

@@            Coverage Diff             @@
##           master      #25      +/-   ##
==========================================
- Coverage   47.61%   47.49%   -0.12%     
==========================================
  Files          68       70       +2     
  Lines       23278    23401     +123     
==========================================
+ Hits        11083    11115      +32     
- Misses      12195    12286      +91
Impacted Files Coverage Δ
lib/projpathalgmodule.gi 49.44% <ø> (ø) ⬆️
lib/modulehom.gi 66.51% <0%> (ø) ⬆️
lib/pathalgpredef.gi 17.33% <0%> (ø) ⬆️
lib/gbhighlevel.gd 100% <100%> (ø)
lib/pathalg.gd 100% <100%> (ø) ⬆️
lib/gbhighlevel.gi 18.69% <18.69%> (ø)
lib/pathalgideal.gi 40.3% <20%> (-0.21%) ⬇️
lib/pathalg.gi 51.19% <63.63%> (+0.1%) ⬆️
lib/combinatorialrep.gi 63.15% <0%> (-0.28%) ⬇️
lib/pathalgkoszul.gi 12.76% <0%> (-0.14%) ⬇️
... and 26 more

@oysteins oysteins merged commit dc73769 into gap-packages:master Oct 3, 2018
@sunnyquiver
Copy link
Contributor

Thank you very much for this contribution!

The QPA-team.

@olexandr-konovalov
Copy link
Member

Observer's remark: It will be nice to add some tests. As you can see at https://codecov.io/gh/gap-packages/qpa/pull/25/diff, a large fraction of new code is not exercised. Even if some testing of this code has been performed while reviewing this PR, it will not be checked by future tests...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants