Home Online Manual
Top
Back: cornerMonomials
Forward: primdec_lib
FastBack: normaliz_lib
FastForward: primdec_lib
Up: pointid_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.4.19.3 facGBIdeal

Procedure from library pointid.lib (see pointid_lib).

Usage:
facGBIdeal(id); id = <list of vectors> or <list of lists> or <module> or <matrix>.
Let A= {a1,...,as} be a set of points in K^n, ai:=(ai1,...,ain), then A can be given as
- a list of vectors (the ai are vectors) or
- a list of lists (the ai are lists of numbers) or
- a module s.t. the ai are generators or
- a matrix s.t. the ai are columns

Assume:
basering must have ordering rp, i.e., be of the form 0,x(1..n),rp; (the first entry of a point belongs to the lex-smallest variable, etc.)

Return:
a list where the first entry contains the Groebner basis G of I(A) and the second entry contains the linear factors of each element of G

Note:
combinatorial algorithm due to the Axis-of-Evil Theorem of M.G. Marinari, T. Mora

Example:
 
LIB "pointid.lib";
ring R = 0,x(1..3),rp;
vector a1 = [4,0,0];
vector a2 = [2,1,4];
vector a3 = [2,4,0];
vector a4 = [3,0,1];
vector a5 = [2,1,3];
vector a6 = [1,3,4];
vector a7 = [2,4,3];
vector a8 = [2,4,2];
vector a9 = [1,0,2];
list A = a1,a2,a3,a4,a5,a6,a7,a8,a9;
facGBIdeal(A);
==> [1]:
==>    _[1]=x(1)^4-10*x(1)^3+35*x(1)^2-50*x(1)+24
==>    _[2]=x(1)^2*x(2)-3*x(1)*x(2)+2*x(2)
==>    _[3]=x(2)^2-1/2*x(1)^2*x(2)-1/2*x(1)*x(2)-2*x(2)+2*x(1)^3-16*x(1)^2+38\
   *x(1)-24
==>    _[4]=x(1)*x(3)-2*x(3)-2/3*x(1)*x(2)+4/3*x(2)+1/6*x(1)^3-1/2*x(1)^2-5/3\
   *x(1)+4
==>    _[5]=x(2)*x(3)^2-4*x(3)^2-2/3*x(2)^2*x(3)-5/6*x(1)^3*x(2)*x(3)+41/6*x(\
   1)^2*x(2)*x(3)-16*x(1)*x(2)*x(3)+23/3*x(2)*x(3)+10/3*x(1)^3*x(3)-82/3*x(1\
   )^2*x(3)+64*x(1)*x(3)-20*x(3)+2*x(2)^2+5/2*x(1)^3*x(2)-41/2*x(1)^2*x(2)+4\
   8*x(1)*x(2)-32*x(2)-10*x(1)^3+82*x(1)^2-192*x(1)+96
==>    _[6]=x(3)^3+4/3*x(2)*x(3)^2-5/6*x(1)^3*x(3)^2+35/6*x(1)^2*x(3)^2-9*x(1\
   )*x(3)^2-9*x(3)^2-20/3*x(2)*x(3)+25/6*x(1)^3*x(3)-175/6*x(1)^2*x(3)+45*x(\
   1)*x(3)+26*x(3)+8*x(2)-5*x(1)^3+35*x(1)^2-54*x(1)-24
==> [2]:
==>    [1]:
==>       _[1]=x(1)-4
==>       _[2]=x(1)-2
==>       _[3]=x(1)-3
==>       _[4]=x(1)-1
==>    [2]:
==>       _[1]=x(1)-2
==>       _[2]=x(1)-1
==>       _[3]=x(2)
==>    [3]:
==>       _[1]=x(2)-4*x(1)+4
==>       _[2]=2*x(2)-x(1)^2+7*x(1)-12
==>    [4]:
==>       _[1]=x(1)-2
==>       _[2]=6*x(3)-4*x(2)+x(1)^2-x(1)-12
==>    [5]:
==>       _[1]=x(2)-4
==>       _[2]=x(3)-3
==>       _[3]=6*x(3)-4*x(2)-5*x(1)^3+41*x(1)^2-96*x(1)+48
==>    [6]:
==>       _[1]=x(3)-2
==>       _[2]=x(3)-3
==>       _[3]=6*x(3)+8*x(2)-5*x(1)^3+35*x(1)^2-54*x(1)-24
matrix MAT[9][3] = 4,0,0,2,1,4,2,4,0,3,0,1,2,1,3,1,3,4,2,4,3,2,4,2,1,0,2;
MAT = transpose(MAT);
print(MAT);
==> 4,2,2,3,2,1,2,2,1,
==> 0,1,4,0,1,3,4,4,0,
==> 0,4,0,1,3,4,3,2,2 
facGBIdeal(MAT);
==> [1]:
==>    _[1]=x(1)^4-10*x(1)^3+35*x(1)^2-50*x(1)+24
==>    _[2]=x(1)^2*x(2)-3*x(1)*x(2)+2*x(2)
==>    _[3]=x(2)^2-1/2*x(1)^2*x(2)-1/2*x(1)*x(2)-2*x(2)+2*x(1)^3-16*x(1)^2+38\
   *x(1)-24
==>    _[4]=x(1)*x(3)-2*x(3)-2/3*x(1)*x(2)+4/3*x(2)+1/6*x(1)^3-1/2*x(1)^2-5/3\
   *x(1)+4
