version 1.6, 2000/06/09 08:02:01 |
version 1.10, 2001/01/04 12:29:33 |
|
|
% $OpenXM: OpenXM/src/kan96xx/Doc/hol.sm1,v 1.5 2000/06/08 08:35:01 takayama Exp $ |
% $OpenXM: OpenXM/src/kan96xx/Doc/hol.sm1,v 1.9 2000/12/29 07:19:37 takayama Exp $ |
%% hol.sm1, 1998, 11/8, 11/10, 11/14, 11/25, 1999, 5/18, 6/5. 2000, 6/8 |
%% hol.sm1, 1998, 11/8, 11/10, 11/14, 11/25, 1999, 5/18, 6/5. 2000, 6/8 |
%% rank, rrank, characteristic |
%% rank, rrank, characteristic |
%% This file is error clean. |
%% This file is error clean. |
Line 13 hol.version [(Version)] system_variable gt |
|
Line 13 hol.version [(Version)] system_variable gt |
|
$hol.sm1, basic package for holonomic systems (C) N.Takayama, 2000, 06/08 $ |
$hol.sm1, basic package for holonomic systems (C) N.Takayama, 2000, 06/08 $ |
message-quiet |
message-quiet |
|
|
|
/gb.warning 0 def |
/rank.v [(x) (y) (z)] def %% default value of v (variables). |
/rank.v [(x) (y) (z)] def %% default value of v (variables). |
/rank.ch [ ] def %% characteristic variety. |
/rank.ch [ ] def %% characteristic variety. |
/rank.verbose 0 def |
/rank.verbose 0 def |
|
|
/v aa 1 get def |
/v aa 1 get def |
/setarg 1 def |
/setarg 1 def |
} { } ifelse |
} { } ifelse |
|
typev [ArrayP RingP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get def |
|
/setarg 1 def |
|
} { } ifelse |
typev [ArrayP ArrayP] eq |
typev [ArrayP ArrayP] eq |
{ /f aa 0 get def |
{ /f aa 0 get def |
/v aa 1 get from_records def |
/v aa 1 get from_records def |
|
|
[(KanGBmessage) gb.verbose ] system_variable |
[(KanGBmessage) gb.verbose ] system_variable |
|
|
%%% Start of the preprocess |
%%% Start of the preprocess |
f getRing /rr set |
v tag RingP eq { |
|
/rr v def |
|
}{ |
|
f getRing /rr set |
|
} ifelse |
%% To the normal form : matrix expression. |
%% To the normal form : matrix expression. |
f gb.toMatrixOfString /f set |
f gb.toMatrixOfString /f set |
/mm gb.itWasMatrix def |
/mm gb.itWasMatrix def |
|
|
} { |
} { |
%% Use the ring structre given by the input. |
%% Use the ring structre given by the input. |
v isInteger not { |
v isInteger not { |
(Warning : the given ring definition is not used.) message |
gb.warning { |
|
(Warning : the given ring definition is not used.) message |
|
} { } ifelse |
} { } ifelse |
} { } ifelse |
rr ring_def |
rr ring_def |
/wv rr gb.getWeight def |
/wv rr gb.getWeight def |
|
|
} { |
} { |
%% Use the ring structre given by the input. |
%% Use the ring structre given by the input. |
v isInteger not { |
v isInteger not { |
(Warning : the given ring definition is not used.) message |
gb.warning { |
|
(Warning : the given ring definition is not used.) message |
|
} { } ifelse |
} { } ifelse |
} { } ifelse |
rr ring_def |
rr ring_def |
/wv rr gb.getWeight def |
/wv rr gb.getWeight def |
|
|
/v aa 1 get def |
/v aa 1 get def |
/setarg 1 def |
/setarg 1 def |
} { } ifelse |
} { } ifelse |
|
typev [ArrayP RingP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get def |
|
/setarg 1 def |
|
} { } ifelse |
typev [ArrayP ArrayP] eq |
typev [ArrayP ArrayP] eq |
{ /f aa 0 get def |
{ /f aa 0 get def |
/v aa 1 get from_records def |
/v aa 1 get from_records def |
|
|
/wv aa 2 get def |
/wv aa 2 get def |
/setarg 1 def |
/setarg 1 def |
} { } ifelse |
} { } ifelse |
|
typev [ArrayP RingP ArrayP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get def |
|
/wv aa 2 get def |
|
/setarg 1 def |
|
} { } ifelse |
typev [ArrayP ArrayP ArrayP] eq |
typev [ArrayP ArrayP ArrayP] eq |
{ /f aa 0 get def |
{ /f aa 0 get def |
/v aa 1 get from_records def |
/v aa 1 get from_records def |
|
|
|
|
|
|
%%% Start of the preprocess |
%%% Start of the preprocess |
f getRing /rr set |
v tag RingP eq { |
|
/rr v def |
|
}{ |
|
f getRing /rr set |
|
} ifelse |
%% To the normal form : matrix expression. |
%% To the normal form : matrix expression. |
f gb.toMatrixOfString /f set |
f gb.toMatrixOfString /f set |
/mm gb.itWasMatrix def |
/mm gb.itWasMatrix def |
|
|
}{ |
}{ |
%% Use the ring structre given by the input. |
%% Use the ring structre given by the input. |
v isInteger not { |
v isInteger not { |
(Warning : the given ring definition is not used.) message |
gb.warning { |
|
(Warning : the given ring definition is not used.) message |
|
} { } ifelse |
} { } ifelse |
} { } ifelse |
rr ring_def |
rr ring_def |
/wv rr gb.getWeight def |
/wv rr gb.getWeight def |
|
|
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f v]; array f; string v; v is the variables.) |
(a : [f v]; array f; string v; v is the variables.) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
|
( v may be a ring object. ) |
$Example 1: [(x,y) ring_of_polynomials 0] define_ring $ |
$Example 1: [(x,y) ring_of_polynomials 0] define_ring $ |
$ [ [(x^2+y^2-4). (x y -1).] ] syz :: $ |
$ [ [(x^2+y^2-4). (x y -1).] ] syz :: $ |
$Example 2: [ [(x^2+y^2) (x y)] (x,y) [ [(x) -1 (y) -1] ] ] syz :: $ |
$Example 2: [ [(x^2+y^2) (x y)] (x,y) [ [(x) -1 (y) -1] ] ] syz :: $ |
|
|
} { |
} { |
%% Use the ring structre given by the input. |
%% Use the ring structre given by the input. |
v isInteger not { |
v isInteger not { |
(Warning : the given ring definition is not used.) message |
gb.warning { |
|
(Warning : the given ring definition is not used.) message |
|
} { } ifelse |
} { } ifelse |
} { } ifelse |
rr ring_def |
rr ring_def |
/wv rr gb.getWeight def |
/wv rr gb.getWeight def |
|
|
/v aa 1 get def |
/v aa 1 get def |
/setarg 1 def |
/setarg 1 def |
} { } ifelse |
} { } ifelse |
|
typev [ArrayP RingP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get def |
|
/setarg 1 def |
|
} { } ifelse |
typev [ArrayP ArrayP] eq |
typev [ArrayP ArrayP] eq |
{ /f aa 0 get def |
{ /f aa 0 get def |
/v aa 1 get from_records def |
/v aa 1 get from_records def |
|
|
[(KanGBmessage) gb.verbose ] system_variable |
[(KanGBmessage) gb.verbose ] system_variable |
|
|
%%% Start of the preprocess |
%%% Start of the preprocess |
f getRing /rr set |
v tag RingP eq { |
|
/rr v def |
|
}{ |
|
f getRing /rr set |
|
} ifelse |
%% To the normal form : matrix expression. |
%% To the normal form : matrix expression. |
f gb.toMatrixOfString /f set |
f gb.toMatrixOfString /f set |
/mm gb.itWasMatrix def |
/mm gb.itWasMatrix def |
|
|
} { |
} { |
%% Use the ring structre given by the input. |
%% Use the ring structre given by the input. |
v isInteger not { |
v isInteger not { |
(Warning : the given ring definition is not used.) message |
gb.warning { |
|
(Warning : the given ring definition is not used.) message |
|
} { } ifelse |
} { } ifelse |
} { } ifelse |
rr ring_def |
rr ring_def |
/wv rr gb.getWeight def |
/wv rr gb.getWeight def |
|
|
$ [(Homogenize_vec) 0] system_variable (grade) (module1v) switch_function$ |
$ [(Homogenize_vec) 0] system_variable (grade) (module1v) switch_function$ |
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f v]; array f; string v; v is the variables. ) |
(a : [f v]; array f; string v; v is the variables. ) |
|
(a : [f r]; array f; ring r ) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
( ) |
( ) |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -h^4) ( x y Dx Dy -h^4)] (x,y) $ |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -h^4) ( x y Dx Dy -h^4)] (x,y) $ |
|
|
/v aa 1 get def |
/v aa 1 get def |
/setarg 1 def |
/setarg 1 def |
} { } ifelse |
} { } ifelse |
|
typev [ArrayP RingP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get def |
|
/setarg 1 def |
|
} { } ifelse |
typev [ArrayP ArrayP] eq |
typev [ArrayP ArrayP] eq |
{ /f aa 0 get def |
{ /f aa 0 get def |
/v aa 1 get from_records def |
/v aa 1 get from_records def |
|
|
|
|
|
|
%%% Start of the preprocess |
%%% Start of the preprocess |
f getRing /rr set |
v tag RingP eq { |
|
/rr v def |
|
}{ |
|
f getRing /rr set |
|
} ifelse |
%% To the normal form : matrix expression. |
%% To the normal form : matrix expression. |
f gb.toMatrixOfString /f set |
f gb.toMatrixOfString /f set |
/mm gb.itWasMatrix def |
/mm gb.itWasMatrix def |
|
|
}{ |
}{ |
%% Use the ring structre given by the input. |
%% Use the ring structre given by the input. |
v isInteger not { |
v isInteger not { |
(Warning : the given ring definition is not used.) message |
gb.warning { |
|
(Warning : the given ring definition is not used.) message |
|
} { } ifelse |
} { } ifelse |
} { } ifelse |
rr ring_def |
rr ring_def |
/wv rr gb.getWeight def |
/wv rr gb.getWeight def |
|
|
$ [(Homogenize_vec) 0] system_variable (grade) (module1v) switch_function$ |
$ [(Homogenize_vec) 0] system_variable (grade) (module1v) switch_function$ |
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f v]; array f; string v; v is the variables.) |
(a : [f v]; array f; string v; v is the variables.) |
|
(a : [f r]; array f; ring r ) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -h^4) ( x y Dx Dy -h^4)] (x,y) $ |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -h^4) ( x y Dx Dy -h^4)] (x,y) $ |
$ [ [ (Dx) 1 ] ] ] syz_h pmat ; $ |
$ [ [ (Dx) 1 ] ] ] syz_h pmat ; $ |
|
|
jjgg 0 get { [ (toe_) 3 -1 roll ] gbext } map |
jjgg 0 get { [ (toe_) 3 -1 roll ] gbext } map |
/jjgg set |
/jjgg set |
|
|
|
gb.verbose { (Comparing) message iigg message (and) message jjgg message } |
|
{ } ifelse |
gb.verbose { ( ii < jj ?) messagen } { } ifelse |
gb.verbose { ( ii < jj ?) messagen } { } ifelse |
iigg length /n set |
iigg length /n set |
0 1 n 1 sub { |
0 1 n 1 sub { |