Annotation of OpenXM/src/k097/debug/over.sm1, Revision 1.1.1.1
1.1 maekawa 1: /permuteOrderMatrix {
2: %% order perm puermuteOrderMatrix newOrder
3: /arg2 set /arg1 set
4: [/order /perm /newOrder /k ] pushVariables
5: [
6: /order arg1 def
7: /perm arg2 def
8: ( Hi0 ) print
9: order transpose /order set
10: ( Hi1 ) print pstack
11: order 1 copy /newOrder set pop
12:
13: 0 1 << perm length 1 sub >>
14: {
15: /k set
16: newOrder << perm k get >> << order k get >> put
17: } for
18: newOrder transpose /newOrder set
19: ] pop
20: /arg1 newOrder def
21: popVariables
22: arg1
23: } def
24:
25: /elimination_order {
26: %% [x-list d-list params] (x,y,z) elimination_order
27: %% vars evars
28: %% [x-list d-list params order]
29: /arg2 set /arg1 set
30: [/vars /evars /univ /order /perm /univ0 /compl] pushVariables
31: /vars arg1 def /evars [arg2 to_records pop] def
32: [
33: /univ vars 0 get reverse
34: vars 1 get reverse join
35: def
36:
37: << univ length 2 sub >>
38: << evars length >>
39: eliminationOrderTemplate /order set
40: %%(Hello2 ) print pstack
41:
42: [[1]] order oplus [[1]] oplus /order set
43: %%(Hello3 ) print pstack
44:
45: /univ0 [univ reverse aload pop pop] reverse def %% [e,x,y,h] --> [x,y,h]
46:
47: %%(Hello4 ) print pstack
48: /compl
49: [univ 0 get] evars join evars univ0 complement join
50: def
51: compl univ
52: getPerm /perm set
53: %%perm :: univ :: compl ::
54: (Hello5 ) print pstack
55: order :: perm ::
56: order perm permuteOrderMatrix /order set
57: (Hello6 ) print pstack
58:
59:
60: vars [order] join /arg1 set
61: ] pop
62: popVariables
63: arg1
64: } def
65:
66: [
67: (z0,z1,z2,z3,z4,z5,z6,z7,z8,z9,z10,z11,z12,z13,z14,z15,z16,z17,z18,z19,z20,z21,z22,z23,z24,z25,z26,z27,z28,z29) ring_of_differential_operators
68: ( ) elimination_order 0]
69: define_ring
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>