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

## Synopsis

• Usage:
(inG,G) = projectiveFatPoints(M,mults,R)
• Inputs:
• M, , in which each column consists of the projective coordinates of a point
• mults, a list, in which each element determines the multiplicity of the corresponding point
• R, a ring, homogeneous coordinate ring of the projective space containing the points
• Optional inputs:
• VerifyPoints => ..., default value true, Option to projectiveFatPoints.
• Outputs:
• inG, an ideal, initial ideal of the set of fat points
• G, a list, list of generators for Grobner basis for ideal of fat points

## 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 projective space.

 i1 : R = QQ[x,y,z] o1 = R o1 : PolynomialRing i2 : M = transpose matrix{{1,0,0},{0,1,1}} o2 = | 1 0 | | 0 1 | | 0 1 | 3 2 o2 : Matrix ZZ <--- ZZ i3 : mults = {3,2} o3 = {3, 2} o3 : List i4 : (inG,G) = projectiveFatPoints(M,mults,R) 2 3 2 2 3 2 2 3 3 2 3 o4 = (ideal (y z, y , x*y*z , x z ), {y z - 2y*z + z , y - 3y*z + 2z , ------------------------------------------------------------------------ 2 3 2 3 x*y*z - x*z , x z }) o4 : Sequence i5 : monomialIdeal G == inG o5 = true

## Caveat

For small sets of points and/or multiplicities, this method might be slower than projectiveFatPointsByIntersection.