Annotation of OpenXM/src/kan96xx/Kan/sugar.sm1, Revision 1.1.1.1
1.1 maekawa 1: %% sugar.sm1, It should be developed on 300CT. 1998, 1/27 --
2: %% sugar.sm1 1998, 1/29.
3:
4: [(getOptions)
5: [( getOptions [<options for system_variable> <options for switch_function>])
6: (cf. restoreOptions)
7: ]
8: ] putUsages
9: [(restoreOptions)
10: [([<options for system_variable> <options for switch_function>] restoreOptions)
11: (cf. getOptions)
12: ]
13: ] putUsages
14: [(groebner_sugar)
15: [(groebner_sugar computes Groebner basis by the sugar strategy.)
16: (Format of arguments and results are as same as that of groebner.)
17: (See groebner. When you compute in the ring of polynomials,)
18: $it is recommended to turn on the switch [(UseCriterion1) 1] system_variable$
19: (Note that groebner_sugar does not use the homogenized Weyl algebra.)
20: (So, it does work only for term orders. Never use negative weight vectors.)
21: ]
22: ] putUsages
23:
24: /getOptions {
25: [
26: [
27: [(ReduceLowerTerms) [(ReduceLowerTerms)] system_variable]
28: [(Sugar) [(Sugar)] system_variable]
29: [(Homogenize) [(Homogenize)] system_variable]
30: [(CheckHomogenization) [(CheckHomogenization)] system_variable]
31: [(UseCriterion2B) [(UseCriterion2B)] system_variable]
32: [(UseCriterion1) [(UseCriterion1)] system_variable]
33: [(Statistics) [(Statistics)] system_variable]
34: [(KanGBmessage) [(KanGBmessage)] system_variable]
35: [(Verbose) [(Verbose)] system_variable]
36: [(Homogenize_vec) [(Homogenize_vec)] system_variable]
37: ]
38: [ [(mmLarger) (report) (mmLarger) switch_function]
39: [(mpMult) (report) (mpMult) switch_function]
40: [(monomialAdd) (report) (monomialAdd) switch_function]
41: [(red@) (report) (red@) switch_function]
42: [(sp) (report) (sp) switch_function]
43: [(grade) (report) (grade) switch_function]
44: [(groebner) (report) (groebner) switch_function]
45: ]
46: ]
47: } def
48:
49: /restoreOptions {
50: /arg1 set
51: [/opt ] pushVariables
52: [
53: /opt arg1 def
54: opt 0 get { system_variable } map
55: opt 1 get { aload pop switch_function } map
56: ] pop
57: popVariables
58: } def
59:
60: /on_sugar_mode {
61: [(ReduceLowerTerms) 0] system_variable
62: [(Sugar) 1] system_variable
63: [(Homogenize) 0] system_variable
64: [(CheckHomogenization) 0] system_variable
65: [(UseCriterion2B) 1] system_variable
66: } def
67:
68: /off_sugar_mode {
69: [(ReduceLowerTerms) 1] system_variable
70: [(Sugar) 0] system_variable
71: [(Homogenize) 1] system_variable
72: [(CheckHomogenization) 1] system_variable
73: [(UseCriterion2B) 0] system_variable
74: } def
75:
76: /groebner_sugar {
77: /arg1 set
78: [/savedopt /ff] pushVariables
79: [
80: /ff arg1 def
81: /savedopt getOptions def
82: on_sugar_mode
83: ff groebner /ff set
84: savedopt restoreOptions
85: /arg1 ff def
86: ] pop
87: popVariables
88: arg1
89: } def
90:
91: %% cf. sugar-test.sm1
92:
93:
94:
95:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>