[BACK]Return to ahg2.k.sm1 CVS log [TXT][DIR] Up to [local] / OpenXM / src / k097 / debug

Annotation of OpenXM/src/k097/debug/ahg2.k.sm1, Revision 1.1.1.1

1.1       maekawa     1:  /K00_verbose 0 def
                      2:
                      3:
                      4: %% start of var.sm1.  1997, 2/27
                      5: %%(type in initv to initialize the variable stack and type in test.var to start a test) message
                      6:
                      7: /sm1.var.Verbose 0 def
                      8: /@@@.quiet.var 1 def
                      9: @@@.quiet.var {   }
                     10: { (var.sm1 (module for debugging):  Version 3/7, 1997. cf. strictMode, debugMode) message } ifelse
                     11:
                     12: /db.initVariableStack {
                     13:   1000 newstack /db.VariableStack set
                     14: } def
                     15:
                     16:
                     17: /localVariables {
                     18:   { dup [ 3 1 roll load ] } map  /db.arg0 set
                     19:   db.VariableStack setstack db.arg0 stdstack
                     20: } def
                     21:
                     22: /restoreVariables {
                     23:   db.VariableStack setstack
                     24:   % dup print
                     25:   { aload pop def } map pop
                     26:   stdstack
                     27: } def
                     28:
                     29:
                     30:
                     31: /db.where {
                     32:   db.VariableStack setstack
                     33:   pstack
                     34:   stdstack
                     35: } def
                     36:
                     37: /db.clear {
                     38:   db.VariableStack setstack
                     39:   /db.arg1 [(StackPointer) ] system_variable 2 sub def
                     40:   %% arg1 print
                     41:   0 1 db.arg1
                     42:   {
                     43:      pop pop
                     44:   } for
                     45:   stdstack
                     46: } def
                     47:
                     48: /db.restore {  %% You cannot use local variable in this function.
                     49:   db.VariableStack setstack
                     50:   /db.arg1 [(StackPointer) ] system_variable 2 sub def
                     51:   0 1 db.arg1
                     52:   {
                     53:      pop /db.variableArray set
                     54:      sm1.var.Verbose { db.variableArray print } { } ifelse
                     55:      db.variableArray isArray
                     56:      {  db.variableArray length 0 gt
                     57:         {
                     58:            db.variableArray   { aload pop def } map pop
                     59:         }
                     60:         { } ifelse
                     61:      }
                     62:      %%% Don't call restoreVariables. Otherwise, stack is set to stdstack.
                     63:      {  } ifelse
                     64:   } for
                     65:   stdstack
                     66: } def
                     67:
                     68:
                     69:
                     70: /db.initDebugStack { 1000 newstack /db.DebugStack set } def
                     71:
                     72:
                     73: /db.where.ds {
                     74:   db.DebugStack setstack
                     75:   pstack
                     76:   stdstack
                     77: } def
                     78:
                     79: /db.clear.ds {
                     80:   db.DebugStack setstack
                     81:   /db.arg1 [(StackPointer) ] system_variable 2 sub def
                     82:   %% arg1 print
                     83:   0 1 db.arg1
                     84:   {
                     85:      pop pop
                     86:   } for
                     87:   stdstack
                     88: } def
                     89:
                     90:
                     91: /db.initErrorStack {
                     92:   [(ErrorStack)] system_variable /db.ErrorStack set
                     93: } def
                     94:
                     95: /db.where.es {
                     96:   db.ErrorStack setstack
                     97:   /db.arg1 [(StackPointer) ] system_variable 2 sub def
                     98:   %% db.arg1 print
                     99:   0 1 db.arg1
                    100:   {
                    101:      pop rc message
                    102:      %% pop rc message  %% This caused coredump for %%Warning:The identifier...
                    103:      %% This bug was  a mistery. (1997, 3/1)
                    104:      %% Perhaps you do not output dollar sign, you get the core.
                    105:      %% I found the missing "%s" in the function printObject() and fixed the
                    106:      %% bug.
                    107:   } for
                    108:   stdstack
                    109: } def
                    110:
                    111:
                    112: /db.clear.es {
                    113:   db.ErrorStack setstack
                    114:   /db.arg1 [(StackPointer) ] system_variable 2 sub def
                    115:   %% arg1 print
                    116:   0 1 db.arg1
                    117:   {
                    118:      pop pop
                    119:   } for
                    120:   stdstack
                    121: } def
                    122:
                    123: %%% Usages.
                    124: [(resolution)
                    125:  [(Only slow version of resolution is implemented in kan/sm1.)
                    126:   (DMacaulay provides a function to compute resolution in the ring of)
                    127:   (differential operators. See http://www.math.s.kobe-u.ac.jp/KAN)
                    128:  ]
                    129: ] putUsages
                    130:
                    131: [(db.where)
                    132:  [(db.where shows the db.VariableStack)
                    133:   (cf. localVariables, restoreVariables,)
                    134:   (    db.clear, db.restore, db.where.ds, db.where.es, debugMode)
                    135:  ]
                    136: ] putUsages
                    137:
                    138: [(db.clear)
                    139:  [(db.clear cleans db.VariableStack)
                    140:   (cf.  db.restore, db.where, db.clear.ds, db.clear.es, debugMode)
                    141:  ]
                    142: ] putUsages
                    143:
                    144: [(db.restore)
                    145:  [(db.restore recovers bindings of variables by reading db.VariableStack)
                    146:   (cf. localVariables, restoreVariables,)
                    147:   (    db.clear, db.where , debugMode)
                    148:  ]
                    149: ] putUsages
                    150:
                    151: [(db.where.ds)
                    152:  [(db.where.ds shows the db.DebugStack)
                    153:   (db.DebugStack is used by kan/k? to get error lines.)
                    154:   (cf. db.clear.ds, db.where, debugMode)
                    155:  ]
                    156: ] putUsages
                    157:
                    158: [(db.clear.ds)
                    159:  [(db.clear.ds cleans db.DebugStack)
                    160:   (cf.  db.where.ds, db.clear, debugMode)
                    161:  ]
                    162: ] putUsages
                    163:
                    164: [(db.where.es)
                    165:  [(db.where.es shows the db.ErrorStack)
                    166:   (Error and warning messages are put in db.ErrorStack when the global)
                    167:   (variables ErrorMessageMode or WarningMessageMode are set to 1 or 2.)
                    168:   (cf. db.where, system_variable)
                    169:  ]
                    170: ] putUsages
                    171:
                    172: [(db.clear.es)
                    173:  [(db.clear.es cleans db.ErrorStack)
                    174:   (cf.  db.clear, db.where.es)
                    175:  ]
                    176: ] putUsages
                    177:
                    178: [(localVariables)
                    179:  [(This function is as same as pushVariables, but it pushes the variable to)
                    180:   (db.VariableStack)
                    181:   (cf. db.where, pushVariables, restoreVariables, debugMode)
                    182:  ]
                    183: ] putUsages
                    184:
                    185: [(restoreVariables)
                    186:  [(This function is as same as popVariables, but it pops the variable from)
                    187:   (db.VariableStack)
                    188:   (cf. db.where, popVariables, localVariables, debugMode)
                    189:  ]
                    190: ] putUsages
                    191:
                    192: /initv { db.initVariableStack db.initDebugStack db.initErrorStack } def
                    193: initv
                    194: %% (initv is executed.) message
                    195:
                    196: /db.pop.es {
                    197:   db.ErrorStack setstack
                    198:   /db.arg1 set
                    199:   stdstack
                    200:   db.arg1
                    201: } def
                    202:
                    203: /db.pop.ds {
                    204:   db.DebugStack setstack
                    205:   /db.arg1 set
                    206:   stdstack
                    207:   db.arg1
                    208: } def
                    209:
                    210: /db.push.ds {
                    211:   /db.arg1 set
                    212:   db.DebugStack setstack
                    213:   db.arg1
                    214:   stdstack
                    215: } def
                    216:
                    217:
                    218: %%% if you like rigorous naming system execute the following command.
                    219: /strictMode {
                    220: [(Strict2) 1] system_variable
                    221: [(chattrs) 1] extension
                    222: [(chattr) 0 /arg1] extension
                    223: [(chattr) 0 /arg2] extension
                    224: [(chattr) 0 /arg3] extension
                    225: [(chattr) 0 /v1] extension  %% used in join.
                    226: [(chattr) 0 /v2] extension
                    227: [(chattr) 0 /@.usages] extension
                    228: @@@.quiet.var {   }
                    229: { (var.sm1 : Strict control of the name space is enabled. (cf. extension)) message }
                    230: ifelse
                    231: } def
                    232: [(strictMode)
                    233:  [(StrictMode enables the protection for an unexpected redefinition)]
                    234: ] putUsages
                    235:
                    236: /debugMode {
                    237:  /pushVariables { localVariables } def
                    238:  /popVariables { restoreVariables } def
                    239: } def
                    240: [(debugMode)
                    241:  [(debugMode overrides on the functions pushVariables and popVariables)
                    242:   (and enables to use db.where)
                    243:  ]
                    244: ] putUsages
                    245:
                    246: %%%% Test Codes.
                    247: /foo1 {
                    248:   /arg1 set
                    249:   [/n /val] localVariables
                    250:   /n arg1 def
                    251:   n 2 le
                    252:   {
                    253:      /val 1 def
                    254:   }
                    255:   {
                    256:      /val n 1 sub  foo1 n 2 sub foo1 add def
                    257:   } ifelse
                    258:   /arg1 val def
                    259:   restoreVariables
                    260:   arg1
                    261: } def
                    262:
                    263: /test.var.1 {
                    264:   (Now, we are testing new features ErrorStack of sm1 (1997, 3/1 )...) message
                    265:   (ErrorStack:) message
                    266:   [(ErrorStack)] system_variable /db.ErrorStack set
                    267:   db.ErrorStack message
                    268:   db.ErrorStack lc message
                    269:   db.ErrorStack rc message
                    270:   (ErrorMessageMode:) message
                    271:   [(ErrorMessageMode)] system_variable message
                    272:   [(ErrorMessageMode) 2 ] system_variable
                    273:   [(WarningMessageMode) 2 ] system_variable
                    274:   [(ErrorMessageMode)] system_variable message
                    275:
                    276:   (Cause an error with the mode 1) message
                    277:   0 1 get     %% The macro  breaks here.
                    278:   0 2 get
                    279:   db.where.es
                    280:   db.clear.es
                    281:   db.where.es
                    282:
                    283:   [(ErrorMessageMode) 0 ] system_variable
                    284:   [(ErrorMessageMode)] system_variable message
                    285:
                    286:   (Cause an error with the mode 0) message
                    287:   0 1 get
                    288:   0 2 get
                    289:   db.where.es
                    290: } def
                    291:
                    292: /test.var {
                    293:   (Now, we are testing new features <<gb>> of sm1 (1997, 3/1 )...) message
                    294:   [(x,y) ring_of_polynomials ( ) elimination_order 0] define_ring
                    295:   [(isReducible) (x^2 y). (x y).] gb message
                    296:   [(lcm) (x y). (y^2).] gb message
                    297:   [(grade) (x^2 y). ] gb message
                    298:   ( --- 1 , xy^2,  3  OK? ----) message
                    299:   (Computing isReducible for 1000 times.... ) messagen
                    300:   { 1 1 1000   { pop [(isReducible) (x^2 y). (x y).] gb pop } for
                    301:      ( ) message } timer
                    302:   (Done) message
                    303: } def
                    304: %%% end of test codes.
                    305: %% end of var.sm1
                    306:
                    307:
                    308:
                    309:
                    310:
                    311:
                    312:
                    313: %%  incmac.sm1 ,   1996, 4/2.
                    314: %% macros for the translator.
                    315: %%% /goto { pop } def  %% should be changed later.
                    316: %( incmac.sm1: 4/16, 1997 ) messagen
                    317: %% Note that you cannot use incmac.k as an argument of the local function.
                    318: %% BUG: [/incmac.k] pushvarable was [/k] pushVariables, but it caused
                    319: %% error when you try to run a program foo(k) { for (i=0; i<k; i++) ... }.
                    320: /mapset {
                    321:   /arg2 set /arg1 set
                    322:   [/incmac.k ] pushVariables
                    323:   0 1 arg1 length 1 {sub} primmsg {
                    324:     /incmac.k set
                    325:     arg1 incmac.k get
                    326:     arg2 incmac.k get
                    327:     set
                    328:   } for
                    329:   popVariables
                    330: } def
                    331:
                    332: %%%  a [i] b Put  <=== a[i] = b;
                    333: %%%  a [i] Get    <=== a[i]
                    334: /a [[1 2] [3 4]] def
                    335: /@@@.indexMode {
                    336: 0 eq {  %%% C-style
                    337:  /@@@.indexMode.flag  0 def
                    338:  /Get {
                    339:  /arg2 set
                    340:  /arg1 set
                    341:  [/incmac.k ] pushVariables
                    342:  [
                    343:    arg1
                    344:    0 1 arg2 length 1 {sub} primmsg {
                    345:       /incmac.k set
                    346:       arg2 incmac.k get ..int get
                    347:    } for
                    348:    /arg1 set
                    349:   ] pop
                    350:   popVariables
                    351:   arg1
                    352:  } def
                    353:
                    354:  /Put {
                    355:  /arg3 set
                    356:  /arg2 set
                    357:  /arg1 set
                    358:  [/incmac.k ] pushVariables
                    359:  arg1
                    360:  [ 0 1 arg2 length 1 {sub} primmsg {
                    361:      /incmac.k set
                    362:      arg2 incmac.k get ..int
                    363:    } for
                    364:  ] arg3 put
                    365:  popVariables
                    366:  } def
                    367: } { %% else
                    368:   (Warning: Do not use indexmode 1.) message
                    369:   (Warning: Do not use indexmode 1.) message
                    370:  /@@@.indexMode.flag  1 def
                    371:  /Get {
                    372:  /arg1 set
                    373:  [/incmac.k ] pushVariables
                    374:  [
                    375:    arg1 0 get load
                    376:    1 1 arg1 length 1 {sub} primmsg {
                    377:       /incmac.k set
                    378:       arg1 incmac.k get ..int 1 {sub} primmsg get
                    379:    } for
                    380:    /arg1 set
                    381:   ] pop
                    382:   popVariables
                    383:   arg1
                    384:  } def
                    385:
                    386:  /Put {
                    387:  /arg2 set
                    388:  /arg1 set
                    389:  [/incmac.k ] pushVariables
                    390:  arg1 0 get load
                    391:  [ 1 1 arg1 length 1 {sub} primmsg {
                    392:      /incmac.k set
                    393:      arg1 incmac.k get ..int 1 {sub} primmsg
                    394:    } for
                    395:  ] arg2 put
                    396:  popVariables
                    397:  } def
                    398: } ifelse
                    399: } def
                    400:
                    401: 0 @@@.indexMode   %% Default index mode is C-style
                    402:
                    403:
                    404:
                    405:
                    406: %%%%%%%%%%%%  1996, 4/28
                    407: %% (2).. NewVector
                    408: /NewVector {
                    409:   0 get /arg1 set
                    410:   pop  %% remove this
                    411:   arg1 (integer) dc /arg1 set
                    412:   [ 1 1 arg1 { pop (0).. } for ]
                    413: } def
                    414:
                    415: %% (2).. (3).. NewMatrix
                    416: /NewMatrix {
                    417:   dup 0 get /arg1 set
                    418:       1 get /arg2 set
                    419:   pop  %% remove this
                    420:   arg1 (integer) dc /arg1 set
                    421:   arg2 (integer) dc /arg2 set
                    422:   [1 1 arg1 { pop this [arg2] NewVector } for ]
                    423: } def
                    424:
                    425: /Join {
                    426:   2 -1 roll pop %% remove this.
                    427:   aload pop join
                    428: } def
                    429:
                    430:
                    431:
                    432: /lessThanOrEqual {
                    433:   /arg2 set /arg1 set
                    434:   arg1 arg2 lt { 1 }
                    435:   { arg1 arg2 eq {1} {0} ifelse} ifelse
                    436: } def
                    437:
                    438: %%% For objects
                    439: /this null def
                    440: /PrimitiveContextp StandardContextp def
                    441: /PrimitiveObject  [PrimitiveContextp]  def
                    442:
                    443: /showln { pop message } def
                    444:
                    445: /KxxTrash0 {  % we do not need.
                    446: /k.mapReplace {  {[[(h). (1).]] replace} map } def
                    447: /Dehomogenize {
                    448:   0 get /arg1 set
                    449:   [
                    450:     arg1 isArray not { arg1 [[(h). (1).]] replace }
                    451:     { arg1 0 get isArray not { arg1 k.mapReplace }
                    452:                              { arg1 {k.mapReplace} map } ifelse
                    453:     } ifelse
                    454:     /arg1 set
                    455:   ] pop
                    456:   arg1
                    457: } def
                    458: } def
                    459:
                    460:
                    461:
                    462:
                    463:
                    464:
                    465: K00_verbose  %% if-condition
                    466:   { %%ifbody
                    467:   ( slib.k (slib.ccc): 8/17,1996, 3/4 -- 3/10,1997 ) message    }%%end if if body
                    468:   { %%if- else part
                    469:   } ifelse
                    470: [   ] /Helplist  set
                    471: /HelpAdd {
                    472:  db.DebugStack setstack $In function : HelpAdd of class PrimitiveObject$  stdstack
                    473:  /Arglist set /Argthis set /FunctionValue [ ] def
                    474:  [/this /s  ] /ArgNames set ArgNames pushVariables [ %%function body
                    475:  [Argthis] Arglist join ArgNames mapset
                    476: this [ %% function args
                    477: Helplist s ] {Append} sendmsg2
                    478: /Helplist  set
                    479: /ExitPoint ]pop popVariables %%pop argValues
                    480:  db.DebugStack setstack pop stdstack
                    481: } def
                    482: %%end of function
                    483:
                    484: /Print {
                    485:  db.DebugStack setstack $In function : Print of class PrimitiveObject$  stdstack
                    486:  /Arglist set /Argthis set /FunctionValue [ ] def
                    487:  [/this /a  ] /ArgNames set ArgNames pushVariables [ %%function body
                    488:  [Argthis] Arglist join ArgNames mapset
                    489:  a   messagen /ExitPoint ]pop popVariables %%pop argValues
                    490:  db.DebugStack setstack pop stdstack
                    491: FunctionValue } def
                    492: %%end of function
                    493:
                    494: /Println {
                    495:  db.DebugStack setstack $In function : Println of class PrimitiveObject$  stdstack
                    496:  /Arglist set /Argthis set /FunctionValue [ ] def
                    497:  [/this /a  ] /ArgNames set ArgNames pushVariables [ %%function body
                    498:  [Argthis] Arglist join ArgNames mapset
                    499:  a   message /ExitPoint ]pop popVariables %%pop argValues
                    500:  db.DebugStack setstack pop stdstack
                    501: FunctionValue } def
                    502: %%end of function
                    503:
                    504: /Ln {
                    505:  db.DebugStack setstack $In function : Ln of class PrimitiveObject$  stdstack
                    506:  /Arglist set /Argthis set /FunctionValue [ ] def
                    507:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                    508:  [Argthis]  ArgNames mapset
                    509:   ( ) message /ExitPoint ]pop popVariables %%pop argValues
                    510:  db.DebugStack setstack pop stdstack
                    511: FunctionValue } def
                    512: %%end of function
                    513:
                    514: /Poly {
                    515:  db.DebugStack setstack $In function : Poly of class PrimitiveObject$  stdstack
                    516:  /Arglist set /Argthis set /FunctionValue [ ] def
                    517:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                    518:  [Argthis] Arglist join ArgNames mapset
                    519:  f   expand /FunctionValue set /ExitPoint ]pop popVariables %%pop argValues
                    520:  db.DebugStack setstack pop stdstack
                    521: FunctionValue } def
                    522: %%end of function
                    523:
                    524: /PolyR {
                    525:  db.DebugStack setstack $In function : PolyR of class PrimitiveObject$  stdstack
                    526:  /Arglist set /Argthis set /FunctionValue [ ] def
                    527:  [/this /f /r  ] /ArgNames set ArgNames pushVariables [ %%function body
                    528:  [Argthis] Arglist join ArgNames mapset
                    529:  f  r   ,, /FunctionValue set /ExitPoint ]pop popVariables %%pop argValues
                    530:  db.DebugStack setstack pop stdstack
                    531: FunctionValue } def
                    532: %%end of function
                    533:
                    534: /Degree {
                    535:  db.DebugStack setstack $In function : Degree of class PrimitiveObject$  stdstack
                    536:  /Arglist set /Argthis set /FunctionValue [ ] def
                    537:  [/this /f /v  ] /ArgNames set ArgNames pushVariables [ %%function body
                    538:  [Argthis] Arglist join ArgNames mapset
                    539:  f  v   degree (universalNumber) dc /FunctionValue set /ExitPoint ]pop popVariables %%pop argValues
                    540:  db.DebugStack setstack pop stdstack
                    541: FunctionValue } def
                    542: %%end of function
                    543:
                    544: /Append {
                    545:  db.DebugStack setstack $In function : Append of class PrimitiveObject$  stdstack
                    546:  /Arglist set /Argthis set /FunctionValue [ ] def
                    547:  [/this /f /g  ] /ArgNames set ArgNames pushVariables [ %%function body
                    548:  [Argthis] Arglist join ArgNames mapset
                    549: this [ %% function args
                    550: f [ g   ] ] {Join} sendmsg2
                    551:  /FunctionValue set  {/ExitPoint goto} exec %%return
                    552: /ExitPoint ]pop popVariables %%pop argValues
                    553:  db.DebugStack setstack pop stdstack
                    554: FunctionValue } def
                    555: %%end of function
                    556:
                    557: /Length {
                    558:  db.DebugStack setstack $In function : Length of class PrimitiveObject$  stdstack
                    559:  /Arglist set /Argthis set /FunctionValue [ ] def
                    560:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                    561:  [Argthis] Arglist join ArgNames mapset
                    562:  f   length (universalNumber) dc /FunctionValue set /ExitPoint ]pop popVariables %%pop argValues
                    563:  db.DebugStack setstack pop stdstack
                    564: FunctionValue } def
                    565: %%end of function
                    566:
                    567: /Indexed {
                    568:  db.DebugStack setstack $In function : Indexed of class PrimitiveObject$  stdstack
                    569:  /Arglist set /Argthis set /FunctionValue [ ] def
                    570:  [/this /name /i  ] /ArgNames set ArgNames pushVariables [ %%function body
                    571:  [Argthis] Arglist join ArgNames mapset
                    572:  name  i   s.Indexed /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    573:  db.DebugStack setstack pop stdstack
                    574: FunctionValue } def
                    575: %%end of function
                    576:
                    577: /Indexed2 {
                    578:  db.DebugStack setstack $In function : Indexed2 of class PrimitiveObject$  stdstack
                    579:  /Arglist set /Argthis set /FunctionValue [ ] def
                    580:  [/this /name /i /j  ] /ArgNames set ArgNames pushVariables [ %%function body
                    581:  [Argthis] Arglist join ArgNames mapset
                    582:  name  i  j   s.Indexed2 /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    583:  db.DebugStack setstack pop stdstack
                    584: FunctionValue } def
                    585: %%end of function
                    586:
                    587: /Transpose {
                    588:  db.DebugStack setstack $In function : Transpose of class PrimitiveObject$  stdstack
                    589:  /Arglist set /Argthis set /FunctionValue [ ] def
                    590:  [/this /mat  ] /ArgNames set ArgNames pushVariables [ %%function body
                    591:  [Argthis] Arglist join ArgNames mapset
                    592:  mat   transpose /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    593:  db.DebugStack setstack pop stdstack
                    594: FunctionValue } def
                    595: %%end of function
                    596:
                    597:
                    598: /s.Indexed {
                    599:   (integer) dc /arg2 set
                    600:   /arg1 set
                    601:   arg1 ([) arg2 (dollar) dc (]) 4 cat_n
                    602: } def
                    603:
                    604: /s.Indexed2 {
                    605:   (integer) dc /arg3 set
                    606:   (integer) dc /arg2 set
                    607:   /arg1 set
                    608:   arg1 ([) arg2 (dollar) dc (,) arg3 (dollar) dc (]) 6 cat_n
                    609: } def
                    610:  /Groebner {
                    611:  db.DebugStack setstack $In function : Groebner of class PrimitiveObject$  stdstack
                    612:  /Arglist set /Argthis set /FunctionValue [ ] def
                    613:  [/this /F  ] /ArgNames set ArgNames pushVariables [ %%function body
                    614:  [Argthis] Arglist join ArgNames mapset
                    615:  F   {[[(h). (1).]] replace homogenize} map /arg1 set
                    616:                             [arg1] groebner 0 get
                    617:                             /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    618:  db.DebugStack setstack pop stdstack
                    619: FunctionValue } def
                    620: %%end of function
                    621:
                    622: /GroebnerTime {
                    623:  db.DebugStack setstack $In function : GroebnerTime of class PrimitiveObject$  stdstack
                    624:  /Arglist set /Argthis set /FunctionValue [ ] def
                    625:  [/this /F  ] /ArgNames set ArgNames pushVariables [ %%function body
                    626:  [Argthis] Arglist join ArgNames mapset
                    627:  F   {[[(h). (1).]] replace homogenize} map /arg1 set
                    628:                             { [arg1] groebner 0 get } timer
                    629:                             /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    630:  db.DebugStack setstack pop stdstack
                    631: FunctionValue } def
                    632: %%end of function
                    633:
                    634: /LiftStd {
                    635:  db.DebugStack setstack $In function : LiftStd of class PrimitiveObject$  stdstack
                    636:  /Arglist set /Argthis set /FunctionValue [ ] def
                    637:  [/this /F  ] /ArgNames set ArgNames pushVariables [ %%function body
                    638:  [Argthis] Arglist join ArgNames mapset
                    639:  F   {[[(h). (1).]] replace homogenize} map /arg1 set
                    640:                             [arg1 [(needBack)]] groebner
                    641:                             /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    642:  db.DebugStack setstack pop stdstack
                    643: FunctionValue } def
                    644: %%end of function
                    645:
                    646: /Reduction {
                    647:  db.DebugStack setstack $In function : Reduction of class PrimitiveObject$  stdstack
                    648:  /Arglist set /Argthis set /FunctionValue [ ] def
                    649:  [/this /f /G  ] /ArgNames set ArgNames pushVariables [ %%function body
                    650:  [Argthis] Arglist join ArgNames mapset
                    651:  f  G   reduction /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    652:  db.DebugStack setstack pop stdstack
                    653: FunctionValue } def
                    654: %%end of function
                    655:
                    656: /IntegerToSm1Integer {
                    657:  db.DebugStack setstack $In function : IntegerToSm1Integer of class PrimitiveObject$  stdstack
                    658:  /Arglist set /Argthis set /FunctionValue [ ] def
                    659:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                    660:  [Argthis] Arglist join ArgNames mapset
                    661:  f   (integer) dc /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    662:  db.DebugStack setstack pop stdstack
                    663: FunctionValue } def
                    664: %%end of function
                    665:
                    666: /RingD {
                    667:  db.DebugStack setstack $In function : RingD of class PrimitiveObject$  stdstack
                    668:  /Arglist set /Argthis set /FunctionValue [ ] def
                    669:  [/this /vList /weightMatrix /pp  ] /ArgNames set ArgNames pushVariables [ %%function body
                    670:  [Argthis] Arglist join ArgNames mapset
                    671: [ %%start of local variables
                    672: /new0 /tmp /size /n /i /j /newtmp /ringpp /argsize ] pushVariables [ %%local variables
                    673: this [ %% function args
                    674: Arglist ] {Length} sendmsg2
                    675: /argsize  set
                    676: argsize (1)..  eq
                    677:  %% if-condition
                    678:   { %%ifbody
                    679:  [  vList  ring_of_differential_operators ( ) elimination_order 0 ] define_ring
                    680:          /tmp set  tmp  /FunctionValue set  {/ExitPoint goto} exec %%return
                    681:   }%%end if if body
                    682:   { %%if- else part
                    683:   } ifelse
                    684: argsize (2)..  eq
                    685:  %% if-condition
                    686:   { %%ifbody
                    687: (0).. /pp  set
                    688:   }%%end if if body
                    689:   { %%if- else part
                    690:   } ifelse
                    691: this [ %% function args
                    692: pp ] {IntegerToSm1Integer} sendmsg2
                    693: /pp  set
                    694: this [ %% function args
                    695: weightMatrix ] {Length} sendmsg2
                    696: /size  set
                    697: this [ %% function args
                    698: size ] {NewVector} sendmsg2
                    699: /new0  set
                    700:   /@@@.indexMode.flag.save @@@.indexMode.flag def    0 @@@.indexMode  (0).. %%PSfor initvalue.
                    701:  (integer) data_conversion
                    702: size  (1).. sub  (integer) data_conversion  1  2 -1 roll
                    703: { %% for body
                    704:  (universalNumber) data_conversion /i  set
                    705: weightMatrix [i  ]  Get
                    706: /tmp  set
                    707: this [ %% function args
                    708: tmp ] {Length} sendmsg2
                    709: /n  set
                    710: this [ %% function args
                    711: n ] {NewVector} sendmsg2
                    712: /newtmp  set
                    713: (1).. /j  set
                    714: %%for init.
                    715: %%for
                    716: { j n  lt
                    717:  {  } {exit} ifelse
                    718: [ {%%increment
                    719: j (2)..  {add} sendmsg2
                    720: /j  set
                    721: } %%end of increment{A}
                    722: {%%start of B part{B}
                    723: newtmp [j (1)..  {sub} sendmsg2
                    724:  ] tmp [j (1)..  {sub} sendmsg2
                    725:  ]  Get
                    726:  Put
                    727: newtmp [j  ] this [ %% function args
                    728: tmp [j  ]  Get
                    729: ] {IntegerToSm1Integer} sendmsg2
                    730:  Put
                    731: } %% end of B part. {B}
                    732:  2 1 roll] {exec} map pop
                    733: } loop %%end of for
                    734: new0 [i  ] newtmp  Put
                    735:   } for
                    736:  [  vList  ring_of_differential_operators   new0   weight_vector  pp   ] define_ring /ringpp  set
                    737:   @@@.indexMode.flag.save @@@.indexMode  ringpp  /FunctionValue set  {/ExitPoint goto} exec %%return
                    738: /ExitPoint ]pop popVariables %%pop the local variables
                    739: /ExitPoint ]pop popVariables %%pop argValues
                    740:  db.DebugStack setstack pop stdstack
                    741: FunctionValue } def
                    742: %%end of function
                    743:
                    744: /getxvar {
                    745:  db.DebugStack setstack $In function : getxvar of class PrimitiveObject$  stdstack
                    746:  /Arglist set /Argthis set /FunctionValue [ ] def
                    747:  [/this /i  ] /ArgNames set ArgNames pushVariables [ %%function body
                    748:  [Argthis] Arglist join ArgNames mapset
                    749:  [(x) (var)   i   ..int ] system_variable /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    750:  db.DebugStack setstack pop stdstack
                    751: FunctionValue } def
                    752: %%end of function
                    753:
                    754: /getdvar {
                    755:  db.DebugStack setstack $In function : getdvar of class PrimitiveObject$  stdstack
                    756:  /Arglist set /Argthis set /FunctionValue [ ] def
                    757:  [/this /i  ] /ArgNames set ArgNames pushVariables [ %%function body
                    758:  [Argthis] Arglist join ArgNames mapset
                    759:  [(D) (var)   i   ..int ] system_variable /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    760:  db.DebugStack setstack pop stdstack
                    761: FunctionValue } def
                    762: %%end of function
                    763:
                    764: /getvarn {
                    765:  db.DebugStack setstack $In function : getvarn of class PrimitiveObject$  stdstack
                    766:  /Arglist set /Argthis set /FunctionValue [ ] def
                    767:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                    768:  [Argthis]  ArgNames mapset
                    769:  [(N)] system_variable (universalNumber) dc /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    770:  db.DebugStack setstack pop stdstack
                    771: FunctionValue } def
                    772: %%end of function
                    773:
                    774: true /SetRingVariables_Verbose  set
                    775: /SetRingVariables {
                    776:  db.DebugStack setstack $In function : SetRingVariables of class PrimitiveObject$  stdstack
                    777:  /Arglist set /Argthis set /FunctionValue [ ] def
                    778:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                    779:  [Argthis]  ArgNames mapset
                    780: SetRingVariables_Verbose  %% if-condition
                    781:   { %%ifbody
                    782: this [ %% function args
                    783: (SetRingVariables() Setting the global variables : ) ] {Print} sendmsg2
                    784:   }%%end if if body
                    785:   { %%if- else part
                    786:   } ifelse
                    787: this [ %% function args
                    788: (0)..  [(CC)] system_variable (universalNumber) dc  ] {k00setRingVariables} sendmsg2
                    789: this [ %% function args
                    790:  [(C)] system_variable (universalNumber) dc   [(LL)] system_variable (universalNumber) dc  ] {k00setRingVariables} sendmsg2
                    791: this [ %% function args
                    792:  [(L)] system_variable (universalNumber) dc   [(MM)] system_variable (universalNumber) dc  ] {k00setRingVariables} sendmsg2
                    793: this [ %% function args
                    794:  [(M)] system_variable (universalNumber) dc   [(NN)] system_variable (universalNumber) dc  ] {k00setRingVariables} sendmsg2
                    795: SetRingVariables_Verbose  %% if-condition
                    796:   { %%ifbody
                    797: this [ %% function args
                    798: ] {Ln} sendmsg2
                    799:   }%%end if if body
                    800:   { %%if- else part
                    801:   } ifelse
                    802: /ExitPoint ]pop popVariables %%pop argValues
                    803:  db.DebugStack setstack pop stdstack
                    804: FunctionValue } def
                    805: %%end of function
                    806:
                    807: /k00AreThereLeftBrace {
                    808:  db.DebugStack setstack $In function : k00AreThereLeftBrace of class PrimitiveObject$  stdstack
                    809:  /Arglist set /Argthis set /FunctionValue [ ] def
                    810:  [/this /s  ] /ArgNames set ArgNames pushVariables [ %%function body
                    811:  [Argthis] Arglist join ArgNames mapset
                    812: [ %%start of local variables
                    813: /leftBrace /jj /slist ] pushVariables [ %%local variables
                    814:   $[$ (array) dc 0 get (universalNumber) dc  /leftBrace  set
                    815: this [ %% function args
                    816: this [ %% function args
                    817: s ] {StringToIntegerArray} sendmsg2
                    818: leftBrace ] {Position} sendmsg2
                    819: /jj  set
                    820: jj (1)..  (0)..  2 1 roll {sub} sendmsg
                    821:  eq not
                    822:  %% if-condition
                    823:   { %%ifbody
                    824: true  /FunctionValue set  {/ExitPoint goto} exec %%return
                    825:   }%%end if if body
                    826:   { %%if- else part
                    827: false  /FunctionValue set  {/ExitPoint goto} exec %%return
                    828:   } ifelse
                    829: /ExitPoint ]pop popVariables %%pop the local variables
                    830: /ExitPoint ]pop popVariables %%pop argValues
                    831:  db.DebugStack setstack pop stdstack
                    832: FunctionValue } def
                    833: %%end of function
                    834:
                    835: /k00setRingVariables {
                    836:  db.DebugStack setstack $In function : k00setRingVariables of class PrimitiveObject$  stdstack
                    837:  /Arglist set /Argthis set /FunctionValue [ ] def
                    838:  [/this /tmp002_p /tmp002_q  ] /ArgNames set ArgNames pushVariables [ %%function body
                    839:  [Argthis] Arglist join ArgNames mapset
                    840: [ %%start of local variables
                    841: /tmp002_i /tmp002_v /tmp002_str ] pushVariables [ %%local variables
                    842: tmp002_p %%PSfor initvalue.
                    843:  (integer) data_conversion
                    844: tmp002_q  (1).. sub  (integer) data_conversion  1  2 -1 roll
                    845: { %% for body
                    846:  (universalNumber) data_conversion /tmp002_i  set
                    847: this [ %% function args
                    848: tmp002_i ] {getxvar} sendmsg2
                    849: /tmp002_v  set
                    850: this [ %% function args
                    851: tmp002_v ] {k00AreThereLeftBrace} sendmsg2
                    852:  %% if-condition
                    853:   { %%ifbody
                    854:   }%%end if if body
                    855:   { %%if- else part
                    856: SetRingVariables_Verbose  %% if-condition
                    857:   { %%ifbody
                    858: this [ %% function args
                    859: tmp002_v ] {Print} sendmsg2
                    860: this [ %% function args
                    861: ( ) ] {Print} sendmsg2
                    862:   }%%end if if body
                    863:   { %%if- else part
                    864:   } ifelse
                    865: this [ %% function args
                    866: [ (/) tmp002_v ( $) tmp002_v ($ expand def )   ] ] {AddString} sendmsg2
                    867: /str  set
                    868:  [(parse)   str   ] extension    } ifelse
                    869: this [ %% function args
                    870: tmp002_i ] {getdvar} sendmsg2
                    871: /tmp002_v  set
                    872: this [ %% function args
                    873: tmp002_v ] {k00AreThereLeftBrace} sendmsg2
                    874:  %% if-condition
                    875:   { %%ifbody
                    876:   }%%end if if body
                    877:   { %%if- else part
                    878: SetRingVariables_Verbose  %% if-condition
                    879:   { %%ifbody
                    880: this [ %% function args
                    881: tmp002_v ] {Print} sendmsg2
                    882: this [ %% function args
                    883: ( ) ] {Print} sendmsg2
                    884:   }%%end if if body
                    885:   { %%if- else part
                    886:   } ifelse
                    887: this [ %% function args
                    888: [ (/) tmp002_v ( $) tmp002_v ($ expand def )   ] ] {AddString} sendmsg2
                    889: /str  set
                    890:  [(parse)   str   ] extension    } ifelse
                    891:   } for
                    892: /ExitPoint ]pop popVariables %%pop the local variables
                    893: /ExitPoint ]pop popVariables %%pop argValues
                    894:  db.DebugStack setstack pop stdstack
                    895: } def
                    896: %%end of function
                    897:
                    898: /AddString {
                    899:  db.DebugStack setstack $In function : AddString of class PrimitiveObject$  stdstack
                    900:  /Arglist set /Argthis set /FunctionValue [ ] def
                    901:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                    902:  [Argthis] Arglist join ArgNames mapset
                    903:  f    aload length cat_n /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    904:  db.DebugStack setstack pop stdstack
                    905: FunctionValue } def
                    906: %%end of function
                    907:
                    908: /IntegerToString {
                    909:  db.DebugStack setstack $In function : IntegerToString of class PrimitiveObject$  stdstack
                    910:  /Arglist set /Argthis set /FunctionValue [ ] def
                    911:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                    912:  [Argthis] Arglist join ArgNames mapset
                    913:  f   (string) dc /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    914:  db.DebugStack setstack pop stdstack
                    915: FunctionValue } def
                    916: %%end of function
                    917:
                    918: /Replace {
                    919:  db.DebugStack setstack $In function : Replace of class PrimitiveObject$  stdstack
                    920:  /Arglist set /Argthis set /FunctionValue [ ] def
                    921:  [/this /f /rule  ] /ArgNames set ArgNames pushVariables [ %%function body
                    922:  [Argthis] Arglist join ArgNames mapset
                    923:  f  rule   replace /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    924:  db.DebugStack setstack pop stdstack
                    925: FunctionValue } def
                    926: %%end of function
                    927:
                    928: /AsciiToString {
                    929:  db.DebugStack setstack $In function : AsciiToString of class PrimitiveObject$  stdstack
                    930:  /Arglist set /Argthis set /FunctionValue [ ] def
                    931:  [/this /c  ] /ArgNames set ArgNames pushVariables [ %%function body
                    932:  [Argthis] Arglist join ArgNames mapset
                    933:  c   (integer) dc (string) dc /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                    934:  db.DebugStack setstack pop stdstack
                    935: FunctionValue } def
                    936: %%end of function
                    937:
                    938: /ToString {
                    939:  db.DebugStack setstack $In function : ToString of class PrimitiveObject$  stdstack
                    940:  /Arglist set /Argthis set /FunctionValue [ ] def
                    941:  [/this /p  ] /ArgNames set ArgNames pushVariables [ %%function body
                    942:  [Argthis] Arglist join ArgNames mapset
                    943: [ %%start of local variables
                    944: /n /ans /i ] pushVariables [ %%local variables
                    945: [   ] /ans  set
                    946: this [ %% function args
                    947: p ] {IsArray} sendmsg2
                    948:  %% if-condition
                    949:   { %%ifbody
                    950: this [ %% function args
                    951: p ] {Length} sendmsg2
                    952: /n  set
                    953: this [ %% function args
                    954: ans ([ ) ] {Append} sendmsg2
                    955: /ans  set
                    956: (0).. /i  set
                    957: %%for init.
                    958: %%for
                    959: { i n  lt
                    960:  {  } {exit} ifelse
                    961: [ {%%increment
                    962: /i i (1).. add def
                    963: } %%end of increment{A}
                    964: {%%start of B part{B}
                    965: this [ %% function args
                    966: ans this [ %% function args
                    967: p [i  ]  Get
                    968: ] {ToString} sendmsg2
                    969: ] {Append} sendmsg2
                    970: /ans  set
                    971: i n (1)..  {sub} sendmsg2
                    972:  eq not
                    973:  %% if-condition
                    974:   { %%ifbody
                    975: this [ %% function args
                    976: ans ( , ) ] {Append} sendmsg2
                    977: /ans  set
                    978:   }%%end if if body
                    979:   { %%if- else part
                    980:   } ifelse
                    981: } %% end of B part. {B}
                    982:  2 1 roll] {exec} map pop
                    983: } loop %%end of for
                    984: this [ %% function args
                    985: ans ( ] ) ] {Append} sendmsg2
                    986: /ans  set
                    987:   }%%end if if body
                    988:   { %%if- else part
                    989: [  p   (dollar) dc    ] /ans  set
                    990:   } ifelse
                    991: this [ %% function args
                    992: ans ] {AddString} sendmsg2
                    993:  /FunctionValue set  {/ExitPoint goto} exec %%return
                    994: /ExitPoint ]pop popVariables %%pop the local variables
                    995: /ExitPoint ]pop popVariables %%pop argValues
                    996:  db.DebugStack setstack pop stdstack
                    997: FunctionValue } def
                    998: %%end of function
                    999:
                   1000: /IsArray {
                   1001:  db.DebugStack setstack $In function : IsArray of class PrimitiveObject$  stdstack
                   1002:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1003:  [/this /p  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1004:  [Argthis] Arglist join ArgNames mapset
                   1005:  p   isArray /FunctionValue set   /ExitPoint ]pop popVariables %%pop argValues
                   1006:  db.DebugStack setstack pop stdstack
                   1007: FunctionValue } def
                   1008: %%end of function
                   1009:
                   1010: /Denominator {
                   1011:  db.DebugStack setstack $In function : Denominator of class PrimitiveObject$  stdstack
                   1012:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1013:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1014:  [Argthis] Arglist join ArgNames mapset
                   1015:  f   (denominator) dc /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   1016:  db.DebugStack setstack pop stdstack
                   1017: FunctionValue } def
                   1018: %%end of function
                   1019:
                   1020: /Numerator {
                   1021:  db.DebugStack setstack $In function : Numerator of class PrimitiveObject$  stdstack
                   1022:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1023:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1024:  [Argthis] Arglist join ArgNames mapset
                   1025:  f   (numerator) dc /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   1026:  db.DebugStack setstack pop stdstack
                   1027: FunctionValue } def
                   1028: %%end of function
                   1029:
                   1030: /Replace {
                   1031:  db.DebugStack setstack $In function : Replace of class PrimitiveObject$  stdstack
                   1032:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1033:  [/this /f /rule  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1034:  [Argthis] Arglist join ArgNames mapset
                   1035: [ %%start of local variables
                   1036: /ans /n /tmp /i /num /den ] pushVariables [ %%local variables
                   1037: this [ %% function args
                   1038: f ] {IsArray} sendmsg2
                   1039:  %% if-condition
                   1040:   { %%ifbody
                   1041: this [ %% function args
                   1042: f ] {Length} sendmsg2
                   1043: /n  set
                   1044: [   ] /ans  set
                   1045: (0).. /i  set
                   1046: %%for init.
                   1047: %%for
                   1048: { i n  lt
                   1049:  {  } {exit} ifelse
                   1050: [ {%%increment
                   1051: /i i (1).. add def
                   1052: } %%end of increment{A}
                   1053: {%%start of B part{B}
                   1054: this [ %% function args
                   1055: ans this [ %% function args
                   1056: f [i  ]  Get
                   1057: rule ] {Replace} sendmsg2
                   1058: ] {Append} sendmsg2
                   1059: /ans  set
                   1060: } %% end of B part. {B}
                   1061:  2 1 roll] {exec} map pop
                   1062: } loop %%end of for
                   1063: ans  /FunctionValue set  {/ExitPoint goto} exec %%return
                   1064:   }%%end if if body
                   1065:   { %%if- else part
                   1066:   } ifelse
                   1067:  f   tag RationalFunctionP eq   %% if-condition
                   1068:   { %%ifbody
                   1069: this [ %% function args
                   1070: f ] {Numerator} sendmsg2
                   1071: /num  set
                   1072: this [ %% function args
                   1073: f ] {Denominator} sendmsg2
                   1074: /den  set
                   1075:  num  rule   replace  /num  set
                   1076:  den  rule   replace  /den  set
                   1077: num den  {div} sendmsg2
                   1078:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   1079:   }%%end if if body
                   1080:   { %%if- else part
                   1081:   } ifelse
                   1082:  f  rule   replace /FunctionValue set  /ExitPoint ]pop popVariables %%pop the local variables
                   1083: /ExitPoint ]pop popVariables %%pop argValues
                   1084:  db.DebugStack setstack pop stdstack
                   1085: FunctionValue } def
                   1086: %%end of function
                   1087:
                   1088: /Map {
                   1089:  db.DebugStack setstack $In function : Map of class PrimitiveObject$  stdstack
                   1090:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1091:  [/this /karg /func  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1092:  [Argthis] Arglist join ArgNames mapset
                   1093:  karg   { [ 2 -1 roll ] this 2 -1 roll [(parse)   func   ] extension pop } map /FunctionValue set /ExitPoint ]pop popVariables %%pop argValues
                   1094:  db.DebugStack setstack pop stdstack
                   1095: FunctionValue } def
                   1096: %%end of function
                   1097:
                   1098: this [ %% function args
                   1099: [ (Map) [ (Map(karg,func) applies the function <<func>> to the <<karg>>(string func).) ( Ex. Map([82,83,85],"AsciiToString"):)   ]   ] ] {HelpAdd} sendmsg2
                   1100: /Position {
                   1101:  db.DebugStack setstack $In function : Position of class PrimitiveObject$  stdstack
                   1102:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1103:  [/this /list /elem  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1104:  [Argthis] Arglist join ArgNames mapset
                   1105: [ %%start of local variables
                   1106: /n /pos /i ] pushVariables [ %%local variables
                   1107: this [ %% function args
                   1108: list ] {Length} sendmsg2
                   1109: /n  set
                   1110: (1)..  (0)..  2 1 roll {sub} sendmsg
                   1111: /pos  set
                   1112: (0).. /i  set
                   1113: %%for init.
                   1114: %%for
                   1115: { i n  lt
                   1116:  {  } {exit} ifelse
                   1117: [ {%%increment
                   1118: /i i (1).. add def
                   1119: } %%end of increment{A}
                   1120: {%%start of B part{B}
                   1121: elem list [i  ]  Get
                   1122:  eq
                   1123:  %% if-condition
                   1124:   { %%ifbody
                   1125: i /pos  set
                   1126:   /k00.label0 goto    }%%end if if body
                   1127:   { %%if- else part
                   1128:   } ifelse
                   1129: } %% end of B part. {B}
                   1130:  2 1 roll] {exec} map pop
                   1131: } loop %%end of for
                   1132:   /k00.label0  pos  /FunctionValue set  {/ExitPoint goto} exec %%return
                   1133: /ExitPoint ]pop popVariables %%pop the local variables
                   1134: /ExitPoint ]pop popVariables %%pop argValues
                   1135:  db.DebugStack setstack pop stdstack
                   1136: FunctionValue } def
                   1137: %%end of function
                   1138:
                   1139: this [ %% function args
                   1140: [ (Position) [ (Position(list,elem) returns the position p of the element <<elem>> in) ( the array <<list>>. If <<elem>> is not in <<list>>, it return -1) ( (array list).) (Ex. Position([1,34,2],34): )   ]   ] ] {HelpAdd} sendmsg2
                   1141: /StringToIntegerArray {
                   1142:  db.DebugStack setstack $In function : StringToIntegerArray of class PrimitiveObject$  stdstack
                   1143:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1144:  [/this /s  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1145:  [Argthis] Arglist join ArgNames mapset
                   1146:  s   (array) dc { (universalNumber) dc } map /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   1147:  db.DebugStack setstack pop stdstack
                   1148: FunctionValue } def
                   1149: %%end of function
                   1150:
                   1151: this [ %% function args
                   1152: [ (StringToIntegerArray) [ (StringToIntegerArray(s) decomposes the string <<s>> into an array of) (ascii codes of <<s>>  (string s).) (cf. AsciiToString.)   ]   ] ] {HelpAdd} sendmsg2
                   1153: /StringToAsciiArray {
                   1154:  db.DebugStack setstack $In function : StringToAsciiArray of class PrimitiveObject$  stdstack
                   1155:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1156:  [/this /s  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1157:  [Argthis] Arglist join ArgNames mapset
                   1158: this [ %% function args
                   1159: s ] {StringToIntegerArray} sendmsg2
                   1160:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   1161: /ExitPoint ]pop popVariables %%pop argValues
                   1162:  db.DebugStack setstack pop stdstack
                   1163: FunctionValue } def
                   1164: %%end of function
                   1165:
                   1166: this [ %% function args
                   1167: [ (StringToAsciiArray) [ (StringToAsciiArray(s) is StringToIntegerArray(s).)   ]   ] ] {HelpAdd} sendmsg2
                   1168: /NewArray {
                   1169:  db.DebugStack setstack $In function : NewArray of class PrimitiveObject$  stdstack
                   1170:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1171:  [/this /n  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1172:  [Argthis] Arglist join ArgNames mapset
                   1173: this [ %% function args
                   1174: n ] {NewVector} sendmsg2
                   1175:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   1176: /ExitPoint ]pop popVariables %%pop argValues
                   1177:  db.DebugStack setstack pop stdstack
                   1178: FunctionValue } def
                   1179: %%end of function
                   1180:
                   1181: this [ %% function args
                   1182: [ (NewArray) [ (NewArray(n) returns an array of size n (integer n).)   ]   ] ] {HelpAdd} sendmsg2
                   1183: %% This package requires kan/sm1 version 951228 or later.
                   1184: %% The binary file of kan/sm1 of this version is temporary obtainable from
                   1185: %% ftp.math.s.kobe-u.ac.jp. The file /pub/kan/sm1.binary.sunos4.3.japanese
                   1186: %% is for sun with JLE.
                   1187: %% How to Install
                   1188: %% 1.Copy this file and rename it to sm1 (mv sm1.binary.sunos4.3.japanese sm1).
                   1189: %% 2.Add executable property (chmod +x sm1).
                   1190:
                   1191:
                   1192: %% NEW feature of factor-b.sm1.  [ ---> kanLeftBrace, ] ---> kanRightBrace
                   1193: {
                   1194: (factor-b.sm1 : kan/sm1 package to factor polynomials by calling risa/asir.)
                   1195: message
                   1196: (             : kan/sm1 package to simplify rationals by calling risa/asir.)
                   1197: message
                   1198: (                 CANCEL HAS NOT BEEN TESTED.) message
                   1199: (             : kan/sm1 package to compute hilbert polynomials by calling sm0.)
                   1200: message
                   1201: (               Version March 5, 1997. It runs on kan/sm1 version 951228 or later.) message
                   1202: }
                   1203:
                   1204: [(factor)
                   1205:  [(polynomial factor list_of_strings)
                   1206:   (Example: (x^2-1). factor :: ---> [[$1$ $1$] [$x-1$ $1$] [$x+1$ $1$]])
                   1207:   (cf.:     data_conversion, map, get, pushfile)
                   1208:   (Note:    The function call creates work files asir-tmp.t, asir-tmp.tt,)
                   1209:   (          asir-tmp-out.t, asir-tmp-log.t and asir-tmp-out.tt )
                   1210:   (          in the current directory.)
                   1211:  ]
                   1212: ] putUsages
                   1213:
                   1214: %% /f (Dx^10*d*a-d*a) def
                   1215:
                   1216: /factor-asir-1 {
                   1217:  /arg1 set
                   1218:  [/f /fd /fnewline] pushVariables
                   1219:  [
                   1220:   arg1 /f set
                   1221:   %%(factor-asir-1 is tested with Asir version 950831 on Linux.) message
                   1222:   (asir-tmp.t) (w) file /fd set
                   1223:   /fnewline { fd 10 (string) data_conversion writestring } def
                   1224:   fd $output("asir-tmp-out.t");$ writestring fnewline
                   1225:   fd $fctr($ writestring
                   1226:   fd  f writestring
                   1227:   fd $); output(); quit(); $ writestring fnewline
                   1228:   fd closefile
                   1229:   (/bin/rm -f asir-tmp.tt) system
                   1230:   (sed "s/D/kanD/g" asir-tmp.t | sed "s/E/kanE/g" | sed "s/Q/kanQ/g" | sed "s/\[/kanLeftBrace/g" | sed "s/\]/kanRightBrace/g" | sed "s/\,/kanComma/g" >asir-tmp.tt) system
                   1231:   (/bin/rm -f asir-tmp-out.t asir-tmp-out.tt asir-tmp-log.t) system
                   1232:   (asir <asir-tmp.tt >asir-tmp-log.t) system
                   1233:   (sed "s/\[1\]/ /g" asir-tmp-out.t | sed "s/\[2\]/ /g" | sed "1s/1/ /g"| sed "s/\[/{/g" | sed "s/\]/}/g" | sed "s/kanD/D/g" | sed "s/kanE/E/g" | sed "s/kanQ/Q/g" | sed "s/kanLeftBrace/\[/g" | sed "s/kanRightBrace/\]/g" | sed "s/kanComma/\,/g" >asir-tmp-out.tt) system
                   1234:  ] pop
                   1235:  popVariables
                   1236: } def
                   1237:
                   1238: /clean-workfiles {
                   1239:  (/bin/rm -f asir-tmp-out.t asir-tmp-out.tt asir-tmp.t asir-tmp.tt sm0-tmp.t sm0-tmp-out.t asir-tmp-log.t sm0-tmp-out.tt) system
                   1240: } def
                   1241:
                   1242:
                   1243: %% comment: there is not data conversion function from string --> array
                   1244: %%                           e.g. (abc) ---> [0x61, 0x62, 0x63]
                   1245: %%          We can do (abc) 1 10 put, but "get" does not work for strings.
                   1246:
                   1247: %% f factor-asir-1
                   1248:
                   1249: %%/aaa
                   1250: %% ({{1,1},{x-1,1},{x+1,1},{x^4+x^3+x^2+x+1,1},{x^4-x^3+x^2-x+1,1}})
                   1251: %%def
                   1252:
                   1253: /asir-list-to-kan {
                   1254:   /arg1 set
                   1255:   [/aaa /ftmp /ftmp2] pushVariables
                   1256:   [
                   1257:     /aaa arg1 def
                   1258:     [ aaa to_records pop ] /ftmp set
                   1259:     ftmp { to_records pop [ 3 1 roll ] } map /ftmp2 set
                   1260:     /arg1 ftmp2 def
                   1261:   ] pop
                   1262:   popVariables
                   1263:   arg1
                   1264: } def
                   1265:
                   1266: /foo {
                   1267:   (input string is in f) message
                   1268:   f ::
                   1269:   f factor-asir-1
                   1270:   %% (asir-tmp-out.tt) run
                   1271:   %% (answer in @asir.out) message
                   1272:   %% bug of run.
                   1273:   (asir-tmp-out.tt) pushfile /@asir.out set
                   1274:   @asir.out asir-list-to-kan /ff2 set
                   1275:   (answer in ff2) message
                   1276: } def
                   1277:
                   1278: /factor {
                   1279:   (string) data_conversion
                   1280:   factor-asir-1
                   1281:   (asir-tmp-out.tt) pushfile asir-list-to-kan
                   1282: } def
                   1283:
                   1284: %%%%%%%%%%%%%%%%% macros for simplification (reduction, cancel)
                   1285: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                   1286: [(cancel)
                   1287:  [(polynomial cancel list_of_strings)
                   1288:   (This function simplifies rationals.)
                   1289:   (Example: $x^2-1$. $x+1$. div cancel :: ---> [[$x-1$ , $1$]])
                   1290:   (Note:    The function call creates work files asir-tmp.t, asir-tmp.tt,)
                   1291:   (          asir-tmp-out.t, asri-tmp-log.t and asir-tmp-out.tt )
                   1292:   (          in the current directory.)
                   1293:  ]
                   1294: ] putUsages
                   1295:
                   1296: /reduce-asir-1 {
                   1297:  /arg1 set
                   1298:  [/f /fd /fnewline] pushVariables
                   1299:  [
                   1300:   arg1 /f set
                   1301:   %% (reduce-asir-1 is tested with Asir version 950831 on Linux.) message
                   1302:   (asir-tmp.t) (w) file /fd set
                   1303:   /fnewline { fd 10 (string) data_conversion writestring } def
                   1304:   fd $output("asir-tmp-out.t");$ writestring fnewline
                   1305:   fd $AsirTmp012=red($ writestring
                   1306:   fd  f writestring
                   1307:   fd $)$ writestring
                   1308:   fd ($ )  writestring fnewline
                   1309:   fd $[[nm(AsirTmp012), dn(AsirTmp012)]];output();quit(); $ writestring fnewline
                   1310:   fd closefile
                   1311:   (/bin/rm -f asir-tmp.tt) system
                   1312:   (sed "s/D/kanD/g" asir-tmp.t | sed "s/E/kanE/g" | sed "s/Q/kanQ/g" >asir-tmp.tt) system
                   1313:   (/bin/rm -f asir-tmp-out.t asir-tmp-out.tt asir-tmp-log.t) system
                   1314:   (asir <asir-tmp.tt >asir-tmp-log.t) system
                   1315:   (sed "s/\[1\]/ /g" asir-tmp-out.t | sed "s/\[2\]/ /g" |sed "s/\[3\]/ /g" | sed "1s/1/ /g"| sed "s/\[/{/g" | sed "s/\]/}/g" | sed "s/kanD/D/g" | sed "s/kanE/E/g" | sed "s/kanQ/Q/g" | sed "s/kanLeftBrace/\[/g" | sed "s/kanRightBrace/\]/g" | sed "s/kanComma/\,/g" >asir-tmp-out.tt) system
                   1316:  ] pop
                   1317:  popVariables
                   1318: } def
                   1319:
                   1320: /cancel {
                   1321:   (string) data_conversion
                   1322:   reduce-asir-1
                   1323:   (asir-tmp-out.tt) pushfile asir-list-to-kan
                   1324: } def
                   1325: %%%%%%%%%%%%%%%%% macros for Hilbert functions
                   1326: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                   1327: /hilbert {
                   1328:  /arg2 set
                   1329:  /arg1 set
                   1330:  [/bases /vars] pushVariables
                   1331:  [
                   1332:    /bases arg1 def
                   1333:    /vars arg2 def
                   1334:    bases {init (string) data_conversion} map /bases set
                   1335:    bases vars execSm0
                   1336:
                   1337:    (sed '1s/^\$/{/g' sm0-tmp-out.t | sed '1s/\$$/ , /g' | sed '2s/^\$//g' | sed '2s/\$$/}/g' | sed 's/V//g' >sm0-tmp-out.tt) system
                   1338:  ] pop
                   1339:  popVariables
                   1340:  [ (sm0-tmp-out.tt) pushfile to_records pop]
                   1341: } def
                   1342: [(hilbert)
                   1343:  [(------------------------------------------------------------------------)
                   1344:   (list_of_polynomials variables hilbert hilbert_function)
                   1345:   (Example: [(x^2-1). (x y -2).] (x,y)  hilbert :: ---> [$...$ $,,,$] )
                   1346:   (cf.:     data_conversion, map, get, pushfile)
                   1347:   (Note:    The function call creates work files sm0-tmp.t, sm0-tmp-out.tt,)
                   1348:   (         sm0-tmp-log.t and sm0-tmp-out.t in the current directory.)
                   1349:  ]
                   1350: ] putUsages
                   1351:
                   1352:
                   1353: %% Ex. [(x^2) (y^3) (x y)] (x,y) execSm0
                   1354: /execSm0 {
                   1355:  /arg2 set
                   1356:  /arg1 set
                   1357:  [/monoms /fd /tmp /vars] pushVariables
                   1358:  [
                   1359:   /monoms arg1 def
                   1360:   /vars arg2 def
                   1361:   (/bin/rm -f sm0-tmp-out.t sm0-tmp-out.tt sm0-tmp-log.t) system
                   1362:   (sm0-tmp.t) (w) file /fd set
                   1363:   fd ( ${-p,0}$ options ) writestring
                   1364:   fd ( $) writestring
                   1365:   ${$ vars $}$ 3 cat_n /tmp set
                   1366:   fd tmp writestring
                   1367:   fd ($  ) writestring
                   1368:   fd ( polynomial_ring set_up_ring ${-proof}$ options ) writestring
                   1369:   fd monoms writeArray
                   1370:   fd ( /ff =  ff yaGroebner /gg = gg hilbert2 /ans = ) writestring
                   1371:   fd (ans :: ans decompose $sm0-tmp-out.t$ printn_to_file quit) writestring
                   1372:   fd closefile
                   1373:   (sm0 -f sm0-tmp.t >sm0-tmp-log.t) system
                   1374:   (When the output is [$ a V^k + ... $ $p!$], the multiplicity is ) message
                   1375:   $               (k! a)/p! $ message
                   1376:   (    ) message
                   1377:  ] pop
                   1378:  popVariables
                   1379: } def
                   1380:
                   1381:
                   1382: /writeArray {
                   1383:   /arg2 set /arg1 set
                   1384:   [/fd /arr /k] pushVariables
                   1385:   [ /fd arg1 def
                   1386:     /arr arg2 def
                   1387:     fd ([ ) writestring
                   1388:     0 1 arr length 1 sub
                   1389:     {
                   1390:       /k set
                   1391:       fd ($ ) writestring
                   1392:       fd arr k get writestring
                   1393:       fd ($     ) writestring
                   1394:     } for
                   1395:     fd ( ] ) writestring
                   1396:   ] pop
                   1397:   popVariables
                   1398: } def
                   1399:
                   1400:
                   1401:
                   1402: %%(Loaded macros "factor", "hilbert".) message
                   1403:
                   1404: [(primadec)
                   1405:  [([polynomials] [variables] primadec list_of_strings)
                   1406:   (cf.:     data_conversion, map, get, pushfile)
                   1407:   (Note:    The function call creates work files asir-tmp.t, asir-tmp.tt,)
                   1408:   (          asir-tmp-out.t, asir-tmp-log.t and asir-tmp-out.tt )
                   1409:   (          in the current directory.)
                   1410:  ]
                   1411: ] putUsages
                   1412:
                   1413:
                   1414: /sendcommand-to-asir2 {  %% arg1 arg2  command  sendcommand-to-asir2
                   1415:  /arg3 set /arg2 set /arg1 set
                   1416:  [/f /fd /fnewline /com /g] pushVariables
                   1417:  [
                   1418:   arg1 /f set  arg2 /g set arg3 /com set
                   1419:   (asir-tmp.t) (w) file /fd set
                   1420:   /fnewline { fd 10 (string) data_conversion writestring } def
                   1421:   fd $load("gr"); load("primdec"); output("asir-tmp-out.t");$ writestring fnewline
                   1422:   fd com $($ 2 cat_n writestring
                   1423:   fd f writestring
                   1424:   fd $,$ writestring
                   1425:   fd g writestring
                   1426:   fd $); output(); quit(); $ writestring fnewline
                   1427:   fd closefile
                   1428:   (/bin/rm -f asir-tmp.tt) system
                   1429:   (sed "s/D/kanD/g" asir-tmp.t | sed "s/E/kanE/g" | sed "s/Q/kanQ/g"  >asir-tmp.tt) system
                   1430:   (/bin/rm -f asir-tmp-out.t asir-tmp-out.tt asir-tmp-log.t) system
                   1431:   (asir <asir-tmp.tt >asir-tmp-log.t) system
                   1432:   (sed "s/\[147\]/ /g" asir-tmp-out.t | sed "s/\[148\]/ /g" | sed "1s/1/ /g"| sed "s/kanD/D/g" | sed "s/kanE/E/g" | sed "s/kanQ/Q/g"  >asir-tmp-out.tt) system
                   1433:  ] pop
                   1434:  popVariables
                   1435: } def
                   1436:
                   1437: /clean-workfiles {
                   1438:  (/bin/rm -f asir-tmp-out.t asir-tmp-out.tt asir-tmp.t asir-tmp.tt sm0-tmp.t sm0-tmp-out.t asir-tmp-log.t sm0-tmp-out.tt) system
                   1439: } def
                   1440:
                   1441:
                   1442: /asir-list-to-kan {
                   1443:   /arg1 set
                   1444:   [/aaa /ftmp /ftmp2] pushVariables
                   1445:   [
                   1446:     /aaa arg1 def
                   1447:     [ aaa to_records pop ] /ftmp set
                   1448:     ftmp { to_records pop [ 3 1 roll ] } map /ftmp2 set
                   1449:     /arg1 ftmp2 def
                   1450:   ] pop
                   1451:   popVariables
                   1452:   arg1
                   1453: } def
                   1454:
                   1455:
                   1456: /primadec {
                   1457:   /arg2 set /arg1 set
                   1458:   [/f /g] pushVariables
                   1459:   [
                   1460:     /f arg1 def /g arg2 def
                   1461:     f { (string) dc removeBrace } map  toString
                   1462:     g { (string) dc removeBrace } map toString (primadec)
                   1463:     sendcommand-to-asir2
                   1464:     (asir-tmp-out.tt) pushfile asir-list-to-kan /arg1
                   1465:   ]  pop popVariables
                   1466:   arg1
                   1467: } def
                   1468:
                   1469: /removeBrace {  %% string removeBrace string
                   1470:  %% (z[1]^2-1) removeBrace (z_1 ^2-1)
                   1471:   /arg1 set
                   1472:   [/f /i /ans /fa] pushVariables
                   1473:   [
                   1474:     /f arg1 def f 1 copy /f set
                   1475:     f (array) dc /fa set
                   1476:     0 1 fa length 1 sub {
                   1477:       /i set
                   1478:       fa i get  91 eq
                   1479:       {  f i 95 put }
                   1480:       {        } ifelse
                   1481:       fa i get 93 eq
                   1482:       {  f i 32 put }
                   1483:       {         } ifelse
                   1484:     } for
                   1485:     % fa aload length cat_n /arg1 set %% This may cause operand stack overflow.
                   1486:     f /arg1 set
                   1487:   ] pop
                   1488:   popVariables
                   1489:   arg1
                   1490: } def
                   1491:
                   1492:
                   1493:
                   1494:
                   1495:
                   1496:
                   1497:
                   1498:
                   1499: K00_verbose  %% if-condition
                   1500:   { %%ifbody
                   1501: this [ %% function args
                   1502: (help.k (help.ccc).  8/6, 1996 --- 8/7, 1996. 3/6, 1997 --- 4/29, 1997.) ] {Println} sendmsg2
                   1503:   }%%end if if body
                   1504:   { %%if- else part
                   1505:   } ifelse
                   1506: /help {
                   1507:  db.DebugStack setstack $In function : help of class PrimitiveObject$  stdstack
                   1508:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1509:  [/this /x  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1510:  [Argthis] Arglist join ArgNames mapset
                   1511: this [ %% function args
                   1512: Arglist ] {Length} sendmsg2
                   1513: (1)..  lt
                   1514:  %% if-condition
                   1515:   { %%ifbody
                   1516: this [ %% function args
                   1517: ( ) ] {ShowKeyWords} sendmsg2
                   1518:   }%%end if if body
                   1519:   { %%if- else part
                   1520: this [ %% function args
                   1521: x ] {Help} sendmsg2
                   1522:   } ifelse
                   1523: /ExitPoint ]pop popVariables %%pop argValues
                   1524:  db.DebugStack setstack pop stdstack
                   1525: FunctionValue } def
                   1526: %%end of function
                   1527:
                   1528: /Help {
                   1529:  db.DebugStack setstack $In function : Help of class PrimitiveObject$  stdstack
                   1530:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1531:  [/this /key  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1532:  [Argthis] Arglist join ArgNames mapset
                   1533: [ %%start of local variables
                   1534: /n /i /item /m /item1 /j ] pushVariables [ %%local variables
                   1535: this [ %% function args
                   1536: Arglist ] {Length} sendmsg2
                   1537: (1)..  lt
                   1538:  %% if-condition
                   1539:   { %%ifbody
                   1540: this [ %% function args
                   1541: ( ) ] {ShowKeyWords} sendmsg2
                   1542: [   ]  /FunctionValue set  {/ExitPoint goto} exec %%return
                   1543:   }%%end if if body
                   1544:   { %%if- else part
                   1545:   } ifelse
                   1546: key (ALL)  eq
                   1547:  %% if-condition
                   1548:   { %%ifbody
                   1549: this [ %% function args
                   1550: (ALL) ] {ShowKeyWords} sendmsg2
                   1551: (0)..  /FunctionValue set  {/ExitPoint goto} exec %%return
                   1552:   }%%end if if body
                   1553:   { %%if- else part
                   1554:   } ifelse
                   1555: this [ %% function args
                   1556: Helplist ] {Length} sendmsg2
                   1557: /n  set
                   1558: (0).. %%PSfor initvalue.
                   1559:  (integer) data_conversion
                   1560: n  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   1561: { %% for body
                   1562:  (universalNumber) data_conversion /i  set
                   1563: Helplist [i  ]  Get
                   1564: /item  set
                   1565: item [(0)..  ]  Get
                   1566: key  eq
                   1567:  %% if-condition
                   1568:   { %%ifbody
                   1569: this [ %% function args
                   1570: item [(1)..  ]  Get
                   1571: ] {IsArray} sendmsg2
                   1572:  %% if-condition
                   1573:   { %%ifbody
                   1574: item [(1)..  ]  Get
                   1575: /item1  set
                   1576: this [ %% function args
                   1577: item1 ] {Length} sendmsg2
                   1578: /m  set
                   1579: (0).. /j  set
                   1580: %%for init.
                   1581: %%for
                   1582: { j m  lt
                   1583:  {  } {exit} ifelse
                   1584: [ {%%increment
                   1585: /j j (1).. add def
                   1586: } %%end of increment{A}
                   1587: {%%start of B part{B}
                   1588: this [ %% function args
                   1589: item1 [j  ]  Get
                   1590: ] {Println} sendmsg2
                   1591: } %% end of B part. {B}
                   1592:  2 1 roll] {exec} map pop
                   1593: } loop %%end of for
                   1594:   }%%end if if body
                   1595:   { %%if- else part
                   1596: this [ %% function args
                   1597: item [(1)..  ]  Get
                   1598: ] {Println} sendmsg2
                   1599:   } ifelse
                   1600: item  /FunctionValue set  {/ExitPoint goto} exec %%return
                   1601:   }%%end if if body
                   1602:   { %%if- else part
                   1603:   } ifelse
                   1604:   } for
                   1605: this [ %% function args
                   1606: (The key word <<) ] {Print} sendmsg2
                   1607: this [ %% function args
                   1608: key ] {Print} sendmsg2
                   1609: this [ %% function args
                   1610: (>> could not be found.) ] {Println} sendmsg2
                   1611: [   ]  /FunctionValue set  {/ExitPoint goto} exec %%return
                   1612: /ExitPoint ]pop popVariables %%pop the local variables
                   1613: /ExitPoint ]pop popVariables %%pop argValues
                   1614:  db.DebugStack setstack pop stdstack
                   1615: FunctionValue } def
                   1616: %%end of function
                   1617:
                   1618: /ShowKeyWords {
                   1619:  db.DebugStack setstack $In function : ShowKeyWords of class PrimitiveObject$  stdstack
                   1620:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1621:  [/this /ss  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1622:  [Argthis] Arglist join ArgNames mapset
                   1623: [ %%start of local variables
                   1624: /i /j /n /keys /max /width /m /k /kk /tmp0 ] pushVariables [ %%local variables
                   1625: this [ %% function args
                   1626: ] {Ln} sendmsg2
                   1627: this [ %% function args
                   1628: Helplist ] {Length} sendmsg2
                   1629: /n  set
                   1630: [ ( )   ] /keys  set
                   1631: (0).. %%PSfor initvalue.
                   1632:  (integer) data_conversion
                   1633: n  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   1634: { %% for body
                   1635:  (universalNumber) data_conversion /i  set
                   1636: this [ %% function args
                   1637: keys Helplist [i (0)..  ]  Get
                   1638: ] {Append} sendmsg2
                   1639: /keys  set
                   1640:   } for
                   1641:  keys   shell  /keys  set
                   1642: this [ %% function args
                   1643: keys ] {Length} sendmsg2
                   1644: /n  set
                   1645: ss (ALL)  eq
                   1646:  %% if-condition
                   1647:   { %%ifbody
                   1648: (1).. %%PSfor initvalue.
                   1649:  (integer) data_conversion
                   1650: n  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   1651: { %% for body
                   1652:  (universalNumber) data_conversion /i  set
                   1653: this [ %% function args
                   1654: (# ) ] {Print} sendmsg2
                   1655: this [ %% function args
                   1656: keys [i  ]  Get
                   1657: ] {Print} sendmsg2
                   1658: this [ %% function args
                   1659: ] {Ln} sendmsg2
                   1660: this [ %% function args
                   1661: keys [i  ]  Get
                   1662: ] {Help} sendmsg2
                   1663: this [ %% function args
                   1664: ] {Ln} sendmsg2
                   1665:   } for
                   1666: (0)..  /FunctionValue set  {/ExitPoint goto} exec %%return
                   1667:   }%%end if if body
                   1668:   { %%if- else part
                   1669:   } ifelse
                   1670: (0).. /max  set
                   1671: (1).. %%PSfor initvalue.
                   1672:  (integer) data_conversion
                   1673: n  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   1674: { %% for body
                   1675:  (universalNumber) data_conversion /i  set
                   1676: this [ %% function args
                   1677: keys [i  ]  Get
                   1678: ] {Length} sendmsg2
                   1679: max  gt
                   1680:  %% if-condition
                   1681:   { %%ifbody
                   1682: this [ %% function args
                   1683: keys [i  ]  Get
                   1684: ] {Length} sendmsg2
                   1685: /max  set
                   1686:   }%%end if if body
                   1687:   { %%if- else part
                   1688:   } ifelse
                   1689:   } for
                   1690: max (3)..  {add} sendmsg2
                   1691: /max  set
                   1692: (80).. /width  set
                   1693: (0).. /m  set
                   1694:
                   1695: %%while
                   1696: { m max  {mul} sendmsg2
                   1697: (80)..  lt
                   1698:  { } {exit} ifelse
                   1699:  m (1)..  {add} sendmsg2
                   1700: /m  set
                   1701: } loop
                   1702: m (1)..  gt
                   1703:  %% if-condition
                   1704:   { %%ifbody
                   1705: m (1)..  {sub} sendmsg2
                   1706: /m  set
                   1707:   }%%end if if body
                   1708:   { %%if- else part
                   1709:   } ifelse
                   1710: (0).. /k  set
                   1711: (0).. /kk  set
                   1712: (1).. %%PSfor initvalue.
                   1713:  (integer) data_conversion
                   1714: n  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   1715: { %% for body
                   1716:  (universalNumber) data_conversion /i  set
                   1717: this [ %% function args
                   1718: keys [i  ]  Get
                   1719: ] {Print} sendmsg2
                   1720: kk (1)..  {add} sendmsg2
                   1721: /kk  set
                   1722: k this [ %% function args
                   1723: keys [i  ]  Get
                   1724: ] {Length} sendmsg2
                   1725:  {add} sendmsg2
                   1726: /k  set
                   1727: max this [ %% function args
                   1728: keys [i  ]  Get
                   1729: ] {Length} sendmsg2
                   1730:  {sub} sendmsg2
                   1731: /tmp0  set
                   1732: k tmp0  {add} sendmsg2
                   1733: /k  set
                   1734: kk m  lt
                   1735:  %% if-condition
                   1736:   { %%ifbody
                   1737:   [ 0 1   tmp0   (integer) dc 1 sub { pop $ $ } for ] aload length cat_n messagen    }%%end if if body
                   1738:   { %%if- else part
                   1739:   } ifelse
                   1740: kk m  greaterThanOrEqual
                   1741:  %% if-condition
                   1742:   { %%ifbody
                   1743: (0).. /kk  set
                   1744: (0).. /k  set
                   1745: this [ %% function args
                   1746: ] {Ln} sendmsg2
                   1747:   }%%end if if body
                   1748:   { %%if- else part
                   1749:   } ifelse
                   1750:   } for
                   1751: this [ %% function args
                   1752: ] {Ln} sendmsg2
                   1753: this [ %% function args
                   1754: (Type in Help(keyword);  to see a help message (string keyword).) ] {Println} sendmsg2
                   1755: /ExitPoint ]pop popVariables %%pop the local variables
                   1756: /ExitPoint ]pop popVariables %%pop argValues
                   1757:  db.DebugStack setstack pop stdstack
                   1758: FunctionValue } def
                   1759: %%end of function
                   1760:
                   1761: /ShowKeyWordsOfSm1 {
                   1762:  db.DebugStack setstack $In function : ShowKeyWordsOfSm1 of class PrimitiveObject$  stdstack
                   1763:  /Arglist set /Argthis set /FunctionValue [ ] def
                   1764:  [/this /ss  ] /ArgNames set ArgNames pushVariables [ %%function body
                   1765:  [Argthis] Arglist join ArgNames mapset
                   1766: [ %%start of local variables
                   1767: /i /j /n /keys /max /width /m /k /kk /tmp0 ] pushVariables [ %%local variables
                   1768: this [ %% function args
                   1769: ] {Ln} sendmsg2
                   1770:   /help_Sm1Macro @.usages def  this [ %% function args
                   1771: help_Sm1Macro ] {Length} sendmsg2
                   1772: /n  set
                   1773: [ ( )   ] /keys  set
                   1774: (0).. /i  set
                   1775: %%for init.
                   1776: %%for
                   1777: { i n  lt
                   1778:  {  } {exit} ifelse
                   1779: [ {%%increment
                   1780: /i i (1).. add def
                   1781: } %%end of increment{A}
                   1782: {%%start of B part{B}
                   1783: this [ %% function args
                   1784: keys help_Sm1Macro [i (0)..  ]  Get
                   1785: ] {Append} sendmsg2
                   1786: /keys  set
                   1787: } %% end of B part. {B}
                   1788:  2 1 roll] {exec} map pop
                   1789: } loop %%end of for
                   1790:  keys   shell  /keys  set
                   1791: this [ %% function args
                   1792: keys ] {Length} sendmsg2
                   1793: /n  set
                   1794: ss (ALL)  eq
                   1795:  %% if-condition
                   1796:   { %%ifbody
                   1797: (1).. /i  set
                   1798: %%for init.
                   1799: %%for
                   1800: { i n  lt
                   1801:  {  } {exit} ifelse
                   1802: [ {%%increment
                   1803: /i i (1).. add def
                   1804: } %%end of increment{A}
                   1805: {%%start of B part{B}
                   1806: keys [i  ]  Get
                   1807: /tmp0  set
                   1808: this [ %% function args
                   1809: (# ) ] {Print} sendmsg2
                   1810: this [ %% function args
                   1811: tmp0 ] {Print} sendmsg2
                   1812: this [ %% function args
                   1813: ] {Ln} sendmsg2
                   1814:  tmp0   usage  this [ %% function args
                   1815: ] {Ln} sendmsg2
                   1816: } %% end of B part. {B}
                   1817:  2 1 roll] {exec} map pop
                   1818: } loop %%end of for
                   1819: (0)..  /FunctionValue set  {/ExitPoint goto} exec %%return
                   1820:   }%%end if if body
                   1821:   { %%if- else part
                   1822:   } ifelse
                   1823: (0).. /max  set
                   1824: (1).. /i  set
                   1825: %%for init.
                   1826: %%for
                   1827: { i n  lt
                   1828:  {  } {exit} ifelse
                   1829: [ {%%increment
                   1830: /i i (1).. add def
                   1831: } %%end of increment{A}
                   1832: {%%start of B part{B}
                   1833: this [ %% function args
                   1834: keys [i  ]  Get
                   1835: ] {Length} sendmsg2
                   1836: max  gt
                   1837:  %% if-condition
                   1838:   { %%ifbody
                   1839: this [ %% function args
                   1840: keys [i  ]  Get
                   1841: ] {Length} sendmsg2
                   1842: /max  set
                   1843:   }%%end if if body
                   1844:   { %%if- else part
                   1845:   } ifelse
                   1846: } %% end of B part. {B}
                   1847:  2 1 roll] {exec} map pop
                   1848: } loop %%end of for
                   1849: max (3)..  {add} sendmsg2
                   1850: /max  set
                   1851: (80).. /width  set
                   1852: (0).. /m  set
                   1853:
                   1854: %%while
                   1855: { m max  {mul} sendmsg2
                   1856: (80)..  lt
                   1857:  { } {exit} ifelse
                   1858:  m (1)..  {add} sendmsg2
                   1859: /m  set
                   1860: } loop
                   1861: (0).. /k  set
                   1862: (0).. /kk  set
                   1863: (1).. /i  set
                   1864: %%for init.
                   1865: %%for
                   1866: { i n  lt
                   1867:  {  } {exit} ifelse
                   1868: [ {%%increment
                   1869: /i i (1).. add def
                   1870: } %%end of increment{A}
                   1871: {%%start of B part{B}
                   1872: this [ %% function args
                   1873: keys [i  ]  Get
                   1874: ] {Print} sendmsg2
                   1875: kk (1)..  {add} sendmsg2
                   1876: /kk  set
                   1877: k this [ %% function args
                   1878: keys [i  ]  Get
                   1879: ] {Length} sendmsg2
                   1880:  {add} sendmsg2
                   1881: /k  set
                   1882: max this [ %% function args
                   1883: keys [i  ]  Get
                   1884: ] {Length} sendmsg2
                   1885:  {sub} sendmsg2
                   1886: /tmp0  set
                   1887: kk m  greaterThanOrEqual
                   1888:  %% if-condition
                   1889:   { %%ifbody
                   1890:   }%%end if if body
                   1891:   { %%if- else part
                   1892: (0).. /j  set
                   1893: %%for init.
                   1894: %%for
                   1895: { j tmp0  lt
                   1896:  {  } {exit} ifelse
                   1897: [ {%%increment
                   1898: /j j (1).. add def
                   1899: } %%end of increment{A}
                   1900: {%%start of B part{B}
                   1901: k (1)..  {add} sendmsg2
                   1902: /k  set
                   1903: this [ %% function args
                   1904: ( ) ] {Print} sendmsg2
                   1905: } %% end of B part. {B}
                   1906:  2 1 roll] {exec} map pop
                   1907: } loop %%end of for
                   1908:   } ifelse
                   1909: kk m  greaterThanOrEqual
                   1910:  %% if-condition
                   1911:   { %%ifbody
                   1912: (0).. /kk  set
                   1913: (0).. /k  set
                   1914: this [ %% function args
                   1915: ] {Ln} sendmsg2
                   1916:   }%%end if if body
                   1917:   { %%if- else part
                   1918:   } ifelse
                   1919: } %% end of B part. {B}
                   1920:  2 1 roll] {exec} map pop
                   1921: } loop %%end of for
                   1922: this [ %% function args
                   1923: ] {Ln} sendmsg2
                   1924: this [ %% function args
                   1925: ] {Ln} sendmsg2
                   1926: this [ %% function args
                   1927: (Type in (keyword) usage ;  to see a help message.) ] {Println} sendmsg2
                   1928: /ExitPoint ]pop popVariables %%pop the local variables
                   1929: /ExitPoint ]pop popVariables %%pop argValues
                   1930:  db.DebugStack setstack pop stdstack
                   1931: FunctionValue } def
                   1932: %%end of function
                   1933:
                   1934: this [ %% function args
                   1935: [ (Help) (Help(key) shows an explanation on the key (string key).)   ] ] {HelpAdd} sendmsg2
                   1936: this [ %% function args
                   1937: [ (HelpAdd) [ (HelpAdd([key,explanation]) (string key, string explanation)) ( or (string key, array explanation).)   ]   ] ] {HelpAdd} sendmsg2
                   1938: this [ %% function args
                   1939: [ (load) [ (load(fname) loads the file << fname >>(string fname).) (load fname  loads the file << fname >>.) (load[fname] loads the file << fname >> with the preprocessing by /lib/cpp.)   ]   ] ] {HelpAdd} sendmsg2
                   1940: this [ %% function args
                   1941: [ (Ln) (Ln() newline.)   ] ] {HelpAdd} sendmsg2
                   1942: this [ %% function args
                   1943: [ (Println) (Println(f) prints f and goes to the new line.)   ] ] {HelpAdd} sendmsg2
                   1944: this [ %% function args
                   1945: [ (Print) (Print(f) prints f.)   ] ] {HelpAdd} sendmsg2
                   1946: this [ %% function args
                   1947: [ (Poly) (Poly(name) returns the polynomial name in the current ring
                   1948:   (string name).)   ] ] {HelpAdd} sendmsg2
                   1949: this [ %% function args
                   1950: [ (PolyR) (PolyR(name,r) returns the polynomial name in the ring r
                   1951:  (string name, ring r).
                   1952:  Ex. r = RingD("x,y"); y = PolyR("y",r); )   ] ] {HelpAdd} sendmsg2
                   1953: this [ %% function args
                   1954: [ (RingD) [ (RingD(names) defines a new ring (string names).) (RingD(names,weight_vector) defines a new ring with the weight vector) ((string names, array weight_vector).) (RingD(names,weight_vector,characteristic)) ( Ex. RingD("x,y",[["x",2,"y",1]]) )   ]   ] ] {HelpAdd} sendmsg2
                   1955: this [ %% function args
                   1956: [ (Reduction) (Reduction(f,G) returns the remainder and sygygies when
                   1957: f is devided by G (polynomial f, array G).)   ] ] {HelpAdd} sendmsg2
                   1958: this [ %% function args
                   1959: [ (AddString) (AddString(list) returns the concatnated string (array list).)   ] ] {HelpAdd} sendmsg2
                   1960: this [ %% function args
                   1961: [ (AsciiToString) (AsciiToString(ascii_code) returns the string of which
                   1962: ascii code is ascii_code (integer ascii_code).)   ] ] {HelpAdd} sendmsg2
                   1963: this [ %% function args
                   1964: [ (ToString) (ToString(obj) transforms the <<obj>> to a string.)   ] ] {HelpAdd} sendmsg2
                   1965: this [ %% function args
                   1966: [ (Numerator) (Numerator(f) returns the numerator of <<f>> (rational f).)   ] ] {HelpAdd} sendmsg2
                   1967: this [ %% function args
                   1968: [ (Denominator) (Denominator(f) returns the denominator of <<f>> (rational f).)   ] ] {HelpAdd} sendmsg2
                   1969: this [ %% function args
                   1970: [ (Replace) (Replace(f,rule) (polynomial f, array rule).
                   1971:            Ex. Replace( (x+y)^3, [[x,Poly("1")]]))   ] ] {HelpAdd} sendmsg2
                   1972: this [ %% function args
                   1973: [ (SetRingVariables) (SetRingVariables()
                   1974:   Set the generators of the current ring as global variables.
                   1975:   cf. RingD(), Poly(), PolyR())   ] ] {HelpAdd} sendmsg2
                   1976: this [ %% function args
                   1977: [ (Append) (Append([f1,...,fn],g) returns the list [f1,...,fn,g])   ] ] {HelpAdd} sendmsg2
                   1978: this [ %% function args
                   1979: [ (Join) (Join([f1,...,fn],[g1,...,gm]) returns the list
                   1980:   [f1,...,fn,g1,...,gm])   ] ] {HelpAdd} sendmsg2
                   1981: this [ %% function args
                   1982: [ (Indexed) (Indexed(name,i) returns the string name[i]
                   1983:   (string name, integer i))   ] ] {HelpAdd} sendmsg2
                   1984: this [ %% function args
                   1985: [ (-ReservedName1) [ (The names k00*, K00*, sm1* , arg1,arg2,arg3,arg4,....,) (Helplist, Arglist, FunctionValue,) (@@@*, db.*, k.*, tmp002*, tmp00* are used for system functions.)   ]   ] ] {HelpAdd} sendmsg2
                   1986: this [ %% function args
                   1987: [ (IntegerToSm1Integer) (IntegerToSm1Integer(i) translates integer i
                   1988:   to sm1.integer (integer i).)   ] ] {HelpAdd} sendmsg2
                   1989: this [ %% function args
                   1990: [ (true) (true returns sm1.integer 1.)   ] ] {HelpAdd} sendmsg2
                   1991: this [ %% function args
                   1992: [ (false) (false returns sm1.integer 0.)   ] ] {HelpAdd} sendmsg2
                   1993: this [ %% function args
                   1994: [ (IsArray) [ (If f is the array object, then IsArray(f) returns true,) (else IsArray(f) returns false.)   ]   ] ] {HelpAdd} sendmsg2
                   1995: this [ %% function args
                   1996: [ (Init_w) [ (Init_w(f,vars,w) returns the initial terms with respect to the) (weight vector <<w>> (array of integer) of the polynomial <<f>>) ((polynomial).  Here, <<f>> is regarded as a polynomial with respect) (to the variables <<vars>> (array of polynomials).) (Example: Init_w(x^2+y^2+x,[x,y],[1,1]):)   ]   ] ] {HelpAdd} sendmsg2
                   1997: this [ %% function args
                   1998: [ (RingDonIndexedVariables) [ (RingDonIndexedVariables(name,n) defines and returns the ring of) (homogenized differential operators) (Q<h, name[0], ..., name[n-1], Dname[0], ..., Dname[n-1]>) (where <<name>> is a string and <<n>> is an integer.) (Note that this function defines global variables) (h, name[0], ..., name[n-1], Dname[0], ..., Dname[n-1].) (Example: RingDonIndexedVariables("x",3).) (RingDonIndexedVariables(name,n,w) defines and returns the ring of) (homogenized differential operators with the ordering defined by ) (the weight vector <<w>> (array)) (Example: RingDonIndexedVariables("x",3,[["x[0]",1,"x[2]",3]]).)   ]   ] ] {HelpAdd} sendmsg2
                   1999: this [ %% function args
                   2000: [ (Groebner) [ (Groebner(input) returns Groebner basis of the left module (or ideal)) (defined by <<input>> (array of polynomials)) (The order is that of the ring to which each element of <<input>>) (belongs.) (The input is automatically homogenized.) (Example: RingD("x,y",[["x" 10 "y" 1]]);) (         Groebner([Poly(" x^2+y^2-4"),Poly(" x*y-1 ")]):) (cf. RingD, Homogenize)   ]   ] ] {HelpAdd} sendmsg2
                   2001: this [ %% function args
                   2002: [ (RingPoly) [ (RingPoly(names) defines a Ring of Polyomials (string names).) (The names of variables of that ring are <<names>>  and ) (the homogenization variable h.) (cf. SetRingVariables, RingD) (Example: R=RingPoly("x,y");) (  ) (RingPoly(names,weight_vector) defines a Ring of Polynomials) (with the order defined by the << weight_vector >>) ((string names, array of array weight_vector).) (RingPoly(names,weight_vector,characteristic)) (Example: R=RingPoly("x,y",[["x",10,"y",1]]);) (         (x+y)^10: )   ]   ] ] {HelpAdd} sendmsg2
                   2003: this [ %% function args
                   2004: [ (CancelNumber) [ (CancelNumber(rn) reduces the rational number <<rn>>) ((rational rn).) (Example: CancelNumber( 2/6 ) : )   ]   ] ] {HelpAdd} sendmsg2
                   2005: this [ %% function args
                   2006: [ (IsString) [ (IsString(obj) returns true if << obj >> is a string (object obj).) (Example:  if (IsString("abc")) Println("Hello"); ;)   ]   ] ] {HelpAdd} sendmsg2
                   2007: this [ %% function args
                   2008: [ (IsSm1Integer) [ (IsSm1Integer(obj) returns true if << obj >> is an integer of sm1(object obj).)   ]   ] ] {HelpAdd} sendmsg2
                   2009: this [ %% function args
                   2010: [ (sm1) [ (sm1(arg1,arg2,...) is used to embed sm1 native code in the kxx program.) (Example: sm1( 2, 2, " add print "); ) (Example: def myadd(a,b) { sm1(a,b," add /FunctionValue set "); })   ]   ] ] {HelpAdd} sendmsg2
                   2011: this [ %% function args
                   2012: [ (DC) [ (DC(obj,key) converts << obj >> to a new object in the primitive) (class << key >> (object obj, string key)) (Example:  DC(" (x+1)^10 ", "polynomial"): )   ]   ] ] {HelpAdd} sendmsg2
                   2013: this [ %% function args
                   2014: [ (Length) [ (Length(vec) returns the length of the array << vec >>) ((array vec))   ]   ] ] {HelpAdd} sendmsg2
                   2015: this [ %% function args
                   2016: [ (Transpose) [ (Transpose(m) return the transpose of the matrix << m >>) ((array of array m).)   ]   ] ] {HelpAdd} sendmsg2
                   2017: this [ %% function args
                   2018: [ (Save) [ (Save(obj) appends << obj >> to the file sm1out.txt (object obj).)   ]   ] ] {HelpAdd} sendmsg2
                   2019: this [ %% function args
                   2020: [ (Coefficients) [ (Coefficients(f,v) returns [exponents, coefficients] of << f >>) (with respect to the variable << v >>) ((polynomial f,v).) (Example: Coefficients(Poly("(x+1)^2"),Poly("x")): )   ]   ] ] {HelpAdd} sendmsg2
                   2021: this [ %% function args
                   2022: [ (System) [ (System(comm) executes the unix system command << comm >>) ((string comm)) (Example: System("ls");)   ]   ] ] {HelpAdd} sendmsg2
                   2023: this [ %% function args
                   2024: [ (Exponent) [ (Expoent(f,vars) returns the vector of exponents of the polynomial f) (Ex. Exponent( x^2*y-1,[x,y]))   ]   ] ] {HelpAdd} sendmsg2
                   2025: this [ %% function args
                   2026: [ (Protect) [ (Protect(name) protects the symbol <<name>> (string)) (Protect(name,level) protects the symbol <<name>> (string) with ) (<<level>> )   ]   ] ] {HelpAdd} sendmsg2
                   2027: this [ %% function args
                   2028: [ (IsPolynomial) [ (IsPolynomial(f) returns true if <<f>> (object) is a polynomial.)   ]   ] ] {HelpAdd} sendmsg2
                   2029: /RingPoly {
                   2030:  db.DebugStack setstack $In function : RingPoly of class PrimitiveObject$  stdstack
                   2031:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2032:  [/this /vList /weightMatrix /pp  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2033:  [Argthis] Arglist join ArgNames mapset
                   2034: [ %%start of local variables
                   2035: /new0 /tmp /size /n /i /j /newtmp /ringpp /argsize ] pushVariables [ %%local variables
                   2036: this [ %% function args
                   2037: Arglist ] {Length} sendmsg2
                   2038: /argsize  set
                   2039: argsize (1)..  eq
                   2040:  %% if-condition
                   2041:   { %%ifbody
                   2042:  [  vList  ring_of_polynomials ( ) elimination_order 0 ] define_ring
                   2043:          /tmp set  tmp  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2044:   }%%end if if body
                   2045:   { %%if- else part
                   2046:   } ifelse
                   2047: argsize (2)..  eq
                   2048:  %% if-condition
                   2049:   { %%ifbody
                   2050: (0).. /pp  set
                   2051:   }%%end if if body
                   2052:   { %%if- else part
                   2053:   } ifelse
                   2054: this [ %% function args
                   2055: pp ] {IntegerToSm1Integer} sendmsg2
                   2056: /pp  set
                   2057: this [ %% function args
                   2058: weightMatrix ] {Length} sendmsg2
                   2059: /size  set
                   2060: this [ %% function args
                   2061: size ] {NewVector} sendmsg2
                   2062: /new0  set
                   2063:   /@@@.indexMode.flag.save @@@.indexMode.flag def    0 @@@.indexMode  (0).. /i  set
                   2064: %%for init.
                   2065: %%for
                   2066: { i size  lt
                   2067:  {  } {exit} ifelse
                   2068: [ {%%increment
                   2069: /i i (1).. add def
                   2070: } %%end of increment{A}
                   2071: {%%start of B part{B}
                   2072: weightMatrix [i  ]  Get
                   2073: /tmp  set
                   2074: this [ %% function args
                   2075: tmp ] {Length} sendmsg2
                   2076: /n  set
                   2077: this [ %% function args
                   2078: n ] {NewVector} sendmsg2
                   2079: /newtmp  set
                   2080: (1).. /j  set
                   2081: %%for init.
                   2082: %%for
                   2083: { j n  lt
                   2084:  {  } {exit} ifelse
                   2085: [ {%%increment
                   2086: j (2)..  {add} sendmsg2
                   2087: /j  set
                   2088: } %%end of increment{A}
                   2089: {%%start of B part{B}
                   2090: newtmp [j (1)..  {sub} sendmsg2
                   2091:  ] tmp [j (1)..  {sub} sendmsg2
                   2092:  ]  Get
                   2093:  Put
                   2094: newtmp [j  ] this [ %% function args
                   2095: tmp [j  ]  Get
                   2096: ] {IntegerToSm1Integer} sendmsg2
                   2097:  Put
                   2098: } %% end of B part. {B}
                   2099:  2 1 roll] {exec} map pop
                   2100: } loop %%end of for
                   2101: new0 [i  ] newtmp  Put
                   2102: } %% end of B part. {B}
                   2103:  2 1 roll] {exec} map pop
                   2104: } loop %%end of for
                   2105:  [  vList  ring_of_polynomials   new0   weight_vector  pp   ] define_ring /ringpp  set
                   2106:   @@@.indexMode.flag.save @@@.indexMode  ringpp  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2107: /ExitPoint ]pop popVariables %%pop the local variables
                   2108: /ExitPoint ]pop popVariables %%pop argValues
                   2109:  db.DebugStack setstack pop stdstack
                   2110: FunctionValue } def
                   2111: %%end of function
                   2112:
                   2113: /IsString {
                   2114:  db.DebugStack setstack $In function : IsString of class PrimitiveObject$  stdstack
                   2115:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2116:  [/this /ob  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2117:  [Argthis] Arglist join ArgNames mapset
                   2118:  ob   isString /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2119:  db.DebugStack setstack pop stdstack
                   2120: FunctionValue } def
                   2121: %%end of function
                   2122:
                   2123: /IsSm1Integer {
                   2124:  db.DebugStack setstack $In function : IsSm1Integer of class PrimitiveObject$  stdstack
                   2125:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2126:  [/this /ob  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2127:  [Argthis] Arglist join ArgNames mapset
                   2128:  ob   isInteger /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2129:  db.DebugStack setstack pop stdstack
                   2130: FunctionValue } def
                   2131: %%end of function
                   2132:
                   2133: /CancelNumber {
                   2134:  db.DebugStack setstack $In function : CancelNumber of class PrimitiveObject$  stdstack
                   2135:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2136:  [/this /rn  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2137:  [Argthis] Arglist join ArgNames mapset
                   2138: [ %%start of local variables
                   2139: /tmp ] pushVariables [ %%local variables
                   2140:   [(cancel)   rn   ] mpzext /tmp set  this [ %% function args
                   2141: tmp ] {IsInteger} sendmsg2
                   2142:  %% if-condition
                   2143:   { %%ifbody
                   2144: tmp  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2145:   }%%end if if body
                   2146:   { %%if- else part
                   2147:   } ifelse
                   2148:   tmp (denominator) dc (1).. eq { /FunctionValue tmp (numerator) dc def} { /FunctionValue tmp def } ifelse  /ExitPoint ]pop popVariables %%pop the local variables
                   2149: /ExitPoint ]pop popVariables %%pop argValues
                   2150:  db.DebugStack setstack pop stdstack
                   2151: FunctionValue } def
                   2152: %%end of function
                   2153:
                   2154: /DC {
                   2155:  db.DebugStack setstack $In function : DC of class PrimitiveObject$  stdstack
                   2156:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2157:  [/this /obj /key  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2158:  [Argthis] Arglist join ArgNames mapset
                   2159: key (string)  eq
                   2160:  %% if-condition
                   2161:   { %%ifbody
                   2162: this [ %% function args
                   2163: obj ] {ToString} sendmsg2
                   2164:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2165:   }%%end if if body
                   2166:   { %%if- else part
                   2167: key (integer)  eq
                   2168:  %% if-condition
                   2169:   { %%ifbody
                   2170: (universalNumber) /key  set
                   2171:   }%%end if if body
                   2172:   { %%if- else part
                   2173: key (sm1integer)  eq
                   2174:  %% if-condition
                   2175:   { %%ifbody
                   2176: (integer) /key  set
                   2177:   }%%end if if body
                   2178:   { %%if- else part
                   2179: key (polynomial)  eq
                   2180:  %% if-condition
                   2181:   { %%ifbody
                   2182: (poly) /key  set
                   2183:   }%%end if if body
                   2184:   { %%if- else part
                   2185:   } ifelse
                   2186:   } ifelse
                   2187:   } ifelse
                   2188:   } ifelse
                   2189:  obj  key   data_conversion /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2190:  db.DebugStack setstack pop stdstack
                   2191: FunctionValue } def
                   2192: %%end of function
                   2193:
                   2194: /Transpose {
                   2195:  db.DebugStack setstack $In function : Transpose of class PrimitiveObject$  stdstack
                   2196:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2197:  [/this /m  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2198:  [Argthis] Arglist join ArgNames mapset
                   2199:  m   transpose /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2200:  db.DebugStack setstack pop stdstack
                   2201: FunctionValue } def
                   2202: %%end of function
                   2203:
                   2204: /Save {
                   2205:  db.DebugStack setstack $In function : Save of class PrimitiveObject$  stdstack
                   2206:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2207:  [/this /obj  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2208:  [Argthis] Arglist join ArgNames mapset
                   2209:  obj   output  /ExitPoint ]pop popVariables %%pop argValues
                   2210:  db.DebugStack setstack pop stdstack
                   2211: FunctionValue } def
                   2212: %%end of function
                   2213:
                   2214: /System {
                   2215:  db.DebugStack setstack $In function : System of class PrimitiveObject$  stdstack
                   2216:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2217:  [/this /comm  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2218:  [Argthis] Arglist join ArgNames mapset
                   2219:  comm   system  /ExitPoint ]pop popVariables %%pop argValues
                   2220:  db.DebugStack setstack pop stdstack
                   2221: } def
                   2222: %%end of function
                   2223:
                   2224: /IsReducible {
                   2225:  db.DebugStack setstack $In function : IsReducible of class PrimitiveObject$  stdstack
                   2226:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2227:  [/this /f /g  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2228:  [Argthis] Arglist join ArgNames mapset
                   2229:  [ (isReducible)   f  g   ] gbext /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2230:  db.DebugStack setstack pop stdstack
                   2231: FunctionValue } def
                   2232: %%end of function
                   2233:
                   2234: /IsPolynomial {
                   2235:  db.DebugStack setstack $In function : IsPolynomial of class PrimitiveObject$  stdstack
                   2236:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2237:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2238:  [Argthis] Arglist join ArgNames mapset
                   2239:   f isPolynomial /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2240:  db.DebugStack setstack pop stdstack
                   2241: FunctionValue } def
                   2242: %%end of function
                   2243:
                   2244:   /k00.toric0.mydegree {2 1 roll degree} def  /Exponent {
                   2245:  db.DebugStack setstack $In function : Exponent of class PrimitiveObject$  stdstack
                   2246:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2247:  [/this /f /vars  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2248:  [Argthis] Arglist join ArgNames mapset
                   2249: [ %%start of local variables
                   2250: /n /i /ans ] pushVariables [ %%local variables
                   2251: f this [ %% function args
                   2252: (0) ] {Poly} sendmsg2
                   2253:  eq
                   2254:  %% if-condition
                   2255:   { %%ifbody
                   2256: [   ]  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2257:   }%%end if if body
                   2258:   { %%if- else part
                   2259:   } ifelse
                   2260:  f   /ff.tmp set   vars   {ff.tmp k00.toric0.mydegree (universalNumber) dc }map /FunctionValue set  /ExitPoint ]pop popVariables %%pop the local variables
                   2261: /ExitPoint ]pop popVariables %%pop argValues
                   2262:  db.DebugStack setstack pop stdstack
                   2263: FunctionValue } def
                   2264: %%end of function
                   2265:
                   2266: /Protect {
                   2267:  db.DebugStack setstack $In function : Protect of class PrimitiveObject$  stdstack
                   2268:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2269:  [/this /name /level  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2270:  [Argthis] Arglist join ArgNames mapset
                   2271: [ %%start of local variables
                   2272: /n /str ] pushVariables [ %%local variables
                   2273: this [ %% function args
                   2274: Arglist ] {Length} sendmsg2
                   2275: /n  set
                   2276: n (1)..  eq
                   2277:  %% if-condition
                   2278:   { %%ifbody
                   2279: (1).. /level  set
                   2280: this [ %% function args
                   2281: [ ([(chattr) ) this [ %% function args
                   2282: level ] {ToString} sendmsg2
                   2283: ( /) name ( ) ( ] extension pop )   ] ] {AddString} sendmsg2
                   2284: /str  set
                   2285:   [(parse)   str   ] extension pop    }%%end if if body
                   2286:   { %%if- else part
                   2287: n (2)..  eq
                   2288:  %% if-condition
                   2289:   { %%ifbody
                   2290: this [ %% function args
                   2291: [ ([(chattr) ) this [ %% function args
                   2292: level ] {ToString} sendmsg2
                   2293: ( /) name ( ) ( ] extension pop )   ] ] {AddString} sendmsg2
                   2294: /str  set
                   2295:   [(parse)   str   ] extension pop    }%%end if if body
                   2296:   { %%if- else part
                   2297: this [ %% function args
                   2298: (Protect) (Arguments must be one or two. ) ] {k00_error} sendmsg2
                   2299:   error    } ifelse
                   2300:   } ifelse
                   2301: /ExitPoint ]pop popVariables %%pop the local variables
                   2302: /ExitPoint ]pop popVariables %%pop argValues
                   2303:  db.DebugStack setstack pop stdstack
                   2304: } def
                   2305: %%end of function
                   2306:
                   2307: /k00_error {
                   2308:  db.DebugStack setstack $In function : k00_error of class PrimitiveObject$  stdstack
                   2309:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2310:  [/this /name /msg  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2311:  [Argthis] Arglist join ArgNames mapset
                   2312: this [ %% function args
                   2313: (Error in ) ] {Print} sendmsg2
                   2314: this [ %% function args
                   2315: name ] {Print} sendmsg2
                   2316: this [ %% function args
                   2317: (. ) ] {Print} sendmsg2
                   2318: this [ %% function args
                   2319: msg ] {Println} sendmsg2
                   2320: /ExitPoint ]pop popVariables %%pop argValues
                   2321:  db.DebugStack setstack pop stdstack
                   2322: } def
                   2323: %%end of function
                   2324:
                   2325: /Init {
                   2326:  db.DebugStack setstack $In function : Init of class PrimitiveObject$  stdstack
                   2327:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2328:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2329:  [Argthis] Arglist join ArgNames mapset
                   2330: this [ %% function args
                   2331: f ] {IsArray} sendmsg2
                   2332:  %% if-condition
                   2333:   { %%ifbody
                   2334: this [ %% function args
                   2335: f (Init) ] {Map} sendmsg2
                   2336:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2337:   }%%end if if body
                   2338:   { %%if- else part
                   2339: this [ %% function args
                   2340: f ] {IsPolynomial} sendmsg2
                   2341:  %% if-condition
                   2342:   { %%ifbody
                   2343:  f    init  /FunctionValue set    }%%end if if body
                   2344:   { %%if- else part
                   2345: this [ %% function args
                   2346: (Init) (Argment must be polynomial or an array of polynomials) ] {k00_error} sendmsg2
                   2347:   error    } ifelse
                   2348:   } ifelse
                   2349: /ExitPoint ]pop popVariables %%pop argValues
                   2350:  db.DebugStack setstack pop stdstack
                   2351: FunctionValue } def
                   2352: %%end of function
                   2353:
                   2354: this [ %% function args
                   2355: [ (Init) [ (Init(f) returns the initial term of the polynomial <<f>> (polynomial)) (Init(list) returns the array of initial terms of the array of polynomials) (<< list >> (array))   ]   ] ] {HelpAdd} sendmsg2
                   2356: this [ %% function args
                   2357: [ (NewMatrix) [ (NewMatrix(m,n) returns the (m,n)-matrix (array) with the entries 0.)   ]   ] ] {HelpAdd} sendmsg2
                   2358: /Eliminatev {
                   2359:  db.DebugStack setstack $In function : Eliminatev of class PrimitiveObject$  stdstack
                   2360:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2361:  [/this /list /var  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2362:  [Argthis] Arglist join ArgNames mapset
                   2363:  list  var   eliminatev /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2364:  db.DebugStack setstack pop stdstack
                   2365: FunctionValue } def
                   2366: %%end of function
                   2367:
                   2368: this [ %% function args
                   2369: [ (Eliminatev) [ (Eliminatev(list,var) prunes polynomials in << list >>(array of polynomials)) (which contains the variables in << var >> ( array of strings )) (Example: Eliminatev([Poly(" x+h "),Poly(" x ")],[ "h" ]): )   ]   ] ] {HelpAdd} sendmsg2
                   2370: /ReducedBase {
                   2371:  db.DebugStack setstack $In function : ReducedBase of class PrimitiveObject$  stdstack
                   2372:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2373:  [/this /base  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2374:  [Argthis] Arglist join ArgNames mapset
                   2375:  base   reducedBase /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2376:  db.DebugStack setstack pop stdstack
                   2377: FunctionValue } def
                   2378: %%end of function
                   2379:
                   2380: this [ %% function args
                   2381: [ (ReducedBase) [ (ReducedBase[base] prunes redundant elements in the Grobner basis <<base>> (array).)   ]   ] ] {HelpAdd} sendmsg2
                   2382: /IndexedVariables {
                   2383:  db.DebugStack setstack $In function : IndexedVariables of class PrimitiveObject$  stdstack
                   2384:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2385:  [/this /name /size  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2386:  [Argthis] Arglist join ArgNames mapset
                   2387: [ %%start of local variables
                   2388: /result /i /result2 ] pushVariables [ %%local variables
                   2389: [   ] /result  set
                   2390: (0).. /i  set
                   2391: %%for init.
                   2392: %%for
                   2393: { i size (1)..  {sub} sendmsg2
                   2394:  lt
                   2395:  {  } {exit} ifelse
                   2396: [ {%%increment
                   2397: /i i (1).. add def
                   2398: } %%end of increment{A}
                   2399: {%%start of B part{B}
                   2400: this [ %% function args
                   2401: result this [ %% function args
                   2402: name i ] {Indexed} sendmsg2
                   2403: ] {Append} sendmsg2
                   2404: /result  set
                   2405: this [ %% function args
                   2406: result (,) ] {Append} sendmsg2
                   2407: /result  set
                   2408: } %% end of B part. {B}
                   2409:  2 1 roll] {exec} map pop
                   2410: } loop %%end of for
                   2411: size (1)..  {sub} sendmsg2
                   2412: (0)..  greaterThanOrEqual
                   2413:  %% if-condition
                   2414:   { %%ifbody
                   2415: this [ %% function args
                   2416: result this [ %% function args
                   2417: name size (1)..  {sub} sendmsg2
                   2418: ] {Indexed} sendmsg2
                   2419: ] {Append} sendmsg2
                   2420: /result  set
                   2421:   }%%end if if body
                   2422:   { %%if- else part
                   2423:   } ifelse
                   2424: this [ %% function args
                   2425: [ ({)   ] result ] {Join} sendmsg2
                   2426: /result2  set
                   2427: this [ %% function args
                   2428: result2 [ (})   ] ] {Join} sendmsg2
                   2429: /result2  set
                   2430: this [ %% function args
                   2431: result2 ] {AddString} sendmsg2
                   2432:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2433: /ExitPoint ]pop popVariables %%pop the local variables
                   2434: /ExitPoint ]pop popVariables %%pop argValues
                   2435:  db.DebugStack setstack pop stdstack
                   2436: FunctionValue } def
                   2437: %%end of function
                   2438:
                   2439: this [ %% function args
                   2440: [ (IndexedVariables) [ (IndexedVariables(name,size) returns the string ) ( {name[0],name[1],...,name[size-1]} which can be used as inputs to ) ( the function RingD  (string name, integer size).) ( cf. RingDonIndexedVariables.) ( Ex. R = RingD(IndexedVariables("a",3)); ) (     h = Poly("h");) (     a = NewArray(3);) (     for (i=0; i<3; i++) {a[i] = Poly(Indexed("a",i));} ;)   ]   ] ] {HelpAdd} sendmsg2
                   2441: /RingDonIndexedVariables {
                   2442:  db.DebugStack setstack $In function : RingDonIndexedVariables of class PrimitiveObject$  stdstack
                   2443:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2444:  [/this /vList /size /weightMatrix /pp  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2445:  [Argthis] Arglist join ArgNames mapset
                   2446: [ %%start of local variables
                   2447: /myring /tmp /k00_i /argsize /vListD ] pushVariables [ %%local variables
                   2448: this [ %% function args
                   2449: Arglist ] {Length} sendmsg2
                   2450: /argsize  set
                   2451: argsize (1)..  eq
                   2452:  %% if-condition
                   2453:   { %%ifbody
                   2454: this [ %% function args
                   2455: (Error (IndexedRingD): ) ] {Println} sendmsg2
                   2456: null  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2457:   }%%end if if body
                   2458:   { %%if- else part
                   2459:   } ifelse
                   2460: argsize (2)..  eq
                   2461:  %% if-condition
                   2462:   { %%ifbody
                   2463: this [ %% function args
                   2464: [ (D) vList   ] ] {AddString} sendmsg2
                   2465: /vListD  set
                   2466: this [ %% function args
                   2467: this [ %% function args
                   2468: vList size ] {IndexedVariables} sendmsg2
                   2469: ] {RingD} sendmsg2
                   2470: /myring  set
                   2471: this [ %% function args
                   2472: ] {SetRingVariables} sendmsg2
                   2473: this [ %% function args
                   2474: size ] {NewArray} sendmsg2
                   2475: /tmp  set
                   2476: (0).. /k00_i  set
                   2477: %%for init.
                   2478: %%for
                   2479: { k00_i size  lt
                   2480:  {  } {exit} ifelse
                   2481: [ {%%increment
                   2482: /k00_i k00_i (1).. add def
                   2483: } %%end of increment{A}
                   2484: {%%start of B part{B}
                   2485: tmp [k00_i  ] this [ %% function args
                   2486: this [ %% function args
                   2487: vList k00_i ] {Indexed} sendmsg2
                   2488: ] {Poly} sendmsg2
                   2489:  Put
                   2490: } %% end of B part. {B}
                   2491:  2 1 roll] {exec} map pop
                   2492: } loop %%end of for
                   2493:  vList   (literal) dc   tmp   def  this [ %% function args
                   2494: size ] {NewArray} sendmsg2
                   2495: /tmp  set
                   2496: (0).. /k00_i  set
                   2497: %%for init.
                   2498: %%for
                   2499: { k00_i size  lt
                   2500:  {  } {exit} ifelse
                   2501: [ {%%increment
                   2502: /k00_i k00_i (1).. add def
                   2503: } %%end of increment{A}
                   2504: {%%start of B part{B}
                   2505: tmp [k00_i  ] this [ %% function args
                   2506: this [ %% function args
                   2507: vListD k00_i ] {Indexed} sendmsg2
                   2508: ] {Poly} sendmsg2
                   2509:  Put
                   2510: } %% end of B part. {B}
                   2511:  2 1 roll] {exec} map pop
                   2512: } loop %%end of for
                   2513:  vListD   (literal) dc   tmp   def  SetRingVariables_Verbose  %% if-condition
                   2514:   { %%ifbody
                   2515: this [ %% function args
                   2516: (Set the global variables ) ] {Print} sendmsg2
                   2517:  [(parse)   vList   ] extension pop print   [(parse)   vListD   ] extension pop print  this [ %% function args
                   2518: ] {Ln} sendmsg2
                   2519:   }%%end if if body
                   2520:   { %%if- else part
                   2521:  [(parse)   vList   ] extension pop    [(parse)   vListD   ] extension pop    } ifelse
                   2522: myring  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2523:   }%%end if if body
                   2524:   { %%if- else part
                   2525:   } ifelse
                   2526: argsize (3)..  eq
                   2527: argsize (4)..  eq
                   2528:  or
                   2529:  %% if-condition
                   2530:   { %%ifbody
                   2531: argsize (3)..  eq
                   2532:  %% if-condition
                   2533:   { %%ifbody
                   2534: (0).. /pp  set
                   2535:   }%%end if if body
                   2536:   { %%if- else part
                   2537:   } ifelse
                   2538: this [ %% function args
                   2539: [ (D) vList   ] ] {AddString} sendmsg2
                   2540: /vListD  set
                   2541: this [ %% function args
                   2542: this [ %% function args
                   2543: vList size ] {IndexedVariables} sendmsg2
                   2544: weightMatrix pp ] {RingD} sendmsg2
                   2545: /myring  set
                   2546: this [ %% function args
                   2547: ] {SetRingVariables} sendmsg2
                   2548: this [ %% function args
                   2549: size ] {NewArray} sendmsg2
                   2550: /tmp  set
                   2551: (0).. /k00_i  set
                   2552: %%for init.
                   2553: %%for
                   2554: { k00_i size  lt
                   2555:  {  } {exit} ifelse
                   2556: [ {%%increment
                   2557: /k00_i k00_i (1).. add def
                   2558: } %%end of increment{A}
                   2559: {%%start of B part{B}
                   2560: tmp [k00_i  ] this [ %% function args
                   2561: this [ %% function args
                   2562: vList k00_i ] {Indexed} sendmsg2
                   2563: ] {Poly} sendmsg2
                   2564:  Put
                   2565: } %% end of B part. {B}
                   2566:  2 1 roll] {exec} map pop
                   2567: } loop %%end of for
                   2568:  vList   (literal) dc   tmp   def  this [ %% function args
                   2569: size ] {NewArray} sendmsg2
                   2570: /tmp  set
                   2571: (0).. /k00_i  set
                   2572: %%for init.
                   2573: %%for
                   2574: { k00_i size  lt
                   2575:  {  } {exit} ifelse
                   2576: [ {%%increment
                   2577: /k00_i k00_i (1).. add def
                   2578: } %%end of increment{A}
                   2579: {%%start of B part{B}
                   2580: tmp [k00_i  ] this [ %% function args
                   2581: this [ %% function args
                   2582: vListD k00_i ] {Indexed} sendmsg2
                   2583: ] {Poly} sendmsg2
                   2584:  Put
                   2585: } %% end of B part. {B}
                   2586:  2 1 roll] {exec} map pop
                   2587: } loop %%end of for
                   2588:  vListD   (literal) dc   tmp   def  SetRingVariables_Verbose  %% if-condition
                   2589:   { %%ifbody
                   2590: this [ %% function args
                   2591: (Set the global variables ) ] {Print} sendmsg2
                   2592:  [(parse)   vList   ] extension pop print   [(parse)   vListD   ] extension pop print  this [ %% function args
                   2593: ] {Ln} sendmsg2
                   2594:   }%%end if if body
                   2595:   { %%if- else part
                   2596:  [(parse)   vList   ] extension pop    [(parse)   vListD   ] extension pop    } ifelse
                   2597: myring  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2598:   }%%end if if body
                   2599:   { %%if- else part
                   2600:   } ifelse
                   2601: (1)..  (0)..  2 1 roll {sub} sendmsg
                   2602:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2603: /ExitPoint ]pop popVariables %%pop the local variables
                   2604: /ExitPoint ]pop popVariables %%pop argValues
                   2605:  db.DebugStack setstack pop stdstack
                   2606: FunctionValue } def
                   2607: %%end of function
                   2608:
                   2609: /Ringp {
                   2610:  db.DebugStack setstack $In function : Ringp of class PrimitiveObject$  stdstack
                   2611:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2612:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2613:  [Argthis] Arglist join ArgNames mapset
                   2614:  f   (ring) dc /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2615:  db.DebugStack setstack pop stdstack
                   2616: FunctionValue } def
                   2617: %%end of function
                   2618:
                   2619: this [ %% function args
                   2620: [ (Ringp) [ (Ringp(f) ( polynomial f ) returns the ring to which the polynomial << f >>) (belongs.)   ]   ] ] {HelpAdd} sendmsg2
                   2621: /Coefficients {
                   2622:  db.DebugStack setstack $In function : Coefficients of class PrimitiveObject$  stdstack
                   2623:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2624:  [/this /f /v  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2625:  [Argthis] Arglist join ArgNames mapset
                   2626: [ %%start of local variables
                   2627: /ans /exp ] pushVariables [ %%local variables
                   2628:  f  v   coefficients  /ans  set
                   2629: ans [(0)..  ]  Get
                   2630: /exp  set
                   2631:  exp   { (universalNumber) dc } map  /exp  set
                   2632: [ exp ans [(1)..  ]  Get
                   2633:   ]  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2634: /ExitPoint ]pop popVariables %%pop the local variables
                   2635: /ExitPoint ]pop popVariables %%pop argValues
                   2636:  db.DebugStack setstack pop stdstack
                   2637: FunctionValue } def
                   2638: %%end of function
                   2639:
                   2640: /IsInteger {
                   2641:  db.DebugStack setstack $In function : IsInteger of class PrimitiveObject$  stdstack
                   2642:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2643:  [/this /a  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2644:  [Argthis] Arglist join ArgNames mapset
                   2645:  a   isUniversalNumber /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2646:  db.DebugStack setstack pop stdstack
                   2647: FunctionValue } def
                   2648: %%end of function
                   2649:
                   2650: this [ %% function args
                   2651: [ (IsInteger) [ (IsInteger(a) returns true if << a >> is an integer (object a).) (It returns false if << a >> is not.) (cf. IsSm1Integer)   ]   ] ] {HelpAdd} sendmsg2
                   2652: /IsRational {
                   2653:  db.DebugStack setstack $In function : IsRational of class PrimitiveObject$  stdstack
                   2654:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2655:  [/this /a  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2656:  [Argthis] Arglist join ArgNames mapset
                   2657:  a   isRational /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2658:  db.DebugStack setstack pop stdstack
                   2659: FunctionValue } def
                   2660: %%end of function
                   2661:
                   2662: this [ %% function args
                   2663: [ (IsRational) [ (IsRational(a) returns true if << a >> is a rational (object a).) (It returns false if << a >> is not.)   ]   ] ] {HelpAdd} sendmsg2
                   2664: /IsDouble {
                   2665:  db.DebugStack setstack $In function : IsDouble of class PrimitiveObject$  stdstack
                   2666:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2667:  [/this /a  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2668:  [Argthis] Arglist join ArgNames mapset
                   2669:  a   isDouble /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   2670:  db.DebugStack setstack pop stdstack
                   2671: FunctionValue } def
                   2672: %%end of function
                   2673:
                   2674: this [ %% function args
                   2675: [ (IsDouble) [ (IsDouble(a) returns true if << a >> is a double (object a).) (It returns false if << a >> is not.)   ]   ] ] {HelpAdd} sendmsg2
                   2676:   /cs { this  [ ] Cleards  } def  /Init_w {
                   2677:  db.DebugStack setstack $In function : Init_w of class PrimitiveObject$  stdstack
                   2678:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2679:  [/this /f /vars /weight  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2680:  [Argthis] Arglist join ArgNames mapset
                   2681: [ %%start of local variables
                   2682: /w /top /ans /wtop ] pushVariables [ %%local variables
                   2683: f this [ %% function args
                   2684: (0) ] {Poly} sendmsg2
                   2685:  eq
                   2686:  %% if-condition
                   2687:   { %%ifbody
                   2688: this [ %% function args
                   2689: (0) ] {Poly} sendmsg2
                   2690:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2691:   }%%end if if body
                   2692:   { %%if- else part
                   2693:   } ifelse
                   2694:  f   init  /top  set
                   2695: this [ %% function args
                   2696: top vars ] {Exponent} sendmsg2
                   2697: weight  {mul} sendmsg2
                   2698: /w  set
                   2699: w /wtop  set
                   2700: top /ans  set
                   2701: f top  {sub} sendmsg2
                   2702: /f  set
                   2703:
                   2704: %%while
                   2705: { true  { } {exit} ifelse
                   2706:  f this [ %% function args
                   2707: (0) ] {Poly} sendmsg2
                   2708:  eq
                   2709:  %% if-condition
                   2710:   { %%ifbody
                   2711:   exit    }%%end if if body
                   2712:   { %%if- else part
                   2713:   } ifelse
                   2714:  f   init  /top  set
                   2715: this [ %% function args
                   2716: top vars ] {Exponent} sendmsg2
                   2717: weight  {mul} sendmsg2
                   2718: /w  set
                   2719: w wtop  lt
                   2720:  %% if-condition
                   2721:   { %%ifbody
                   2722:   exit    }%%end if if body
                   2723:   { %%if- else part
                   2724:   } ifelse
                   2725: ans top  {add} sendmsg2
                   2726: /ans  set
                   2727: f top  {sub} sendmsg2
                   2728: /f  set
                   2729: } loop
                   2730: ans  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2731: /ExitPoint ]pop popVariables %%pop the local variables
                   2732: /ExitPoint ]pop popVariables %%pop argValues
                   2733:  db.DebugStack setstack pop stdstack
                   2734: FunctionValue } def
                   2735: %%end of function
                   2736:
                   2737: this [ %% function args
                   2738: [ (Mapto) [ (Mapto(obj,ring) parses << obj >> as elements of the << ring >>.) ((ring << ring >>, polynomial << obj >> or array of polynomial << obj >>).) (Ex. R = RingD("x,y"); SetRingVariables();) (    f = (x+y)^2; R2 = RingD("x,y,z",[["y",1]]); ) (    f2 = Mapto(f,R2); f2: )   ]   ] ] {HelpAdd} sendmsg2
                   2739: /Mapto {
                   2740:  db.DebugStack setstack $In function : Mapto of class PrimitiveObject$  stdstack
                   2741:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2742:  [/this /obj /ring  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2743:  [Argthis] Arglist join ArgNames mapset
                   2744: [ %%start of local variables
                   2745: /ans /i /n ] pushVariables [ %%local variables
                   2746: this [ %% function args
                   2747: obj ] {IsArray} sendmsg2
                   2748:  %% if-condition
                   2749:   { %%ifbody
                   2750: this [ %% function args
                   2751: obj ] {Length} sendmsg2
                   2752: /n  set
                   2753: this [ %% function args
                   2754: obj (ToString) ] {Map} sendmsg2
                   2755: /ans  set
                   2756: (0).. /i  set
                   2757: %%for init.
                   2758: %%for
                   2759: { i n  lt
                   2760:  {  } {exit} ifelse
                   2761: [ {%%increment
                   2762: /i i (1).. add def
                   2763: } %%end of increment{A}
                   2764: {%%start of B part{B}
                   2765: ans [i  ] this [ %% function args
                   2766: ans [i  ]  Get
                   2767: ring ] {PolyR} sendmsg2
                   2768:  Put
                   2769: } %% end of B part. {B}
                   2770:  2 1 roll] {exec} map pop
                   2771: } loop %%end of for
                   2772:   }%%end if if body
                   2773:   { %%if- else part
                   2774: this [ %% function args
                   2775: obj ] {ToString} sendmsg2
                   2776: /ans  set
                   2777: this [ %% function args
                   2778: ans ring ] {PolyR} sendmsg2
                   2779: /ans  set
                   2780:   } ifelse
                   2781: ans  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2782: /ExitPoint ]pop popVariables %%pop the local variables
                   2783: /ExitPoint ]pop popVariables %%pop argValues
                   2784:  db.DebugStack setstack pop stdstack
                   2785: FunctionValue } def
                   2786: %%end of function
                   2787:
                   2788: this [ %% function args
                   2789: [ (ToDouble) [ (ToDouble(f) translates << f >> into double when it is possible) (object << f >>.) (Example: ToDouble([1,1/2,[5]]): )   ]   ] ] {HelpAdd} sendmsg2
                   2790: /k00_toDouble {
                   2791:  db.DebugStack setstack $In function : k00_toDouble of class PrimitiveObject$  stdstack
                   2792:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2793:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2794:  [Argthis] Arglist join ArgNames mapset
                   2795: this [ %% function args
                   2796: f (double) ] {DC} sendmsg2
                   2797:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2798: /ExitPoint ]pop popVariables %%pop argValues
                   2799:  db.DebugStack setstack pop stdstack
                   2800: FunctionValue } def
                   2801: %%end of function
                   2802:
                   2803: /ToDouble {
                   2804:  db.DebugStack setstack $In function : ToDouble of class PrimitiveObject$  stdstack
                   2805:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2806:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2807:  [Argthis] Arglist join ArgNames mapset
                   2808: this [ %% function args
                   2809: f ] {IsArray} sendmsg2
                   2810:  %% if-condition
                   2811:   { %%ifbody
                   2812: this [ %% function args
                   2813: f (ToDouble) ] {Map} sendmsg2
                   2814:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2815:   }%%end if if body
                   2816:   { %%if- else part
                   2817:   } ifelse
                   2818: this [ %% function args
                   2819: f ] {IsDouble} sendmsg2
                   2820:  %% if-condition
                   2821:   { %%ifbody
                   2822: f  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2823:   }%%end if if body
                   2824:   { %%if- else part
                   2825:   } ifelse
                   2826: this [ %% function args
                   2827: f ] {k00_toDouble} sendmsg2
                   2828:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2829: /ExitPoint ]pop popVariables %%pop argValues
                   2830:  db.DebugStack setstack pop stdstack
                   2831: FunctionValue } def
                   2832: %%end of function
                   2833:
                   2834: /RingPonIndexedVariables {
                   2835:  db.DebugStack setstack $In function : RingPonIndexedVariables of class PrimitiveObject$  stdstack
                   2836:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2837:  [/this /vList /size /weightMatrix  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2838:  [Argthis] Arglist join ArgNames mapset
                   2839: [ %%start of local variables
                   2840: /myring /tmp /k00_i /argsize /vListD ] pushVariables [ %%local variables
                   2841: this [ %% function args
                   2842: Arglist ] {Length} sendmsg2
                   2843: /argsize  set
                   2844: argsize (1)..  eq
                   2845:  %% if-condition
                   2846:   { %%ifbody
                   2847: this [ %% function args
                   2848: (Error (RingPonIndexedVariables): ) ] {Println} sendmsg2
                   2849: null  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2850:   }%%end if if body
                   2851:   { %%if- else part
                   2852:   } ifelse
                   2853: argsize (2)..  eq
                   2854:  %% if-condition
                   2855:   { %%ifbody
                   2856: this [ %% function args
                   2857: this [ %% function args
                   2858: vList size ] {IndexedVariables} sendmsg2
                   2859: ] {RingPoly} sendmsg2
                   2860: /myring  set
                   2861: this [ %% function args
                   2862: ] {SetRingVariables} sendmsg2
                   2863: this [ %% function args
                   2864: size ] {NewArray} sendmsg2
                   2865: /tmp  set
                   2866: (0).. /k00_i  set
                   2867: %%for init.
                   2868: %%for
                   2869: { k00_i size  lt
                   2870:  {  } {exit} ifelse
                   2871: [ {%%increment
                   2872: /k00_i k00_i (1).. add def
                   2873: } %%end of increment{A}
                   2874: {%%start of B part{B}
                   2875: tmp [k00_i  ] this [ %% function args
                   2876: this [ %% function args
                   2877: vList k00_i ] {Indexed} sendmsg2
                   2878: ] {Poly} sendmsg2
                   2879:  Put
                   2880: } %% end of B part. {B}
                   2881:  2 1 roll] {exec} map pop
                   2882: } loop %%end of for
                   2883:  vList   (literal) dc   tmp   def  SetRingVariables_Verbose  %% if-condition
                   2884:   { %%ifbody
                   2885: this [ %% function args
                   2886: (Set the global variables ) ] {Print} sendmsg2
                   2887:  [(parse)   vList   ] extension pop print  this [ %% function args
                   2888: ] {Ln} sendmsg2
                   2889:   }%%end if if body
                   2890:   { %%if- else part
                   2891:  [(parse)   vList   ] extension pop     } ifelse
                   2892: myring  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2893:   }%%end if if body
                   2894:   { %%if- else part
                   2895:   } ifelse
                   2896: argsize (3)..  eq
                   2897:  %% if-condition
                   2898:   { %%ifbody
                   2899: this [ %% function args
                   2900: this [ %% function args
                   2901: vList size ] {IndexedVariables} sendmsg2
                   2902: weightMatrix ] {RingPoly} sendmsg2
                   2903: /myring  set
                   2904: this [ %% function args
                   2905: ] {SetRingVariables} sendmsg2
                   2906: this [ %% function args
                   2907: size ] {NewArray} sendmsg2
                   2908: /tmp  set
                   2909: (0).. /k00_i  set
                   2910: %%for init.
                   2911: %%for
                   2912: { k00_i size  lt
                   2913:  {  } {exit} ifelse
                   2914: [ {%%increment
                   2915: /k00_i k00_i (1).. add def
                   2916: } %%end of increment{A}
                   2917: {%%start of B part{B}
                   2918: tmp [k00_i  ] this [ %% function args
                   2919: this [ %% function args
                   2920: vList k00_i ] {Indexed} sendmsg2
                   2921: ] {Poly} sendmsg2
                   2922:  Put
                   2923: } %% end of B part. {B}
                   2924:  2 1 roll] {exec} map pop
                   2925: } loop %%end of for
                   2926:  vList   (literal) dc   tmp   def  SetRingVariables_Verbose  %% if-condition
                   2927:   { %%ifbody
                   2928: this [ %% function args
                   2929: (Set the global variables ) ] {Print} sendmsg2
                   2930:  [(parse)   vList   ] extension pop print  this [ %% function args
                   2931: ] {Ln} sendmsg2
                   2932:   }%%end if if body
                   2933:   { %%if- else part
                   2934:  [(parse)   vList   ] extension pop    } ifelse
                   2935: myring  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2936:   }%%end if if body
                   2937:   { %%if- else part
                   2938:   } ifelse
                   2939: (1)..  (0)..  2 1 roll {sub} sendmsg
                   2940:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2941: /ExitPoint ]pop popVariables %%pop the local variables
                   2942: /ExitPoint ]pop popVariables %%pop argValues
                   2943:  db.DebugStack setstack pop stdstack
                   2944: FunctionValue } def
                   2945: %%end of function
                   2946:
                   2947: this [ %% function args
                   2948: [ (RingPonIndexedVariables) [ (RingPonIndexedVariables(name,n) defines and returns the ring of) (polynomials) (Q<h, name[0], ..., name[n-1] >) (where <<name>> is a string and <<n>> is an integer.) (Note that this function defines global variables) (h, name[0], ..., name[n-1].) (Example: RingPonIndexedVariables("x",3).) (RingPonIndexedVariables(name,n,w) defines and returns the ring of) (polynomials with the ordering defined by ) (the weight vector <<w>> (array)) (Example: RingPonIndexedVariables("x",3,[["x[0]",1,"x[2]",3]]).)   ]   ] ] {HelpAdd} sendmsg2
                   2949: /Mod {
                   2950:  db.DebugStack setstack $In function : Mod of class PrimitiveObject$  stdstack
                   2951:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2952:  [/this /f /n  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2953:  [Argthis] Arglist join ArgNames mapset
                   2954: this [ %% function args
                   2955: f ] {IsPolynomial} sendmsg2
                   2956:  %% if-condition
                   2957:   { %%ifbody
                   2958:  [(mod)   f  n  ] gbext  /FunctionValue set    }%%end if if body
                   2959:   { %%if- else part
                   2960: this [ %% function args
                   2961: f ] {IsInteger} sendmsg2
                   2962:  %% if-condition
                   2963:   { %%ifbody
                   2964: Gmp  [ %% function args
                   2965: f n ] {Mod}   sendmsg2
                   2966:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2967:   }%%end if if body
                   2968:   { %%if- else part
                   2969:   } ifelse
                   2970:   } ifelse
                   2971: /ExitPoint ]pop popVariables %%pop argValues
                   2972:  db.DebugStack setstack pop stdstack
                   2973: FunctionValue } def
                   2974: %%end of function
                   2975:
                   2976: this [ %% function args
                   2977: [ (Mod) [ (Mod(f,p) returns f modulo n  where << f >> (polynomial) and) ( << p >> (integer). )   ]   ] ] {HelpAdd} sendmsg2
                   2978: /Characteristic {
                   2979:  db.DebugStack setstack $In function : Characteristic of class PrimitiveObject$  stdstack
                   2980:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2981:  [/this /ringp  ] /ArgNames set ArgNames pushVariables [ %%function body
                   2982:  [Argthis] Arglist join ArgNames mapset
                   2983: [ %%start of local variables
                   2984: /r /p ] pushVariables [ %%local variables
                   2985:   [(CurrentRingp)] system_variable  /r  set
                   2986:  [(CurrentRingp)   ringp   ] system_variable   [(P)] system_variable (universalNumber) dc  /p  set
                   2987:  [(CurrentRingp)   r   ] system_variable  p  /FunctionValue set  {/ExitPoint goto} exec %%return
                   2988: /ExitPoint ]pop popVariables %%pop the local variables
                   2989: /ExitPoint ]pop popVariables %%pop argValues
                   2990:  db.DebugStack setstack pop stdstack
                   2991: FunctionValue } def
                   2992: %%end of function
                   2993:
                   2994: this [ %% function args
                   2995: [ (Characteristic) [ (Characteristic(ring) returns the characteristic of the << ring >>.)   ]   ] ] {HelpAdd} sendmsg2
                   2996: /IsConstant {
                   2997:  db.DebugStack setstack $In function : IsConstant of class PrimitiveObject$  stdstack
                   2998:  /Arglist set /Argthis set /FunctionValue [ ] def
                   2999:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3000:  [Argthis] Arglist join ArgNames mapset
                   3001: this [ %% function args
                   3002: f ] {Length} sendmsg2
                   3003: (1)..  gt
                   3004:  %% if-condition
                   3005:   { %%ifbody
                   3006: false  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3007:   }%%end if if body
                   3008:   { %%if- else part
                   3009:   } ifelse
                   3010:  [(isConstant)   f   ] gbext /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   3011:  db.DebugStack setstack pop stdstack
                   3012: FunctionValue } def
                   3013: %%end of function
                   3014:
                   3015: this [ %% function args
                   3016: [ (IsConstant) [ (IsConstant(f) returns true if the polynomial << f >> is a constant.)   ]   ] ] {HelpAdd} sendmsg2
                   3017: this [ %% function args
                   3018: (Default ring is Z[x,h].) ] {Println} sendmsg2
                   3019: this [ %% function args
                   3020: (x) ] {Poly} sendmsg2
                   3021: /x  set
                   3022: this [ %% function args
                   3023: (h) ] {Poly} sendmsg2
                   3024: /h  set
                   3025: /Substitute {
                   3026:  db.DebugStack setstack $In function : Substitute of class PrimitiveObject$  stdstack
                   3027:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3028:  [/this /f /xx /g  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3029:  [Argthis] Arglist join ArgNames mapset
                   3030: [ %%start of local variables
                   3031: /tmp /coeff /ex /i /n /newex ] pushVariables [ %%local variables
                   3032: this [ %% function args
                   3033: f ] {IsInteger} sendmsg2
                   3034:  %% if-condition
                   3035:   { %%ifbody
                   3036: f  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3037:   }%%end if if body
                   3038:   { %%if- else part
                   3039:   } ifelse
                   3040: this [ %% function args
                   3041: f ] {IsPolynomial} sendmsg2
                   3042:  not
                   3043:  %% if-condition
                   3044:   { %%ifbody
                   3045: this [ %% function args
                   3046: (Substitute) (The first argument must be polynomial.) ] {k00_error} sendmsg2
                   3047:   }%%end if if body
                   3048:   { %%if- else part
                   3049:   } ifelse
                   3050: this [ %% function args
                   3051: f xx ] {Coefficients} sendmsg2
                   3052: /tmp  set
                   3053: tmp [(1)..  ]  Get
                   3054: /coeff  set
                   3055: tmp [(0)..  ]  Get
                   3056: /ex  set
                   3057: this [ %% function args
                   3058: ex ] {Length} sendmsg2
                   3059: /n  set
                   3060: this [ %% function args
                   3061: n ] {NewVector} sendmsg2
                   3062: /newex  set
                   3063: n (0)..  gt
                   3064:  %% if-condition
                   3065:   { %%ifbody
                   3066: newex [n (1)..  {sub} sendmsg2
                   3067:  ] g ex [n (1)..  {sub} sendmsg2
                   3068:  ]  Get
                   3069:  power
                   3070:  Put
                   3071:   }%%end if if body
                   3072:   { %%if- else part
                   3073:   } ifelse
                   3074: n (2)..  {sub} sendmsg2
                   3075: /i  set
                   3076: %%for init.
                   3077: %%for
                   3078: { i (0)..  greaterThanOrEqual
                   3079:  {  } {exit} ifelse
                   3080: [ {%%increment
                   3081: /i i (1).. sub def
                   3082: } %%end of increment{A}
                   3083: {%%start of B part{B}
                   3084: newex [i  ] newex [i (1)..  {add} sendmsg2
                   3085:  ]  Get
                   3086: g ex [i  ]  Get
                   3087: ex [i (1)..  {add} sendmsg2
                   3088:  ]  Get
                   3089:  {sub} sendmsg2
                   3090:  power
                   3091:  {mul} sendmsg2
                   3092:  Put
                   3093: } %% end of B part. {B}
                   3094:  2 1 roll] {exec} map pop
                   3095: } loop %%end of for
                   3096: this [ %% function args
                   3097: coeff newex  {mul} sendmsg2
                   3098: ] {Cancel} sendmsg2
                   3099:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3100: /ExitPoint ]pop popVariables %%pop the local variables
                   3101: /ExitPoint ]pop popVariables %%pop argValues
                   3102:  db.DebugStack setstack pop stdstack
                   3103: FunctionValue } def
                   3104: %%end of function
                   3105:
                   3106: this [ %% function args
                   3107: [ (Substitute) [ (Substitute(f,xx,g) replaces << xx >> in << f >> by << g >>.) (This function takes coeffients of << f >> with respect to << xx >>) (and returns the inner product of the vector of coefficients and the vector) (of which elements are g^(corresponding exponent).) (Note that it may cause an unexpected result in non-commutative rings.)   ]   ] ] {HelpAdd} sendmsg2
                   3108: K00_verbose  %% if-condition
                   3109:   { %%ifbody
                   3110: this [ %% function args
                   3111: ( debug/db.k (db.ccc), 1997, 3/2 (Sun) : checking debug functions of kxx) ] {Println} sendmsg2
                   3112: this [ %% function args
                   3113: ( Type in test0(). ) ] {Println} sendmsg2
                   3114:   }%%end if if body
                   3115:   { %%if- else part
                   3116:   } ifelse
                   3117:   /pushVariables {localVariables}  def    /popVariables {restoreVariables} def  K00_verbose  %% if-condition
                   3118:   { %%ifbody
                   3119: this [ %% function args
                   3120: ( Overloaded on pushVariables and popVariables.) ] {Println} sendmsg2
                   3121:   }%%end if if body
                   3122:   { %%if- else part
                   3123:   } ifelse
                   3124:   [(CatchCtrlC) 1] system_variable    [(Strict) 1] system_variable  K00_verbose  %% if-condition
                   3125:   { %%ifbody
                   3126: this [ %% function args
                   3127: ( ctrl-C signal is caught in KSexecuteString() and <<Warning>> is regarded as an error.) ] {Println} sendmsg2
                   3128:   }%%end if if body
                   3129:   { %%if- else part
                   3130:   } ifelse
                   3131: /test0 {
                   3132:  db.DebugStack setstack $In function : test0 of class PrimitiveObject$  stdstack
                   3133:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3134:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3135:  [Argthis]  ArgNames mapset
                   3136:   [(ErrorMessageMode) 2] system_variable    [(WarningMessageMode) 2] system_variable  this [ %% function args
                   3137: (15).. ] {fib} sendmsg2
                   3138:   db.where.es  /ExitPoint ]pop popVariables %%pop argValues
                   3139:  db.DebugStack setstack pop stdstack
                   3140: FunctionValue } def
                   3141: %%end of function
                   3142:
                   3143: /Where {
                   3144:  db.DebugStack setstack $In function : Where of class PrimitiveObject$  stdstack
                   3145:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3146:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3147:  [Argthis]  ArgNames mapset
                   3148: this [ %% function args
                   3149: (CurrentContext is ...) ] {Println} sendmsg2
                   3150:   [(CurrentContextp)] system_variable {message} primmsg  this [ %% function args
                   3151: (VariableStack trace is....) ] {Println} sendmsg2
                   3152:   db.where  this [ %% function args
                   3153: (DebugStack trace is ....) ] {Println} sendmsg2
                   3154:   db.where.ds  this [ %% function args
                   3155: (To clear VariableStack, DebugStack and ErrorStack, type in Cleards().) ] {Println} sendmsg2
                   3156: /ExitPoint ]pop popVariables %%pop argValues
                   3157:  db.DebugStack setstack pop stdstack
                   3158: } def
                   3159: %%end of function
                   3160:
                   3161: /Cleards {
                   3162:  db.DebugStack setstack $In function : Cleards of class PrimitiveObject$  stdstack
                   3163:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3164:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3165:  [Argthis]  ArgNames mapset
                   3166: this [ %% function args
                   3167: (Clearing DebugStack and ErrorStack...) ] {Print} sendmsg2
                   3168:   db.clear.ds db.clear.es  this [ %% function args
                   3169: ( ) ] {Println} sendmsg2
                   3170: this [ %% function args
                   3171: (Restoring variables....) ] {Print} sendmsg2
                   3172:   db.restore     [  ] localVariables  this [ %% function args
                   3173: (Done) ] {Println} sendmsg2
                   3174: /ExitPoint ]pop popVariables %%pop argValues
                   3175:  db.DebugStack setstack pop stdstack
                   3176: } def
                   3177: %%end of function
                   3178:
                   3179: /fib {
                   3180:  db.DebugStack setstack $In function : fib of class PrimitiveObject$  stdstack
                   3181:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3182:  [/this /n  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3183:  [Argthis] Arglist join ArgNames mapset
                   3184: [ %%start of local variables
                   3185: /ans /a /b ] pushVariables [ %%local variables
                   3186: this [ %% function args
                   3187: (fib of ) ] {Print} sendmsg2
                   3188: this [ %% function args
                   3189: n ] {Println} sendmsg2
                   3190: n (2)..  lt
                   3191:  %% if-condition
                   3192:   { %%ifbody
                   3193: (1)..  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3194:   }%%end if if body
                   3195:   { %%if- else part
                   3196:   } ifelse
                   3197: n (1)..  {sub} sendmsg2
                   3198: /a  set
                   3199: n (2)..  {sub} sendmsg2
                   3200: /b  set
                   3201: a (11)..  eq
                   3202:  %% if-condition
                   3203:   { %%ifbody
                   3204: a [i  ] (2)..  Put
                   3205:   }%%end if if body
                   3206:   { %%if- else part
                   3207:   } ifelse
                   3208: this [ %% function args
                   3209: a ] {fib} sendmsg2
                   3210: this [ %% function args
                   3211: b ] {fib} sendmsg2
                   3212:  {add} sendmsg2
                   3213: /ans  set
                   3214: ans  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3215: /ExitPoint ]pop popVariables %%pop the local variables
                   3216: /ExitPoint ]pop popVariables %%pop argValues
                   3217:  db.DebugStack setstack pop stdstack
                   3218: FunctionValue } def
                   3219: %%end of function
                   3220:
                   3221: K00_verbose  %% if-condition
                   3222:   { %%ifbody
                   3223: this [ %% function args
                   3224: (debug/asir0.k    you need to start k0 with -f option. ) ] {Println} sendmsg2
                   3225:   }%%end if if body
                   3226:   { %%if- else part
                   3227:   } ifelse
                   3228: /Factor {
                   3229:  db.DebugStack setstack $In function : Factor of class PrimitiveObject$  stdstack
                   3230:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3231:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3232:  [Argthis] Arglist join ArgNames mapset
                   3233:  f   factor /FunctionValue set   clean-workfiles  /ExitPoint ]pop popVariables %%pop argValues
                   3234:  db.DebugStack setstack pop stdstack
                   3235: FunctionValue } def
                   3236: %%end of function
                   3237:
                   3238: this [ %% function args
                   3239: [ (Factor) [ ( Not Yet. <<need asir, start k0 with -f option.>>)   ]   ] ] {HelpAdd} sendmsg2
                   3240: /Cancel {
                   3241:  db.DebugStack setstack $In function : Cancel of class PrimitiveObject$  stdstack
                   3242:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3243:  [/this /f  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3244:  [Argthis] Arglist join ArgNames mapset
                   3245: [ %%start of local variables
                   3246: /tmp /den /num ] pushVariables [ %%local variables
                   3247: this [ %% function args
                   3248: f ] {IsRational} sendmsg2
                   3249:  %% if-condition
                   3250:   { %%ifbody
                   3251: this [ %% function args
                   3252: this [ %% function args
                   3253: f ] {Denominator} sendmsg2
                   3254: ] {Cancel} sendmsg2
                   3255: /den  set
                   3256: this [ %% function args
                   3257: this [ %% function args
                   3258: f ] {Numerator} sendmsg2
                   3259: ] {Cancel} sendmsg2
                   3260: /num  set
                   3261: this [ %% function args
                   3262: den ] {IsInteger} sendmsg2
                   3263: this [ %% function args
                   3264: num ] {IsInteger} sendmsg2
                   3265:  and
                   3266:  %% if-condition
                   3267:   { %%ifbody
                   3268: this [ %% function args
                   3269: num den  {div} sendmsg2
                   3270: ] {CancelNumber} sendmsg2
                   3271:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3272:   }%%end if if body
                   3273:   { %%if- else part
                   3274:   } ifelse
                   3275: this [ %% function args
                   3276: den ] {IsInteger} sendmsg2
                   3277:  %% if-condition
                   3278:   { %%ifbody
                   3279:  [(divByN)   num  den   ] gbext  /tmp  set
                   3280: tmp [(1)..  ]  Get
                   3281: this [ %% function args
                   3282: (0) ] {Poly} sendmsg2
                   3283:  eq
                   3284:  %% if-condition
                   3285:   { %%ifbody
                   3286: this [ %% function args
                   3287: tmp [(0)..  ]  Get
                   3288: ] {Cancel} sendmsg2
                   3289:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3290:   }%%end if if body
                   3291:   { %%if- else part
                   3292: f  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3293:   } ifelse
                   3294:   }%%end if if body
                   3295:   { %%if- else part
                   3296:   } ifelse
                   3297:   }%%end if if body
                   3298:   { %%if- else part
                   3299:   } ifelse
                   3300: this [ %% function args
                   3301: f ] {IsInteger} sendmsg2
                   3302:  %% if-condition
                   3303:   { %%ifbody
                   3304: f  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3305:   }%%end if if body
                   3306:   { %%if- else part
                   3307:   } ifelse
                   3308: this [ %% function args
                   3309: f ] {IsPolynomial} sendmsg2
                   3310:  %% if-condition
                   3311:   { %%ifbody
                   3312: f this [ %% function args
                   3313: (0) ] {Poly} sendmsg2
                   3314:  eq
                   3315:  %% if-condition
                   3316:   { %%ifbody
                   3317: (0)..  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3318:   }%%end if if body
                   3319:   { %%if- else part
                   3320:   } ifelse
                   3321: this [ %% function args
                   3322: this [ %% function args
                   3323: f ] {Ringp} sendmsg2
                   3324: ] {Characteristic} sendmsg2
                   3325: (0)..  eq not
                   3326:  %% if-condition
                   3327:   { %%ifbody
                   3328: f  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3329:   }%%end if if body
                   3330:   { %%if- else part
                   3331:   } ifelse
                   3332: this [ %% function args
                   3333: f ] {IsConstant} sendmsg2
                   3334:  %% if-condition
                   3335:   { %%ifbody
                   3336: this [ %% function args
                   3337: f (integer) ] {DC} sendmsg2
                   3338:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3339:   }%%end if if body
                   3340:   { %%if- else part
                   3341:   } ifelse
                   3342: f  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3343:   }%%end if if body
                   3344:   { %%if- else part
                   3345:   } ifelse
                   3346:  f   cancel /FunctionValue set   clean-workfiles  /ExitPoint ]pop popVariables %%pop the local variables
                   3347: /ExitPoint ]pop popVariables %%pop argValues
                   3348:  db.DebugStack setstack pop stdstack
                   3349: FunctionValue } def
                   3350: %%end of function
                   3351:
                   3352: this [ %% function args
                   3353: [ (Cancel) [ ( Not Yet. <<need asir, start k0 with -f option>>)   ]   ] ] {HelpAdd} sendmsg2
                   3354: /Primadec {
                   3355:  db.DebugStack setstack $In function : Primadec of class PrimitiveObject$  stdstack
                   3356:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3357:  [/this /f /g  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3358:  [Argthis] Arglist join ArgNames mapset
                   3359:  f  g   primadec /FunctionValue set   clean-workfiles  /ExitPoint ]pop popVariables %%pop argValues
                   3360:  db.DebugStack setstack pop stdstack
                   3361: FunctionValue } def
                   3362: %%end of function
                   3363:
                   3364: this [ %% function args
                   3365: [ (Primadec) [ ( Not Yet. <<need asir, start k0 with -f option.>>)   ]   ] ] {HelpAdd} sendmsg2
                   3366: this [ %% function args
                   3367: (showln) (0).. ] {Protect} sendmsg2
                   3368: [ $Object$ PrimitiveObject 0 get  newcontext ] /Object set
                   3369: Object 0 get setcontext
                   3370: /new0 {
                   3371:  db.DebugStack setstack $In function : new0 of class Object$  stdstack
                   3372:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3373:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3374:  [Argthis]  ArgNames mapset
                   3375: Object  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3376: /ExitPoint ]pop popVariables %%pop argValues
                   3377:  db.DebugStack setstack pop stdstack
                   3378: FunctionValue } def
                   3379: %%end of function
                   3380:
                   3381: /showln {
                   3382:  db.DebugStack setstack $In function : showln of class Object$  stdstack
                   3383:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3384:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3385:  [Argthis]  ArgNames mapset
                   3386: this [ %% function args
                   3387:  this ] {Println} sendmsg2
                   3388: /ExitPoint ]pop popVariables %%pop argValues
                   3389:  db.DebugStack setstack pop stdstack
                   3390: FunctionValue } def
                   3391: %%end of function
                   3392:
                   3393: /getClass {
                   3394:  db.DebugStack setstack $In function : getClass of class Object$  stdstack
                   3395:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3396:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3397:  [Argthis]  ArgNames mapset
                   3398:   this 0 get /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   3399:  db.DebugStack setstack pop stdstack
                   3400: FunctionValue } def
                   3401: %%end of function
                   3402:
                   3403:  PrimitiveContextp setcontext   /ectag { dup isClass not { pop -1 } { lc } ifelse } def  /k00ecTag {
                   3404:  db.DebugStack setstack $In function : k00ecTag of class PrimitiveObject$  stdstack
                   3405:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3406:  [/this /a  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3407:  [Argthis] Arglist join ArgNames mapset
                   3408:  a   ectag /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   3409:  db.DebugStack setstack pop stdstack
                   3410: FunctionValue } def
                   3411: %%end of function
                   3412:
                   3413: /IsObject {
                   3414:  db.DebugStack setstack $In function : IsObject of class PrimitiveObject$  stdstack
                   3415:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3416:  [/this /a  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3417:  [Argthis] Arglist join ArgNames mapset
                   3418: this [ %% function args
                   3419: a ] {IsArray} sendmsg2
                   3420:  not
                   3421:  %% if-condition
                   3422:   { %%ifbody
                   3423: false  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3424:   }%%end if if body
                   3425:   { %%if- else part
                   3426:   } ifelse
                   3427: this [ %% function args
                   3428: a ] {Length} sendmsg2
                   3429: (1)..  lt
                   3430:  %% if-condition
                   3431:   { %%ifbody
                   3432: false  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3433:   }%%end if if body
                   3434:   { %%if- else part
                   3435:   } ifelse
                   3436: this [ %% function args
                   3437: a [(0)..  ]  Get
                   3438: ] {k00ecTag} sendmsg2
                   3439: this [ %% function args
                   3440: Object [(0)..  ]  Get
                   3441: ] {k00ecTag} sendmsg2
                   3442:  eq
                   3443:  %% if-condition
                   3444:   { %%ifbody
                   3445: true  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3446:   }%%end if if body
                   3447:   { %%if- else part
                   3448: false  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3449:   } ifelse
                   3450: /ExitPoint ]pop popVariables %%pop argValues
                   3451:  db.DebugStack setstack pop stdstack
                   3452: FunctionValue } def
                   3453: %%end of function
                   3454:
                   3455: this [ %% function args
                   3456: [ (IsObject) [ (IsObject(a) return true if a is an Object.)   ]   ] ] {HelpAdd} sendmsg2
                   3457: [ $Gmp$ Object 0 get  newcontext ] /Gmp set
                   3458: Gmp 0 get setcontext
                   3459: /BitAnd {
                   3460:  db.DebugStack setstack $In function : BitAnd of class Gmp$  stdstack
                   3461:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3462:  [/this /a /b  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3463:  [Argthis] Arglist join ArgNames mapset
                   3464:  [(and)   a     b   ] mpzext /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   3465:  db.DebugStack setstack pop stdstack
                   3466: FunctionValue } def
                   3467: %%end of function
                   3468:
                   3469: /BitOr {
                   3470:  db.DebugStack setstack $In function : BitOr of class Gmp$  stdstack
                   3471:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3472:  [/this /a /b  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3473:  [Argthis] Arglist join ArgNames mapset
                   3474:  [(ior)   a     b   ] mpzext /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   3475:  db.DebugStack setstack pop stdstack
                   3476: FunctionValue } def
                   3477: %%end of function
                   3478:
                   3479: /ModuloPower {
                   3480:  db.DebugStack setstack $In function : ModuloPower of class Gmp$  stdstack
                   3481:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3482:  [/this /base /ex /mmod  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3483:  [Argthis] Arglist join ArgNames mapset
                   3484:  [(powm)   base     ex     mmod   ] mpzext /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   3485:  db.DebugStack setstack pop stdstack
                   3486: FunctionValue } def
                   3487: %%end of function
                   3488:
                   3489: /ProbabilisticPrimeP {
                   3490:  db.DebugStack setstack $In function : ProbabilisticPrimeP of class Gmp$  stdstack
                   3491:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3492:  [/this /p /reps  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3493:  [Argthis] Arglist join ArgNames mapset
                   3494:  [(probab_prime_p)   p     reps   ] mpzext /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   3495:  db.DebugStack setstack pop stdstack
                   3496: FunctionValue } def
                   3497: %%end of function
                   3498:
                   3499: /Sqrt {
                   3500:  db.DebugStack setstack $In function : Sqrt of class Gmp$  stdstack
                   3501:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3502:  [/this /a  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3503:  [Argthis] Arglist join ArgNames mapset
                   3504:  [(sqrt)   a   ] mpzext /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   3505:  db.DebugStack setstack pop stdstack
                   3506: FunctionValue } def
                   3507: %%end of function
                   3508:
                   3509: /Gcd {
                   3510:  db.DebugStack setstack $In function : Gcd of class Gmp$  stdstack
                   3511:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3512:  [/this /a /b  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3513:  [Argthis] Arglist join ArgNames mapset
                   3514:  [(gcd)   a     b   ] mpzext /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   3515:  db.DebugStack setstack pop stdstack
                   3516: FunctionValue } def
                   3517: %%end of function
                   3518:
                   3519: /Div {
                   3520:  db.DebugStack setstack $In function : Div of class Gmp$  stdstack
                   3521:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3522:  [/this /a /b  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3523:  [Argthis] Arglist join ArgNames mapset
                   3524:  [(tdiv_qr)   a     b   ] mpzext /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   3525:  db.DebugStack setstack pop stdstack
                   3526: FunctionValue } def
                   3527: %%end of function
                   3528:
                   3529: /Mod {
                   3530:  db.DebugStack setstack $In function : Mod of class Gmp$  stdstack
                   3531:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3532:  [/this /a /b  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3533:  [Argthis] Arglist join ArgNames mapset
                   3534:  [(tdiv_qr)   a     b   ] mpzext 1 get /FunctionValue set  /ExitPoint ]pop popVariables %%pop argValues
                   3535:  db.DebugStack setstack pop stdstack
                   3536: FunctionValue } def
                   3537: %%end of function
                   3538:
                   3539:  PrimitiveContextp setcontext this [ %% function args
                   3540: [ (Gmp.) [ (Gmp is a class which supports the following methods:) (BitAnd, BitOr, ModuloPower, ProbabilisticPrimeP, Sqrt,) (Gcd, Div, Mod.) (Ex.  r = Gmp.Gcd(5,8); ) (These methods call functions of Gnu-MP package.) (The Copyright notice is in kan96xx/gmp.) (Note that there is no method to create an instance.)   ]   ] ] {HelpAdd} sendmsg2
                   3541: true /ShimomuraSpecial  set
                   3542: true /OnePath  set
                   3543: false /Vvv  set
                   3544: false /SetRingVariables_Verbose  set
                   3545: /QuietKan {
                   3546:  db.DebugStack setstack $In function : QuietKan of class PrimitiveObject$  stdstack
                   3547:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3548:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3549:  [Argthis]  ArgNames mapset
                   3550:   [(KanGBmessage) 0] system_variable  /ExitPoint ]pop popVariables %%pop argValues
                   3551:  db.DebugStack setstack pop stdstack
                   3552: } def
                   3553: %%end of function
                   3554:
                   3555: /testhg1 {
                   3556:  db.DebugStack setstack $In function : testhg1 of class PrimitiveObject$  stdstack
                   3557:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3558:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3559:  [Argthis]  ArgNames mapset
                   3560: [ [ (1).. (1).. (1).. (1).. (1).. (1)..   ] [ (0).. (0).. (0).. (1).. (1).. (1)..   ] [ (0).. (1).. (0).. (0).. (1).. (0)..   ] [ (0).. (0).. (1).. (0).. (0).. (1)..   ]   ] /a  set
                   3561: this [ %% function args
                   3562: a ] {idhg} sendmsg2
                   3563:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3564: /ExitPoint ]pop popVariables %%pop argValues
                   3565:  db.DebugStack setstack pop stdstack
                   3566: FunctionValue } def
                   3567: %%end of function
                   3568:
                   3569: /testhg2 {
                   3570:  db.DebugStack setstack $In function : testhg2 of class PrimitiveObject$  stdstack
                   3571:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3572:  [/this  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3573:  [Argthis]  ArgNames mapset
                   3574: [ [ (1).. (1).. (1).. (1).. (1)..   ] [ (0).. (2).. (3).. (4).. (3)..   ] [ (0).. (1).. (1).. (0).. (2)..   ]   ] /a  set
                   3575: this [ %% function args
                   3576: a ] {idhg} sendmsg2
                   3577:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3578: /ExitPoint ]pop popVariables %%pop argValues
                   3579:  db.DebugStack setstack pop stdstack
                   3580: FunctionValue } def
                   3581: %%end of function
                   3582:
                   3583: /idhg {
                   3584:  db.DebugStack setstack $In function : idhg of class PrimitiveObject$  stdstack
                   3585:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3586:  [/this /a  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3587:  [Argthis] Arglist join ArgNames mapset
                   3588: [ %%start of local variables
                   3589: /a /ans /rd /i /ans2 /ans3 /n /ff /d /zlist ] pushVariables [ %%local variables
                   3590: this [ %% function args
                   3591: a ] {toric} sendmsg2
                   3592: /ans  set
                   3593: ShimomuraSpecial  %% if-condition
                   3594:   { %%ifbody
                   3595: Vvv  %% if-condition
                   3596:   { %%ifbody
                   3597: this [ %% function args
                   3598: (-------- S-special ---------) ] {Println} sendmsg2
                   3599:   }%%end if if body
                   3600:   { %%if- else part
                   3601:   } ifelse
                   3602: this [ %% function args
                   3603: ans (Init) ] {Map} sendmsg2
                   3604: /ans  set
                   3605:   }%%end if if body
                   3606:   { %%if- else part
                   3607:   } ifelse
                   3608: this [ %% function args
                   3609: ans (ToString) ] {Map} sendmsg2
                   3610: /ans  set
                   3611: Vvv  %% if-condition
                   3612:   { %%ifbody
                   3613: this [ %% function args
                   3614: ans ] {Println} sendmsg2
                   3615:   }%%end if if body
                   3616:   { %%if- else part
                   3617:   } ifelse
                   3618: this [ %% function args
                   3619: (z) this [ %% function args
                   3620: a [(0)..  ]  Get
                   3621: ] {Length} sendmsg2
                   3622: (1)..  {add} sendmsg2
                   3623: this [ %% function args
                   3624: a ] {Length} sendmsg2
                   3625:  {add} sendmsg2
                   3626: ] {RingDonIndexedVariables} sendmsg2
                   3627: /rd  set
                   3628: this [ %% function args
                   3629: ans (Poly) ] {Map} sendmsg2
                   3630: /ans  set
                   3631: this [ %% function args
                   3632: a [(0)..  ]  Get
                   3633: ] {Length} sendmsg2
                   3634: /n  set
                   3635: this [ %% function args
                   3636: a ] {Length} sendmsg2
                   3637: /d  set
                   3638: this [ %% function args
                   3639: this [ %% function args
                   3640: ans ] {Length} sendmsg2
                   3641: ] {NewArray} sendmsg2
                   3642: /ans2  set
                   3643: (0).. %%PSfor initvalue.
                   3644:  (integer) data_conversion
                   3645: this [ %% function args
                   3646: ans ] {Length} sendmsg2
                   3647:  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   3648: { %% for body
                   3649:  (universalNumber) data_conversion /i  set
                   3650: ans2 [i  ] this [ %% function args
                   3651: ans [i  ]  Get
                   3652: n ] {ztoDz} sendmsg2
                   3653:  Put
                   3654:   } for
                   3655: Vvv  %% if-condition
                   3656:   { %%ifbody
                   3657: this [ %% function args
                   3658: ans2 ] {Println} sendmsg2
                   3659:   }%%end if if body
                   3660:   { %%if- else part
                   3661:   } ifelse
                   3662: this [ %% function args
                   3663: a ] {atolin} sendmsg2
                   3664: /ans3  set
                   3665: Vvv  %% if-condition
                   3666:   { %%ifbody
                   3667: this [ %% function args
                   3668: ans3 ] {Println} sendmsg2
                   3669:   }%%end if if body
                   3670:   { %%if- else part
                   3671:   } ifelse
                   3672: this [ %% function args
                   3673: this [ %% function args
                   3674: ans2 ans3 ] {Join} sendmsg2
                   3675: (ToString) ] {Map} sendmsg2
                   3676: /ff  set
                   3677: this [ %% function args
                   3678: ff n d ] {zindicial} sendmsg2
                   3679: /ans  set
                   3680: [   ] /zlist  set
                   3681: n %%PSfor initvalue.
                   3682:  (integer) data_conversion
                   3683: n d  {add} sendmsg2
                   3684: (1)..  {add} sendmsg2
                   3685:  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   3686: { %% for body
                   3687:  (universalNumber) data_conversion /i  set
                   3688: this [ %% function args
                   3689: zlist this [ %% function args
                   3690: (z) i ] {Indexed} sendmsg2
                   3691: ] {Append} sendmsg2
                   3692: /zlist  set
                   3693:   } for
                   3694: [ ans zlist   ]  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3695: /ExitPoint ]pop popVariables %%pop the local variables
                   3696: /ExitPoint ]pop popVariables %%pop argValues
                   3697:  db.DebugStack setstack pop stdstack
                   3698: FunctionValue } def
                   3699: %%end of function
                   3700:
                   3701: /toric0_toMonom {
                   3702:  db.DebugStack setstack $In function : toric0_toMonom of class PrimitiveObject$  stdstack
                   3703:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3704:  [/this /aa /i /offset /ring  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3705:  [Argthis] Arglist join ArgNames mapset
                   3706: [ %%start of local variables
                   3707: /j /ans /m ] pushVariables [ %%local variables
                   3708: this [ %% function args
                   3709: aa ] {Length} sendmsg2
                   3710: /m  set
                   3711: this [ %% function args
                   3712: (1) ring ] {PolyR} sendmsg2
                   3713: /ans  set
                   3714: (0).. /j  set
                   3715: %%for init.
                   3716: %%for
                   3717: { j m  lt
                   3718:  {  } {exit} ifelse
                   3719: [ {%%increment
                   3720: /j j (1).. add def
                   3721: } %%end of increment{A}
                   3722: {%%start of B part{B}
                   3723: ans z [offset j  {add} sendmsg2
                   3724:  ]  Get
                   3725: aa [j i  ]  Get
                   3726:  power
                   3727:  {mul} sendmsg2
                   3728: /ans  set
                   3729: } %% end of B part. {B}
                   3730:  2 1 roll] {exec} map pop
                   3731: } loop %%end of for
                   3732: ans  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3733: /ExitPoint ]pop popVariables %%pop the local variables
                   3734: /ExitPoint ]pop popVariables %%pop argValues
                   3735:  db.DebugStack setstack pop stdstack
                   3736: FunctionValue } def
                   3737: %%end of function
                   3738:
                   3739: /toric {
                   3740:  db.DebugStack setstack $In function : toric of class PrimitiveObject$  stdstack
                   3741:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3742:  [/this /aa  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3743:  [Argthis] Arglist join ArgNames mapset
                   3744: [ %%start of local variables
                   3745: /i /j /rz /n /d /ideal /ans /univ /rule /nn /weight /elim ] pushVariables [ %%local variables
                   3746: this [ %% function args
                   3747: aa ] {Length} sendmsg2
                   3748: /d  set
                   3749: this [ %% function args
                   3750: aa [(0)..  ]  Get
                   3751: ] {Length} sendmsg2
                   3752: /n  set
                   3753: Vvv  %% if-condition
                   3754:   { %%ifbody
                   3755: this [ %% function args
                   3756: aa ] {Println} sendmsg2
                   3757:   }%%end if if body
                   3758:   { %%if- else part
                   3759:   } ifelse
                   3760: [   ] /weight  set
                   3761: [   ] /elim  set
                   3762: n %%PSfor initvalue.
                   3763:  (integer) data_conversion
                   3764: n d  {add} sendmsg2
                   3765:  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   3766: { %% for body
                   3767:  (universalNumber) data_conversion /i  set
                   3768: this [ %% function args
                   3769: weight [ this [ %% function args
                   3770: (z) i ] {Indexed} sendmsg2
                   3771: (1)..   ] ] {Join} sendmsg2
                   3772: /weight  set
                   3773: this [ %% function args
                   3774: elim this [ %% function args
                   3775: (z) i ] {Indexed} sendmsg2
                   3776: ] {Append} sendmsg2
                   3777: /elim  set
                   3778:   } for
                   3779: this [ %% function args
                   3780: [ weight   ] [ this [ %% function args
                   3781: (z) n (1)..  {sub} sendmsg2
                   3782: ] {Indexed} sendmsg2
                   3783: (1)..   ] ] {Append} sendmsg2
                   3784: /weight  set
                   3785: Vvv  %% if-condition
                   3786:   { %%ifbody
                   3787: this [ %% function args
                   3788: weight ] {Println} sendmsg2
                   3789: this [ %% function args
                   3790: elim ] {Println} sendmsg2
                   3791:   }%%end if if body
                   3792:   { %%if- else part
                   3793:   } ifelse
                   3794: this [ %% function args
                   3795: (z) n d  {add} sendmsg2
                   3796: weight ] {RingPonIndexedVariables} sendmsg2
                   3797: /rz  set
                   3798: [   ] /ideal  set
                   3799: (0).. %%PSfor initvalue.
                   3800:  (integer) data_conversion
                   3801: n  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   3802: { %% for body
                   3803:  (universalNumber) data_conversion /i  set
                   3804: this [ %% function args
                   3805: ideal z [i  ]  Get
                   3806: this [ %% function args
                   3807: aa i n rz ] {toric0_toMonom} sendmsg2
                   3808:  {sub} sendmsg2
                   3809: ] {Append} sendmsg2
                   3810: /ideal  set
                   3811:   } for
                   3812: Vvv  %% if-condition
                   3813:   { %%ifbody
                   3814: this [ %% function args
                   3815: ( --------- input ideal -------------) ] {Println} sendmsg2
                   3816: this [ %% function args
                   3817: ( z[) ] {Print} sendmsg2
                   3818: this [ %% function args
                   3819: n ] {Print} sendmsg2
                   3820: this [ %% function args
                   3821: (] --- z[) ] {Print} sendmsg2
                   3822: this [ %% function args
                   3823: n d  {add} sendmsg2
                   3824: (1)..  {sub} sendmsg2
                   3825: ] {Print} sendmsg2
                   3826: this [ %% function args
                   3827: (] should be eliminated.) ] {Println} sendmsg2
                   3828: this [ %% function args
                   3829: ideal ] {Println} sendmsg2
                   3830:   }%%end if if body
                   3831:   { %%if- else part
                   3832:   } ifelse
                   3833: this [ %% function args
                   3834: ideal ] {Groebner} sendmsg2
                   3835: /ans  set
                   3836: Vvv  %% if-condition
                   3837:   { %%ifbody
                   3838: this [ %% function args
                   3839: ( -------------- gb is ----------------- ) ] {Println} sendmsg2
                   3840: this [ %% function args
                   3841: ans ] {Println} sendmsg2
                   3842:   }%%end if if body
                   3843:   { %%if- else part
                   3844:   } ifelse
                   3845: this [ %% function args
                   3846: ans elim ] {Eliminatev} sendmsg2
                   3847: /ans  set
                   3848: Vvv  %% if-condition
                   3849:   { %%ifbody
                   3850: this [ %% function args
                   3851: ( ------------ eliminated -------------- ) ] {Println} sendmsg2
                   3852: this [ %% function args
                   3853: ans ] {Println} sendmsg2
                   3854:   }%%end if if body
                   3855:   { %%if- else part
                   3856:   } ifelse
                   3857: [ [ h this [ %% function args
                   3858: (1) rz ] {PolyR} sendmsg2
                   3859:   ]   ] /rule  set
                   3860: this [ %% function args
                   3861: ans ] {Length} sendmsg2
                   3862: /nn  set
                   3863: [   ] /univ  set
                   3864: (0).. %%PSfor initvalue.
                   3865:  (integer) data_conversion
                   3866: nn  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   3867: { %% for body
                   3868:  (universalNumber) data_conversion /i  set
                   3869: this [ %% function args
                   3870: univ this [ %% function args
                   3871: ans [i  ]  Get
                   3872: rule ] {Replace} sendmsg2
                   3873: ] {Append} sendmsg2
                   3874: /univ  set
                   3875:   } for
                   3876: this [ %% function args
                   3877: univ ] {ReducedBase} sendmsg2
                   3878: /ans  set
                   3879: Vvv  %% if-condition
                   3880:   { %%ifbody
                   3881: this [ %% function args
                   3882: ( ----------- removed redundant elements ----------- ) ] {Println} sendmsg2
                   3883: this [ %% function args
                   3884: ( ---------- generators of the toric ideal are ----- ) ] {Println} sendmsg2
                   3885: this [ %% function args
                   3886: ans ] {Println} sendmsg2
                   3887: this [ %% function args
                   3888: ( ) ] {Println} sendmsg2
                   3889:   }%%end if if body
                   3890:   { %%if- else part
                   3891:   } ifelse
                   3892: ans  /FunctionValue set  {/ExitPoint goto} exec %%return
                   3893: /ExitPoint ]pop popVariables %%pop the local variables
                   3894: /ExitPoint ]pop popVariables %%pop argValues
                   3895:  db.DebugStack setstack pop stdstack
                   3896: FunctionValue } def
                   3897: %%end of function
                   3898:
                   3899: /zindicial0 {
                   3900:  db.DebugStack setstack $In function : zindicial0 of class PrimitiveObject$  stdstack
                   3901:  /Arglist set /Argthis set /FunctionValue [ ] def
                   3902:  [/this /input /n /m  ] /ArgNames set ArgNames pushVariables [ %%function body
                   3903:  [Argthis] Arglist join ArgNames mapset
                   3904: [ %%start of local variables
                   3905: /rz /weight /ww /i /rule /zinverse /m /d /ans /elim /tmp ] pushVariables [ %%local variables
                   3906: OnePath  not
                   3907:  %% if-condition
                   3908:   { %%ifbody
                   3909: [   ] /ww  set
                   3910: [   ] /elim  set
                   3911: [ [ this [ %% function args
                   3912: (z) n ] {Indexed} sendmsg2
                   3913: (1)..   ]   ] /weight  set
                   3914: Vvv  %% if-condition
                   3915:   { %%ifbody
                   3916: this [ %% function args
                   3917: (-------- weight ---------: ) ] {Print} sendmsg2
                   3918: this [ %% function args
                   3919: weight ] {Println} sendmsg2
                   3920:   }%%end if if body
                   3921:   { %%if- else part
                   3922:   } ifelse
                   3923: this [ %% function args
                   3924: (z) n (1)..  {add} sendmsg2
                   3925: m  {add} sendmsg2
                   3926: weight ] {RingDonIndexedVariables} sendmsg2
                   3927: /rz  set
                   3928: this [ %% function args
                   3929: n (1)..  {add} sendmsg2
                   3930: m  {add} sendmsg2
                   3931: ] {NewArray} sendmsg2
                   3932: /z  set
                   3933: this [ %% function args
                   3934: n (1)..  {add} sendmsg2
                   3935: m  {add} sendmsg2
                   3936: ] {NewArray} sendmsg2
                   3937: /Dz  set
                   3938: (0).. %%PSfor initvalue.
                   3939:  (integer) data_conversion
                   3940: n (1)..  {add} sendmsg2
                   3941: m  {add} sendmsg2
                   3942:  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   3943: { %% for body
                   3944:  (universalNumber) data_conversion /i  set
                   3945: z [i  ] this [ %% function args
                   3946: this [ %% function args
                   3947: (z) i ] {Indexed} sendmsg2
                   3948: rz ] {PolyR} sendmsg2
                   3949:  Put
                   3950: Dz [i  ] this [ %% function args
                   3951: this [ %% function args
                   3952: (Dz) i ] {Indexed} sendmsg2
                   3953: rz ] {PolyR} sendmsg2
                   3954:  Put
                   3955:   } for
                   3956: this [ %% function args
                   3957: input rz ] {Mapto} sendmsg2
                   3958: /input  set
                   3959: Vvv  %% if-condition
                   3960:   { %%ifbody
                   3961: this [ %% function args
                   3962: (------------ input ------------) ] {Println} sendmsg2
                   3963: this [ %% function args
                   3964: input ] {Println} sendmsg2
                   3965:   }%%end if if body
                   3966:   { %%if- else part
                   3967:   } ifelse
                   3968: this [ %% function args
                   3969: this [ %% function args
                   3970: [ this [ %% function args
                   3971: (z) n ] {Indexed} sendmsg2
                   3972: (^(-1))   ] ] {AddString} sendmsg2
                   3973: rz ] {PolyR} sendmsg2
                   3974: /zinverse  set
                   3975: [ [ Dz [n (1)..  {sub} sendmsg2
                   3976:  ]  Get
                   3977: Dz [n (1)..  {sub} sendmsg2
                   3978:  ]  Get
                   3979: z [n  ]  Get
                   3980:  {mul} sendmsg2
                   3981:   ] [ z [n (1)..  {sub} sendmsg2
                   3982:  ]  Get
                   3983: z [n (1)..  {sub} sendmsg2
                   3984:  ]  Get
                   3985: zinverse  {mul} sendmsg2
                   3986:   ]   ] /rule  set
                   3987: this [ %% function args
                   3988: input rule ] {Replace} sendmsg2
                   3989: /input  set
                   3990: this [ %% function args
                   3991: input ] {Length} sendmsg2
                   3992: /m  set
                   3993: (0).. %%PSfor initvalue.
                   3994:  (integer) data_conversion
                   3995: m  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   3996: { %% for body
                   3997:  (universalNumber) data_conversion /i  set
                   3998: this [ %% function args
                   3999: this [ %% function args
                   4000: input [i  ]  Get
                   4001: [ [ z [n  ]  Get
                   4002: zinverse   ]   ] ] {Replace} sendmsg2
                   4003: z [n  ]  Get
                   4004: ] {Degree} sendmsg2
                   4005:  (0)..  2 1 roll {sub} sendmsg
                   4006: /d  set
                   4007: d (0)..  lt
                   4008:  %% if-condition
                   4009:   { %%ifbody
                   4010: input [i  ] z [n  ]  Get
                   4011: d  (0)..  2 1 roll {sub} sendmsg
                   4012:  power
                   4013: input [i  ]  Get
                   4014:  {mul} sendmsg2
                   4015:  Put
                   4016:   }%%end if if body
                   4017:   { %%if- else part
                   4018:   } ifelse
                   4019:   } for
                   4020: Vvv  %% if-condition
                   4021:   { %%ifbody
                   4022: this [ %% function args
                   4023: (------ input : ) ] {Print} sendmsg2
                   4024: this [ %% function args
                   4025: input ] {Println} sendmsg2
                   4026:   }%%end if if body
                   4027:   { %%if- else part
                   4028:   } ifelse
                   4029: this [ %% function args
                   4030: input ] {GroebnerTime} sendmsg2
                   4031: /ans  set
                   4032: this [ %% function args
                   4033: ans ] {Length} sendmsg2
                   4034: /m  set
                   4035: (0).. %%PSfor initvalue.
                   4036:  (integer) data_conversion
                   4037: m  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   4038: { %% for body
                   4039:  (universalNumber) data_conversion /i  set
                   4040: this [ %% function args
                   4041: ans [i  ]  Get
                   4042: z [n  ]  Get
                   4043: ] {Coefficients} sendmsg2
                   4044: /tmp  set
                   4045: ans [i  ] tmp [(1).. (0)..  ]  Get
                   4046:  Put
                   4047:   } for
                   4048: Vvv  %% if-condition
                   4049:   { %%ifbody
                   4050: this [ %% function args
                   4051: (--------FW principal parts : ) ] {Print} sendmsg2
                   4052: this [ %% function args
                   4053: ans ] {Println} sendmsg2
                   4054:   }%%end if if body
                   4055:   { %%if- else part
                   4056:   } ifelse
                   4057: this [ %% function args
                   4058: ans (ToString) ] {Map} sendmsg2
                   4059: /input  set
                   4060:   }%%end if if body
                   4061:   { %%if- else part
                   4062:   } ifelse
                   4063: [   ] /ww  set
                   4064: [   ] /elim  set
                   4065: (0).. %%PSfor initvalue.
                   4066:  (integer) data_conversion
                   4067: n (1)..  {sub} sendmsg2
                   4068:  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   4069: { %% for body
                   4070:  (universalNumber) data_conversion /i  set
                   4071: this [ %% function args
                   4072: ww [ this [ %% function args
                   4073: (Dz) i ] {Indexed} sendmsg2
                   4074: (1)..   ] ] {Join} sendmsg2
                   4075: /ww  set
                   4076: i n (1)..  {sub} sendmsg2
                   4077:  eq not
                   4078:  %% if-condition
                   4079:   { %%ifbody
                   4080: this [ %% function args
                   4081: elim this [ %% function args
                   4082: (Dz) i ] {Indexed} sendmsg2
                   4083: ] {Append} sendmsg2
                   4084: /elim  set
                   4085:   }%%end if if body
                   4086:   { %%if- else part
                   4087:   } ifelse
                   4088:   } for
                   4089: [ [ this [ %% function args
                   4090: (z) n ] {Indexed} sendmsg2
                   4091: (1)..   ] ww   ] /weight  set
                   4092: Vvv  %% if-condition
                   4093:   { %%ifbody
                   4094: this [ %% function args
                   4095: (-------- weight ---------: ) ] {Print} sendmsg2
                   4096: this [ %% function args
                   4097: weight ] {Println} sendmsg2
                   4098:   }%%end if if body
                   4099:   { %%if- else part
                   4100:   } ifelse
                   4101: this [ %% function args
                   4102: (z) n (1)..  {add} sendmsg2
                   4103: m  {add} sendmsg2
                   4104: weight ] {RingDonIndexedVariables} sendmsg2
                   4105: /rz  set
                   4106: this [ %% function args
                   4107: n (1)..  {add} sendmsg2
                   4108: m  {add} sendmsg2
                   4109: ] {NewArray} sendmsg2
                   4110: /z  set
                   4111: this [ %% function args
                   4112: n (1)..  {add} sendmsg2
                   4113: m  {add} sendmsg2
                   4114: ] {NewArray} sendmsg2
                   4115: /Dz  set
                   4116: (0).. %%PSfor initvalue.
                   4117:  (integer) data_conversion
                   4118: n (1)..  {add} sendmsg2
                   4119: m  {add} sendmsg2
                   4120:  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   4121: { %% for body
                   4122:  (universalNumber) data_conversion /i  set
                   4123: z [i  ] this [ %% function args
                   4124: this [ %% function args
                   4125: (z) i ] {Indexed} sendmsg2
                   4126: rz ] {PolyR} sendmsg2
                   4127:  Put
                   4128: Dz [i  ] this [ %% function args
                   4129: this [ %% function args
                   4130: (Dz) i ] {Indexed} sendmsg2
                   4131: rz ] {PolyR} sendmsg2
                   4132:  Put
                   4133:   } for
                   4134: this [ %% function args
                   4135: input rz ] {Mapto} sendmsg2
                   4136: /input  set
                   4137: OnePath  %% if-condition
                   4138:   { %%ifbody
                   4139: this [ %% function args
                   4140: this [ %% function args
                   4141: [ this [ %% function args
                   4142: (z) n ] {Indexed} sendmsg2
                   4143: (^(-1))   ] ] {AddString} sendmsg2
                   4144: rz ] {PolyR} sendmsg2
                   4145: /zinverse  set
                   4146: [ [ Dz [n (1)..  {sub} sendmsg2
                   4147:  ]  Get
                   4148: Dz [n (1)..  {sub} sendmsg2
                   4149:  ]  Get
                   4150: z [n  ]  Get
                   4151:  {mul} sendmsg2
                   4152:   ] [ z [n (1)..  {sub} sendmsg2
                   4153:  ]  Get
                   4154: z [n (1)..  {sub} sendmsg2
                   4155:  ]  Get
                   4156: zinverse  {mul} sendmsg2
                   4157:   ]   ] /rule  set
                   4158: this [ %% function args
                   4159: input rule ] {Replace} sendmsg2
                   4160: /input  set
                   4161: this [ %% function args
                   4162: input ] {Length} sendmsg2
                   4163: /m  set
                   4164: (0).. %%PSfor initvalue.
                   4165:  (integer) data_conversion
                   4166: m  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   4167: { %% for body
                   4168:  (universalNumber) data_conversion /i  set
                   4169: this [ %% function args
                   4170: this [ %% function args
                   4171: input [i  ]  Get
                   4172: [ [ z [n  ]  Get
                   4173: zinverse   ]   ] ] {Replace} sendmsg2
                   4174: z [n  ]  Get
                   4175: ] {Degree} sendmsg2
                   4176:  (0)..  2 1 roll {sub} sendmsg
                   4177: /d  set
                   4178: d (0)..  lt
                   4179:  %% if-condition
                   4180:   { %%ifbody
                   4181: input [i  ] z [n  ]  Get
                   4182: d  (0)..  2 1 roll {sub} sendmsg
                   4183:  power
                   4184: input [i  ]  Get
                   4185:  {mul} sendmsg2
                   4186:  Put
                   4187:   }%%end if if body
                   4188:   { %%if- else part
                   4189:   } ifelse
                   4190:   } for
                   4191:   }%%end if if body
                   4192:   { %%if- else part
                   4193:   } ifelse
                   4194: Vvv  %% if-condition
                   4195:   { %%ifbody
                   4196: this [ %% function args
                   4197: (------ input : ) ] {Print} sendmsg2
                   4198: this [ %% function args
                   4199: input ] {Println} sendmsg2
                   4200:   }%%end if if body
                   4201:   { %%if- else part
                   4202:   } ifelse
                   4203: this [ %% function args
                   4204: input ] {GroebnerTime} sendmsg2
                   4205: /ans  set
                   4206: this [ %% function args
                   4207: ans ] {Length} sendmsg2
                   4208: /m  set
                   4209: (0).. %%PSfor initvalue.
                   4210:  (integer) data_conversion
                   4211: m  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   4212: { %% for body
                   4213:  (universalNumber) data_conversion /i  set
                   4214: this [ %% function args
                   4215: ans [i  ]  Get
                   4216: z [n  ]  Get
                   4217: ] {Coefficients} sendmsg2
                   4218: /tmp  set
                   4219: ans [i  ] tmp [(1).. (0)..  ]  Get
                   4220:  Put
                   4221:   } for
                   4222: Vvv  %% if-condition
                   4223:   { %%ifbody
                   4224: this [ %% function args
                   4225: (--------FW principal parts : ) ] {Print} sendmsg2
                   4226: this [ %% function args
                   4227: ans ] {Println} sendmsg2
                   4228:   }%%end if if body
                   4229:   { %%if- else part
                   4230:   } ifelse
                   4231: this [ %% function args
                   4232: ans elim ] {Eliminatev} sendmsg2
                   4233: /ans  set
                   4234: this [ %% function args
                   4235: ans ] {Length} sendmsg2
                   4236: /m  set
                   4237: (0).. /i  set
                   4238: %%for init.
                   4239: %%for
                   4240: { i m  lt
                   4241:  {  } {exit} ifelse
                   4242: [ {%%increment
                   4243: /i i (1).. add def
                   4244: } %%end of increment{A}
                   4245: {%%start of B part{B}
                   4246: ans [i  ] this [ %% function args
                   4247: ans [i  ]  Get
                   4248: [ [ h this [ %% function args
                   4249: (1) rz ] {PolyR} sendmsg2
                   4250:   ] [ this [ %% function args
                   4251: this [ %% function args
                   4252: (z) n ] {Indexed} sendmsg2
                   4253: rz ] {PolyR} sendmsg2
                   4254: this [ %% function args
                   4255: (1) rz ] {PolyR} sendmsg2
                   4256:   ]   ] ] {Replace} sendmsg2
                   4257:  Put
                   4258: } %% end of B part. {B}
                   4259:  2 1 roll] {exec} map pop
                   4260: } loop %%end of for
                   4261: Vvv  %% if-condition
                   4262:   { %%ifbody
                   4263: this [ %% function args
                   4264: ( ) ] {Println} sendmsg2
                   4265: this [ %% function args
                   4266: ( ) ] {Println} sendmsg2
                   4267:   }%%end if if body
                   4268:   { %%if- else part
                   4269:   } ifelse
                   4270: ans  /FunctionValue set  {/ExitPoint goto} exec %%return
                   4271: /ExitPoint ]pop popVariables %%pop the local variables
                   4272: /ExitPoint ]pop popVariables %%pop argValues
                   4273:  db.DebugStack setstack pop stdstack
                   4274: FunctionValue } def
                   4275: %%end of function
                   4276:
                   4277: /zrho {
                   4278:  db.DebugStack setstack $In function : zrho of class PrimitiveObject$  stdstack
                   4279:  /Arglist set /Argthis set /FunctionValue [ ] def
                   4280:  [/this /f /n  ] /ArgNames set ArgNames pushVariables [ %%function body
                   4281:  [Argthis] Arglist join ArgNames mapset
                   4282: [ %%start of local variables
                   4283: /ans /i /top /w /rz ] pushVariables [ %%local variables
                   4284: (0).. /ans  set
                   4285: this [ %% function args
                   4286: f ] {Ringp} sendmsg2
                   4287: /rz  set
                   4288:
                   4289: %%while
                   4290: { true  { } {exit} ifelse
                   4291:  f this [ %% function args
                   4292: (0) ] {Poly} sendmsg2
                   4293:  eq
                   4294:  %% if-condition
                   4295:   { %%ifbody
                   4296:   exit    }%%end if if body
                   4297:   { %%if- else part
                   4298:   } ifelse
                   4299: this [ %% function args
                   4300: f ] {Init} sendmsg2
                   4301: /top  set
                   4302: f top  {sub} sendmsg2
                   4303: /f  set
                   4304: this [ %% function args
                   4305: top [ this [ %% function args
                   4306: this [ %% function args
                   4307: (Dz) n (1)..  {sub} sendmsg2
                   4308: ] {Indexed} sendmsg2
                   4309: rz ] {PolyR} sendmsg2
                   4310:   ] ] {Exponent} sendmsg2
                   4311: /w  set
                   4312: this [ %% function args
                   4313: top [ [ this [ %% function args
                   4314: this [ %% function args
                   4315: (Dz) n (1)..  {sub} sendmsg2
                   4316: ] {Indexed} sendmsg2
                   4317: rz ] {PolyR} sendmsg2
                   4318: this [ %% function args
                   4319: (1) rz ] {PolyR} sendmsg2
                   4320:   ]   ] ] {Replace} sendmsg2
                   4321: this [ %% function args
                   4322: z [n  ]  Get
                   4323: w [(0)..  ]  Get
                   4324: ] {zipoch} sendmsg2
                   4325:  {mul} sendmsg2
                   4326: /top  set
                   4327: ans top  {add} sendmsg2
                   4328: /ans  set
                   4329: } loop
                   4330: ans  /FunctionValue set  {/ExitPoint goto} exec %%return
                   4331: /ExitPoint ]pop popVariables %%pop the local variables
                   4332: /ExitPoint ]pop popVariables %%pop argValues
                   4333:  db.DebugStack setstack pop stdstack
                   4334: FunctionValue } def
                   4335: %%end of function
                   4336:
                   4337: /zipoch {
                   4338:  db.DebugStack setstack $In function : zipoch of class PrimitiveObject$  stdstack
                   4339:  /Arglist set /Argthis set /FunctionValue [ ] def
                   4340:  [/this /f /w  ] /ArgNames set ArgNames pushVariables [ %%function body
                   4341:  [Argthis] Arglist join ArgNames mapset
                   4342: [ %%start of local variables
                   4343: /ans /i ] pushVariables [ %%local variables
                   4344: (1).. /ans  set
                   4345: (0).. %%PSfor initvalue.
                   4346:  (integer) data_conversion
                   4347: w  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   4348: { %% for body
                   4349:  (universalNumber) data_conversion /i  set
                   4350: ans f i  {sub} sendmsg2
                   4351:  {mul} sendmsg2
                   4352: /ans  set
                   4353:   } for
                   4354: ans  /FunctionValue set  {/ExitPoint goto} exec %%return
                   4355: /ExitPoint ]pop popVariables %%pop the local variables
                   4356: /ExitPoint ]pop popVariables %%pop argValues
                   4357:  db.DebugStack setstack pop stdstack
                   4358: FunctionValue } def
                   4359: %%end of function
                   4360:
                   4361: /zindicial {
                   4362:  db.DebugStack setstack $In function : zindicial of class PrimitiveObject$  stdstack
                   4363:  /Arglist set /Argthis set /FunctionValue [ ] def
                   4364:  [/this /fff /n /mm  ] /ArgNames set ArgNames pushVariables [ %%function body
                   4365:  [Argthis] Arglist join ArgNames mapset
                   4366: [ %%start of local variables
                   4367: /ans /n /i /m /r /tmp ] pushVariables [ %%local variables
                   4368: this [ %% function args
                   4369: fff n mm ] {zindicial0} sendmsg2
                   4370: /ans  set
                   4371: Vvv  %% if-condition
                   4372:   { %%ifbody
                   4373: this [ %% function args
                   4374: ans ] {Println} sendmsg2
                   4375:   }%%end if if body
                   4376:   { %%if- else part
                   4377:   } ifelse
                   4378: this [ %% function args
                   4379: ans ] {Length} sendmsg2
                   4380: /m  set
                   4381: [   ] /r  set
                   4382: Vvv  %% if-condition
                   4383:   { %%ifbody
                   4384: this [ %% function args
                   4385: this [ %% function args
                   4386: [ (------ The generic indicial polynomial  along z[) this [ %% function args
                   4387: n (1)..  {sub} sendmsg2
                   4388: ] {ToString} sendmsg2
                   4389: (] = 0 is the minimal degree polynomial of the following) (polynomials.)   ] ] {AddString} sendmsg2
                   4390: ] {Println} sendmsg2
                   4391: this [ %% function args
                   4392: this [ %% function args
                   4393: [ (z[) this [ %% function args
                   4394: n ] {ToString} sendmsg2
                   4395: (] is equal to s.)   ] ] {AddString} sendmsg2
                   4396: ] {Println} sendmsg2
                   4397:   }%%end if if body
                   4398:   { %%if- else part
                   4399:   } ifelse
                   4400: (0).. %%PSfor initvalue.
                   4401:  (integer) data_conversion
                   4402: m  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   4403: { %% for body
                   4404:  (universalNumber) data_conversion /i  set
                   4405: ans [i  ]  Get
                   4406: /tmp  set
                   4407: this [ %% function args
                   4408: tmp [ [ this [ %% function args
                   4409: this [ %% function args
                   4410: (z) n (1)..  {sub} sendmsg2
                   4411: ] {Indexed} sendmsg2
                   4412: ] {Poly} sendmsg2
                   4413: this [ %% function args
                   4414: (1) ] {Poly} sendmsg2
                   4415:   ]   ] ] {Replace} sendmsg2
                   4416: /tmp  set
                   4417: this [ %% function args
                   4418: tmp n ] {zrho} sendmsg2
                   4419: /tmp  set
                   4420: Vvv  %% if-condition
                   4421:   { %%ifbody
                   4422: this [ %% function args
                   4423: i ] {Print} sendmsg2
                   4424: this [ %% function args
                   4425: ( :  ) ] {Print} sendmsg2
                   4426: this [ %% function args
                   4427: tmp ] {Println} sendmsg2
                   4428:   }%%end if if body
                   4429:   { %%if- else part
                   4430:   } ifelse
                   4431: this [ %% function args
                   4432: r tmp ] {Append} sendmsg2
                   4433: /r  set
                   4434:   } for
                   4435: Vvv  %% if-condition
                   4436:   { %%ifbody
                   4437: this [ %% function args
                   4438: ( ) ] {Println} sendmsg2
                   4439:   }%%end if if body
                   4440:   { %%if- else part
                   4441:   } ifelse
                   4442: r  /FunctionValue set  {/ExitPoint goto} exec %%return
                   4443: /ExitPoint ]pop popVariables %%pop the local variables
                   4444: /ExitPoint ]pop popVariables %%pop argValues
                   4445:  db.DebugStack setstack pop stdstack
                   4446: FunctionValue } def
                   4447: %%end of function
                   4448:
                   4449: /ztoDz {
                   4450:  db.DebugStack setstack $In function : ztoDz of class PrimitiveObject$  stdstack
                   4451:  /Arglist set /Argthis set /FunctionValue [ ] def
                   4452:  [/this /f /n  ] /ArgNames set ArgNames pushVariables [ %%function body
                   4453:  [Argthis] Arglist join ArgNames mapset
                   4454: [ %%start of local variables
                   4455: /rule /i ] pushVariables [ %%local variables
                   4456: this [ %% function args
                   4457: n ] {NewArray} sendmsg2
                   4458: /rule  set
                   4459: (0).. %%PSfor initvalue.
                   4460:  (integer) data_conversion
                   4461: n  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   4462: { %% for body
                   4463:  (universalNumber) data_conversion /i  set
                   4464: rule [i  ] [ z [i  ]  Get
                   4465: Dz [i  ]  Get
                   4466:   ]  Put
                   4467:   } for
                   4468: this [ %% function args
                   4469: f rule ] {Replace} sendmsg2
                   4470:  /FunctionValue set  {/ExitPoint goto} exec %%return
                   4471: /ExitPoint ]pop popVariables %%pop the local variables
                   4472: /ExitPoint ]pop popVariables %%pop argValues
                   4473:  db.DebugStack setstack pop stdstack
                   4474: FunctionValue } def
                   4475: %%end of function
                   4476:
                   4477: /atolin {
                   4478:  db.DebugStack setstack $In function : atolin of class PrimitiveObject$  stdstack
                   4479:  /Arglist set /Argthis set /FunctionValue [ ] def
                   4480:  [/this /a  ] /ArgNames set ArgNames pushVariables [ %%function body
                   4481:  [Argthis] Arglist join ArgNames mapset
                   4482: [ %%start of local variables
                   4483: /d /n /eqs /ans /i /j ] pushVariables [ %%local variables
                   4484: this [ %% function args
                   4485: a ] {Length} sendmsg2
                   4486: /d  set
                   4487: this [ %% function args
                   4488: a [(0)..  ]  Get
                   4489: ] {Length} sendmsg2
                   4490: /n  set
                   4491: this [ %% function args
                   4492: d ] {NewArray} sendmsg2
                   4493: /eqs  set
                   4494: (0).. %%PSfor initvalue.
                   4495:  (integer) data_conversion
                   4496: d  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   4497: { %% for body
                   4498:  (universalNumber) data_conversion /i  set
                   4499: (0).. /ans  set
                   4500: (0).. %%PSfor initvalue.
                   4501:  (integer) data_conversion
                   4502: n  (1).. sub  (integer) data_conversion  1  2 -1 roll
                   4503: { %% for body
                   4504:  (universalNumber) data_conversion /j  set
                   4505: ans a [i j  ]  Get
                   4506: z [j  ]  Get
                   4507:  {mul} sendmsg2
                   4508: Dz [j  ]  Get
                   4509:  {mul} sendmsg2
                   4510:  {add} sendmsg2
                   4511: /ans  set
                   4512:   } for
                   4513: ans z [n (1)..  {add} sendmsg2
                   4514: i  {add} sendmsg2
                   4515:  ]  Get
                   4516:  {sub} sendmsg2
                   4517: /ans  set
                   4518: eqs [i  ] ans  Put
                   4519:   } for
                   4520: eqs  /FunctionValue set  {/ExitPoint goto} exec %%return
                   4521: /ExitPoint ]pop popVariables %%pop the local variables
                   4522: /ExitPoint ]pop popVariables %%pop argValues
                   4523:  db.DebugStack setstack pop stdstack
                   4524: FunctionValue } def
                   4525: %%end of function
                   4526:
                   4527:   ;

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