Annotation of OpenXM/src/k097/debug/ahg2.k.sm1, Revision 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>