source: git/doc/usercard.tex @ 57ec06

spielwiese
Last change on this file since 57ec06 was 341696, checked in by Hans Schönemann <hannes@…>, 14 years ago
Adding Id property to all files git-svn-id: file:///usr/local/Singular/svn/trunk@12231 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 17.9 KB
Line 
1% $Id$
2
3%
4% usercard.tex - Singular user quick reference card.
5%
6
7\input singcard.tex
8
9\centerline{\hbf SINGULAR Quick Reference}
10
11\centerline{\srm {\ssc Singular} Version 3-0}
12
13\bigskip
14
15Do not forget to terminate all commands with a {\tt ;} (semicolon)!
16
17In particular if \Singular\ prints the continuation prompt {\tt .}
18(peri\-od) instead of the regular command prompt {\tt >}, then it
19waits for a command to be terminated by a {\tt ;}.  If that does
20not help, try one or more {\tt "} or {\tt \char`}} to close an
21opened string or block.
22
23Comments start with {\tt //} and extend to end of line.
24
25\smallskip
26Some of the topics concerning interactive use are system dependent.
27
28\sec Starting SINGULAR(2.5cm)
29Singular&                       start \Singular\cr
30Singular {\it file} \rep&       read {\it files\/} and prompt for further commands\cr
31Singular --help&                print help on command line options and exit\cr
32\endsec
33
34\sec Stopping SINGULAR()
35quit;&                          exit \Singular; also {\tt exit;} or {\tt \$}\cr
36\ctl c&                         interrupt \Singular\cr
37\endsec
38
39\sec Getting help()
40help;&                          enter online help system\cr
41help {\it topic\/};&            describe {\it topic\/}; also {\tt? {\it topic\/};}\cr
42\subsec{Inside the info help system:}
43\ctl h&                         get help on help system\cr
44q&                              exit from help system\cr
45n\rmslash p\rmslash u&          go to next/previous/upper node\cr
46m&                              pick menu item by name\cr
47l&                              go to last visited node/exit from help on help\cr
48SPC\rmslash DEL&                scroll forward/backward one page\cr
49\endsec
50
51\sec Commandline editing()
52\sectext
53Commandline editing is similar to that of, e.g., {\tt bash} or {\tt tcsh}:\cr
54BS\rmslash\ctl d&               remove character on the left/right of cursor\cr
55\ctl p\rmslash\ctl n&           get previous/next line from history\cr
56\ctl b\rmslash\ctl f&           move cursor left/right\cr
57\ctl a\rmslash\ctl e&           go to beginning/end of line\cr
58\ctl u\rmslash\ctl k&           delete to beginning/end of line\cr
59\endsec
60
61\sec Names and objects()
62\sectext
63Names (= identifiers) have to be declared before they are used:\cr
64\entryskip
65\longentry {\it type\/} {\it name\/} \opt{= {\it expression\/}};&
66                                declare variable {\it name}\cr
67kill({\it name\/})&             delete variable {\it name}\cr
68\entryskip
69\sectext
70\parskip=\verysmallskipamount
71Names of type {\tt number}, {\tt poly}, {\tt ideal}, {\tt vector}, {\tt
72module}, {\tt matrix}, {\tt map}, and {\tt resolution} may be declared
73only inside a ring.  They are local to that ring.  The same holds for a {\tt
74list} if it contains an object of the above types.  All other types may be
75declared at any time.  They are globally visible.
76
77Names may consist of alphanumeric characters including {\tt \_}
78(underscore) and have to start with a letter.  Capital and small letters
79are distinguished.  Names may be followed by an integer expression in
80parentheses, resulting in so-called {\it indexed names}.\cr
81\entryskip
82{\it name\/}({\it n}..{\it m\/})&
83                                shortcut for {\tt {\it name\/}({\it
84                                n\/}), $\ldots$, {\it name\/}({\it
85                                m\/})}\hfil\break
86                                (\eg {\tt ring r = 0, x(1..3), dp;})\cr
87\_ {\rm (underscore)}&          refers to the value of the last expression
88                                printed\cr
89\endsec
90
91\vfill
92\centerline{\srm \copyright 1998-2005 \qquad Permissions on back}
93
94\eject
95
96\sec Ring declaration()
97\longentry ring {\it name\/} = {\it basefield}, ({\it ringvars\/}), {\it ordering\/};&
98                                \hyphenpenalty=50 \tolerance=200 declare ring
99                                {\it name\/} and make it the new base\-ring.
100                                {\it ringvars\/} has to be a list of names, the
101                                other items are described below.  Example:\par
102                                {\tt ring r = 32003, (x, y, z), dp;}\cr
103\longentry qring {\it name\/} = {\it ideal\/};&
104                                declare quotient ring {\it name\/} of the
105                                current base\-ring with respect to {\it
106                                ideal\/}{\it ideal\/} has to be a standard
107                                basis.  Make {\it name\/} the new basering.\cr
108\subsec{Examples of available {\bit basefields\/}:}
1090&                              the rational numbers\cr
110\it p&                          the finite field $Z_p$ with {\it p\/}
111                                elements,\par
112                                $2 \le p \le 2147483629$ a prime\cr
113({\it p\/}\^{}{\it n}, {\it gen\/})&
114                                the finite field with $p^n$ elements, {\it p\/}
115                                a prime and\par $4 \le p^n \le 32671$. The name
116                                {\it gen\/} refers to some generator of the
117                                cyclic group of unities.\cr
118({\it p}, {\it alpha\/})&       algebraic extension of $Q$ or $Z_p$ ($p =
119                                0$ or as above) by {\it alpha}.  The minpoly
120                                $\mu_{\hbox{\tit alpha}}$ for {\it alpha\/} has
121                                to be specified with an assignment to {\tt
122                                minpoly} (\eg {\tt minpoly=a\^{}2+1;}, for
123                                $\hbox{\it alpha}=\hbox{\tt a}$).  {\it
124                                alpha\/} has to be a name.\cr
125({\it p}, $t_1$, $\ldots$)&     transcendental extension of $Q$ or $Z_p$
126                                ($p = 0$ or as above) by~$t_i$.  The $t_i$ have
127                                to be names.\cr
128real,{\it len}&                 the real numbers represented by long floating
129                                point numbers of length{\it len}\cr
130\endsec
131
132\sec Term orderings()
133\sectext
134An {\it ordering\/} as referred to in the ring declaration may either be
135a global, local, or matrix ordering or a list of these resulting in a
136pro\-duct ordering.  The list may include extra weight vectors and may be
137preceded or followed by a module ordering specification.\cr
138\subsec{Global orderings}
139lp&                             lexicographical ordering\cr
140dp&                             degree reverse lexicographical ordering\cr
141Dp&                             degree lexicographical ordering\cr
142wp($w_1$, $\ldots$)&            weighted reverse lexicographical ordering\cr
143Wp($w_1$, $\ldots$)&            weighted lexicographical ordering\cr
144&                               The $w_i$ have to be positive integers.\cr
145\subsec{Local orderings}
146ls&                             negative lexicographical ordering\cr
147ds&                             negative degree reverse lexicographical ordering\cr
148Ds&                             negative degree lexicographical ordering\cr
149ws($w_1$, $\ldots$)&            general weighted reverse lexicographical ordering\cr
150Ws($w_1$, $\ldots$)&            general weighted lexicographical ordering\cr
151&                               $w_1$ has to be a non-zero integer, every other
152                                $w_i$ may be any integer\cr
153\subsec{Matrix orderings}
154\longentry M($m_{11}$, $m_{12}$, $\ldots$, $m_{nn}$)&
155                                {\it m\/} has to be an invertible matrix with
156                                integer coeffi\-cients.  Coefficients have to be
157                                specified row-wise.\cr
158\subsec{Product orderings}
159\longentry($o_1$\opt{($k_1$)}, $o_2$\opt{($k_2$)}, $\ldots$, $o_n$\opt{($k_n$)})&
160                                the $o_i$ have to be any of the above orderings.
161                                {\tt lp}, {\tt dp}, {\tt Dp}, {\tt ls}, {\tt
162                                ds}, {\tt Ds} may be followed by an integer
163                                expression $k_i$ in parentheses specifying the
164                                number of variables $o_i$ refers to (\eg {\tt
165                                (lp(3), dp(2))}).\cr
166\subsec{Extra weight vector}
167a($w_1$, $\ldots$)&             any of the above degree orderings may be
168                                preceded by an extra weight vector\cr
169\noalign{\eject}
170\subsec{Module orderings}
171({\it c}, $o_1$, $\ldots$)&     sort by components first\cr
172($o_1$, $\ldots$, {\it c\/})&   sort by variables first\cr
173&                               $o_i$ may be any of the above orderings or an
174                                extra weight vector, {\it c\/} may be one of
175                                {\tt C} or {\tt c}:\cr
176C&                              sort generators in ascending order (\ie {\tt
177                                gen({\it i\/})} $<$ {\tt gen({\it j\/})} iff $i <
178                                j$)\cr
179c&                              sort generators in descending order\cr
180\endsec
181
182\sec Data types(1.5cm)
183\sectext
184Examples of ring-independent types:\cr
185\entryskip
186\longitem
187int i1 = 101; int i2 = 13 div 3;\cr
188\entryskip
189\longitem
190intvec iv = 13 div 3, -4, i1;\cr
191\entryskip
192\longentry
193intmat im[2][2] = 13 div 3, -4, i1;&
194                                a $2\times 2$ matrix.  Entries are filled
195                                row-wise, missing entries are set to zero, extra
196                                entries are ignored.  vector/matrix elements are
197                                accessed using the {\tt[$\ldots$]} operator,
198                                where the first element has index one (\eg {\tt
199                                iv[3]; im[1, 2];}).\cr
200\entryskip
201\longitem
202string s1 = "a quote \char"5C " and a backslash \char"5C \char"5C";\par
203string s2 = "con" + "catenation";\cr
204\entryskip
205\sectext
206Basering in the following is {\tt ring r = 0, (x, y, z, mu, nu), dp;}\cr
207\entryskip
208\longitem
209number n = 5/3;\cr
210\entryskip
211\longentry
212poly p(1) = 3/4x3yz4+2xy2;\par
213poly p(2) = (5/3)*mu\^{}2*nu\^{}3+n*yz2;&
214                                {\tt p(1)} equals $3/4x^3yz^4+2xy^2$.  Short
215                                format of mono\-mials is valid for one-character
216                                ring variables only.\cr
217\entryskip
218\longentry
219ideal i = p(1..2), x+y;&        note the use of indexed names\cr
220\entryskip
221\longentry
222vector v = [p(1), p(2), x+y];\par
223vector w = 2*p(1)*gen(6)+n*nu*gen(1);&
224                                vectors may be written in brackets ({\tt
225                                [$\ldots$]}) or expressed as linear
226                                combinations of the canonical generators {\tt
227                                gen({\it i\/})}\cr
228\entryskip
229\longitem
230module mo = v, w, x+y*gen(1);\cr
231\entryskip
232\longitem
233resolution r = sres(std(mo), 0);\cr
234\entryskip
235\longentry
236matrix ma[2][2] = 5/3, p(1), 101;&
237                                the rules for declaring, filling, and accessing
238                                integer matrices apply to types {\tt matrix}
239                                and {\tt vector}, too\cr
240\entryskip
241\longentry
242list l = iv, v, p(1..2), mo;&
243                                lists may collect objects of any type.  They are
244                                ring-dependent iff one of the entries is.\cr
245\entryskip
246\longentry
247def d = read("MPfile:r example.mp");&
248                                a name of type {\tt def} inherits the type of
249                                the object assigned first to it.  Useful if the
250                                actual type of an object is unknown.\cr
251\endsec
252
253\sec Monitoring and debugging tools()
254timer = 1;&                     print time used for commands to execute\cr
255\longentry int t = timer; {\it command\/}; \rep; timer-t;&
256                                print time used for {\it commands\/} to execute\cr
257memory(1);&                     print number of bytes allocated from system\cr
258option(prot);&                  show algorithm protocol\cr
259option(mem);&                   show algorithm memory usage\cr
260\entryskip
261TRACE = 1;&                     print protocol on execution of procedures\cr
262listvar(all);&                  list all (user-)defined names\cr
263\longentry listvar({\it ringname\/});&
264                                list all names belonging to {\it ringname}\cr
265\endsec
266
267\eject
268
269\sec Options()
270option();&                      show current option settings\cr
271\longentry option($option_1$, no$option_2$, $\ldots$);&
272                                switch $option_1$ on and $option_2$ off, resp.\cr
273option(none);&                  reset all options to default values\cr
274\sectext
275Type {\tt help option;} for a list of all options.\cr
276\subsec{Monitoring}
277debugLib&                       show loading of procedures from libraries\cr
278mem&                            show algorithm memory usage\cr
279prot&                           show algorithm protocol\cr
280\subsec{Standard bases}
281fastHC&                         try to find highest corner as fast as possible\cr
282intStrategy&                    avoid divisions\cr
283morePairs&                      create additional pairs\cr
284notSugar&                       disable sugar strategy\cr
285redSB&                          compute reduced standard bases\cr
286redTail&                        reduce tails\cr
287sugarCrit&                      use sugar criteria\cr
288weightM&                        automatically compute weights\cr
289\subsec{Resolutions}
290minRes&                         do additional minimizing\cr
291notRegularity&                  disable regularity bound\cr
292\subsec{Miscellany}
293returnSB&                       let some functions return standard bases\cr
294\endsec
295
296\sec System variables()
297\sectext
298Type {\tt help System variables;} for a list of all system variables.\cr
299\subsec{Standard bases}
300degBound&                       stop if (weighted) total degree exceeds {\tt
301                                degBound}\cr
302multBound&                      stop if multiplicity gets smaller than {\tt
303                                multBound}\cr
304noether&                        cut off all monomials above monomial {\tt
305                                noether}\cr
306\subsec{Miscellany}
307basering&                       current basering\cr
308minpoly&                        minimal polynomial for algebraic extensions\cr
309short&                          do not print monomials in short format if zero\cr
310timer&                          on assignment of a non-zero value show time
311                                used for execution of executed commands.  On
312                                evaluation, return system time in seconds used
313                                by \Singular\ since start\cr
314TRACE&                          print information on procedures being executed
315                                if larger than one\cr
316\endsec
317
318\sec Input and output()
319< "{\it filename\/}";&          load and execute {\it filename\/}\cr
320\longentry write("{\it filename\/}", {\it expression}, \rep)&
321                                write {\it expressions\/} to ASCII file {\it
322                                filename}\cr
323\longentry read("{\it filename\/}");&
324                                read ASCII file {\it filename\/} and return
325                                content as a string.  See also example below.\cr
326\longentry
327dump("MPfile: {\it filename\/}");\par
328getdump("MPfile: {\it filename\/}");&
329                                dump current state of {\sc Singular} to {\it
330                                filename} and retrieve it, resp.\cr
331\entryskip
332\sectext
333An example how to write one single expression (in this case the
334ideal {\tt i}) to a file and read it back from there:
335
336{\tt
337write("i.save", i);\par
338execute("ideal i=" + read("i.save") + ";");
339}\cr
340\endsec
341
342\eject
343                               
344\sec Libraries()
345LIB "{\it library\/}";&         load {\it library}\cr
346help {\it library\/};&          show help on {\it library}\cr
347help all.lib;&                  show list of all libraries\cr
348\endsec
349
350\sec Mapping(1.5cm)
351\longentry map {\it name\/} = {\it ringname}, {\it ideal\/};&
352                                declare a map {\it name\/} from {\it ringname\/}
353                                to current basering.  The $i$-th ring variable
354                                from {\it ringname\/} is mapped to the $i$-th
355                                generator of {\it ideal}.\cr
356\longentry {\it mapname\/}({\it expression\/})&
357                                apply map {\it mapname\/} to {\it expression}\cr
358\entryskip
359\sectext
360Coefficients between rings with different basefields are mapped in the following
361way (non-canonical maps only):\strut
362\abovedisplayskip=0pt
363\belowdisplayskip=0pt
364$$
365\eqalign{Z_p \rightarrow Q&  :[i]_p \mapsto i \in [-p/2,p/2] \subset Z\cr
366         Z_p \rightarrow Z_q&:[i]_p \mapsto i \in [-p/2,p/2] \subset Z, i \mapsto [i]_q}
367$$
368\cr
369\noalign{\vskip -9pt} % dirty trick, gobbles the trailing \strut from \sectext
370\entryskip
371\longentry fetch({\it ringname}, {\it name\/})&
372                                map from ring {\it ringname\/} to current
373                                base\-ring.  The rings have to be identical up
374                                to names of ring variables\cr
375\longentry imap({\it ringname}, {\it name\/})&
376                                map from subring {\it ringname\/} to current
377                                basering\cr
378\longentry subst({\it expression}, {\it ringvar}, {\it monomial\/})&
379                                substitute {\it ringvar\/} by {\it monomial\/}
380                                in {\it expression}\cr
381\endsec
382
383\sec Miscellany(1.5cm)
384\longentry setring({\it ringname\/})&
385                                make {\it ringname\/} the current basering\cr
386\subsec{Data on polynomials}
387\longentry ord({\it poly\/\alt vector\/})&
388                                return (weighted) degree of initial term\cr
389\longentry deg({\it poly\/\alt vector\/})&
390                                return maximal (weighted) degree\cr
391\longentry
392size({\it ideal\/\alt module\/})\par
393size({\it poly\/\alt vector\/})\par
394size({\it string\/\alt intvec\/\alt list\/})&
395                                return (1) number of non-zero generators;
396                                (2) number of monomials; (3) length\cr
397\longentry lead({\it expression\/})&
398                                return initial term(s)\cr
399\subsec{Operations on polynomials}
400\longentry gcd({\it $\hbox{poly}_1$}, {\it $\hbox{poly}_2$\/})&
401                                return greatest common divisor\cr
402\longentry factorize({\it poly\/}\opt{, {\it int\/}})&
403                                return irreducible factors.  Return constant
404                                factor and multiplicities in dependency on {\it
405                                int}.\cr
406\endsec
407
408\sec Differentiation and jets(1.5cm)
409\longentry
410diff({\it expression}, {\it ringvar\/})\par
411diff({\it $\hbox{ideal}_1$}, {\it $\hbox{ideal}_2$\/})&
412                                (1) return partial derivation by {\it
413                                ringvar\/}; (2) differentiate each elt.\ of {\it
414                                $\hbox{ideal}_2$\/} by the differential
415                                operators corres\-pon\-ding to the elements of {\it
416                                $\hbox{ideal}_1$}\cr
417\longentry jacob({\it poly\/\alt ideal\/})&
418                                return jacobi ideal or matrix, resp.\cr
419\longentry jet({\it expression}, {\it int\/}\opt{, {\it intvec\/}})&
420                                return {\it int\/}-jet of {\it expression}.
421                                Return weighted {\it int\/}-jet if {\it
422                                intvec\/} is specifified.\cr
423\endsec
424
425\eject
426
427\sec Standard bases(1.5cm)
428\longentry groebner({\it ideal\/\alt module\/}\opt{, {\it int\/}})&
429                                compute a standard basis (SB) of {\it ideal\/}
430                                resp.\ {\it module\/} using a heuristically
431                                chosen method.  Delimit com\-pu\-tation time to
432                                {\it int\/} seconds.\cr
433\longentry std({\it ideal\/\alt module\/}\opt{, {\it intvec\/}})&
434                                compute a SB.  Use first Hilbert series {\it
435                                intvec\/} (result from {\tt hilb($\ldots$, 1)})
436                                for Hilbert-driven computation.\cr
437\longentry stdfglm({\it ideal\/}\opt{, {\it string\/}})&
438                                use FGLM algorithm to compute a SB from a SB
439                                w.r.t.\ the ``simpler'' ordering {\it string\/}
440                                (de\-faults to {\tt dp})\cr
441\longentry stdhilb({\it ideal\/}\opt{, {\it intvec\/}})&
442                                use Hilbert-driven algorithm to compute a SB.
443                                If Hil\-bert series {\it intvec\/} is not
444                                specified compute it first.\cr
445\longentry fglm({\it ringname}, {\it idealname\/})&
446                                use FGLM algorithm to transform SB {\it
447                                idealname\/} from ring {\it ringname\/} to a SB
448                                w.r.t.\ the ordering of the current basering\cr
449\longentry reduce({\it expression}, {\it ideal\/\alt module\/}\opt{, {\it int\/}})&
450                                reduce {\it expression\/} w.r.t.\ second
451                                argument which should be a SB.  Use lazy
452                                reduction if {\it int\/} equals one.\cr
453\endsec
454
455\sec Computation of invariants(1.5cm)
456\sectext
457Most of the results are meaningful only if the input ideal or module is
458represented by a standard basis.\cr
459\longentry degree({\it ideal\/\alt module\/})&
460                                display (Krull) dimension, codimension and
461                                multiplicity\cr
462\longentry dim({\it ideal\/\alt module\/})&
463                                return (Krull) dimension\cr
464\longentry hilb({\it ideal\/\alt module\/}\opt{, {\it int\/}})&
465                                display first and second Hilbert series with one
466                                argument.  Return {\it int}-th Hilber series
467                                otherwise (${\it \hbox{int}} = 1,2$).\cr
468\longentry mult({\it ideal\/\alt module\/})&
469                                return multiplicity\cr
470\longentry vdim({\it ideal\/\alt module\/})&
471                                return vector space dimension of current
472                                basering modulo {\it ideal\/} or {\it module},
473                                resp.\cr
474\endsec
475
476\sec Resolutions(1.5cm)
477\sectext
478An integer argument {\it length\/} in the following descriptions specifies the
479length of the resolution to compute.  If {\it length\/} equals zero, the whole
480resolution is computed.\cr
481\longentry res({\it ideal\/\alt module}, {\it length\/}\opt{, {\it int\/}})&
482                                compute a free resolution (FR) of {\it ideal\/}
483                                resp.\ {\it module\/} using a heuristically
484                                chosen method.  Compute a minimal resolution if
485                                a third argument is given.\cr
486\longentry mres({\it ideal\/\alt module}, {\it length\/})&
487                                compute a minimal FR using the standard basis
488                                method\cr
489\longentry lres({\it ideal\/\alt module}, {\it length\/})&
490                                compute a FR using LaSacala's method\cr
491\longentry sres({\it ideal\/\alt module}, {\it length\/})&
492                                compute a FR using Schreyer's method\cr
493\longentry syz({\it ideal\/\alt module\/})&
494                                compute the first syzygy\cr
495\longentry minres({\it resolution\/\alt list\/})&
496                                minimize a free resolution\cr
497\longentry betty({\it resolution\/\alt list\/})&
498                                compute the graded Betti numbers of a module
499                                represented by a resolution\cr
500\endsec
501
502\bye
Note: See TracBrowser for help on using the repository browser.