Annotation of OpenXM/src/kan96xx/Doc/callsm1.sm1, Revision 1.1
1.1 ! maekawa 1: %% Library for ox_sm1 to be called from asir cf. xm (callsm1.asir)
! 2: %% This file is automatically loaded when ox_sm1 is called
! 3: %% with the name ox_sm1_forAsir. See kxx/oxserver00.c.
! 4: /whoami { ( SSkan/lib/callsm1.sm1, 1999/6/23. ) message } def
! 5:
! 6: /@@@.Dsymbol (d) def
! 7: /@@@.esymbol (e0) def
! 8:
! 9: /toAsirVar {
! 10: /arg1 set
! 11: [/in-toAsirVar /s /i /ans] pushVariables
! 12: [
! 13: /s arg1 def
! 14: s isArray { s {toAsirVar} map /ans set}
! 15: {
! 16: s (array) dc /s set
! 17: s { /i set
! 18: i 64 gt i 91 lt and %% 64 = @, 90 = Z, 96=`,
! 19: {
! 20: i 68 eq { %% 68 = D, 32 = space.
! 21: i 32 add
! 22: }
! 23: { i 32 add i } ifelse
! 24: }
! 25: { i } ifelse
! 26: } map {(string) dc} map cat /ans set
! 27: } ifelse
! 28: /arg1 ans def
! 29: ] pop
! 30: popVariables
! 31: arg1
! 32: } def
! 33:
! 34: %%[[(x) (Dx) (E) (T) (Dx0)] toAsirVar ] ::
! 35: %%(_xy) toAsirVar ::
! 36:
! 37: /toAsirForm {
! 38: /arg1 set
! 39: [/in-toAsirForm /aa /ans] pushVariables
! 40: [
! 41: /aa arg1 def
! 42: %% (toAsirForm : ) messagen aa message
! 43: aa isArray {
! 44: aa {toAsirForm} map /ans set
! 45: /toAsirForm.LLL goto
! 46: } { } ifelse
! 47: aa isPolynomial {
! 48: aa (0). eq {
! 49: /ans (0). def
! 50: } {
! 51: /ans [(sm1_dp) aa getvNamesCR toAsirVar aa] def
! 52: } ifelse
! 53: /toAsirForm.LLL goto
! 54: } { } ifelse
! 55: aa isInteger {
! 56: aa 0 eq {
! 57: /ans null def %% You cannot send universalNumber 0 to the current
! 58: %% asir 1999, 6/10. Try sm1(" 0 "); sm1_pop();
! 59: } {
! 60: /ans aa (universalNumber) dc def
! 61: } ifelse
! 62: /toAsirForm.LLL goto
! 63: } { } ifelse
! 64: aa isUniversalNumber {
! 65: aa (0).. eq {
! 66: /ans null def %% You cannot send universalNumber 0 to the current
! 67: %% asir
! 68: } {
! 69: /ans aa def
! 70: } ifelse
! 71: /toAsirForm.LLL goto
! 72: } { } ifelse
! 73:
! 74:
! 75: /ans aa def
! 76:
! 77: /toAsirForm.LLL
! 78: /arg1 ans def
! 79: ] pop
! 80: popVariables
! 81: arg1
! 82: } def
! 83:
! 84: /foo {[(x) ring_of_polynomials 0] define_ring
! 85: (x^2-1). /ff set
! 86: [(x) ring_of_differential_operators 0] define_ring
! 87: (x^2-1). /gg set
! 88: [ff gg 0 1 (123).. [(Hello)]] toAsirForm ::
! 89: } def
! 90:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>