|
B.5.0.9 GKZsystem
Procedure from library ncalg.lib (see ncalg_lib).
- Usage:
- GKZsystem(A, sord, alg, [,v]), where
A is an intmat, defining the system,
sord is a string with desired term ordering,
alg is a string, saying which algorithm to use (exactly like in toric_lib),
v is an optional intvec.
- Purpose:
- compute the ring and the GKZ system of equations in it
- Return:
- ring (moreover, the ideal GKZid with equations is exported in it)
- Note:
- you have to activate the ring with the 'setring' command;
the procedure is elaborated by Oleksandr Yena
- Overview:
- this procedure uses toric_lib and therefore inherits its input requirements:
possible values for input variable 'alg' are: "ect","pt","blr", "hs", "du".
As for the term ordering, it should be a string in Singular format like "lp","dp", etc. Please consult with the toric_lib for allowed orderings and more details.
Example:
| LIB "ncalg.lib";
intmat A[2][4]=3,2,1,0,0,1,2,3;
print(A);
==> 3 2 1 0
==> 0 1 2 3
def D1 = GKZsystem(A,"lp","ect");
setring D1;
D1;
==> // characteristic : 0
==> // 2 parameter : b(1) b(2)
==> // minpoly : 0
==> // number of vars : 8
==> // block 1 : ordering lp
==> // : names x(1) x(2) x(3) x(4) d(1) d(2) d(3) d(4)
==> // block 2 : ordering C
==> // noncommutative relations:
==> // d(1)x(1)=x(1)*d(1)+1
==> // d(2)x(2)=x(2)*d(2)+1
==> // d(3)x(3)=x(3)*d(3)+1
==> // d(4)x(4)=x(4)*d(4)+1
print(GKZid);
==> 3*x(1)*d(1)+2*x(2)*d(2)+x(3)*d(3)+(-b(1)),
==> x(2)*d(2)+2*x(3)*d(3)+3*x(4)*d(4)+(-b(2)),
==> d(2)*d(4)-d(3)^2,
==> d(1)*d(4)-d(2)*d(3),
==> d(1)*d(3)-d(2)^2
intvec v=1,1,1,1;
def D2 = GKZsystem(A,"lp","blr",v);
setring D2;
print(GKZid);
==> 3*x(1)*d(1)+2*x(2)*d(2)+x(3)*d(3)+(-b(1)),
==> x(2)*d(2)+2*x(3)*d(3)+3*x(4)*d(4)+(-b(2)),
==> d(2)*d(4)-d(3)^2,
==> d(1)*d(4)-d(2)*d(3),
==> d(1)*d(3)-d(2)^2
| @xref{toric_lib}
|