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

Diff for /OpenXM/src/kan96xx/Doc/hol.sm1 between version 1.1.1.1 and 1.4

version 1.1.1.1, 1999/10/08 02:12:02 version 1.4, 2000/03/14 13:01:28
Line 1 
Line 1 
   % $OpenXM: OpenXM/src/kan96xx/Doc/hol.sm1,v 1.3 1999/12/10 09:17:50 takayama Exp $
 %% hol.sm1, 1998, 11/8, 11/10, 11/14, 11/25, 1999, 5/18, 6/5.  %% hol.sm1, 1998, 11/8, 11/10, 11/14, 11/25, 1999, 5/18, 6/5.
 %% rank, rrank, characteristic  %% rank, rrank, characteristic
 %% This file is error clean.  %% This file is error clean.
Line 9  hol.version [(Version)] system_variable gt
Line 10  hol.version [(Version)] system_variable gt
   error    error
 } { } ifelse  } { } ifelse
   
 $hol.sm1, basic package for holonomic systems (C) N.Takayama, 1999, 6/05 $  $hol.sm1, basic package for holonomic systems (C) N.Takayama, 1999, 12/07 $
 message-quiet  message-quiet
   
 /rank.v [(x) (y) (z)] def   %% default value of v (variables).  /rank.v [(x) (y) (z)] def   %% default value of v (variables).
