version 1.17, 2004/05/13 05:52:53 |
version 1.21, 2004/07/29 08:13:42 |
|
|
% $OpenXM: OpenXM/src/kan96xx/Doc/hol.sm1,v 1.16 2004/05/04 08:29:35 takayama Exp $ |
% $OpenXM: OpenXM/src/kan96xx/Doc/hol.sm1,v 1.20 2004/06/10 06:01:50 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 14 $hol.sm1, basic package for holonomic systems (C) N.Ta |
|
Line 14 $hol.sm1, basic package for holonomic systems (C) N.Ta |
|
message-quiet |
message-quiet |
|
|
/gb.warning 0 def |
/gb.warning 0 def |
/gb.oxRingStructure [ ] def |
/gb.oxRingStructure [[ ] [ ]] 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 |
|
|
[vsize gtmp] toVectors /gtmp set |
[vsize gtmp] toVectors /gtmp set |
ggall 0 gtmp put |
ggall 0 gtmp put |
}{ } ifelse |
}{ } ifelse |
/arg1 [gg dehomogenize ggall] def |
|
|
gg getRing (oxRingStructure) dc /gb.oxRingStructure set |
|
|
|
/arg1 [gg dehomogenize ggall] def |
] pop |
] pop |
popEnv |
popEnv |
popVariables |
popVariables |
|
|
arg1 |
arg1 |
} def |
} def |
|
|
|
/gb.reduction_noh { |
|
/arg2 set |
|
/arg1 set |
|
[/in-gb.reduction_noh /gbasis /flist /ans /gbasis2 |
|
] pushVariables |
|
[(CurrentRingp) (KanGBmessage) (Homogenize)] pushEnv |
|
[ |
|
/gbasis arg2 def |
|
/flist arg1 def |
|
gbasis 0 get tag 6 eq { } |
|
{ (gb.reduction_noh: the second argument must be a list of lists) error } |
|
ifelse |
|
|
|
gbasis length 1 eq { |
|
gbasis getRing ring_def |
|
/gbasis2 gbasis 0 get def |
|
} { |
|
[ [(1)] ] gbasis rest join gb 0 get getRing ring_def |
|
/gbasis2 gbasis 0 get ,,, def |
|
} ifelse |
|
|
|
|
|
flist ,,, /flist set |
|
[(Homogenize) 0] system_variable |
|
flist tag 6 eq { |
|
flist { gbasis2 reduction } map /ans set |
|
}{ |
|
flist gbasis2 reduction /ans set |
|
} ifelse |
|
/arg1 ans def |
|
|
|
] pop |
|
popEnv |
|
popVariables |
|
arg1 |
|
} def |
|
|
/gb.reduction.test { |
/gb.reduction.test { |
[ |
[ |
[( 2*(1-x-y) Dx + 1 ) ( 2*(1-x-y) Dy + 1 )] |
[( 2*(1-x-y) Dx + 1 ) ( 2*(1-x-y) Dy + 1 )] |
|
|
$ ((h-x-y)^2*Dx*Dy) ggg gb.reduction :: $ |
$ ((h-x-y)^2*Dx*Dy) ggg gb.reduction :: $ |
]] putUsages |
]] putUsages |
|
|
|
[(gb.reduction_noh) |
|
[ (f basis gb.reduction_noh r) |
|
(f is reduced by basis by the normal form algorithm.) |
|
(The first element of basis <g_1,...,g_m> must be a Grobner basis.) |
|
(r is the return value format of reduction;) |
|
(r=[h,c0,syz,input], h = c0 f + \sum syz_i g_i) |
|
(basis is given in the argument format of gb.) |
|
(cf. gb.reduction, gb ) |
|
$Example:$ |
|
$ [[( 2*Dx + 1 ) ( 2*Dy + 1 )] $ |
|
$ (x,y) [[(Dx) 1 (Dy) 1]]] /ggg set $ |
|
$ ((1-x-y)^2*Dx*Dy) ggg gb.reduction_noh :: $ |
|
]] putUsages |
|
|
( ) message-quiet ; |
( ) message-quiet ; |
|
|
|
/hol_loaded 1 def |
|
|
|
|
|
|