==>    _[5]=x(2)*x(3)^2-4*x(3)^2-2/3*x(2)^2*x(3)-5/6*x(1)^3*x(2)*x(3)+41/6*x(\
   1)^2*x(2)*x(3)-16*x(1)*x(2)*x(3)+23/3*x(2)*x(3)+10/3*x(1)^3*x(3)-82/3*x(1\
   )^2*x(3)+64*x(1)*x(3)-20*x(3)+2*x(2)^2+5/2*x(1)^3*x(2)-41/2*x(1)^2*x(2)+4\
   8*x(1)*x(2)-32*x(2)-10*x(1)^3+82*x(1)^2-192*x(1)+96
==>    _[6]=x(3)^3+4/3*x(2)*x(3)^2-5/6*x(1)^3*x(3)^2+35/6*x(1)^2*x(3)^2-9*x(1\
   )*x(3)^2-9*x(3)^2-20/3*x(2)*x(3)+25/6*x(1)^3*x(3)-175/6*x(1)^2*x(3)+45*x(\
   1)*x(3)+26*x(3)+8*x(2)-5*x(1)^3+35*x(1)^2-54*x(1)-24
==> [2]:
==>    [1]:
==>       _[1]=x(1)-4
==>       _[2]=x(1)-2
==>       _[3]=x(1)-3
==>       _[4]=x(1)-1
==>    [2]:
==>       _[1]=x(1)-2
==>       _[2]=x(1)-1
==>       _[3]=x(2)
==>    [3]:
==>       _[1]=x(2)-4*x(1)+4
==>       _[2]=2*x(2)-x(1)^2+7*x(1)-12
==>    [4]:
==>       _[1]=x(1)-2
==>       _[2]=6*x(3)-4*x(2)+x(1)^2-x(1)-12
==>    [5]:
==>       _[1]=x(2)-4
==>       _[2]=x(3)-3
==>       _[3]=6*x(3)-4*x(2)-5*x(1)^3+41*x(1)^2-96*x(1)+48
==>    [6]:
==>       _[1]=x(3)-2
==>       _[2]=x(3)-3
==>       _[3]=6*x(3)+8*x(2)-5*x(1)^3+35*x(1)^2-54*x(1)-24
module MOD = gen(3),gen(2)-2*gen(3),2*gen(1)+2*gen(3),2*gen(2)-2*gen(3),gen(1)+3*gen(3),gen(1)+gen(2)+3*gen(3),gen(1)+gen(2)+gen(3);
print(MOD);
==> 0,0, 2,0, 1,1,1,
==> 0,1, 0,2, 0,1,1,
==> 1,-2,2,-2,3,3,1 
facGBIdeal(MOD);
==> [1]:
==>    _[1]=x(1)^3-3*x(1)^2+2*x(1)
==>    _[2]=x(1)^2*x(2)-x(1)*x(2)
==>    _[3]=x(1)*x(2)^2-x(1)*x(2)
==>    _[4]=x(2)^3-3*x(2)^2+2*x(2)
==>    _[5]=x(1)*x(3)-x(3)-3/2*x(1)*x(2)^2+3/2*x(2)^2+9/2*x(1)*x(2)-9/2*x(2)-\
   1/2*x(1)^2-1/2*x(1)+1
==>    _[6]=x(2)*x(3)-x(3)+3/2*x(2)^2+3/2*x(1)^2*x(2)-7/2*x(1)*x(2)-5/2*x(2)-\
   3/2*x(1)^2+7/2*x(1)+1
==>    _[7]=x(3)^2+3*x(1)^2*x(3)-8*x(1)*x(3)+x(3)-3*x(1)^2+8*x(1)-2
==> [2]:
==>    [1]:
==>       _[1]=x(1)
==>       _[2]=x(1)-2
==>       _[3]=x(1)-1
==>    [2]:
==>       _[1]=x(1)
==>       _[2]=x(1)-1
==>       _[3]=x(2)
==>    [3]:
==>       _[1]=x(1)
==>       _[2]=x(2)-1
==>       _[3]=x(2)
==>    [4]:
==>       _[1]=x(2)-2
==>       _[2]=x(2)-1
==>       _[3]=x(2)
==>    [5]:
==>       _[1]=x(1)-1
==>       _[2]=2*x(3)-3*x(2)^2+9*x(2)-x(1)-2
==>    [6]:
==>       _[1]=x(2)-1
==>       _[2]=2*x(3)+3*x(2)+3*x(1)^2-7*x(1)-2
==>    [7]:
==>       _[1]=x(3)-1
==>       _[2]=x(3)+3*x(1)^2-8*x(1)+2
list l1 = 0,0,1;
list l2 = 0,1,-2;
list l3 = 2,0,2;
list l4 = 0,2,-2;
list l5 = 1,0,3;
list l6 = 1,1,3;
list L = l1,l2,l3,l4,l5,l6;
facGBIdeal(L);
==> [1]:
==>    _[1]=x(1)^3-3*x(1)^2+2*x(1)
==>    _[2]=x(1)^2*x(2)-x(1)*x(2)
==>    _[3]=x(1)*x(2)^2-x(1)*x(2)
==>    _[4]=x(2)^3-3*x(2)^2+2*x(2)
==>    _[5]=x(3)-3/2*x(2)^2-3*x(1)*x(2)+9/2*x(2)+3/2*x(1)^2-7/2*x(1)-1
==> [2]:
==>    [1]:
==>       _[1]=x(1)
==>       _[2]=x(1)-2
==>       _[3]=x(1)-1
==>    [2]:
==>       _[1]=x(1)
==>       _[2]=x(1)-1
==>       _[3]=x(2)
==>    [3]:
==>       _[1]=x(1)
==>       _[2]=x(2)-1
==>       _[3]=x(2)
==>    [4]:
==>       _[1]=x(2)-2
==>       _[2]=x(2)-1
==>       _[3]=x(2)
==>    [5]:
==>       _[1]=2*x(3)-3*x(2)^2-6*x(1)*x(2)+9*x(2)+3*x(1)^2-7*x(1)-2