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

Diff for /OpenXM/src/kan96xx/Doc/appell.sm1 between version 1.5 and 1.7

version 1.5, 2003/08/18 11:28:15 version 1.7, 2008/06/03 00:04:43
Line 1 
Line 1 
 %% appell.sm1, 1998,  11/8  %% appell.sm1, 1998,  11/8
 % $OpenXM: OpenXM/src/kan96xx/Doc/appell.sm1,v 1.4 2003/08/18 06:36:49 takayama Exp $  % $OpenXM: OpenXM/src/kan96xx/Doc/appell.sm1,v 1.6 2003/08/18 11:59:57 takayama Exp $
 /appell.version (2.981108) def  /appell.version (2.981108) def
 appell.version [(Version)] system_variable gt  appell.version [(Version)] system_variable gt
 { (This package requires the latest version of kan/sm1) message  { (This package requires the latest version of kan/sm1) message
Line 97  $appell.sm1 generates Appell hypergeometric differenti
Line 97  $appell.sm1 generates Appell hypergeometric differenti
  ]   ]
 ] putUsages  ] putUsages
   
   /appell1r {
     /arg1 set
     [/in-appell1r /typev /setarg /b /n /vv /i /a /c /bb /ans /rr /j
     ] pushVariables
     [(CurrentRingp) (KanGBmessage)] pushEnv  %% push current global environment.
     [
       /aa arg1 def
       aa isArray { } { (array appell) message (appell1r) usage error } ifelse
       /setarg 0 def
       aa { tag } map /typev set
       /rr 0 def
       typev [ ArrayP ] eq
       {  /b aa 0 get def
          /setarg 1 def
       } { } ifelse
       typev [ ArrayP RingP] eq
       {  /b aa 0 get def
          /rr aa 1 get def
          /setarg 1 def
       } { } ifelse
       typev [ ] eq
       {
          /b appell.b def
          /setarg 1 def
       } { } ifelse
       setarg { } { (Argument mismatch) message (appell1r) usage error } ifelse
   
       [(KanGBmessage) appell.verbose] system_variable
   
       /n b length 2 sub def   %% Lauricella F_D^n
   
       %% vv = [(x1) (x2)]
       [
         1 1 n {
           /i set
           (x) i gensym
         } for
       ] /vv set
   
       rr tag 1 eq {
         [vv from_records ring_of_differential_operators 0] define_ring
       } {
         rr ring_def
       } ifelse
   
       %% b = [a  c  b_1 ... b_n ]
       /a b 0 get def
       /c b 1 get def
       /bb b rest rest def
   
       [ 1 1 n {
           /i set
              [@@@.Dsymbol (x)] cat i gensym  .
              1 n appellr.euler . (0).. c add (1).. sub  add
              mul
   
              1 n appellr.euler . (0).. a add add
              i i appellr.euler . (0).. , bb i 1 sub get, add,  add
              mul
   
              sub
              (numerator) dc cancelCoeff dehomogenize
              toString
         } for
         % (xi-xj) Di Dj - bj Di + bi Dj
         1 1 n 1 sub {
           /i set
           i 1 add, 1, n {
              /j set
              (x) i gensym . , (x) j gensym . sub
              [@@@.Dsymbol (x)] cat i gensym  .
              [@@@.Dsymbol (x)] cat j gensym  . mul  mul
   
              (0).. , bb j 1 sub get, add
              [@@@.Dsymbol (x)] cat i gensym  .  mul
              sub
   
              (0).. , bb i 1 sub get, add
              [@@@.Dsymbol (x)] cat j gensym  .  mul
              add
              (numerator) dc cancelCoeff dehomogenize
              toString
           } for
         } for
       ] /ans set
       /arg1 [ans vv] def
     ] pop
     popEnv
     popVariables
     arg1
   } def
   [(appell1r)
    [(param appell1r c)
     (array param; array c;)
     (appell1r returns an annihilating ideal for )
     (the Lauricella function F_D(a,b_1, ..., b_n,c; x_1,...,x_n))
     (for the parameter << param >> = [a, c, b_1, ..., b_n].)
     (In case of n=2, the function is called the Appell function F_1.)
     (c = [ generators,  variables ])
     (Example 1. [ [(1).. (2).. div -4 -2 5 6] ] appell1r rank ::)
     $Example 2. [(a,x1,x2) ring_of_differential_operators 0] define_ring /r set $
     $           [ [(a). (2).. div (a). (1). (1).] r] appell1r $
    ]
   ] putUsages
   
 /appell4 {  /appell4 {
   /arg1 set    /arg1 set
   [/in-appell4 /typev /setarg /b /n /vv /i /a /c /bb /ans    [/in-appell4 /typev /setarg /b /n /vv /i /a /c /bb /ans
Line 171  $appell.sm1 generates Appell hypergeometric differenti
Line 276  $appell.sm1 generates Appell hypergeometric differenti
   [(CurrentRingp) (KanGBmessage)] pushEnv  %% push current global environment.    [(CurrentRingp) (KanGBmessage)] pushEnv  %% push current global environment.
   [    [
     /aa arg1 def      /aa arg1 def
     aa isArray { } { (array appell) message (appell4) usage error } ifelse      aa isArray { } { (array appell) message (appell4r) usage error } ifelse
     /setarg 0 def      /setarg 0 def
     aa { tag } map /typev set      aa { tag } map /typev set
     /rr 0 def      /rr 0 def
Line 189  $appell.sm1 generates Appell hypergeometric differenti
Line 294  $appell.sm1 generates Appell hypergeometric differenti
        /b appell.b def         /b appell.b def
        /setarg 1 def         /setarg 1 def
     } { } ifelse      } { } ifelse
     setarg { } { (Argument mismatch) message (appell4) usage error } ifelse      setarg { } { (Argument mismatch) message (appell4r) usage error } ifelse
   
     [(KanGBmessage) appell.verbose] system_variable      [(KanGBmessage) appell.verbose] system_variable
   
Line 351  $appell.sm1 generates Appell hypergeometric differenti
Line 456  $appell.sm1 generates Appell hypergeometric differenti
   [(CurrentRingp) (KanGBmessage)] pushEnv  %% push current global environment.    [(CurrentRingp) (KanGBmessage)] pushEnv  %% push current global environment.
   [    [
     /aa arg1 def      /aa arg1 def
     aa isArray { } { (array appell) message (appell2) usage error } ifelse      aa isArray { } { (array appell) message (appell2r) usage error } ifelse
     /setarg 0 def      /setarg 0 def
     aa { tag } map /typev set      aa { tag } map /typev set
     /r 0 def      /r 0 def
Line 369  $appell.sm1 generates Appell hypergeometric differenti
Line 474  $appell.sm1 generates Appell hypergeometric differenti
        /b [1 [2 3] [4 5]] def         /b [1 [2 3] [4 5]] def
        /setarg 1 def         /setarg 1 def
     } { } ifelse      } { } ifelse
     setarg { } { (Argument mismatch) message (appell2) usage error } ifelse      setarg { } { (Argument mismatch) message (appell2r) usage error } ifelse
   
     [(KanGBmessage) appell.verbose] system_variable      [(KanGBmessage) appell.verbose] system_variable
   

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

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