version 1.2, 1999/12/07 09:35:22 |
version 1.4, 2000/03/14 13:01:28 |
|
|
% $OpenXM$ |
% $OpenXM: OpenXM/src/kan96xx/Doc/hol.sm1,v 1.3 1999/12/10 09:17:50 takayama Exp $ |
%% hol.sm1, 1998, 11/8, 11/10, 11/14, 11/25, 1999, 5/18, 6/5. |
%% hol.sm1, 1998, 11/8, 11/10, 11/14, 11/25, 1999, 5/18, 6/5. |
%% rank, rrank, characteristic |
%% rank, rrank, characteristic |
%% This file is error clean. |
%% This file is error clean. |
|
|
|
|
/gb.v 1 def |
/gb.v 1 def |
/gb.verbose 0 def |
/gb.verbose 0 def |
|
/gb.options [ ] def |
/gb { |
/gb { |
/arg1 set |
/arg1 set |
[/in-gb /aa /typev /setarg /f /v |
[/in-gb /aa /typev /setarg /f /v |
|
|
} ifelse |
} ifelse |
%%% Enf of the preprocess |
%%% Enf of the preprocess |
|
|
|
gb.verbose { (gb.options = ) messagen gb.options message } { } ifelse |
termorder { |
termorder { |
f { {. dehomogenize} map } map /f set |
f { {. dehomogenize} map } map /f set |
[f] groebner_sugar 0 get /gg set |
[f gb.options] groebner_sugar 0 get /gg set |
}{ |
}{ |
f { {. dehomogenize} map} map /f set |
f { {. dehomogenize} map} map /f set |
f fromVectors { homogenize } map /f set |
f fromVectors { homogenize } map /f set |
[f] groebner 0 get /gg set |
[f gb.options] groebner 0 get /gg set |
}ifelse |
}ifelse |
wv isInteger { |
wv isInteger { |
/ans [gg gg {init} map] def |
/ans [gg gg {init} map] def |
|
|
} ifelse |
} ifelse |
%%% Enf of the preprocess |
%%% Enf of the preprocess |
|
|
|
gb.verbose { (gb.options = ) messagen gb.options message } { } ifelse |
termorder { |
termorder { |
f { {. dehomogenize} map } map /f set |
f { {. dehomogenize} map } map /f set |
[(UseCriterion1) 1] system_variable |
[(UseCriterion1) 1] system_variable |
[f] groebner_sugar 0 get /gg set |
[f gb.options] groebner_sugar 0 get /gg set |
[(UseCriterion1) 0] system_variable |
[(UseCriterion1) 0] system_variable |
}{ |
}{ |
f { {. dehomogenize} map} map /f set |
f { {. dehomogenize} map} map /f set |
f fromVectors { homogenize } map /f set |
f fromVectors { homogenize } map /f set |
[(UseCriterion1) 1] system_variable |
[(UseCriterion1) 1] system_variable |
[f] groebner 0 get /gg set |
[f gb.options] groebner 0 get /gg set |
[(UseCriterion1) 0] system_variable |
[(UseCriterion1) 0] system_variable |
}ifelse |
}ifelse |
wv isInteger { |
wv isInteger { |
|
|
/arg1 set |
/arg1 set |
[/in-reduction* /aa /typev /setarg /f /v |
[/in-reduction* /aa /typev /setarg /f /v |
/gg /wv /termorder /vec /ans /rr /mm /h /size /a0 /a3 |
/gg /wv /termorder /vec /ans /rr /mm /h /size /a0 /a3 |
|
/opt |
] pushVariables |
] pushVariables |
[(CurrentRingp) (KanGBmessage)] pushEnv |
[(CurrentRingp) (KanGBmessage)] pushEnv |
[ |
[ |
|
|
h toString . /h set |
h toString . /h set |
} ifelse |
} ifelse |
f { toString . } map /f set |
f { toString . } map /f set |
|
getOptions /opt set |
|
[(ReduceLowerTerms) 1] system_variable |
reduction*.noH { |
reduction*.noH { |
h f reduction-noH /ans set |
h f reduction-noH /ans set |
} { |
} { |
h f reduction /ans set |
h f reduction /ans set |
} ifelse |
} ifelse |
|
opt restoreOptions |
size -1 eq not { |
size -1 eq not { |
[size ans 0 get] toVectors /a0 set |
[size ans 0 get] toVectors /a0 set |
[size ans 3 get] toVectors /a3 set |
[size ans 3 get] toVectors /a3 set |