> | ### D.14.7 polybori_lib Library: polybori.lib Purpose: A Singular Library Interface for PolyBoRi Authors: Maximilian Kammermeier: Max0791@gmx.de Susanne Scherer: sscherer90@yahoo.de Overview: A library for using `PolyBoRi` in the SINGULAR interface, with procedures that convert structures (polynomials, rings, ideals) in both directions. Therefore, it is possible to compute boolean groebner basis via boolean_std. Polynomials can be converted to zero-supressed decision diagrams (zdd) and vice versa. For usability it defines the `PolyBoRi` types `bideal`, `bpoly`, and `bring` which are equivalent to Singular's `ideal`, `poly`, and `ring`, as well as `bset` which corresponds to the type `zdd` introduced here. In addition `bvar(i)` constructs the Boolean variable corresponding to `var(i)` from current `ring`; For convenience, the corresponding types can be converted explicitly or implicitly while assigning. Also several SINGULAR operators were overloaded: `bring` comes with `nvars`, `bpoly` implements `lead`, `leadmonom` and `leadcoef`. Objects of this type may be added and multiplied, too. Finally, `bideal` yields `std` and `size` as well as addition and element access. Hence, by using these types `PolyBoRi` functionality can be carried out seamlessly in SINGULAR: `> LIB "polybori.lib";` `> ring r0=2,x(1..4),lp;` `> def x=bvar; // enforce Boolean variables` `> bpoly f1=x(1)+x(4);` `> bpoly f2=x(1)+x(3)*x(1);` `> bideal bI=list(f1,f2);` `> std(bI);` `_[1] = x(1) + x(4)` `_[2] = x(3)*x(4) + x(4)` Note: For using this library SINGULAR's `python` interface must be available on your system. Please `./configure --with-python` when building SINGULAR for this purpose. There are prebuilt binary packages for `PolyBoRi` available from http://polybori.sf.net/. For building your own `PolyBoRi` please ensure that you have `scons` and a development version of the boost libraries installed on you system. Then you may execute the following commands in a `bash`-style shell to build `PolyBoRi` available to `python`: `PBDIR=/path/to/custom/polybori` `wget http://downloads.sf.net/project/polybori/polybori/\` `0.8.2/polybori-0.8.2.tar.gz` `tar -xvzf polybori-0.8.2.tar.gz` `cd polybori-0.8.2` `scons install PREFIX=$PBDIR PYINSTALLPREFIX=$PBDIR/python` `export PYTHONPATH=$PBDIR/python:$PYTHONPATH` References: See http://polybori.sf.net for details about `PolyBoRi`. Procedures:
> D.14.7.1 boolean_std |  | Singular ideal of boolean groebner basis of I
> D.14.7.2 boolean_poly_ring |  | convert ring
> D.14.7.3 boolean_constant |  | convert constant
> D.14.7.4 boolean_poly |  | convert polynomial
> D.14.7.5 direct_boolean_poly |  | convert polynomial direct
> D.14.7.6 recursive_boolean_poly |  | convert polynomial recursively
> D.14.7.7 boolean_ideal |  | convert ideal
> D.14.7.8 boolean_set |  | convert zdd
> D.14.7.9 from_boolean_constant |  | convert boolean constant
> D.14.7.10 from_boolean_poly |  | convert boolean polynomial
> D.14.7.11 direct_from_boolean_poly |  | convert boolean polynomial direct
> D.14.7.12 recursive_from_boolean_poly |  | convert boolean polynomial recursively
> D.14.7.13 from_boolean_ideal |  | convert to ideal
> D.14.7.14 from_boolean_set |  | convert to zdd
> D.14.7.15 bvar |  | return i-th Boolean variable
> D.14.7.16 poly2zdd |  | return zdd of a given polynomial
> D.14.7.17 zdd2poly |  | return polynomial representation of a given zdd
> D.14.7.18 disp_zdd |  | return string with a visualization of a given
See also: Libraries; User defined types; pyobject.

User manual for Singular version 4.3.2, 2023, generated by texi2html.