Macaulay2 » Documentation
Packages » Points :: affineFatPoints
next | previous | forward | backward | up | index | toc

affineFatPoints -- produces the ideal and initial ideal from the coordinates of a finite set of fat points

Synopsis

Description

This function uses a modified Buchberger-Moeller algorithm to compute a grobner basis for the ideal of a finite number of fat points in affine space.

i1 : R = QQ[x,y]

o1 = R

o1 : PolynomialRing
i2 : M = transpose matrix{{0,0},{1,1}}

o2 = | 0 1 |
     | 0 1 |

              2       2
o2 : Matrix ZZ  <-- ZZ
i3 : mults = {3,2}

o3 = {3, 2}

o3 : List
i4 : (Q,inG,G) = affineFatPoints(M,mults,R)

                 2        2   3     2   4           2    3     3   5     2   
o4 = ({1, y, x, y , x*y, x , y , x*y , y }, ideal (x y, x , x*y , y ), {x y -
     ------------------------------------------------------------------------
         2    3   3       2     3     3    4      2    3   5     4    3
     2x*y  + y , x  - 3x*y  + 2y , x*y  - y  - x*y  + y , y  - 2y  + y })

o4 : Sequence
i5 : monomialIdeal G == inG

o5 = true

This algorithm may be faster than computing the intersection of the ideals of each fat point.

i6 : K = ZZ/32003

o6 = K

o6 : QuotientRing
i7 : R = K[z_1..z_5]

o7 = R

o7 : PolynomialRing
i8 : M = random(K^5,K^12)

o8 = | 107   -5307  10359 -6203  8231  9534   6230  13177  10866 -5326 1031  
     | 4376  8570   -7464 12365  5864  -7216  9033  13990  5398  2998  -2036 
     | -5570 -15344 -8251 -13508 5026  -10125 5107  -11521 5549  5679  -6325 
     | 3187  8444   2653  -9480  10259 7256   -3996 -1309  -7061 -7152 -11740
     | 3783  -10480 5071  -11950 -7501 -5321  9398  -1779  2627  15317 -6922 
     ------------------------------------------------------------------------
     -5080 |
     1236  |
     8922  |
     -5006 |
     8880  |

             5      12
o8 : Matrix K  <-- K
i9 : mults = {1,2,3,1,2,3,1,2,3,1,2,3}

o9 = {1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3}

o9 : List
i10 : elapsedTime (Q,inG,G) = affineFatPoints(M,mults,R);
 -- 0.850851 seconds elapsed
i11 : elapsedTime H = affineFatPointsByIntersection(M,mults,R);
 -- 3.63308 seconds elapsed
i12 : G==H

o12 = true

Caveat

For reduced points, this function may be a bit slower than affinePoints.

See also

Ways to use affineFatPoints :

For the programmer

The object affineFatPoints is a method function.