| version 1.8, 2001/01/05 11:14:25 |
version 1.9, 2001/01/08 05:26:48 |
|
|
| /* $OpenXM: OpenXM/src/k097/help.k,v 1.7 2001/01/04 12:29:31 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/k097/help.k,v 1.8 2001/01/05 11:14:25 takayama Exp $ */ |
| if (K00_verbose) |
if (K00_verbose) |
| Println("help.k: 8/6, 1996 --- 8/7, 1996. 3/6, 1997 --- 12/21, 1997."); |
Println("help.k: 8/6, 1996 --- 8/7, 1996. 3/6, 1997 --- 12/21, 1997."); |
| |
|
|
|
| } |
} |
| n = Length(Helplist); |
n = Length(Helplist); |
| PSfor (i=0; i<n; i++) { |
PSfor (i=0; i<n; i++) { |
| item = Helplist[i]; |
item = Helplist[i,1]; |
| if (item[0] == key) { |
if (item[0] == key) { |
| if (IsArray(item[1])) { |
if (IsArray(item[1])) { |
| item1 = item[1]; |
item1 = item[1]; |
| Line 48 def ShowKeyWords(ss) { |
|
| Line 48 def ShowKeyWords(ss) { |
|
| n = Length(Helplist); |
n = Length(Helplist); |
| keys = [" " ]; /* This is a gate keeper for shell. */ |
keys = [" " ]; /* This is a gate keeper for shell. */ |
| PSfor (i=0; i< n; i++ ) { |
PSfor (i=0; i< n; i++ ) { |
| keys = Append(keys,Helplist[i,0]); |
keys = Append(keys,Helplist[i,1,0]); |
| } |
} |
| keys = sm1(keys," shell "); |
keys = sm1(keys," shell "); |
| n = Length(keys); |
n = Length(keys); |
| Line 92 def ShowKeyWords(ss) { |
|
| Line 92 def ShowKeyWords(ss) { |
|
| } |
} |
| Ln(); |
Ln(); |
| Println("Type in Help(keyword); to see a help message (string keyword)."); |
Println("Type in Help(keyword); to see a help message (string keyword)."); |
| |
Println("A new help system can be used as man() or man(keyword)."); |
| |
|
| /* Println(keys); */ |
/* Println(keys); */ |
| } |
} |
| Line 152 def ShowKeyWordsOfSm1(ss) { |
|
| Line 153 def ShowKeyWordsOfSm1(ss) { |
|
| /* Println(keys); */ |
/* Println(keys); */ |
| } |
} |
| |
|
| HelpAdd(["Help", "Help(key) shows an explanation on the key (string key)."]); |
/* Start of HelpAdd */ |
| |
HelpAdd( |
| |
["Map", |
| |
["Map(<<karg>>,<<func>>) applies the function <<func>> to the <<karg>> (string <<func>>).", |
| |
" Ex. Map([82,83,85],\"AsciiToString\"):"], |
| |
["karg","func"], |
| |
null, |
| |
"apply a function to each element of a list." |
| |
]); |
| |
HelpAdd(["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): "], |
| |
["list","elem"], |
| |
null, |
| |
"find a position of an element in a list." |
| |
]); |
| |
HelpAdd(["StringToAsciiArray", |
| |
["StringToAsciiArray(<<s>>) decomposes the string <<s>> into an array of ", |
| |
"ascii codes of <<s>>.", |
| |
"cf. AsciiToString."], |
| |
["s"], |
| |
["AsciiToString"], |
| |
"translate a string to an array of ascii codes." |
| |
]); |
| |
|
| |
HelpAdd(["NewArray", |
| |
["NewArray(<<n>>) returns an array of size integer <<n>>."], |
| |
["n"], |
| |
["NewMatrix"], |
| |
"it returns an array of a given size." |
| |
]); |
| |
HelpAdd(["GetEnv", |
| |
["GetEnv(<<s>>) returns the value of the environmental variable string <<s>>."], |
| |
["s"], |
| |
null, |
| |
"value of an environmental variable." |
| |
]); |
| |
HelpAdd(["Boundp", |
| |
["Boundp(<<s>>) checks if the symbol <<s>> is bounded to a value or not (string <<s>>)."], |
| |
["s"], |
| |
null, |
| |
"check if a symbol is assigned a value or not." |
| |
]); |
| |
HelpAdd(["Rest", |
| |
["Rest(<<a>>) returns the rest (cdr) of <<a>> (list <<a>>)."], |
| |
["a"], |
| |
["Append","Join"], |
| |
"it returns the rest of a given list." |
| |
]); |
| |
HelpAdd(["GetPathName", |
| |
["GetPathName(<<s>>) checks if the file <<s>> exists in the current directory or", |
| |
"in LOAD_K_PATH. If there exists, it returns the path name (string <<s>>)."], |
| |
["s"], |
| |
["GetEnv"], |
| |
"find a file in the search path." |
| |
]); |
| |
HelpAdd(["Load_sm1", |
| |
["Load_sm1(<<s>>,<<flag>>) loads a sm1 program from <<s>>[0], <<s>>[1], ....", |
| |
"If loading is succeeded, the already-loaded <<flag>> is set to true.", |
| |
"(list <<s>>, string <<flag>>)."], |
| |
["s","flag"], |
| |
["load"], |
| |
"load a sm1 program" |
| |
]); |
| |
HelpAdd(["ReParse", |
| |
["Reparse(<<obj>>): ", |
| |
"It parses the given object <<obj>> in the current ring."], |
| |
["obj"], |
| |
["Mapto","RingD"], |
| |
"parses a given object in the current ring." |
| |
]); |
| |
HelpAdd(["Pmat", |
| |
["Pmat(<<m>>): ", |
| |
"Print the array <<m>> in a pretty way."], |
| |
["m"], |
| |
["Println"], |
| |
"print an given array in a pretty way." |
| |
]); |
| |
HelpAdd(["Tag", |
| |
["Tag(<<f>>) returns the datatype tag of <<f>> where", |
| |
"0: null, 5: string, 6: array, 9: polynomial, 15: integer(big-num), ", |
| |
"16: rational, 18:double, 257: Error ", |
| |
"Ex. Tag([Poly(\"0\"), 0]):"], |
| |
["f"], |
| |
["Is*"], |
| |
"return the tag of a given object." |
| |
]); |
| |
HelpAdd(["Error", |
| |
["Error(<<s>>) causes an error and outputs a message <<s>>."], |
| |
["s"], |
| |
null, |
| |
"cause an error." |
| |
]); |
| |
|
| |
HelpAdd(["Help", |
| |
["Help(<<key>>) or help(<<key>>) shows an explanation on the <<key>> (string <<key>>)."], |
| |
["key"], |
| |
["HelpAdd","help","man"], |
| |
"display a help message." |
| |
]); |
| HelpAdd(["HelpAdd", |
HelpAdd(["HelpAdd", |
| ["HelpAdd([key,explanation]) (string key, string explanation)", |
["HelpAdd([<<key>>,<<explanation>>]) (string <<key>>, string <<explanation>>)", |
| " or (string key, array explanation)."]]); |
" or (string <<key>>, array <<explanation>>).", |
| |
" ", |
| |
"HelpAdd([<<key>>,<<explanation>>,<<category>>]) is used to specify ", |
| |
"the <<category>> of the topics."], |
| |
["key","explanation"], |
| |
["help","man"], |
| |
"Add a help message in the system." |
| |
]); |
| |
|
| HelpAdd(["load", |
HelpAdd(["load", |
| ["load(fname) loads the file << fname >>(string fname).", |
["load(<<fname>>) loads the file << fname >>(string <<fname>>).", |
| "load fname loads the file << fname >>.", |
"load <<fname>> loads the file << fname >>.", |
| "load[fname] loads the file << fname >> with the preprocessing by /lib/cpp." |
"load[<<fname>>] loads the file << fname >> with the preprocessing by /lib/cpp." |
| ]]); |
], |
| HelpAdd(["Ln","Ln() newline."]); |
["fname"], |
| HelpAdd(["Println","Println(f) prints f and goes to the new line."]); |
["Load_sm1"], |
| HelpAdd(["Print","Print(f) prints f."]); |
"load a given file."]); |
| |
|
| |
HelpAdd(["Ln","Print newline.", |
| |
[ ], |
| |
["Print","Println"], |
| |
"print newline."]); |
| |
HelpAdd(["Println", |
| |
["Println(<<f>>) prints <<f>> and goes to the new line."], |
| |
["f"], |
| |
["Ln","Print","Stderr."], |
| |
"display a given object with the newline." |
| |
]); |
| |
HelpAdd(["Print", |
| |
["Print(<<f>>) prints <<f>> without the newline."], |
| |
["f"], |
| |
["Println"], |
| |
"display a given object." |
| |
]); |
| HelpAdd(["Poly", |
HelpAdd(["Poly", |
| "Poly(name) returns the polynomial name in the current ring |
["Poly(<<name>>) parses a given string <<name>> in the current ring ", |
| (string name)."]); |
"and returns a polynomial." |
| |
], |
| |
["name"], |
| |
["DC","PolyR","ReParse","RingD"], |
| |
"translate a string to a polynomial." |
| |
]); |
| HelpAdd(["PolyR", |
HelpAdd(["PolyR", |
| ["PolyR(name,r) returns the polynomial name in the ring r |
["PolyR(<<name>>,<<r>>) parses a string <<name>> in the ring <<r>> ", |
| (string name, ring r).", |
"Ex. r = RingD(\"x,y\"); y = PolyR(\"x+2*y\",r); "], |
| "Ex. r = RingD(\"x,y\"); y = PolyR(\"y\",r); "]]); |
["name","r"], |
| |
["Poly"], |
| |
"translate a string to a polynomial in a given ring." |
| |
]); |
| HelpAdd(["RingD", |
HelpAdd(["RingD", |
| ["RingD(names) defines a new ring (string names).", |
["RingD(<<names>>) defines a new ring of differential operators (string <<names>>).", |
| "RingD(names,weight_vector) defines a new ring with the weight vector", |
"RingD(<<names>>,<<weight_vector>>) defines a new ring with the weight vector", |
| "(string names, array weight_vector).", |
"(string <<names>>, array <<weight_vector>>).", |
| "RingD(names,weight_vector,characteristic)", |
"RingD(<<names>>,<<weight_vector>>,<<characteristic>>)", |
| " Ex. RingD(\"x,y\",[[\"x\",2,\"y\",1]]) "]]); |
"Dx is the associated variable to x where Dx*x - x*Dx = 1 holds.", |
| HelpAdd(["Reduction","Reduction(f,G) returns the remainder and sygygies when |
" Ex. RingD(\"x,y\",[[\"x\",2,\"y\",1]]) "], |
| f is devided by G (polynomial f, array G)."]); |
["names","weight_vector"], |
| HelpAdd(["AddString","AddString(list) returns the concatnated string (array list)."]); |
["GetRing","PolyR","ReParse","SetRing"], |
| HelpAdd(["AsciiToString","AsciiToString(ascii_code) returns the string of which |
"define a new ring of differential operators." |
| ascii code is ascii_code (integer ascii_code)."]); |
]); |
| HelpAdd(["ToString","ToString(obj) transforms the <<obj>> to a string."]); |
HelpAdd(["Reduction", |
| HelpAdd(["Numerator","Numerator(f) returns the numerator of <<f>> (rational f)."]); |
["Reduction(<<f>>,<<G>>) returns the remainder and sygygies when |
| HelpAdd(["Denominator","Denominator(f) returns the denominator of <<f>> (rational f)."]); |
<<f>> is devided by <<G>> (polynomial <<f>>, array <<G>>)."], |
| |
["f","g"], |
| |
["Gb"], |
| |
"get the remainder and the quotients." |
| |
]); |
| |
HelpAdd(["AddString","AddString(<<list>>) returns the concatnated string (array <<list>>).", |
| |
["list"], |
| |
null, |
| |
"concatenate strings." |
| |
]); |
| |
HelpAdd(["AsciiToString", |
| |
"AsciiToString(<<ascii_code>>) returns the string of which |
| |
ascii code is <<ascii_code>> (integer <<ascii_code>>).", |
| |
["ascii_code"], |
| |
["!ReservedNames","AddString","StringToAsciiArray"], |
| |
"translate from ascii code to a string." |
| |
]); |
| |
HelpAdd(["ToString", |
| |
"ToString(<<obj>>) transforms the <<obj>> to a string.", |
| |
["obj"], |
| |
["DC"], |
| |
"translate a given object to a string." |
| |
]); |
| |
HelpAdd(["Numerator", |
| |
"Numerator(<<f>>) returns the numerator of the rational <<f>>.", |
| |
["f"], |
| |
["Cancel","Denominator"], |
| |
"numerator" |
| |
]); |
| |
HelpAdd(["Denominator", |
| |
"Denominator(<<f>>) returns the denominator of the rational <<f>>.", |
| |
["f"], |
| |
["Cancel","Numerator"], |
| |
"denominator" |
| |
]); |
| HelpAdd(["Replace", |
HelpAdd(["Replace", |
| ["Replace(f,rule) (polynomial f, array rule). ", |
["Replace(<<f>>,<<rule>>) rewrites <<f>> by the <<rule>> (polynomial <<f>>, array <<rule>>). ", |
| "Ex. Replace( (x+y)^3, [[x,Poly(\"1\")]])"]]); |
"Ex. RingD(\"x,y\"); Replace( (x+y)^3, [[x,Poly(\"1\")]])"], |
| |
["f","rule"], |
| |
["replace (sm1)"], |
| |
"substitute variables by given values" |
| |
]); |
| HelpAdd(["SetRingVariables", |
HelpAdd(["SetRingVariables", |
| "SetRingVariables() |
"Set the generators of the current ring as global variables. |
| Set the generators of the current ring as global variables. |
You do not need explicitly call this function which is called from RingD. |
| cf. RingD(), Poly(), PolyR()"]); |
cf. RingD(), Poly(), PolyR()", |
| HelpAdd(["Append","Append([f1,...,fn],g) returns the list [f1,...,fn,g]"]); |
[ ], |
| |
["RingD"], |
| |
" " |
| |
]); |
| |
HelpAdd(["Append", |
| |
"Append([<<f1>>,...,<<fn>>],<<g>>) returns the list [<<f1>>,...,<<fn>>,<<g>>]", |
| |
["f1","fn","g"], |
| |
["Join","NewArray","Rest"], |
| |
"append two lists or arrays." |
| |
]); |
| HelpAdd(["Join", |
HelpAdd(["Join", |
| "Join([f1,...,fn],[g1,...,gm]) returns the list |
"Join([<<f1>>,...,<<fn>>],[<<g1>>,...,<<gm>>]) returns the list |
| [f1,...,fn,g1,...,gm]"]); |
[<<f1>>,...,<<fn>>,<<g1>>,...,<<gm>>]", |
| |
["f1","fn","g1","gm"], |
| |
["Append","NewArray","Rest"], |
| |
"join two lists or arrays" |
| |
]); |
| |
|
| HelpAdd(["!ReservedNames", |
HelpAdd(["!ReservedNames", |
| ["The names k00*, K00*, sm1* , arg1,arg2,arg3,arg4,....," , |
["The names k00*, K00*, sm1* , arg1,arg2,arg3,arg4,....," , |
| "Helplist, Arglist, FunctionValue,", |
"Helplist, Arglist, FunctionValue,", |
| "@@@*, db.*, k.*, tmp002*, tmp00* are used for system functions."]]); |
"@@*, db.*, k.*, tmp002*, tmp00* are used for system functions.", |
| |
"Percent, LeftBracket, RightBracket, Dollar, Newline are constants"], |
| |
null, |
| |
null, |
| |
"reserved symbols." |
| |
]); |
| |
|
| HelpAdd(["IntegerToSm1Integer", |
HelpAdd(["IntegerToSm1Integer", |
| "IntegerToSm1Integer(i) translates integer i |
"IntegerToSm1Integer(<<i>>) translates integer <<i>> |
| to sm1.integer (integer i)."]); |
to sm1 integer (integer <<i>>).", |
| HelpAdd(["true","true returns sm1.integer 1."]); |
["i"], |
| HelpAdd(["false","false returns sm1.integer 0."]); |
null, |
| |
"translates integer to 32 bit integer (sm1 integer)" |
| |
]); |
| |
HelpAdd(["true","true returns sm1 integer 1.",null,null," "]); |
| |
HelpAdd(["false","false returns sm1 integer 0.",null,null," "]); |
| HelpAdd(["IsArray", |
HelpAdd(["IsArray", |
| ["If f is the array object, then IsArray(f) returns true,", |
["If <<f>> is an array (or list) object, then IsArray(<<f>>) returns true,", |
| "else IsArray(f) returns false."]]); |
"else IsArray(<<f>>) returns false."], |
| |
["f"], |
| |
["Is*","Tag"], |
| |
"check if an given object is an array." |
| |
]); |
| |
|
| |
|
| |
|
| HelpAdd(["Init_w", |
HelpAdd(["Init_w", |
| ["Init_w(f,vars,w) returns the initial terms with respect to the", |
["Init_w(<<f>>,<<vars>>,<<w>>) returns the initial terms with respect to the", |
| "weight vector <<w>> (array of integer) of the polynomial <<f>>", |
"weight vector <<w>> (array of integer) of the polynomial <<f>>", |
| "(polynomial). Here, <<f>> is regarded as a polynomial with respect", |
"(polynomial). Here, <<f>> is regarded as a polynomial with respect", |
| "to the variables <<vars>> (array of polynomials).", |
"to the variables <<vars>> (array of polynomials).", |
| "Example: Init_w(x^2+y^2+x,[x,y],[1,1]):"]]); |
"Ex. RingD(\"x,y\"); Init_w(x^2+y^2+x,[x,y],[1,1]):"], |
| |
["f","vars","w"], |
| |
["Gb","Init"], |
| |
"return the initial terms." |
| |
]); |
| |
|
| |
|
| HelpAdd(["Groebner", |
HelpAdd(["Groebner", |
| ["Groebner(input) returns Groebner basis of the left module (or ideal)", |
["Groebner(<<input>>) returns Groebner basis of the left ideal or the submodule", |
| "defined by <<input>> (array of polynomials)", |
"defined by <<input>> (array of polynomials)", |
| "The order is that of the ring to which each element of <<input>>", |
"The order is that of the ring to which each element of <<input>>", |
| "belongs.", |
"belongs.", |
| "The input is automatically homogenized.", |
"The input is automatically homogenized.", |
| "Example: RingD(\"x,y\",[[\"x\", 10, \"y\", 1]]);", |
"Ex. RingD(\"x,y\",[[\"x\", 10, \"y\", 1]]);", |
| " Groebner([Poly(\" x^2+y^2-4\"),Poly(\" x*y-1 \")]):", |
" Groebner([Poly(\" x^2+y^2-4\"),Poly(\" x*y-1 \")]):", |
| "cf. RingD, Homogenize"]]); |
"cf. RingD, Homogenize"], |
| |
["input"], |
| |
["Gb","Init_w","RingD","groebner (sm1)"], |
| |
"compute the Grobner basis." |
| |
]); |
| |
|
| |
|
| HelpAdd(["RingPoly", |
HelpAdd(["RingPoly", |
| ["RingPoly(names) defines a Ring of Polyomials (string names).", |
["RingPoly(<<names>>) defines a ring of polyomials (string <<names>>).", |
| "The names of variables of that ring are <<names>> and ", |
"The names of variables of that ring are <<names>> and ", |
| "the homogenization variable h.", |
"the homogenization variable h.", |
| "cf. SetRingVariables, RingD", |
"cf. SetRingVariables, RingD", |
| "Example: R=RingPoly(\"x,y\");", |
"Ex. R=RingPoly(\"x,y\");", |
| " ", |
" ", |
| "RingPoly(names,weight_vector) defines a Ring of Polynomials", |
"RingPoly(<<names>>,<<weight_vector>>) defines a ring of polynomials", |
| "with the order defined by the << weight_vector >>", |
"with the order defined by the <<weight_vector>>", |
| "(string names, array of array weight_vector).", |
"(string <<names>>, array of array <<weight_vector>>).", |
| "RingPoly(names,weight_vector,characteristic)", |
"RingPoly(<<names>>,<<weight_vector>>,<<characteristic>>)", |
| "Example: R=RingPoly(\"x,y\",[[\"x\",10,\"y\",1]]);", |
"Example: R=RingPoly(\"x,y\",[[\"x\",10,\"y\",1]]);", |
| " (x+y)^10: "]]); |
" (x+y)^10: "], |
| |
["names","weight_vector"], |
| |
["GetRing","RingD","SetRing"], |
| |
"define a ring of polynomials." |
| |
]); |
| |
|
| |
|
| HelpAdd(["CancelNumber", |
HelpAdd(["CancelNumber", |
| ["CancelNumber(rn) reduces the rational number <<rn>>", |
["CancelNumber(<<rn>>) reduces the rational number <<rn>>", |
| "(rational rn).", |
"(rational <<rn>>).", |
| "Example: CancelNumber( 2/6 ) : "]]); |
"Ex. CancelNumber( 2/6 ) : "], |
| |
["rn"], |
| |
["Cancel"], |
| |
"factor out the greatest common divisor." |
| |
]); |
| |
|
| HelpAdd(["IsString", |
HelpAdd(["IsString", |
| ["IsString(obj) returns true if << obj >> is a string (object obj).", |
["IsString(<<obj>>) returns true if << obj >> is a string (object <<obj>>).", |
| "Example: if (IsString(\"abc\")) Println(\"Hello\"); ;"]]); |
"Ex. if (IsString(\"abc\")) Println(\"Hello\"); ;"], |
| |
["obj"], |
| |
["DC","Is*","Tag"], |
| |
"check if a given object is a string." |
| |
]); |
| |
|
| HelpAdd(["IsRing", |
HelpAdd(["IsRing", |
| ["IsRing(obj) returns true if << obj >> is a ring (object obj)." |
["IsRing(<<obj>>) returns true if << obj >> is a ring (object <<obj>>)." |
| ]]); |
], |
| |
["obj"], |
| |
["DC","Is*","Tag"], |
| |
"check if a given object is a ring." |
| |
]); |
| |
|
| |
|
| HelpAdd(["IsSm1Integer", |
HelpAdd(["IsSm1Integer", |
| ["IsSm1Integer(obj) returns true if << obj >> is an integer of sm1(object obj)."]]); |
["IsSm1Integer(<<obj>>) returns true if << obj >> is an integer of sm1(object <<obj>>)."], |
| |
["obj"], |
| |
["DC","Is*","Tag"], |
| |
"check if a given object is a 32 bit integer." |
| |
]); |
| |
|
| HelpAdd(["sm1", |
HelpAdd(["sm1", |
| ["sm1(arg1,arg2,...) is used to embed sm1 native code in the kxx program.", |
["sm1(<<arg1>>,<<arg2>>,...) is used to embed sm1 native code in the kxx program.", |
| "Example: sm1( 2, 2, \" add print \"); ", |
"Ex. sm1( 2, 2, \" add print \"); ", |
| "Example: def myadd(a,b) { sm1(a,b,\" add /FunctionValue set \"); }" ]]); |
"Ex. def myadd(a,b) { sm1(\" a b add /FunctionValue set \"); }" ], |
| |
["arg1","arg2"], |
| |
["usage (sm1)"], |
| |
"execute sm1 commands" |
| |
]); |
| |
|
| HelpAdd(["DC", |
HelpAdd(["DC", |
| ["DC(obj,key) converts << obj >> to a new object in the primitive", |
["DC(<<obj>>,<<key>>) converts << obj >> to a new object in the primitive", |
| "class << key >> (object obj, string key)", |
"class << key >> (object <<obj>>, string <<key>>)", |
| "Example: DC(\" (x+1)^10 \", \"polynomial\"): "]]); |
"Ex. DC(\" (x+1)^10 \", \"polynomial\"): "], |
| |
["obj","key"], |
| |
["ToString"], |
| |
"translate data types." |
| |
]); |
| |
|
| HelpAdd(["Length", |
HelpAdd(["Length", |
| ["Length(vec) returns the length of the array << vec >>", |
["Length(<<vec>>) returns the length of the array << vec >>", |
| "(array vec)"]]); |
"(array <<vec>>)"], |
| |
["vec"], |
| |
null, |
| |
"length of a given array or a list." |
| |
]); |
| |
|
| HelpAdd(["Transpose", |
HelpAdd(["Transpose", |
| ["Transpose(m) return the transpose of the matrix << m >>", |
["Transpose(<<m>.) return the transpose of the matrix << m >>", |
| "(array of array m)."]]); |
"(array of array <<m>>)."], |
| |
["m"], |
| |
["NewMatrix"], |
| |
"transposition" |
| |
]); |
| |
|
| HelpAdd(["Save", |
HelpAdd(["Save", |
| ["Save(obj) appends << obj >> to the file sm1out.txt (object obj)."]]); |
["Save(<<obj>>) appends << obj >> to the file sm1out.txt (object <<obj>>)."], |
| |
["obj"], |
| |
null, |
| |
"write a given object to a file." |
| |
]); |
| |
|
| HelpAdd(["Coefficients", |
HelpAdd(["Coefficients", |
| ["Coefficients(f,v) returns [exponents, coefficients] of << f >>", |
["Coefficients(<<f>>,<<v>>) returns [exponents, coefficients] of << f >>", |
| "with respect to the variable << v >>", |
"with respect to the variable << v >>", |
| "(polynomial f,v).", |
"(polynomial <<f>>,<<v>>).", |
| "Example: Coefficients(Poly(\"(x+1)^2\"),Poly(\"x\")): "]]); |
"Ex. Coefficients(Poly(\"(x+1)^2\"),Poly(\"x\")): "], |
| |
["f","v"], |
| |
["Exponent","Init","Init_w"], |
| |
"get the exponents and coefficients." |
| |
]); |
| |
|
| HelpAdd(["System", |
HelpAdd(["System", |
| ["System(comm) executes the unix system command << comm >>", |
["System(<<comm>>) executes the unix system command << comm >>", |
| "(string comm)", |
"(string <<comm>>)", |
| "Example: System(\"ls\");"]]); |
"Ex. System(\"ls\");"], |
| |
["comm"], |
| |
null, |
| |
"call the unix shell." |
| |
]); |
| |
|
| HelpAdd(["Exponent", |
HelpAdd(["Exponent", |
| ["Expoent(f,vars) returns the vector of exponents of the polynomial f", |
["Expoent(<<f>>,<<vars>>) returns the vector of exponents of the polynomial <<f>>", |
| "Ex. Exponent( x^2*y-1,[x,y])"]]); |
"Ex. Exponent( x^2*y-1,[x,y])"], |
| |
["f","vars"], |
| |
["Coefficients"], |
| |
"exponents of a given polynomial." |
| |
]); |
| |
|
| HelpAdd(["Protect", |
HelpAdd(["Protect", |
| ["Protect(name) protects the symbol <<name>> (string)", |
["Protect(<<name>>) protects the symbol <<name>> (string)", |
| "Protect(name,level) protects the symbol <<name>> (string) with ", |
"Protect(<<name>>,<<level>>) protects the symbol <<name>> (string) with ", |
| "<<level>> "]]); |
"<<level>> "], |
| |
["name","level"], |
| |
["extension (sm1)"], |
| |
"add read-only property for a given variable." |
| |
]); |
| |
|
| HelpAdd(["IsPolynomial", |
HelpAdd(["IsPolynomial", |
| ["IsPolynomial(f) returns true if <<f>> (object) is a polynomial."]]); |
["IsPolynomial(<<f>>) returns true if <<f>> (object) is a polynomial."], |
| |
["obj"], |
| |
["DC","Is*","Tag"], |
| |
"check if a given object is a polynomial." |
| |
]); |
| |
|
| |
|
| |
|
|
|
| } |
} |
| } |
} |
| HelpAdd(["Init", |
HelpAdd(["Init", |
| ["Init(f) returns the initial term of the polynomial <<f>> (polynomial)", |
["Init(<<f>>) returns the initial term of the polynomial <<f>> (polynomial)", |
| "Init(list) returns the array of initial terms of the array of polynomials", |
"Init(<<list>>) returns the array of initial terms of the array of polynomials", |
| "<< list >> (array)"]]); |
"<< list >> (array)"], |
| |
["f"], |
| |
["Init_w"], |
| |
"return the initial term." |
| |
]); |
| |
|
| HelpAdd(["NewMatrix", |
HelpAdd(["NewMatrix", |
| ["NewMatrix(m,n) returns the (m,n)-matrix (array) with the entries 0."]]); |
["NewMatrix(<<m>>,<<n>>) returns the (<<m>>,<<n>>)-matrix (array) with the entries 0."], |
| |
["m","n"], |
| |
["NewArray"], |
| |
"generate a matrix of a given size." |
| |
]); |
| |
|
| def Eliminatev(list,var) /* [(x-y). (y-z).] [(z) ] */ |
def Eliminatev(list,var) /* [(x-y). (y-z).] [(z) ] */ |
| { |
{ |
| sm1(list, var, " eliminatev /FunctionValue set "); |
sm1(list, var, " eliminatev /FunctionValue set "); |
| } |
} |
| HelpAdd(["Eliminatev", |
HelpAdd(["Eliminatev", |
| ["Eliminatev(list,var) prunes polynomials in << list >>(array of polynomials)", |
["Eliminatev(<<list>>,<<var>>) prunes polynomials in << list >>(array of polynomials)", |
| "which contains the variables in << var >> ( array of strings )", |
"which contains the variables in << var >> ( array of strings )", |
| "Example: Eliminatev([Poly(\" x+h \"),Poly(\" x \")],[ \"h\" ]): "]]); |
"Ex. Eliminatev([Poly(\" x+h \"),Poly(\" x \")],[ \"h\" ]): "], |
| |
["list","var"], |
| |
["eliminatev (sm1)"], |
| |
" " |
| |
]); |
| |
|
| def ReducedBase(base) { |
def ReducedBase(base) { |
| sm1( base, " reducedBase /FunctionValue set "); |
sm1( base, " reducedBase /FunctionValue set "); |
| } |
} |
| HelpAdd(["ReducedBase", |
HelpAdd(["ReducedBase", |
| ["ReducedBase[base] prunes redundant elements in the Grobner basis <<base>> (array)." |
["ReducedBase(<<base>>) prunes redundant elements in the Grobner basis <<base>> (array)." |
| ]]); |
], |
| |
["base"], |
| |
["Gb","Groebner"], |
| |
"remove unnecessary elements." |
| |
]); |
| |
|
| |
|
| def Ringp(f) { |
|
| sm1(f, " (ring) dc /FunctionValue set "); |
|
| } |
|
| HelpAdd(["Ringp", |
|
| ["Ringp(f) ( polynomial f ) returns the ring to which the polynomial << f >>", |
|
| "belongs."]]); |
|
| |
|
| def Coefficients(f,v) { |
def Coefficients(f,v) { |
| local ans,exp; |
local ans,exp; |
| ans = sm1(f,v, " coefficients "); |
ans = sm1(f,v, " coefficients "); |
| Line 491 def IsInteger(a) { |
|
| Line 765 def IsInteger(a) { |
|
| sm1(a , " isUniversalNumber /FunctionValue set "); |
sm1(a , " isUniversalNumber /FunctionValue set "); |
| } |
} |
| HelpAdd(["IsInteger", |
HelpAdd(["IsInteger", |
| ["IsInteger(a) returns true if << a >> is an integer (object a).", |
["IsInteger(<<a>>) returns true if << a >> is an integer (object <<a>>).", |
| "It returns false if << a >> is not.", |
"It returns false if << a >> is not.", |
| "cf. IsSm1Integer"]]); |
"cf. IsSm1Integer"], |
| |
["a"], |
| |
["DC","Is*","Tag"], |
| |
"check if a given object is an integer." |
| |
]); |
| |
|
| def IsRational(a) { |
def IsRational(a) { |
| sm1(a , " isRational /FunctionValue set "); |
sm1(a , " isRational /FunctionValue set "); |
| } |
} |
| HelpAdd(["IsRational", |
HelpAdd(["IsRational", |
| ["IsRational(a) returns true if << a >> is a rational (object a).", |
["IsRational(<<a>>) returns true if << a >> is a rational (object <<a>>).", |
| "It returns false if << a >> is not."]]); |
"It returns false if << a >> is not."], |
| |
["a"], |
| |
["DC","Is*","Tag"], |
| |
"check if a given object is a rational." |
| |
]); |
| |
|
| |
|
| def IsDouble(a) { |
def IsDouble(a) { |
| sm1(a , " isDouble /FunctionValue set "); |
sm1(a , " isDouble /FunctionValue set "); |
| } |
} |
| HelpAdd(["IsDouble", |
HelpAdd(["IsDouble", |
| ["IsDouble(a) returns true if << a >> is a double (object a).", |
["IsDouble(<<a>>) returns true if << a >> is a double (object <<a>>).", |
| "It returns false if << a >> is not."]]); |
"It returns false if << a >> is not."], |
| |
["a"], |
| |
["DC","Is*","Tag"], |
| |
"check if a given object is double." |
| |
]); |
| |
|
| |
|
| sm1(" /cs { this [ ] Cleards } def "); |
sm1(" /cs { this [ ] Cleards } def "); |
| Line 529 def Init_w(f,vars,weight) { |
|
| Line 815 def Init_w(f,vars,weight) { |
|
| } |
} |
| |
|
| HelpAdd(["Mapto", |
HelpAdd(["Mapto", |
| ["Mapto(obj,ring) parses << obj >> as elements of the << ring >>.", |
["Mapto(<<obj>>,<<ring>>) parses << obj >> as elements of the << ring >>.", |
| "(ring << ring >>, polynomial << obj >> or array of polynomial << obj >>).", |
"(ring << ring >>, polynomial << obj >> or array of polynomial << obj >>).", |
| "Ex. R = RingD(\"x,y\"); SetRingVariables();", |
"Ex. R = RingD(\"x,y\"); SetRingVariables();", |
| " f = (x+y)^2; R2 = RingD(\"x,y,z\",[[\"y\",1]]); ", |
" f = (x+y)^2; R2 = RingD(\"x,y,z\",[[\"y\",1]]); ", |
| " f2 = Mapto(f,R2); f2: "]]); |
" f2 = Mapto(f,R2); f2: "], |
| |
["obj","ring"], |
| |
["ReParse"], |
| |
"parse a polynomial in a given ring." |
| |
]); |
| |
|
| def Mapto(obj,ring) { |
def Mapto(obj,ring) { |
| local ans,i,n; |
local ans,i,n; |
| Line 552 def Mapto(obj,ring) { |
|
| Line 842 def Mapto(obj,ring) { |
|
| |
|
| |
|
| HelpAdd(["ToDouble", |
HelpAdd(["ToDouble", |
| ["ToDouble(f) translates << f >> into double when it is possible", |
["ToDouble(<<f>>) translates << f >> into double when it is possible", |
| "object << f >>.", |
"object << f >>.", |
| "Example: ToDouble([1,1/2,[5]]): "]]); |
"Ex. ToDouble([1,1/2,[5]]): "], |
| |
["f"], |
| |
["DC","Is*","Tag"], |
| |
"translate a given object to double." |
| |
]); |
| def k00_toDouble(f) { return(DC(f,"double")); } |
def k00_toDouble(f) { return(DC(f,"double")); } |
| def ToDouble(f) { |
def ToDouble(f) { |
| if (IsArray(f)) return(Map(f,"ToDouble")); |
if (IsArray(f)) return(Map(f,"ToDouble")); |
|
|
| } else if (IsInteger(f)) { return( Gmp.Mod(f,n) ); } |
} else if (IsInteger(f)) { return( Gmp.Mod(f,n) ); } |
| } |
} |
| HelpAdd(["Mod", |
HelpAdd(["Mod", |
| ["Mod(f,p) returns f modulo n where << f >> (polynomial) and", |
["Mod(<<f>>,<<p>>) returns f modulo <<n>> where << f >> (polynomial) and", |
| " << p >> (integer). "]]); |
" << p >> (integer). "], |
| |
["f","p"], |
| |
["gbext (sm1)"], |
| |
"modulo" |
| |
]); |
| |
|
| |
|
| |
|
| Line 585 def Characteristic(ringp) { |
|
| Line 883 def Characteristic(ringp) { |
|
| return(p); |
return(p); |
| } |
} |
| HelpAdd(["Characteristic", |
HelpAdd(["Characteristic", |
| ["Characteristic(ring) returns the characteristic of the << ring >>." |
["Characteristic(<<ring>>) returns the characteristic of the << ring >>."], |
| ]]); |
["ring"], |
| |
["GetRing","RingD","RingPoly","SetRing"], |
| |
"get the characteristic of a given ring." |
| |
]); |
| |
|
| def IsConstant(f) { |
def IsConstant(f) { |
| if (Length(f) > 1) return(false); |
if (Length(f) > 1) return(false); |
| sm1("[(isConstant) ", f," ] gbext /FunctionValue set "); |
sm1("[(isConstant) ", f," ] gbext /FunctionValue set "); |
| } |
} |
| HelpAdd(["IsConstant", |
HelpAdd(["IsConstant", |
| ["IsConstant(f) returns true if the polynomial << f >> is a constant." |
["IsConstant(<<f>>) returns true if the polynomial << f >> is a constant." |
| ]]); |
], |
| |
["f"], |
| |
["DC","Is*","Tag"], |
| |
"check if a given object is a constant." |
| |
]); |
| |
|
| Println("Default ring is Z[x,h]."); x = Poly("x"); h = Poly("h"); |
Println("Default ring is Z[x,h]."); x = Poly("x"); h = Poly("h"); |
| |
|
| Line 624 def Substitute(f,xx,g) { |
|
| Line 929 def Substitute(f,xx,g) { |
|
| return(Cancel(coeff0*newex)); |
return(Cancel(coeff0*newex)); |
| } |
} |
| HelpAdd(["Substitute", |
HelpAdd(["Substitute", |
| ["Substitute(f,xx,g) replaces << xx >> in << f >> by << g >>.", |
["Substitute(<<f>>,<<xx>>,<<g>>) replaces << xx >> in << f >> by << g >>.", |
| "This function takes coeffients of << f >> with respect to << xx >>", |
"This function takes coeffients of << f >> with respect to << xx >>", |
| "and returns the inner product of the vector of coefficients and the vector", |
"and returns the inner product of the vector of coefficients and the vector", |
| "of which elements are g^(corresponding exponent).", |
"of which elements are g^(corresponding exponent).", |
| "Note that it may cause an unexpected result in non-commutative rings." |
"Note that it may cause an unexpected result in non-commutative rings." |
| ]]); |
], |
| |
["f","xx","g"], |
| |
["Replace"], |
| |
" " |
| |
]); |
| |
|
| def Tag(f) { |
|
| local ans; |
|
| if (IsArray(f)) { |
|
| return(Map(f,"Tag")); |
|
| }else { |
|
| ans = sm1(f," etag (universalNumber) dc "); |
|
| return(ans); |
|
| } |
|
| } |
|
| HelpAdd(["Tag", |
|
| ["Tag(f) returns the datatype tags of f where", |
|
| "5: string, 9: polynomial, 15: integer(big-num), 16: rational, ", |
|
| "18:double, 257: Error ", |
|
| "Ex. Tag([Poly(\"0\"), 0]):" |
|
| ]]); |
|
| |
|
| def Error(s) { |
HelpAdd(["OutputPrompt", |
| sm1(" s error "); |
["Output the prompt. Files should end with this command."], |
| } |
null, |
| HelpAdd(["Error", |
null, |
| ["Error(s) causes an error and outputs a message s."]]); |
"output the prompt."]); |
| |
|
| |
Protect("Percent"); |
| |
Protect("LeftBracket"); |
| |
Protect("RightBracket"); |
| |
Protect("Dollar"); |
| |
Protect("Newline"); |
| |
|
| OutputPrompt ; |
OutputPrompt ; |