X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=doc%2Ftutorial%2Fginac.texi;h=4195678e8e0f5d266cad5cc179d95d7bda6b50d9;hp=d0b12a76817146ae518f6ff5f325241bc4f0066d;hb=f303227c240827857e2fb0631c537f553a9845e2;hpb=98fa99a4c097b9baee1ce09124a24bced4b1abbb diff --git a/doc/tutorial/ginac.texi b/doc/tutorial/ginac.texi index d0b12a76..4195678e 100644 --- a/doc/tutorial/ginac.texi +++ b/doc/tutorial/ginac.texi @@ -3299,13 +3299,11 @@ and contain symbolic entries. Such generators are created by the function @example - ex clifford_unit(const ex & mu, const ex & metr, unsigned char rl = 0, - bool anticommuting = false); + ex clifford_unit(const ex & mu, const ex & metr, unsigned char rl = 0); @end example -where @code{mu} should be a @code{varidx} class object indexing the -generators, an index @code{mu} with a numeric value may be of type -@code{idx} as well. +where @code{mu} should be a @code{idx} (or descendant) class object +indexing the generators. Parameter @code{metr} defines the metric @math{M(i, j)} and can be represented by a square @code{matrix}, @code{tensormetric} or @code{indexed} class object. In fact, any expression either with two free indices or without @@ -3313,20 +3311,7 @@ indices at all is admitted as @code{metr}. In the later case an @code{indexed} object with two newly created indices with @code{metr} as its @code{op(0)} will be used. Optional parameter @code{rl} allows to distinguish different -Clifford algebras, which will commute with each other. The last -optional parameter @code{anticommuting} defines if the anticommuting -assumption (i.e. -@tex -$e_i e_j + e_j e_i = 0$) -@end tex -@ifnottex -e~i e~j + e~j e~i = 0) -@end ifnottex -will be used for contraction of Clifford units. If the @code{metric} is -supplied by a @code{matrix} object, then the value of -@code{anticommuting} is calculated automatically and the supplied one -will be ignored. One can overcome this by giving @code{metric} through -matrix wrapped into an @code{indexed} object. +Clifford algebras, which will commute with each other. Note that the call @code{clifford_unit(mu, minkmetric())} creates something very close to @code{dirac_gamma(mu)}, although @@ -3334,9 +3319,6 @@ something very close to @code{dirac_gamma(mu)}, although @cindex @code{clifford::get_metric()} The method @code{clifford::get_metric()} returns a metric defining this Clifford number. -@cindex @code{clifford::is_anticommuting()} -The method @code{clifford::is_anticommuting()} returns the -@code{anticommuting} property of a unit. If the matrix @math{M(i, j)} is in fact symmetric you may prefer to create the Clifford algebra units with a call like that @@ -3355,14 +3337,14 @@ ways. For example @example @{ ... - varidx nu(symbol("nu"), 4); + idx i(symbol("i"), 4); realsymbol s("s"); ex M = diag_matrix(lst(1, -1, 0, s)); - ex e = clifford_unit(nu, M); - ex e0 = e.subs(nu == 0); - ex e1 = e.subs(nu == 1); - ex e2 = e.subs(nu == 2); - ex e3 = e.subs(nu == 3); + ex e = clifford_unit(i, M); + ex e0 = e.subs(i == 0); + ex e1 = e.subs(i == 1); + ex e2 = e.subs(i == 2); + ex e3 = e.subs(i == 3); ... @} @end example @@ -3381,7 +3363,7 @@ A similar effect can be achieved from the function @example ex lst_to_clifford(const ex & v, const ex & mu, const ex & metr, - unsigned char rl = 0, bool anticommuting = false); + unsigned char rl = 0); ex lst_to_clifford(const ex & v, const ex & e); @end example @@ -3403,19 +3385,19 @@ $v^0 e_0 + v^1 e_1 + ... + v^n e_n$ with @samp{e.k} directly supplied in the second form of the procedure. In the first form the Clifford unit @samp{e.k} is generated by the call of -@code{clifford_unit(mu, metr, rl, anticommuting)}. The previous code may be rewritten +@code{clifford_unit(mu, metr, rl)}. The previous code may be rewritten with the help of @code{lst_to_clifford()} as follows @example @{ ... - varidx nu(symbol("nu"), 4); + idx i(symbol("i"), 4); realsymbol s("s"); ex M = diag_matrix(lst(1, -1, 0, s)); - ex e0 = lst_to_clifford(lst(1, 0, 0, 0), nu, M); - ex e1 = lst_to_clifford(lst(0, 1, 0, 0), nu, M); - ex e2 = lst_to_clifford(lst(0, 0, 1, 0), nu, M); - ex e3 = lst_to_clifford(lst(0, 0, 0, 1), nu, M); + ex e0 = lst_to_clifford(lst(1, 0, 0, 0), i, M); + ex e1 = lst_to_clifford(lst(0, 1, 0, 0), i, M); + ex e2 = lst_to_clifford(lst(0, 0, 1, 0), i, M); + ex e3 = lst_to_clifford(lst(0, 0, 0, 1), i, M); ... @} @end example @@ -3546,9 +3528,9 @@ The next provided function is @example ex clifford_moebius_map(const ex & a, const ex & b, const ex & c, const ex & d, const ex & v, const ex & G, - unsigned char rl = 0, bool anticommuting = false); + unsigned char rl = 0); ex clifford_moebius_map(const ex & M, const ex & v, const ex & G, - unsigned char rl = 0, bool anticommuting = false); + unsigned char rl = 0); @end example It takes a list or vector @code{v} and makes the Moebius (conformal or @@ -3556,10 +3538,9 @@ linear-fractional) transformation @samp{v -> (av+b)/(cv+d)} defined by the matrix @samp{M = [[a, b], [c, d]]}. The parameter @code{G} defines the metric of the surrounding (pseudo-)Euclidean space. This can be an indexed object, tensormetric, matrix or a Clifford unit, in the later -case the optional parameters @code{rl} and @code{anticommuting} are -ignored even if supplied. Depending from the type of @code{v} the -returned value of this function is either a vector or a list holding vector's -components. +case the optional parameter @code{rl} is ignored even if supplied. +Depending from the type of @code{v} the returned value of this function +is either a vector or a list holding vector's components. @cindex @code{clifford_max_label()} Finally the function