version 1.11, 2005/07/07 06:07:46 |
version 1.15, 2009/09/04 00:53:48 |
|
|
% $OpenXM: OpenXM/src/kan96xx/Doc/gfan.sm1,v 1.10 2005/07/07 01:31:21 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 |
% cp cone.sm1 $OpenXM_HOME/src/kan96xx/Doc/gfan.sm1 |
% $Id$ |
% $Id$ |
% iso-2022-jp |
% iso-2022-jp |
Line 415 cone.comment message |
|
Line 415 cone.comment message |
|
%> |
%> |
/cone.DhH 0 def |
/cone.DhH 0 def |
|
|
|
%< |
|
% Global |
|
% gbCheck $B$r$9$k$+(B? $B$7$J$$$H7k2L$O$"$d$U$d(B. $B$7$+$7%a%b%j(B exhaust $B$OKI$2$k(B. |
|
% $B;H$&$H$-$O(B /cone.epsilon, /cone.epsilon.limit $B$r==J,>.$5$/$7$F$*$/(B. |
|
%> |
|
/cone.do_gbCheck 1 def |
|
|
% Default $B$N(B cone.gb $B$NDj5A(B. $B3F%W%m%0%i%`$G:FEYDj5A$7$F$b$h$$(B. |
% Default $B$N(B cone.gb $B$NDj5A(B. $B3F%W%m%0%i%`$G:FEYDj5A$7$F$b$h$$(B. |
/cone.gb { |
/cone.gb { |
cone.DhH { |
cone.DhH { |
|
|
%> |
%> |
/getConeInfo { |
/getConeInfo { |
/arg1 set |
/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 arg1 def |
ceq pruneZeroVector /ceq set |
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 |
ceq genPo2 /ceq2 set |
% ceq2 $B$O(B polymake.data(polymake.INEQUALITIES(...)) $B7A<0(B |
% ceq2 $B$O(B polymake.data(polymake.INEQUALITIES(...)) $B7A<0(B |
% polymake $B$G(B ceq2 $B$N<!85$N7W;;(B. |
% polymake $B$G(B ceq2 $B$N<!85$N7W;;(B. |
/getConeInfo.ceq ceq def /getConeInfo.ceq2 ceq2 def |
/getConeInfo.ceq ceq def /getConeInfo.ceq2 ceq2 def |
|
|
cone.debug { (Calling polymake DIM.) message } { } ifelse |
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 |
cone.debug {(Done.) message } { } ifelse |
% test5 $B$K$O<!$N%3%a%s%H$H$j$5$k(B. $B>e$N9T$r%3%a%s%H%"%&%H(B. |
% test5 $B$K$O<!$N%3%a%s%H$H$j$5$k(B. $B>e$N9T$r%3%a%s%H%"%&%H(B. |
% test5.data tfbToTree /rr set |
% test5.data tfbToTree /rr set |
|
|
% FACETS $B$r;}$C$F$$$J$$$J$i:FEY7W;;$9$k(B. |
% FACETS $B$r;}$C$F$$$J$$$J$i:FEY7W;;$9$k(B. |
% POINTED, NOT__POINTED $B$bF@$i$l$k(B |
% POINTED, NOT__POINTED $B$bF@$i$l$k(B |
cone.debug { (Calling polymake FACETS.) message } { } ifelse |
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 |
cone.debug { (Done.) message } { } ifelse |
} { } ifelse |
} { } ifelse |
|
|
|
|
/vlist arg1 def |
/vlist arg1 def |
/wlist arg2 def |
/wlist arg2 def |
wlist length vlist length eq { |
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 |
wlist to_int32 /wlist set |
[ |
[ |
|
|
% note: 2004.9.2 |
% note: 2004.9.2 |
cone (facetsv) getNode 2 get facet_i get /v set |
cone (facetsv) getNode 2 get facet_i get /v set |
cone (facets) getNode 2 get facet_i get /f 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 |
/vp v 0 get def |
1 1 v length 1 sub { |
1 1 v length 1 sub { |
/ii set |
/ii set |
|
|
%> |
%> |
/cone.gb_Dh { |
/cone.gb_Dh { |
/arg2 set /arg1 set |
/arg2 set /arg1 set |
[/ff /ww /gg] pushVariables |
[/ff /ww /gg /gbopt] pushVariables |
[ |
[ |
/ff arg1 def |
/ff arg1 def |
/ww arg2 def |
/ww arg2 def |
[(AutoReduce) 1] system_variable |
[(AutoReduce) 1] system_variable |
[cone.vv ring_of_differential_operators |
[cone.vv ring_of_differential_operators |
[ww] weight_vector 0] define_ring |
[ww] weight_vector 0] define_ring |
[ff {toString .} map] ff getAttributeList setAttributeList |
%(---) messagen ff getAttributeList message |
groebner 0 get /gg set |
ff getAttributeList tag 0 eq {/gbopt [ ] def } |
|
{ |
|
/gbopt ff getAttributeList def |
|
} ifelse |
|
[ff {toString .} map gbopt] |
|
groebner 0 get /gg set %% groenber $B$O(B attribute $B$r<u$1IU$1$J$$(B. |
/cone.gb_Dh.g gg def |
/cone.gb_Dh.g gg def |
/arg1 gg def |
/arg1 gg def |
] pop |
] pop |
|
|
%gNew $B$,(B newWeight $B$G$N(B GB $B$+(B check. Yes $B$J$i(B reduced basis $B$X(B. |
%gNew $B$,(B newWeight $B$G$N(B GB $B$+(B check. Yes $B$J$i(B reduced basis $B$X(B. |
%No $B$J$i(B null $B$rLa$9(B. |
%No $B$J$i(B null $B$rLa$9(B. |
%%Ref: note @s/2005/06/30-note-gfan.pdf |
%%Ref: note @s/2005/06/30-note-gfan.pdf |
gNew [(gbCheck) 1] setAttributeList newWeight |
cone.do_gbCheck not { |
cone.gb (gb) getAttribute |
(Warning! gbCheck is skipped.) message |
|
} { |
|
(Doing gbCheck.) message |
|
} ifelse |
|
cone.do_gbCheck { |
|
gNew [(gbCheck) 1] setAttributeList newWeight |
|
cone.gb (gb) getAttribute |
|
} { 1 } ifelse |
1 eq { |
1 eq { |
gNew [(reduceOnly) 1] setAttributeList newWeight cone.gb /arg1 set |
gNew [(reduceOnly) 1] setAttributeList newWeight cone.gb /arg1 set |
}{ /arg1 null def } ifelse |
}{ /arg1 null def } ifelse |
|
|
] pop |
] pop |
popVariables |
popVariables |
arg1 |
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 |
} def |