index d933c33556907f59d1f9e380726b26b82b211226..4c1a65c881c9d0c076d0a61a043c99294996e725 100644 (file)
@@ -82,6 +82,14 @@ when they are used. To refer to the unevaluated symbol, put single quotes
.RB ( ' )
around the name, as demonstrated for the "unassign" command above.
.PP
+Symbols are considered to be in the complex domain by default, i.e. they are
+treated as if they stand in for complex numbers. This behavior can be changed
+by using the keywords
+.BI real_symbols
+and
+.BI complex_symbols
+and affects all newly created symbols.
+.PP
The following symbols are pre-defined constants that cannot be assigned
a value by the user:
.RS
@@ -109,10 +117,17 @@ There is also the special
symbol that controls the numeric precision of calculations with inexact numbers.
Assigning an integer value to digits will change the precision to the given
number of decimal places.
+.SS WILDCARDS
+The has(), find(), match() and subs() functions accept wildcards as placeholders
+for expressions. These have the syntax
+.RS
+.BI \$ number
+.RE
+for example \$0, \$1 etc.
.SS LAST PRINTED EXPRESSIONS
ginsh provides the three special symbols
.RS
-", "" and """
+%, %% and %%%
.RE
that refer to the last, second last, and third last printed expression, respectively.
These are handy if you want to use the results of previous computations in a new
@@ -137,9 +152,6 @@ unary minus
.B *
multiplication
.TP
-.B %
-non-commutative multiplication
-.TP
.B /
division
.TP
@@ -184,22 +196,20 @@ Lists are used by the
.B subs
and
.B lsolve
-functions. A list consists of an opening square bracket
+functions. A list consists of an opening curly brace
+.RB ( { ),
+a (possibly empty) comma-separated sequence of expressions, and a closing curly
+brace
+.RB ( } ).
+.SS MATRICES
+A matrix consists of an opening square bracket
.RB ( [ ),
-a (possibly empty) comma-separated sequence of expressions, and a closing square
-bracket
+a non-empty comma-separated sequence of matrix rows, and a closing square bracket
+.RB ( ] ).
+Each matrix row consists of an opening square bracket
+.RB ( [ ),
+a non-empty comma-separated sequence of expressions, and a closing square bracket
.RB ( ] ).
-.SS MATRICES
-A matrix consists of an opening double square bracket
-.RB ( [[ ),
-a non-empty comma-separated sequence of matrix rows, and a closing double square
-bracket
-.RB ( ]] ).
-Each matrix row consists of an opening double square bracket
-.RB ( [[ ),
-a non-empty comma-separated sequence of expressions, and a closing double square
-bracket
-.RB ( ]] ).
If the rows of a matrix are not of the same length, the width of the matrix
becomes that of the longest row and shorter rows are filled up at the end
with elements of value zero.
@@ -229,16 +239,28 @@ detail here. Please refer to the GiNaC documentation.
.BI charpoly( matrix ", " symbol )
\- characteristic polynomial of a matrix
.br
-.BI coeff( expression ", " symbol ", " number )
-\- extracts coefficient of symbol^number from a polynomial
+.BI coeff( expression ", " object ", " number )
+\- extracts coefficient of object^number from a polynomial
+.br
+.BI collect( expression ", " object-or-list )
+\- collects coefficients of like powers (result in recursive form)
+.br
+.BI collect_distributed( expression ", " list )
+\- collects coefficients of like powers (result in distributed form)
.br
-.BI collect( expression ", " symbol )
-\- collects coefficients of like powers
+.BI collect_common_factors( expression )
+\- collects common factors from the terms of sums
+.br
+.BI conjugate( expression )
+\- complex conjugation
.br
.BI content( expression ", " symbol )
\- content part of a polynomial
.br
-.BI degree( expression ", " symbol )
+.BI decomp_rational( expression ", " symbol )
+\- decompose rational function into polynomial and proper rational function
+.br
+.BI degree( expression ", " object )
\- degree of a polynomial
.br
.BI denom( expression )
@@ -256,20 +278,32 @@ detail here. Please refer to the GiNaC documentation.
.BI divide( expression ", " expression )
\- exact polynomial division
.br
-.BI eval( "expression [" ", " level] )
-\- evaluates an expression, replacing symbols by their assigned value
-.br
-.BI evalf( "expression [" ", " level] )
+.BI evalf( expression )
\- evaluates an expression to a floating point number
.br
+.BI evalm( expression )
+\- evaluates sums, products and integer powers of matrices
+.br
.BI expand( expression )
\- expands an expression
.br
+.BI factor( expression )
+\- factorizes an expression (univariate)
+.br
+.BI find( expression ", " pattern )
+\- returns a list of all occurrences of a pattern in an expression
+.br
+.BI fsolve( expression ", " symbol ", " number ", " number )
+\- numerically find root of a real-valued function within an interval
+.br
.BI gcd( expression ", " expression )
\- greatest common divisor
.br
-.BI has( expression ", " expression )
-\- returns "1" if the first expression contains the second as a subexpression, "0" otherwise
+.BI has( expression ", " pattern )
+\- returns "1" if the first expression contains the pattern as a subexpression, "0" otherwise
+.br
+.BI integer_content( expression )
+\- integer content of a polynomial
.br
.BI inverse( matrix )
\- inverse of a matrix
@@ -280,24 +314,33 @@ detail here. Please refer to the GiNaC documentation.
.BI lcm( expression ", " expression )
\- least common multiple
.br
-.BI lcoeff( expression ", " symbol )
+.BI lcoeff( expression ", " object )
\- leading coefficient of a polynomial
.br
-.BI ldegree( expression ", " symbol )
+.BI ldegree( expression ", " object )
\- low degree of a polynomial
.br
.BI lsolve( equation-list ", " symbol-list )
\- solve system of linear equations
.br
+.BI map( expression ", " pattern )
+\- apply function to each operand; the function to be applied is specified as a pattern with the "\$0" wildcard standing for the operands
+.br
+.BI match( expression ", " pattern )
+\- check whether expression matches a pattern; returns a list of wildcard substitutions or "FAIL" if there is no match
+.br
.BI nops( expression )
\- number of operands in expression
.br
-.BI normal( "expression [" ", " level] )
+.BI normal( expression )
\- rational function normalization
.br
.BI numer( expression )
\- numerator of a rational function
.br
+.BI numer_denom( expression )
+\- numerator and denumerator of a rational function as a list
+.br
.BI op( expression ", " number )
\- extract operand from expression
.br
@@ -313,12 +356,21 @@ detail here. Please refer to the GiNaC documentation.
.BI quo( expression ", " expression ", " symbol )
\- quotient of polynomials
.br
+.BI rank( matrix )
+\- rank of a matrix
+.br
.BI rem( expression ", " expression ", " symbol )
\- remainder of polynomials
.br
+.BI resultant( expression ", " expression ", " symbol )
+\- resultant of two polynomials with respect to symbol s
+.br
.BI series( expression ", " relation-or-symbol ", " order )
\- series expansion
.br
+.BI sprem( expression ", " expression ", " symbol )
+\- sparse pseudo-remainder of polynomials
+.br
.BI sqrfree( "expression [" ", " symbol-list] )
\- square-free factorization of a polynomial
.br
@@ -328,9 +380,9 @@ detail here. Please refer to the GiNaC documentation.
.BI subs( expression ", " relation-or-list )
.br
.BI subs( expression ", " look-for-list ", " replace-by-list )
-\- substitute subexpressions
+\- substitute subexpressions (you may use wildcards)
.br
-.BI tcoeff( expression ", " symbol )
+.BI tcoeff( expression ", " object )
\- trailing coefficient of a polynomial
.br
.BI time( expression )
@@ -342,8 +394,8 @@ detail here. Please refer to the GiNaC documentation.
.BI transpose( matrix )
\- transpose of a matrix
.br
-.BI unassign( symbol )
-\- unassign an assigned symbol
+.BI unassign( 'symbol' )
+\- unassign an assigned symbol (mind the quotes, please!)
.br
.BI unit( expression ", " symbol )
\- unit part of a polynomial
@@ -381,6 +433,21 @@ This is useful for debugging and for learning about GiNaC internals.
.PP
The command
.RS
+.BI print_latex( expression );
+.RE
+prints a LaTeX representation of the given
+.IR expression .
+.PP
+The command
+.RS
+.BI print_csrc( expression );
+.RE
+prints the given
+.I expression
+in a way that can be used in a C or C++ program.
+.PP
+The command
+.RS
.BI iprint( expression );
.RE
prints the given
@@ -401,11 +468,11 @@ from within ginsh without having to quit.
.SH EXAMPLES
.nf
> a = x^2\-x\-2;
-\-x+x^2\-2
+\-2\-x+x^2
> b = (x+1)^2;
(x+1)^2
> s = a/b;
-(x+1)^(\-2)*(\-x+x^2\-2)
+(x+1)^(\-2)*(\-2\-x+x^2)
> diff(s, x);
(2*x\-1)*(x+1)^(\-2)\-2*(x+1)^(\-3)*(\-x+x^2\-2)
> normal(s);
@@ -422,15 +489,17 @@ from within ginsh without having to quit.
x
> s;
(x+1)^(\-2)*(\-x+x^2\-2)
-> lsolve([3*x+5*y == 7], [x, y]);
-[x==\-5/3*y+7/3,y==y]
-> lsolve([3*x+5*y == 7, \-2*x+10*y == \-5], [x, y]);
-[x==19/8,y==\-1/40]
-> M = [[ [[a, b]], [[c, d]] ]];
-[[ [[\-x+x^2\-2,(x+1)^2]], [[c,d]] ]]
+> series(sin(x),x==0,6);
+1*x+(\-1/6)*x^3+1/120*x^5+Order(x^6)
+> lsolve({3*x+5*y == 7}, {x, y});
+{x==\-5/3*y+7/3,y==y}
+> lsolve({3*x+5*y == 7, \-2*x+10*y == \-5}, {x, y});
+{x==19/8,y==\-1/40}
+> M = [ [a, b], [c, d] ];
+[[\-x+x^2\-2,(x+1)^2],[c,d]]
> determinant(M);
\-2*d\-2*x*c\-x^2*c\-x*d+x^2*d\-c
-> collect(", x);
+> collect(%, x);
(\-d\-2*c)*x+(d\-c)*x^2\-2*d\-c
> solve quantum field theory;
parse error at quantum
@@ -458,13 +527,15 @@ Christian Bauer <Christian.Bauer@uni-mainz.de>
Alexander Frink <Alexander.Frink@uni-mainz.de>
.br
Richard Kreckel <Richard.Kreckel@uni-mainz.de>
+.br
+Jens Vollinga <vollinga@thep.physik.uni-mainz.de>
.SH SEE ALSO
GiNaC Tutorial \- An open framework for symbolic computation within the
C++ programming language
.PP
CLN \- A Class Library for Numbers, Bruno Haible