=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/gfan.sm1,v retrieving revision 1.12 retrieving revision 1.15 diff -u -p -r1.12 -r1.15 --- OpenXM/src/kan96xx/Doc/gfan.sm1 2005/07/07 07:53:37 1.12 +++ OpenXM/src/kan96xx/Doc/gfan.sm1 2009/09/04 00:53:48 1.15 @@ -1,6 +1,6 @@ -% $OpenXM: OpenXM/src/kan96xx/Doc/gfan.sm1,v 1.11 2005/07/07 06:07:46 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Doc/gfan.sm1,v 1.14 2009/08/26 05:03:49 takayama Exp $ % cp cone.sm1 $OpenXM_HOME/src/kan96xx/Doc/gfan.sm1 -% $Id: gfan.sm1,v 1.12 2005/07/07 07:53:37 takayama Exp $ +% $Id: gfan.sm1,v 1.15 2009/09/04 00:53:48 takayama Exp $ % iso-2022-jp %%Ref: @s/2004/08/21-note.pdf @@ -1020,17 +1020,31 @@ def %> /getConeInfo { /arg1 set - [/ww /g /ceq /ceq2 /cdim /mmc /mmL /rr /ineq /ppt] pushVariables + [/ww /g /ceq /ceq2 /cdim /mmc /mmL /rr /ineq /ppt /rr0 /mm0 /mm1] pushVariables [ /ceq arg1 def ceq pruneZeroVector /ceq set + + ceq length 0 eq { + (Monomial ideal is not accepted as an input.) cone_ir_input + } { } ifelse + + /mm1 + ( Use [(keep_tmp_files) 1] oxshell to check the input to polymake2tfb. See /tmp or $TMP ) + def + ceq genPo2 /ceq2 set % ceq2 は polymake.data(polymake.INEQUALITIES(...)) 形式 % polymake で ceq2 の次元の計算. /getConeInfo.ceq ceq def /getConeInfo.ceq2 ceq2 def cone.debug { (Calling polymake DIM.) message } { } ifelse - [(DIM) ceq2] doPolymake 1 get /rr set + [(DIM) ceq2] doPolymake /rr0 set + % rr0 2 get message + rr0 2 get 1 get 0 get /mm0 set + mm0 length 0 eq { } + { [mm0 mm1] cat error } ifelse + rr0 1 get /rr set cone.debug {(Done.) message } { } ifelse % test5 には次のコメントとりさる. 上の行をコメントアウト. % test5.data tfbToTree /rr set @@ -1045,7 +1059,14 @@ def % FACETS を持っていないなら再度計算する. % POINTED, NOT__POINTED も得られる cone.debug { (Calling polymake FACETS.) message } { } ifelse - [(FACETS) ceq2] doPolymake 1 get /rr set + [(FACETS) ceq2] doPolymake /rr0 set + + % rr0 2 get message + rr0 2 get 1 get 0 get /mm0 set + mm0 length 0 eq { } + { [mm0 mm1] cat error } ifelse + + rr0 1 get /rr set cone.debug { (Done.) message } { } ifelse } { } ifelse @@ -1621,7 +1642,7 @@ def /vlist arg1 def /wlist arg2 def wlist length vlist length eq { - } { (cone_wtowv: length of the argument must be the same.) error} ifelse + } { (cone_wtowv: length of the argument must be the same. Please check the values of cone.vlist cone.vv cone.type parametrizeWeightSpace) error} ifelse wlist to_int32 /wlist set [ @@ -1878,6 +1899,11 @@ def % note: 2004.9.2 cone (facetsv) getNode 2 get facet_i get /v set cone (facets) getNode 2 get facet_i get /f set + + v length 0 eq { + (The codimension of the linarity space of the Grobner cone seems to be 1 or 0.) cone_ir_input + } { } ifelse + /vp v 0 get def 1 1 v length 1 sub { /ii set @@ -3843,4 +3869,21 @@ def ] pop popVariables arg1 +} def + +%%change +/cone_ir_input { + /arg1 set + [/msg ] pushVariables + [ + /msg arg1 def + (---------------) message + msg message + ( ) message + (Please also refer to the value of the variables cone.getConeInfo.rr0) message + ( cone.getConeInfo.rr1 cone.Lp cone.cinit) message + $ cone.cinit (FACETS) getNode :: $ message + (We are sorry that we cannot accept this input.) error + ] pop + popVariables } def