Line 269  message-quiet
Line 270  message-quiet
   
 /gb.v 1 def  /gb.v 1 def
 /gb.verbose 0 def  /gb.verbose 0 def
   /gb.options [ ] def
 /gb {  /gb {
   /arg1 set    /arg1 set
   [/in-gb /aa /typev /setarg /f /v    [/in-gb /aa /typev /setarg /f /v
Line 346  message-quiet
Line 348  message-quiet
     } ifelse      } ifelse
     %%% Enf of the preprocess      %%% Enf of the preprocess
   
       gb.verbose { (gb.options = ) messagen gb.options message } { } ifelse
     termorder {      termorder {
       f { {. dehomogenize} map } map /f set        f { {. dehomogenize} map } map /f set
       [f] groebner_sugar 0 get /gg set        [f gb.options] groebner_sugar 0 get /gg set
     }{      }{
       f { {. dehomogenize} map} map /f set        f { {. dehomogenize} map} map /f set
       f fromVectors { homogenize } map /f set        f fromVectors { homogenize } map /f set
       [f] groebner 0 get /gg set        [f gb.options] groebner 0 get /gg set
     }ifelse      }ifelse
     wv isInteger {      wv isInteger {
       /ans [gg gg {init} map] def        /ans [gg gg {init} map] def
Line 454  message-quiet
Line 456  message-quiet
     } ifelse      } ifelse
     %%% Enf of the preprocess      %%% Enf of the preprocess
   
       gb.verbose { (gb.options = ) messagen gb.options message } { } ifelse
     termorder {      termorder {
       f { {. dehomogenize} map } map /f set        f { {. dehomogenize} map } map /f set
       [(UseCriterion1) 1] system_variable        [(UseCriterion1) 1] system_variable
       [f] groebner_sugar 0 get /gg set        [f gb.options] groebner_sugar 0 get /gg set
       [(UseCriterion1) 0] system_variable        [(UseCriterion1) 0] system_variable
     }{      }{
       f { {. dehomogenize} map} map /f set        f { {. dehomogenize} map} map /f set
       f fromVectors { homogenize } map /f set        f fromVectors { homogenize } map /f set
       [(UseCriterion1) 1] system_variable        [(UseCriterion1) 1] system_variable
       [f] groebner 0 get /gg set        [f gb.options] groebner 0 get /gg set
       [(UseCriterion1) 0] system_variable        [(UseCriterion1) 0] system_variable
     }ifelse      }ifelse
     wv isInteger {      wv isInteger {
Line 1163  message-quiet
Line 1165  message-quiet
  $Example 2:  [(x^2+y^2+z^2) (x,y,z)] genericAnnWithL ::$   $Example 2:  [(x^2+y^2+z^2) (x,y,z)] genericAnnWithL ::$
  $Example 3:  [(x^3-y^2 z^2) (x,y,z)] genericAnnWithL ::$   $Example 3:  [(x^3-y^2 z^2) (x,y,z)] genericAnnWithL ::$
 ]] putUsages  ]] putUsages
   
   /reduction*.noH 0 def
   /reduction* {
     /arg1 set
     [/in-reduction* /aa /typev /setarg /f /v
      /gg /wv /termorder /vec /ans /rr /mm /h /size /a0 /a3
      /opt
     ] pushVariables
     [(CurrentRingp) (KanGBmessage)] pushEnv
     [
   
       /aa arg1 def
       aa isArray { } { ( << array >> reduction*) error } ifelse
       /setarg 0 def
       /wv 0 def
       aa { tag } map /typev set
       typev [StringP ArrayP ArrayP] eq
       typev [ArrayP ArrayP ArrayP] eq or
       typev [PolyP ArrayP ArrayP] eq or
       {  /h aa 0 get def
          /f aa 1 get def
          /v aa 2 get from_records def
          /setarg 1 def
       } { } ifelse
       typev [StringP ArrayP ArrayP ArrayP] eq
       typev [ArrayP ArrayP ArrayP ArrayP] eq or
       typev [PolyP ArrayP ArrayP ArrayP] eq or
       {  /h aa 0 get def
          /f aa 1 get def
          /v aa 2 get from_records def
          /wv aa 3 get def
          /setarg 1 def
       } { } ifelse
   
       setarg { } { (reduction* : Argument mismatch) error } ifelse
   
       [(KanGBmessage) gb.verbose ] system_variable
   
       %%% Start of the preprocess
       f getRing /rr set
   
   
       rr tag 0 eq {
         %% Define our own ring
         v isInteger {
           (Error in reduction*: Specify variables) error
         } {  } ifelse
         wv isInteger {
           [v ring_of_differential_operators
           0] define_ring
           /termorder 1 def
         }{
           [v ring_of_differential_operators
            wv weight_vector
           0] define_ring
           wv gb.isTermOrder /termorder set
         } ifelse
       } {
         %% Use the ring structre given by the input.
         v isInteger not {
           (Warning : the given ring definition is not used.) message
         } {  } ifelse
         rr ring_def
         /wv rr gb.getWeight def
         wv gb.isTermOrder /termorder set
       } ifelse
       %%% Enf of the preprocess
   
       f 0 get isArray {
         /size f 0 get length def
         f { { toString . } map } map /f set
         f fromVectors /f set
       }{
         /size -1 def
         f { toString . } map /f set
       } ifelse
   
       h isArray {
         h { toString . } map /h set
         [h] fromVectors 0 get /h set
       }{
         h toString . /h set
       } ifelse
       f { toString . } map /f set
       getOptions /opt set
       [(ReduceLowerTerms) 1] system_variable
       reduction*.noH {
         h f reduction-noH /ans set
       } {
         h f reduction /ans set
       } ifelse
       opt restoreOptions
       size -1 eq not {
         [size ans 0 get] toVectors /a0 set
         [size ans 3 get] toVectors /a3 set
         /ans [a0 ans 1 get ans 2 get a3] def
       } { } ifelse
       /arg1 ans def
     ] pop
     popEnv
     popVariables
     arg1
   } def
   
   
   [(reduction*)
   [([f base v] reduction* [h c0 syz input])
    ([f base v weight] reduction* [h c0 syz input])
    (reduction* is an user interface for reduction and reduction-noH.)
    (If reduction*.noH is one, then reduction-noH will be called.)
    (Example 1: [(x^2) [(x^2+y^2-4) (x y-1)] [(x) (y)]] reduction* )
    (Example 2: [[(1) (y^2-1)] [ [(0) (y-1)] [(1) (y+1)]] [(x) (y)]] reduction*)
    (Example 3: [(x^2) [(x^2+y^2-4) (x y-1)] [(x) (y)] [[(x) 10]] ] reduction* )
   ]] putUsages
   
 ( ) message-quiet ;  ( ) message-quiet ;
   

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.4

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