[BACK]Return to ecart.sm1 CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Doc

Diff for /OpenXM/src/kan96xx/Doc/ecart.sm1 between version 1.35 and 1.36

version 1.35, 2004/09/14 03:12:17 version 1.36, 2004/09/14 05:49:36
Line 1 
Line 1 
 % $OpenXM: OpenXM/src/kan96xx/Doc/ecart.sm1,v 1.34 2004/09/13 11:24:10 takayama Exp $  % $OpenXM: OpenXM/src/kan96xx/Doc/ecart.sm1,v 1.35 2004/09/14 03:12:17 takayama Exp $
 (hol_loaded) boundp { }  (hol_loaded) boundp { }
 { [(parse) (hol.sm1) pushfile] extension } ifelse  { [(parse) (hol.sm1) pushfile] extension } ifelse
 %[(parse) (appell.sm1) pushfile] extension  %[(parse) (appell.sm1) pushfile] extension
Line 11 
Line 11 
 /ecartd.gb.oxRingStructure [[ ] [ ] ] def  /ecartd.gb.oxRingStructure [[ ] [ ] ] def
 /ecart.partialEcartGlobalVarX [ ] def  /ecart.partialEcartGlobalVarX [ ] def
   
   /ecart.gb.verbose 1 def
   /ecart.message.quiet 0 def
   
 /ecartd.begin {  /ecartd.begin {
   ecart.begin    ecart.begin
   [(EcartAutomaticHomogenization) 1] system_variable    [(EcartAutomaticHomogenization) 1] system_variable
Line 20 
Line 23 
   [(EcartAutomaticHomogenization) 0] system_variable    [(EcartAutomaticHomogenization) 0] system_variable
 } def  } def
   
 /ecart.message.quiet 0 def  
 /ecart.message {  /ecart.message {
   ecart.message.quiet { pop } { message } ifelse    ecart.message.quiet { pop } { message } ifelse
 } def  } def
Line 80 
Line 82 
     } for      } for
   
     ecart.gb.verbose {      ecart.gb.verbose {
       (ecart.setOpt:) message        (ecart.setOpt:) ecart.message
       (degreeShift=) messagen degreeShift message        (degreeShift=) ecart.messagen degreeShift ecart.message
       $hdShift(startingShift)=$ messagen hdShift message        $hdShift(startingShift)=$ ecart.messagen hdShift ecart.message
       (sugar=) messagen ecart.useSugar message        (sugar=) ecart.messagen ecart.useSugar ecart.message
       (Other options=) messagen ans message        (Other options=) ecart.messagen ans ecart.message
     } {  } ifelse      } {  } ifelse
   
     /arg1 ans def      /arg1 ans def
