=================================================================== RCS file: /home/cvs/OpenXM/src/k097/help.k,v retrieving revision 1.1.1.1 retrieving revision 1.7 diff -u -p -r1.1.1.1 -r1.7 --- OpenXM/src/k097/help.k 1999/10/08 02:12:15 1.1.1.1 +++ OpenXM/src/k097/help.k 2001/01/04 12:29:31 1.7 @@ -1,4 +1,4 @@ - +/* $OpenXM: OpenXM/src/k097/help.k,v 1.6 2000/12/29 07:19:39 takayama Exp $ */ if (K00_verbose) Println("help.k (help.ccc). 8/6, 1996 --- 8/7, 1996. 3/6, 1997 --- 12/21, 1997."); @@ -168,9 +168,9 @@ HelpAdd(["Poly", "Poly(name) returns the polynomial name in the current ring (string name)."]); HelpAdd(["PolyR", - "PolyR(name,r) returns the polynomial name in the ring r - (string name, ring r). - Ex. r = RingD(\"x,y\"); y = PolyR(\"y\",r); "]); + ["PolyR(name,r) returns the polynomial name in the ring r + (string name, ring r).", + "Ex. r = RingD(\"x,y\"); y = PolyR(\"y\",r); "]]); HelpAdd(["RingD", ["RingD(names) defines a new ring (string names).", "RingD(names,weight_vector) defines a new ring with the weight vector", @@ -185,8 +185,9 @@ ascii code is ascii_code (integer ascii_code)."]); HelpAdd(["ToString","ToString(obj) transforms the <> to a string."]); HelpAdd(["Numerator","Numerator(f) returns the numerator of <> (rational f)."]); HelpAdd(["Denominator","Denominator(f) returns the denominator of <> (rational f)."]); -HelpAdd(["Replace","Replace(f,rule) (polynomial f, array rule). - Ex. Replace( (x+y)^3, [[x,Poly(\"1\")]])"]); +HelpAdd(["Replace", + ["Replace(f,rule) (polynomial f, array rule). ", + "Ex. Replace( (x+y)^3, [[x,Poly(\"1\")]])"]]); HelpAdd(["SetRingVariables", "SetRingVariables() Set the generators of the current ring as global variables. @@ -270,7 +271,11 @@ HelpAdd(["IsString", ["IsString(obj) returns true if << obj >> is a string (object obj).", "Example: if (IsString(\"abc\")) Println(\"Hello\"); ;"]]); +HelpAdd(["IsRing", +["IsRing(obj) returns true if << obj >> is a ring (object obj)." +]]); + HelpAdd(["IsSm1Integer", ["IsSm1Integer(obj) returns true if << obj >> is an integer of sm1(object obj)."]]); @@ -331,6 +336,7 @@ def RingPoly(vList,weightMatrix,pp) { sm1("[", vList, "ring_of_polynomials ( ) elimination_order 0 ] define_ring /tmp set "); + SetRingVariables(); return(tmp); } else ; if (argsize == 2) { @@ -351,6 +357,7 @@ def RingPoly(vList,weightMatrix,pp) { } new0[i] = newtmp; } + SetRingVariables(); ringpp = sm1("[", vList, "ring_of_polynomials ", new0, " weight_vector", pp, " ] define_ring"); @@ -366,7 +373,11 @@ def IsSm1Integer(ob) { sm1(ob , " isInteger /FunctionValue set "); } +def IsRing(ob) { + sm1(ob , " isRing /FunctionValue set "); +} + def CancelNumber(rn) { local tmp; sm1(" [(cancel) ",rn," ] mpzext /tmp set "); @@ -374,7 +385,13 @@ def CancelNumber(rn) { sm1(" tmp (denominator) dc (1).. eq { /FunctionValue tmp (numerator) dc def} { /FunctionValue tmp def } ifelse "); } +def DC_polynomial(obj) { + return(DC(obj,"polynomial")); +} def DC(obj,key) { + if (IsArray(obj) && key=="polynomial") { + return(Map(obj,"DC_polynomial")); + } if (key == "string") { return(ToString(obj)); } else if (key == "integer") { key = "universalNumber"; } else if (key == "sm1integer") { key = "integer"; } @@ -506,7 +523,6 @@ def RingDonIndexedVariables(vList, size, weightMatrix, if (argsize == 2) { vListD = AddString(["D",vList]); myring = RingD(IndexedVariables(vList,size)); - SetRingVariables(); tmp = NewArray(size); for (k00_i=0; k00_i