Tag Line

PolyBoRi was created by man. There are two developers. And they have a plan.“

Monday, February 14, 2011

First release candidate of PolyBoRi 0.7

Wow, that was hard! But finally we manged to complete our goals for PolyBoRi 0.7, whose first release candidate can be found at Sourceforge.

Indeed, the ChangeLog is short:
Release Name: 0.7.0:
* Polynomials, monomials, variables, and BooleSets now own a reference to

  a fully-functionally BoolePolyRing (including ordering)
* Orderings can work independently from ring
* Simplified interface: remove *Assign() variants from diagrams
* Added polybori.nf.simple_nf
* Simplification of declare_ring in ipbori
* Rename BoolePolynomials::reducibleBy ->

* Unittests for libpolybori are available, covering 98% of libpolybori
* Added experimental PolyGUI

But what does this actually mean? We completely rewrote the Boolean ring management. Each polynomial now owns a reference to a full ring (including the ordering). This erases several implicit assumptions - like having a global ordering - which were not transparent to the user. For supporting this, we added atomic unit tests for libpolybori (98% coverage, the remaining 2% correspond to unhitable C++-artifacts). A corollary of the latter is, that bugs at corner cases of the implementation had been found and fixed.

Another nice gimmick: there also a small QT-based GUI for interactive use of the groebner_basis command. People can play around without further knowledge of our text-based frontends.

For the full release, PolyBoRi 0.7 has to be tested together with Singular and Sage. For the latter the interface has to be updated for sure (the current one works around some of the issues mentioned above, also we broke the one or another internals Sage might use). For Singular the things got much easier recently: now Singular's owns a Python interface, which can be used to access PolyBoRi as I explained here.

After that, I will start collecting todos for 0.8!

My best,

No comments:

Post a Comment