version 1.22, 2004/05/05 06:57:09 |
version 1.25, 2004/05/13 05:52:53 |
|
|
% $OpenXM: OpenXM/src/kan96xx/Doc/ecart.sm1,v 1.21 2004/05/04 08:29:35 takayama Exp $ |
% $OpenXM: OpenXM/src/kan96xx/Doc/ecart.sm1,v 1.24 2004/05/13 05:33:10 takayama Exp $ |
%[(parse) (hol.sm1) pushfile] extension |
%[(parse) (hol.sm1) pushfile] extension |
%[(parse) (appell.sm1) pushfile] extension |
%[(parse) (appell.sm1) pushfile] extension |
|
|
|
|
/ecart.end { endEcart } def |
/ecart.end { endEcart } def |
/ecart.autoHomogenize 1 def |
/ecart.autoHomogenize 1 def |
/ecart.needSyz 0 def |
/ecart.needSyz 0 def |
|
/ecartd.gb.oxRingStructure [ ] def |
|
|
/ecartd.begin { |
/ecartd.begin { |
ecart.begin |
ecart.begin |
[(EcartAutomaticHomogenization) 1] system_variable |
[(EcartAutomaticHomogenization) 1] system_variable |
|
|
ll (0). eq { |
ll (0). eq { |
} { |
} { |
ll getRing /rr set |
ll getRing /rr set |
ll [ [ (H) rr ,, (1) rr ,, ] |
ll [ [ @@@.Hsymbol rr ,, (1) rr ,, ] |
[ (h) rr ,, (1) rr ,, ]] replace |
[ (h) rr ,, (1) rr ,, ]] replace |
/ll set |
/ll set |
} ifelse |
} ifelse |
|
|
ll (0). eq { |
ll (0). eq { |
} { |
} { |
ll getRing /rr set |
ll getRing /rr set |
ll [ [ (H) rr ,, (1) rr ,, ] ] replace |
ll [ [ @@@.Hsymbol rr ,, (1) rr ,, ] ] replace |
/ll set |
/ll set |
} ifelse |
} ifelse |
} ifelse |
} ifelse |
|
|
[/in.ecart.wv1 /v] pushVariables |
[/in.ecart.wv1 /v] pushVariables |
[ |
[ |
/v arg1 def |
/v arg1 def |
[(H) (h) v to_records pop] /v set |
[@@@.Hsymbol (h) v to_records pop] /v set |
v { 1 } map /v set |
v { 1 } map /v set |
/arg1 v def |
/arg1 v def |
] pop |
] pop |
|
|
$ [(degreeShift) ds (noAutoHomogenize) 1 (sugar) 1] -->use the sugar strate $ |
$ [(degreeShift) ds (noAutoHomogenize) 1 (sugar) 1] -->use the sugar strate $ |
( ) |
( ) |
$cf. ecarth.gb (homogenized), ecartd.gb (dehomogenize), ecartd.reduction $ |
$cf. ecarth.gb (homogenized), ecartd.gb (dehomogenize), ecartd.reduction $ |
|
( ecartd.gb.oxRingStructure ) |
( ) |
( ) |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -1) ( x y Dx Dy -1)] (x,y) $ |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -1) ( x y Dx Dy -1)] (x,y) $ |
$ [ [ (Dx) 1 ] [(x) -1 (y) -1 (Dx) 1 (Dy) 1]] ] ecart.gb pmat ; $ |
$ [ [ (Dx) 1 ] [(x) -1 (y) -1 (Dx) 1 (Dy) 1]] ] ecart.gb pmat ; $ |
|
|
(ecartd.gb : Input polynomial or vectors are automatically homogenized without degreeShift) ecart.message |
(ecartd.gb : Input polynomial or vectors are automatically homogenized without degreeShift) ecart.message |
f { {. ecart.dehomogenize} map} map /f set |
f { {. ecart.dehomogenize} map} map /f set |
f ecart.homogenize01 /f set |
f ecart.homogenize01 /f set |
f { { [[(H). (1).]] replace } map } map /f set |
f { { [[@@@.Hsymbol . (1).]] replace } map } map /f set |
} ifelse |
} ifelse |
} { |
} { |
% Automatic h-homogenization with degreeShift |
% Automatic h-homogenization with degreeShift |
(ecartd.gb : Input polynomial or vectors are automatically homogenized with degreeShift) message |
(ecartd.gb : Input polynomial or vectors are automatically homogenized with degreeShift) message |
f { {. ecart.dehomogenize} map} map /f set |
f { {. ecart.dehomogenize} map} map /f set |
f {/fi set [(degreeShift) hdShift fi] homogenize} map /f set |
f {/fi set [(degreeShift) hdShift fi] homogenize} map /f set |
f { { [[(H). (1).]] replace } map } map /f set |
f { { [[@@@.Hsymbol . (1).]] replace } map } map /f set |
}ifelse |
}ifelse |
|
|
ecart.useSugar { |
ecart.useSugar { |
|
|
|
|
ecartd.end |
ecartd.end |
|
|
|
ans getRing (oxRingStructure) dc /ecartd.gb.oxRingStructure set |
%% |
%% |
env1 restoreOptions %% degreeShift changes "grade" |
env1 restoreOptions %% degreeShift changes "grade" |
|
|
|
|
dvv { 1 } map /wv1 set |
dvv { 1 } map /wv1 set |
vv { -1 } map dvv { 1 } map join /wv2 set |
vv { -1 } map dvv { 1 } map join /wv2 set |
/arg1 [wv1 wv2 ] def |
/arg1 [wv1 wv2 ] def |
] popVariables |
] pop |
|
popVariables |
arg1 |
arg1 |
} def |
} def |
|
|
|
|
$The ideals ii and jj will be compared in the ring h[0,1](D).$ |
$The ideals ii and jj will be compared in the ring h[0,1](D).$ |
$ii and jj are re-parsed.$ |
$ii and jj are re-parsed.$ |
$Example 1: [ [((1-x) Dx + h)] [((1-x)^2 Dx + h (1-x))] (x)] ecartd.isSameIdeal_h $ |
$Example 1: [ [((1-x) Dx + h)] [((1-x)^2 Dx + h (1-x))] (x)] ecartd.isSameIdeal_h $ |
|
]] putUsages |
|
|
|
/ecart.01Order { |
|
/arg1 set |
|
[/in-ecart.01Order /vv /tt /dvv /wv1 /wv2 |
|
] pushVariables |
|
[ |
|
/vv arg1 def |
|
vv isString { [ vv to_records pop] /vv set } |
|
{ } ifelse |
|
vv { toString} map /vv set |
|
|
|
vv { /tt set [@@@.Dsymbol tt] cat } map /dvv set |
|
dvv { 1 } map /wv1 set |
|
/arg1 [wv1] def |
|
] pop |
|
popVariables |
|
arg1 |
|
} def |
|
/ecart.homogenize01Ideal { |
|
/arg1 set |
|
[/in.ecart.homogenize01Ideal /ll /vv /wv] pushVariables |
|
[ |
|
/ll arg1 0 get def |
|
/vv arg1 1 get def |
|
vv isArray { vv from_records /vv set } { } ifelse |
|
vv ecart.01Order /wv set |
|
[vv ring_of_differential_operators 0] define_ring |
|
ll ,,, /ll set ll dehomogenize /ll set |
|
[ll vv wv] gb 0 get /ll set |
|
|
|
ecart.begin |
|
[vv ring_of_differential_operators |
|
vv ecart.stdOrder weight_vector 0 |
|
[(weightedHomogenization) 1]] define_ring |
|
ll ,,, {ecart.homogenize01 ecart.dehomogenizeH} map /arg1 set |
|
] pop |
|
popVariables |
|
arg1 |
|
} def |
|
[(ecart.homogenize01Ideal) |
|
[([ii vv] ecartd.homogenize01Ideal) |
|
(ii : ideal, vv : variables) |
|
$The ideal ii is homogenized in h[0,1](D).$ |
|
$Example 1: [ [((1-x) Dx + 1)] (x)] ecart.homogenize01Ideal $ |
]] putUsages |
]] putUsages |
|
|
|
|