version 1.16, 2009/09/04 02:59:55 |
version 1.20, 2018/05/02 02:28:13 |
|
|
% $OpenXM: OpenXM/src/kan96xx/Doc/gfan.sm1,v 1.15 2009/09/04 00:53:48 takayama Exp $ |
% $OpenXM: OpenXM/src/kan96xx/Doc/gfan.sm1,v 1.19 2013/10/11 01:08:35 takayama Exp $ |
% cp cone.sm1 $OpenXM_HOME/src/kan96xx/Doc/gfan.sm1 |
% cp cone.sm1 $OpenXM_HOME/src/kan96xx/Doc/gfan.sm1 |
% $Id$ |
% $Id$ |
% iso-2022-jp |
% iso-2022-jp |
%%Ref: @s/2004/08/21-note.pdf |
%%Ref: @s/2004/08/21-note.pdf |
|
|
%% gfan.sm1 works only for polymake 2.0 Use webservice of 2.0. |
%% gfan.sm1 works only for polymake 2.0 Use webservice of 2.0. |
|
[(gfan) |
|
[ |
|
(gfan.sm1 is a package to compute global and local Grobner fans.) |
|
(See R.Bahloul and N.Takayama, arxiv, math.AG/0412044 and references as to algorithms.) |
|
(At the beginning of the source code gfan.sm1, there are sample inputs cone.sample and cone.sample2.) |
|
( ) |
|
(gfan.sm1 works only with polymake 2.0. We provide a web service of computing ) |
|
(with polymake 2.0. /@@@polymake.web 1 def is set by default in gfan.sm1.) |
|
(See changelog-ja.tex as to details on the difference between 2.0 and later versions.) |
|
( ) |
|
(*cone.sample ; is an example. See the source code. The state polytope is the hexagon.) |
|
( ) |
|
(*cone.Wt cone.Lpt {vertices in the output} are weights on the rays of the Grobner cone.) |
|
(*cone.L gives a basis of the linearity space.) |
|
(*cone.Lp gives a basis of the pointed cone. cone.Lpt is the transpose of cone.Lp.) |
|
$*When v is a row vector in an ouput cone, (v cone.Lp cone.W) gives $ |
|
( the corresponding weight vector in the full variable space in D) |
|
(*cone.incidence is a list of [[cone num1,facet num1], [cone num2,facet num2]]) |
|
( which means that cone num1 and cone num2 are adjacent and shares ) |
|
( the facet num1 and the facet num2) |
|
(*/cone.withGblist 1 def saves the Grobner basis standing for each cone.) |
|
( ) |
|
(*Cone descriptions: cone.fan) |
|
(**A facet is given by its normal vector n of a cone. It gives facet num of the cone.) |
|
(**A cone is defined by facet normal vectors n1, n2, ... as n1.x>=0 and n2.x >=0 and ...) |
|
(**facetsv is a list of facets expressed by generators.) |
|
(**nextcid is a list of the adjacent cone numbers.) |
|
(**nextfid is a list of the shared facet numbers.) |
|
(**vertices is the generators of a cone.) |
|
(**inequalities are not necessarily unique.) |
|
] |
|
] putUsages |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
%% Two examples are given below to get a global Grobner fan and |
%% Two examples are given below to get a global Grobner fan and |
|
|
cone.comment message |
cone.comment message |
(cone.input = ) message |
(cone.input = ) message |
cone.input message |
cone.input message |
|
%%% Step 0. If you want to output Grobner basis standing for each cone, then uncomment |
|
% /cone.withGblist 1 def |
|
|
%%%% Step 1. Enumerating the Grobner Cones in a global ring. |
%%%% Step 1. Enumerating the Grobner Cones in a global ring. |
%%%% The result is stored in cone.fan |
%%%% The result is stored in cone.fan |
getGrobnerFan |
getGrobnerFan |
|
|
printGrobnerFan |
printGrobnerFan |
|
|
%%%% If you want to save the data to the file sm1out.txt, then uncomment. |
%%%% If you want to save the data to the file sm1out.txt, then uncomment. |
% /cone.withGblist 1 def saveGrobnerFan /ff set ff output |
%saveGrobnerFan /ff set ff output |
|
|
%%%% Step 2. Dehomogenize the Grobner Cones |
%%%% Step 2. Dehomogenize the Grobner Cones |
%%%% by the equivalence relation in a local ring (uncomment). |
%%%% by the equivalence relation in a local ring (uncomment). |
Line 259 dhcone.printGrobnerFan |
|
Line 294 dhcone.printGrobnerFan |
|
or |
or |
{ |
{ |
(Polymake is not installed in this system or @@@polymake.web is set.) message |
(Polymake is not installed in this system or @@@polymake.web is set.) message |
/doPolymake {doPolymake.OoHG} def |
usePolymake.OoHG.curl |
(Using doPolymake.OoHG ) message |
(Using doPolymake.OoHG.curl ) message |
/polymake.start {polymake.start.OoHG} def |
} { usePolymake.local (Local polymake will be used.) message } ifelse |
(Using polymake.start.OoHG ) message |
|
} { (Local polymake will be used.) message } ifelse |
|
|
|
/cone.debug 1 def |
/cone.debug 1 def |
|
|
|
|
/printGrobnerFan { |
/printGrobnerFan { |
[/i] pushVariables |
[/i] pushVariables |
[ |
[ |
|
$(gfan) usage to find explanations on variables.$ message |
(========== Grobner Fan ====================) message |
(========== Grobner Fan ====================) message |
[ |
[ |
(cone.comment) |
(cone.comment) |