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

Diff for /OpenXM/src/kan96xx/Kan/dr.sm1 between version 1.5 and 1.12

version 1.5, 2000/12/10 03:33:46 version 1.12, 2003/05/15 00:49:17
Line 1 
Line 1 
 % $OpenXM: OpenXM/src/kan96xx/Kan/dr.sm1,v 1.4 2000/06/15 07:33:29 takayama Exp $  % $OpenXM: OpenXM/src/kan96xx/Kan/dr.sm1,v 1.11 2003/05/15 00:42:07 takayama Exp $
 %% dr.sm1 (Define Ring) 1994/9/25, 26  %% dr.sm1 (Define Ring) 1994/9/25, 26
 %% This file is error clean.  %% This file is error clean.
   
Line 257 
Line 257 
   /arg1 set    /arg1 set
   [/vars /n /i /xList /dList /param] pushVariables    [/vars /n /i /xList /dList /param] pushVariables
   [    [
        (This is an obsolete macro. Use ring_of_differential_difference_operators)
         error
      (mmLarger) (matrix) switch_function       (mmLarger) (matrix) switch_function
      (mpMult)   (difference) switch_function       (mpMult)   (difference) switch_function
      (red@)     (module1) switch_function       (red@)     (module1) switch_function
Line 278 
Line 280 
 } def  } def
   
   
   /ring_of_differential_difference_operators {
     /arg1 set
     [/vars /n /i /xList /dList /param /dvar /evar /vars2 ] pushVariables
     [
        /vars arg1 def
        vars tag 6 eq not {
          ( List is expected as the argument for ring_of_differential_difference_operators ) error
        } { } ifelse
        vars 0 get /dvar set
        vars 1 get /evar set
        (mmLarger) (matrix) switch_function
        (mpMult)   (difference) switch_function
        (red@)     (module1) switch_function
        (groebner) (standard) switch_function
        (isSameComponent) (x) switch_function
   
        [dvar to_records pop] /vars set %[x y z]
        vars reverse /xList set         %[z y x]
   
        [evar to_records pop] /vars2 set %[s1 s2]
   
        vars2 reverse  {@@@.Esymbol 2 1 roll 2 cat_n} map
        xList
        join /xList set   %[Es2 Es1 z y x]
   
        vars2 reverse
        vars {@@@.Dsymbol 2 1 roll 2 cat_n} map
        reverse join /dList set              %[s2 s1 Dz Dy Dx]
        [(H)] xList join [@@@.esymbol] join /xList set
        [(h)] dList join [@@@.Esymbol] join /dList set
        [0 1 1 << vars2 length 1 add >>  << xList length >>
           1 1 << vars2 length 1 add >> << xList length 1 sub >> ] /param set
        [ xList dList param ] /arg1 set
     ] pop
     popVariables
     arg1
   } def
   
 /reverse {  /reverse {
   /arg1 set    /arg1 set
   arg1 length 1 lt    arg1 length 1 lt
Line 1474 
Line 1513 
   (type?) data_conversion  RationalFunctionP eq    (type?) data_conversion  RationalFunctionP eq
 } def  } def
   
   [(isRing)
    [(obj isRing bool) ]
   ] putUsages
   /isRing {
     (type?) data_conversion  RingP eq
   } def
   
 /toString.tmp {  /toString.tmp {
   /arg1 set    /arg1 set
   [/obj /fname] pushVariables    [/obj /fname] pushVariables
Line 2276  newline
Line 2322  newline
   
 /tolower.aux {  /tolower.aux {
   /arg1 set    /arg1 set
   arg1 64 gt  arg1 96 lt and    arg1 64 gt  arg1 91 lt and
   { arg1 32 add }    { arg1 32 add }
   { arg1 } ifelse    { arg1 } ifelse
 } def  } def
Line 2460  newline
Line 2506  newline
 [(ord_w)  [(ord_w)
  [(ff [v1 w1 v2 w2 ... vm wm] ord_w d)   [(ff [v1 w1 v2 w2 ... vm wm] ord_w d)
   (poly ff; string v1; integer w1; ...)    (poly ff; string v1; integer w1; ...)
   (order of ff by the weight vector [w1 w2 ...])    (order of the initial of ff by the weight vector [w1 w2 ...])
   (Example: [(x,y) ring_of_polynomials 0] define_ring )    (Example: [(x,y) ring_of_polynomials 0] define_ring )
   (          (x^2 y^3-x). [(x) 2 (y) 1] ord_w ::)    (          (x^2 y^3-x). [(x) 2 (y) 1] ord_w ::)
  ]   ]
Line 2488  newline
Line 2534  newline
   arg1    arg1
 } def  } def
   
   [(ord_w_all)
    [(ff [v1 w1 v2 w2 ... vm wm] ord_w d)
     (poly ff; string v1; integer w1; ...)
     (order of ff by the weight vector [w1 w2 ...])
     (Example: [(x,y,t) ring_of_polynomials 0] define_ring )
     (          (x^2 y^3-x-t). [(t) 1 ] ord_w_all ::)
    ]
   ] putUsages
   /ord_w_all {
     /arg2 set /arg1 set
     [/ord_w-in /fff /fff-in /www /rrr /iii /ddd /zzz] pushVariables
     [
       /fff arg1 def
       /www arg2 def
       fff (0). eq { /ddd -intInfinity def /ord_w.LLL goto} { } ifelse
       fff (ring) dc /rrr set
       /zzz (0) rrr ,, def
       fff init /fff-in set
       fff fff-in sub /fff set
       /ddd 0 def
       {
        0 2 www length 1 sub {
          /iii set
          fff-in << www iii get rrr ,, >> degree
          << www iii 1 add get >> mul
          ddd add /ddd set
        } for
        fff zzz eq { exit } {  } ifelse
        fff init /fff-in set
        fff fff-in sub /fff set
       } loop
       /ord_w.LLL
       /arg1 ddd def
     ] pop
     popVariables
     arg1
   } def
   
 [(laplace0)  [(laplace0)
  [   [
  (f [v1 ... vn] laplace0 g)   (f [v1 ... vn] laplace0 g)
Line 3562  $ [ff ff] fromVectors :: $ 
Line 3646  $ [ff ff] fromVectors :: $ 
 ]] putUsages  ]] putUsages
   
 /define_ring_variables {  /define_ring_variables {
   [/in-define_ring_variables /v /p /v0] pushVariables    [/in-define_ring_variables /drv._v /drv._p /drv._v0] pushVariables
   %% You cannot use these names for names for polynomials.
   [    [
      /v getVariableNames def       /drv._v getVariableNames def
      /v0 v def       /drv._v0 drv._v def
      v { dup /p set (/) 2 1 roll ( $) p ($. def ) } map cat       drv._v { dup /drv._p set (/) 2 1 roll ( $) drv._p ($. def ) } map cat
      /v set       /drv._v set
 %     v message  %     drv._v message
      [(parse) v] extension       [(parse) drv._v] extension
   ] pop    ] pop
   popVariables    popVariables
 } def  } def
Line 3598  $ [ff ff] fromVectors :: $ 
Line 3683  $ [ff ff] fromVectors :: $ 
   (it returns 1 else it returns 0.)    (it returns 1 else it returns 0.)
   $Example: (hoge) boundp ::$    $Example: (hoge) boundp ::$
 ]] putUsages  ]] putUsages
   [(isSubstr)
    [
     (s1 s2 isSubstr pos)
     (If s1 is a substring of s2, isSubstr returns the position in s2 from which)
     (s1 is contained in s2.)
     (If s1 is not a substring of s2, then isSubstr returns -1.)
    ]
   ] putUsages
   /isSubstr {
     /arg2 set /arg1 set
     [/in-isSubstr /s1 /s2 /i1 /i2 /n1 /n2
      /ans /flg
     ]  pushVariables
     [
       /s1 arg1 def
       /s2 arg2 def
       s1 (array) dc /s1 set
       s2 (array) dc /s2 set
       /n1 s1 length def
       /n2 s2 length def
       /ans -1 def
       0 1 n2 n1 sub {
         /i2 set
         /flg 1 def
         0 1 n1 1 sub {
           /i1 set
           s1 i1 get s2 i2 i1 add get eq {
           } {
             /flg 0 def exit
           } ifelse
         } for
         flg {
           /ans i2 def
           /isSubstr.L2 goto
         } { /ans -1 def } ifelse
       } for
       /isSubstr.L2
       /arg1 ans def
     ] pop
     popVariables
     arg1
   } def
   
 ;  ;
   

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.12

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