up previous next
 2.2.24 Finite Point Sets: Buchberger-Moeller
CoCoA includes an implementation of the Buchberger-Moeller algorithm for efficient computations dealing with finite sets of points. These functions include:

* GBM, HGBM -- intersection of ideals for zero-dimensional schemes

* IdealAndSeparatorsOfPoints -- ideal and separators for affine points

* IdealAndSeparatorsOfProjectivePoints -- ideal and separators for points

* IdealOfPoints -- ideal of a set of affine points

* IdealOfProjectivePoints -- ideal of a set of projective points

* Interpolate -- interpolating polynomial

* SeparatorsOfPoints -- separators for affine points

* SeparatorsOfProjectivePoints -- separators for projective points

Details about these functions may be found individually in the online manual. Briefly, the functions above may be used to find the ideal of a set of points in affine or projective space along with a reduced Groebner basis and separators. Separators are polynomials that take the value 1 on one of the points and 0 on the remainder. The Buchberger-Moeller algorithm works much faster than the straightforward technique involving intersecting ideals for the individual points.

 Example
 ``` Use R ::= QQ[t,x,y,z]; Pts := GenericPoints(20); -- 20 random points in projective 3-space X := IdealAndSeparatorsOfProjectivePoints(Pts); Len(Gens(X.Ideal)); -- number of generators in the ideal 17 ------------------------------- Hilbert(R/X.Ideal); H(0) = 1 H(1) = 4 H(2) = 10 H(t) = 20 for t >= 3 ------------------------------- F := X.Separators[3]; [Eval(F, P)| P In Pts]; [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ------------------------------- Res(R/X.Ideal); -- the resolution of the ideal 0 --> R^10(-6) --> R^24(-5) --> R^15(-4) --> R ------------------------------- ```