Line 297 
Line 299 
   (               not to dehomogenize and homogenize)    (               not to dehomogenize and homogenize)
 ]] putUsages  ]] putUsages
   
 /ecart.gb.verbose 1 def  
 %ecarth.gb  s(H)-homogenized outputs.  GG's original version of ecart gb.  %ecarth.gb  s(H)-homogenized outputs.  GG's original version of ecart gb.
 /ecarth.gb {  /ecarth.gb {
   /arg1 set    /arg1 set
Line 874 
Line 875 
   
     [(KanGBmessage) ecart.gb.verbose ] system_variable      [(KanGBmessage) ecart.gb.verbose ] system_variable
     $ecartd.gb dehomogenizes at each reduction step w.r.t. s (H).$ ecart.message      $ecartd.gb dehomogenizes at each reduction step w.r.t. s (H).$ ecart.message
   
   
     %%% Start of the preprocess      %%% Start of the preprocess
     v tag RingP eq {      v tag RingP eq {
Line 1066 
Line 1068 
     vv {toString} map /vv set      vv {toString} map /vv set
     vvGlobal isArray      vvGlobal isArray
     { } { [vvGlobal to_records pop] /vvGlobal set } ifelse      { } { [vvGlobal to_records pop] /vvGlobal set } ifelse
     vvGlobal {toString} map /vv set      vvGlobal {toString} map /vvGlobal set
   
     vv vvGlobal setMinus /vv set      vv vvGlobal setMinus /vv set
     vv { /tt set [@@@.Dsymbol tt] cat } map /dd set      vv { /tt set [@@@.Dsymbol tt] cat } map /dd set
Line 1822 
Line 1824 
      vv { /tt set [@@@.Dsymbol tt] cat } map /dvv set       vv { /tt set [@@@.Dsymbol tt] cat } map /dvv set
      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       vv length 0 eq {
          /arg1 [ ] def
        } {
          /arg1 [wv1 wv2 ] def
        } ifelse
   ] pop    ] pop
   popVariables    popVariables
   arg1    arg1
Line 1833 
Line 1839 
   [/in-ecartd.isSameIdeal_h /aa /ii /jj /iigg /jjgg /vv /ans /k /n /f    [/in-ecartd.isSameIdeal_h /aa /ii /jj /iigg /jjgg /vv /ans /k /n /f
    /ecartd.isSameIdeal_h.opt     /ecartd.isSameIdeal_h.opt
    /save-ecart.autoHomogenize  /wv /save-ecart.message.quiet     /save-ecart.autoHomogenize  /wv /save-ecart.message.quiet
      /vvGlobal  /rng
    ] pushVariables     ] pushVariables
   [(CurrentRingp) (Homogenize_vec)] pushEnv    [(CurrentRingp) (Homogenize_vec)] pushEnv
   [    [
Line 1840 
Line 1847 
     gb.verbose { (Getting in ecartd.isSameIdeal_h) message } { } ifelse      gb.verbose { (Getting in ecartd.isSameIdeal_h) message } { } ifelse
     %% comparison of hilbert series has not yet been implemented.      %% comparison of hilbert series has not yet been implemented.
     /save-ecart.message.quiet ecart.message.quiet def      /save-ecart.message.quiet ecart.message.quiet def
     aa length 3 eq {    }      aa length 3 eq , aa length 4 eq , or {    }
     { ([ii jj vv] ecartd.isSameIdeal_h) error } ifelse      { ([ii jj vv] ecartd.isSameIdeal_h) error } ifelse
     /ii aa 0 get def      /ii aa 0 get def
     /jj aa 1 get def      /jj aa 1 get def
     /vv aa 2 get def      /vv aa 2 get def
   
       aa length 4 eq {
         /vvGlobal aa 3 get def
         vvGlobal isString { [vvGlobal to_records pop] /vvGlobal set }
         { vvGlobal { toString } map /vvGlobal set } ifelse
       } { /vvGlobal [ ] def } ifelse
   
     ii length 0 eq jj length 0 eq and      ii length 0 eq jj length 0 eq and
     { /ans 1 def /LLL.ecartd.isSame_h goto } {  } ifelse      { /ans 1 def /LLL.ecartd.isSame_h goto } {  } ifelse
   
     vv ecart.stdOrder /wv set      [vv vvGlobal] ecart.stdBlockOrder /wv set
       vvGlobal length 0 eq {
         /rng [vv wv ] def
       }{
         /rng [vv wv [(partialEcartGlobalVarX) vvGlobal]] def
       } ifelse
   
     /save-ecart.autoHomogenize ecart.autoHomogenize def      /save-ecart.autoHomogenize ecart.autoHomogenize def
     /ecart.autoHomogenize 0 def      /ecart.autoHomogenize 0 def
     [ii vv wv] ecartd.gb  /iigg set      [ii] rng join  ecartd.gb  /iigg set
     [jj vv wv] ecartd.gb  /jjgg set      [jj] rng join ecartd.gb  /jjgg set
     save-ecart.autoHomogenize /ecart.autoHomogenize set      save-ecart.autoHomogenize /ecart.autoHomogenize set
   
     iigg getRing ring_def      iigg getRing ring_def
Line 1874 
Line 1893 
     0 1 n 1 sub {      0 1 n 1 sub {
       /k set        /k set
       iigg  k get        iigg  k get
       [jjgg vv wv] ecartd.reduction 0 get        [jjgg] ecartd.reduction 0 get
       (0). eq not { /ans 0 def /LLL.ecartd.isSame_h goto} {  } ifelse        (0). eq not { /ans 0 def /LLL.ecartd.isSame_h goto} {  } ifelse
       gb.verbose { (o) messagen } {  } ifelse        gb.verbose { (o) messagen } {  } ifelse
     } for      } for
Line 1883 
Line 1902 
     0 1 n 1 sub {      0 1 n 1 sub {
       /k set        /k set
       jjgg k get        jjgg k get
       [iigg vv wv] ecartd.reduction 0 get        [iigg] ecartd.reduction 0 get
       (0). eq not { /ans 0 def /LLL.ecartd.isSame_h goto} {  } ifelse        (0). eq not { /ans 0 def /LLL.ecartd.isSame_h goto} {  } ifelse
       gb.verbose { (o) messagen } {  } ifelse        gb.verbose { (o) messagen } {  } ifelse
     } for      } for
Line 1902 
Line 1921 
 [(ecartd.isSameIdeal_h)  [(ecartd.isSameIdeal_h)
 [([ii jj vv] ecartd.isSameIdeal_h bool)  [([ii jj vv] ecartd.isSameIdeal_h bool)
  (ii, jj : ideal, vv : variables)   (ii, jj : ideal, vv : variables)
  $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_0).$
  $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 $
    ([ii jj vv vvGlobal] ecartd.isSameIdeal_h bool)
    $ Ideals are compared in Q(x')_0 [x''] <Dx',Dx'',h> $
    (  where x'' is specified in vvGlobal.)
    (cf. partialEcartGlobalVarX option)
 ]] putUsages  ]] putUsages
   
   /ecartd.isSameIdeal_noh {
     /arg1 set
     [/aa /ii /jj /iigg /jjgg /vv /ans /k /n /f
      /ecartd.isSameIdeal_h.opt
      /save-ecart.autoHomogenize  /wv /save-ecart.message.quiet
      /vvGlobal  /rng
      ] pushVariables
     [(CurrentRingp) (Homogenize_vec)] pushEnv
     [
       /aa arg1 def
       gb.verbose { (Getting in ecartd.isSameIdeal_noh) message } { } ifelse
       %% comparison of hilbert series has not yet been implemented.
       /save-ecart.message.quiet ecart.message.quiet def
       aa length 3 eq , aa length 4 eq , or {    }
       { ([ii jj vv] ecartd.isSameIdeal_noh) error } ifelse
       /ii aa 0 get def
       /jj aa 1 get def
       /vv aa 2 get def
   
       aa length 4 eq {
         /vvGlobal aa 3 get def
         vvGlobal isString { [vvGlobal to_records pop] /vvGlobal set }
         { vvGlobal { toString } map /vvGlobal set } ifelse
       } { /vvGlobal [ ] def } ifelse
   
       ii length 0 eq jj length 0 eq and
       { /ans 1 def /LLL.ecartd.isSame_h goto } {  } ifelse
   
       [vv vvGlobal] ecart.stdBlockOrder /wv set
       vvGlobal length 0 eq {
         /rng [vv wv ] def
       }{
         /rng [vv wv [(partialEcartGlobalVarX) vvGlobal]] def
       } ifelse
   
       /save-ecart.autoHomogenize ecart.autoHomogenize def
       /ecart.autoHomogenize 0 def
       [ii] rng join  ecartd.gb  /iigg set
       [jj] rng join ecartd.gb  /jjgg set
       save-ecart.autoHomogenize /ecart.autoHomogenize set
   
       iigg getRing ring_def
   
       getOptions /ecartd.isSameIdeal_h.opt set
   
       /ans 1 def
       iigg 0 get /iigg set
       jjgg 0 get /jjgg set
       %%Bug: not implemented for the case of module.
   
       /save-ecart.message.quiet ecart.message.quiet def
       /ecart.message.quiet 1 def
       gb.verbose { (Comparing) message iigg message (and) message jjgg message }
       {  } ifelse
       gb.verbose { ( ii < jj ?) messagen } {  } ifelse
       iigg length /n set
       0 1 n 1 sub {
         /k set
         iigg  k get
         [jjgg] ecartd.reduction_noh 0 get
         (0). eq not { /ans 0 def /LLL.ecartd.isSame_noh goto} {  } ifelse
         gb.verbose { (o) messagen } {  } ifelse
       } for
       gb.verbose { ( jj < ii ?) messagen } {  } ifelse
       jjgg length /n set
       0 1 n 1 sub {
         /k set
         jjgg k get
         [iigg] ecartd.reduction_noh 0 get
         (0). eq not { /ans 0 def /LLL.ecartd.isSame_noh goto} {  } ifelse
         gb.verbose { (o) messagen } {  } ifelse
       } for
       /LLL.ecartd.isSame_noh
       gb.verbose { ( Done) message } {  } ifelse
       save-ecart.message.quiet /ecart.message.quiet set
       ecartd.isSameIdeal_h.opt restoreOptions
       /arg1 ans def
     ] pop
     popEnv
     popVariables
     arg1
   } def
   
   [(ecartd.isSameIdeal_noh)
   [([ii jj vv] ecartd.isSameIdeal_noh bool)
    (ii, jj : ideal, vv : variables)
    $The ideals ii and jj will be compared in the ring D_0.$
    $ii and jj are re-parsed.$
    $Example 1: [ [((1-x) Dx + 1)]  [((1-x)^2 Dx + (1-x))] (x)] ecartd.isSameIdeal_noh $
    ([ii jj vv vvGlobal] ecartd.isSameIdeal_noh bool)
    $ Ideals are compared in Q(x')_0 [x''] <Dx',Dx''> $
    (  where x'' is specified in vvGlobal.)
    (cf. partialEcartGlobalVarX option, ecartd.reduction_noh, ecartd.isSameIdeal_h)
    $Example 2: [ [(1-z) (1-x-y-z)]  [(1-x) (1-y)] (x,y,z) [(x)]] $
    $            ecartd.isSameIdeal_noh $
   ]] putUsages
   (ecartd.isSameIdeal_noh ) messagen-quiet
   
 /ecart.01Order {  /ecart.01Order {
   /arg1 set    /arg1 set
   [/in-ecart.01Order /vv /tt /dvv /wv1 /wv2    [/in-ecart.01Order /vv /tt /dvv /wv1 /wv2
Line 1954 
Line 2075 
  $Example 1: [ [((1-x) Dx + 1)] (x)] ecart.homogenize01Ideal $   $Example 1: [ [((1-x) Dx + 1)] (x)] ecart.homogenize01Ideal $
 ]] putUsages  ]] putUsages
   
   % Example: [(x,y,z) (x)] ecart.stdBlockOrder
   %            [[(Dy) 1 (Dz) 1] [(y) -1 (z) -1 (Dy) 1 (Dz) 1] [(x) 1 (Dx) 1]]
   % Example: [(x,y,z) [ ]] ecart.stdBlockOrder
   /ecart.stdBlockOrder {
     /arg1 set
     [/vv /vvGlobal /tt /dd /rr] pushVariables
     [
       /vv arg1 0 get def
       /vvGlobal arg1 1 get def
       {
         vv isArray
         { } { [vv to_records pop] /vv set } ifelse
         vv {toString} map /vv set
         vvGlobal isArray
         { } { [vvGlobal to_records pop] /vvGlobal set } ifelse
         vvGlobal {toString} map /vvGlobal set
   
         vvGlobal length 0 eq {
            vv ecart.stdOrder /rr set exit
         } {  } ifelse
   
         vv vvGlobal setMinus /vv set
         vv ecart.stdOrder /rr set
   
         vvGlobal { /tt set [@@@.Dsymbol tt] cat } map /dd set
         [[
            0 1 vvGlobal length 1 sub {
              /tt set
              vvGlobal tt get , 1
            } for
            0 1 dd length 1 sub {
              /tt set
              dd tt get , 1
            } for
         ]] rr join /rr set
         exit
       } loop
       /arg1 rr def
     ] pop
     popVariables
     arg1
   } def
   
 ( ) message-quiet  ( ) message-quiet
   

Legend:
Removed from v.1.35  
changed lines
  Added in v.1.36

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>