Christian Bauer [Fri, 1 Jun 2001 22:50:33 +0000 (22:50 +0000)]
- list delimiters are now { } and matrix delimiters are [ ]
- added evalm() function
Christian Bauer [Fri, 1 Jun 2001 22:50:00 +0000 (22:50 +0000)]
- in the output, list delimiters are now { } and matrix delimiters are [ ]
- added evalm() method for evaluating sums and products of matrices
- added map() method for applying a function to subexpressions
- power(noncommut, posint) automatically expands the product, removed ncpow()
Christian Bauer [Fri, 1 Jun 2001 22:47:03 +0000 (22:47 +0000)]
- list delimiters are now { }, matrix delimiters are now [ ]
- added an example for evalm()
- removed ncpow()
Christian Bauer [Fri, 1 Jun 2001 22:46:02 +0000 (22:46 +0000)]
added test for evalm()
Christian Bauer [Fri, 1 Jun 2001 22:45:53 +0000 (22:45 +0000)]
documentation update
Christian Bauer [Fri, 1 Jun 2001 18:37:13 +0000 (18:37 +0000)]
- added numer_denom()
- minor cleanups
Christian Bauer [Fri, 1 Jun 2001 18:37:00 +0000 (18:37 +0000)]
- added numer_denom() to get numerator and denominator in one pass
- symmetrize() and antisymmetrize() are available as ex methods
- minor cleanups
Christian Bauer [Fri, 1 Jun 2001 18:36:10 +0000 (18:36 +0000)]
- mentioned numer_denom()
- symmetrize() and antisymmetrize() are available as ex methods
Christian Bauer [Fri, 1 Jun 2001 18:35:32 +0000 (18:35 +0000)]
documentation update
Christian Bauer [Thu, 31 May 2001 17:14:25 +0000 (17:14 +0000)]
determinant_algo::laplace sometimes had the sign wrong because of the change
to permutation_sign()
Christian Bauer [Wed, 30 May 2001 22:38:28 +0000 (22:38 +0000)]
- permutation_sign() and shaker_sort() are no longer inlined
- symmetrize() no longer limited to 32-bit integers
Christian Bauer [Mon, 28 May 2001 22:16:47 +0000 (22:16 +0000)]
- dirac_trace() is twice as fast
- permutation_sign() uses shaker sort
- shaker_sort() doesn't require less-than comparable iterators any more
Christian Bauer [Mon, 28 May 2001 22:15:05 +0000 (22:15 +0000)]
documented symmetrize() and antisymmetrize()
Christian Bauer [Sun, 27 May 2001 19:53:13 +0000 (19:53 +0000)]
- added symmetrize() and antisymmetrize() functions
- generalized permutation_sign() template
- moved shaker_sort() template to utils.h
Christian Bauer [Fri, 25 May 2001 22:32:48 +0000 (22:32 +0000)]
- renamed ncpower() to ncpow()
- canonicalize_clifford() uses to_rational() now
- minor cleanups
Christian Bauer [Fri, 25 May 2001 22:29:34 +0000 (22:29 +0000)]
mentioned ncpow()
Christian Bauer [Fri, 25 May 2001 21:12:03 +0000 (21:12 +0000)]
fixed typos
Christian Bauer [Fri, 25 May 2001 20:51:49 +0000 (20:51 +0000)]
added description of wildcards
Christian Bauer [Fri, 25 May 2001 20:51:35 +0000 (20:51 +0000)]
- removed debugging code in match()
- added ex::match(const ex & pattern) which doesn't take a list as second
argument
- expairseq::subs() substitutes in recombined pairs when the pattern is a
product or a power; this is necessary for things like subs(2*x^2,x^2==3)
because the first expression is mul(<x,2>,2) and only substituting in the
"rest" part of the expair is not enough
Christian Bauer [Fri, 25 May 2001 20:47:43 +0000 (20:47 +0000)]
added section "Pattern matching and advanced substitutions" which covers
match(), has() and subs()
Christian Bauer [Fri, 25 May 2001 20:47:15 +0000 (20:47 +0000)]
added wildcard and spinormetric classes to check
Richard Kreckel [Thu, 24 May 2001 19:07:47 +0000 (19:07 +0000)]
- fix LaTeX-output bug reported by Stefan, remove obsolete has(matrix,ex).
Christian Bauer [Thu, 24 May 2001 00:43:11 +0000 (00:43 +0000)]
- first implementation of pattern matching
Christian Bauer [Mon, 21 May 2001 22:49:16 +0000 (22:49 +0000)]
- Clifford traces of many gammas are a lot faster now (especially with gamma5)
- new simplifications for color classes:
d.abc T.b T.c = 5/6 T.a
f.abc T.b T.c = 3/2 I T.a
- added indexed::has_dummy_index_for() member function
Christian Bauer [Mon, 21 May 2001 22:46:34 +0000 (22:46 +0000)]
- mentioned dummy index renaming
- Clifford and color class description slightly updated
Christian Bauer [Mon, 21 May 2001 22:45:48 +0000 (22:45 +0000)]
updated for changes in Clifford/color classes
Christian Bauer [Sat, 19 May 2001 21:37:44 +0000 (21:37 +0000)]
replaced "precedence" static member variable by virtual precedence() function
Richard Kreckel [Sat, 19 May 2001 19:11:45 +0000 (19:11 +0000)]
- adjust preprocessor Cint-checks to the actual situation.
Christian Bauer [Sat, 19 May 2001 00:42:07 +0000 (00:42 +0000)]
- dummy index renamer didn't account for internal dummy indices of objects
in products; a~mu.mu-a~nu.nu gets simplified to 0 now
- made a little more use of STL facilities for exvectors, especially in the
indexed stuff; append_exvector_to_exvector() and index_set_difference() are
gone and utils.h defines the functors ex_is_less and ex_is_equal
Christian Bauer [Sat, 19 May 2001 00:39:55 +0000 (00:39 +0000)]
added one more check
Christian Bauer [Sat, 19 May 2001 00:39:49 +0000 (00:39 +0000)]
documentation update
Christian Bauer [Fri, 18 May 2001 00:53:07 +0000 (00:53 +0000)]
- simplify_indexed() renames dummy indices so, e.g., "a.i*a.i+a.j*a.j" gets
simplified to "2*a.i*a.i" (or 2*a.j*a.j, you can't know which one)
- fixed possible crash when calling subs() on expressions with non-commutative
products
- added canonicalize_clifford()
Christian Bauer [Fri, 18 May 2001 00:52:12 +0000 (00:52 +0000)]
corrected typo
Christian Bauer [Fri, 18 May 2001 00:52:05 +0000 (00:52 +0000)]
added checks for dummy index renaming and canonicalize_clifford()
Christian Bauer [Fri, 18 May 2001 00:51:50 +0000 (00:51 +0000)]
documentation update
Richard Kreckel [Thu, 17 May 2001 20:35:36 +0000 (20:35 +0000)]
- Missed to #include "config.h" for HAVE_SSTREAM.
Christian Bauer [Wed, 16 May 2001 20:04:51 +0000 (20:04 +0000)]
fixed bug in mul::print with print_csrc
Richard Kreckel [Tue, 15 May 2001 23:26:41 +0000 (23:26 +0000)]
- Fix thinko in csgn_eval().
Richard Kreckel [Tue, 15 May 2001 23:26:21 +0000 (23:26 +0000)]
- Indentation Fix.
Richard Kreckel [Fri, 11 May 2001 23:15:55 +0000 (23:15 +0000)]
- added patch contributors, added remark to mailing lists.
Richard Kreckel [Fri, 11 May 2001 20:29:03 +0000 (20:29 +0000)]
- forgot to close #97136.
Richard Kreckel [Fri, 11 May 2001 19:43:49 +0000 (19:43 +0000)]
- applied `dch -i'.
Richard Kreckel [Fri, 11 May 2001 19:43:31 +0000 (19:43 +0000)]
- Renamed our detected libreadline version in order to avoid conflicts
with Chat Rameys (still broken) macros and future CPP definitions in
libreadline's headers. Oh what a pain in the ass!
Christian Bauer [Fri, 11 May 2001 18:05:32 +0000 (18:05 +0000)]
- dirac_trace() takes an optional third argument: the expression to use for
the trace of the unit matrix
- more conventional factor I in gamma5
Christian Bauer [Fri, 11 May 2001 18:04:35 +0000 (18:04 +0000)]
dirac_trace() now takes three arguments
Christian Bauer [Fri, 11 May 2001 18:04:24 +0000 (18:04 +0000)]
added missing factor I in gamma5 trace
Richard Kreckel [Fri, 11 May 2001 14:51:40 +0000 (14:51 +0000)]
- Added inclusion of <sstream> or <strstream> since <ginac/ginac.h> now
does not do so any more.
Richard Kreckel [Fri, 11 May 2001 14:16:11 +0000 (14:16 +0000)]
* Zapped header dependency from <strstream>.
Richard Kreckel [Fri, 11 May 2001 14:15:33 +0000 (14:15 +0000)]
* comparison operators should return const relationals.
Richard Kreckel [Fri, 11 May 2001 14:14:53 +0000 (14:14 +0000)]
* node assignment was not returning *this.
Christian Bauer [Thu, 10 May 2001 20:41:24 +0000 (20:41 +0000)]
- color and clifford classes are quite functional now
- new "spinidx" class for dotted/undotted indices
- predefined spinor metric tensor (created by spinor_metric())
Christian Bauer [Thu, 10 May 2001 20:40:36 +0000 (20:40 +0000)]
added documentation for spinidx, spinor_metric() and noncommutative stuff
Christian Bauer [Thu, 10 May 2001 20:40:16 +0000 (20:40 +0000)]
more checks (more, MORE, BWAHAHHAAA!... uhm, ...) for noncommutative classes
Christian Bauer [Thu, 10 May 2001 20:39:07 +0000 (20:39 +0000)]
documentation update
Richard Kreckel [Thu, 10 May 2001 18:06:09 +0000 (18:06 +0000)]
- Prepare for landing of 0.8.3.
Richard Kreckel [Wed, 9 May 2001 23:36:16 +0000 (23:36 +0000)]
- minor cleanup.
Richard Kreckel [Tue, 8 May 2001 20:45:35 +0000 (20:45 +0000)]
* Added new operator semantics.
Richard Kreckel [Tue, 8 May 2001 20:44:58 +0000 (20:44 +0000)]
* Added some messy exams for new operator semantics.
Richard Kreckel [Tue, 8 May 2001 20:42:51 +0000 (20:42 +0000)]
* All operators are now strictly following the semantics we all know from
C/C++. I.e. e1+e2=42; is now impossible and other such stuff. For all
remaining errors (i.e. ++e1 = e1+1;) the compiler alone is to blame...
Richard Kreckel [Tue, 8 May 2001 00:34:44 +0000 (00:34 +0000)]
- Remved obsolete remainders of preprocessor symbol NO_NAMESPACE_GINAC.
Richard Kreckel [Mon, 7 May 2001 20:41:41 +0000 (20:41 +0000)]
* Methods of class ex which do absolutely nothing than type dispatch should
be inlined for obvious reasons.
Richard Kreckel [Mon, 7 May 2001 20:41:03 +0000 (20:41 +0000)]
* Updated Cint status.
Richard Kreckel [Sat, 5 May 2001 23:09:07 +0000 (23:09 +0000)]
Changes needed for compilation with -DDO_GINAC_ASSERT:
* basic.cpp: if needed, #include <typeinfo>,
* mul.h: mul::print() needed a default for 2nd arg.
Hey, Cebix, could you please have a look at the assertions of type
basis.return_type()==return_types::commutative in power.cpp ctors?
Watch out, though: they are not just bogus because of the rule
(x*y)^2 -> x^2*y^2 in power::eval().
Christian Bauer [Fri, 4 May 2001 23:55:36 +0000 (23:55 +0000)]
- symbols can have a LaTeX name, e.g. symbol s("s", "\\sigma");
- LaTeX output of indexed objects and tensors is much nicer
- simplify_indexed() can do arbitrary contractions in Dirac gamma strings
- constructing expressions like
(x * dirac_ONE() + dirac_ONE()) * dirac_gamma(mu)
resulted in an exception because mul::simplify_ncmul() wasn't implemented
(maybe afrink didn't anticipate that an implementation would really be
needed...)
Christian Bauer [Fri, 4 May 2001 23:46:52 +0000 (23:46 +0000)]
- more clifford checks
- archive checks has a symbol with a LaTeX name
Christian Bauer [Fri, 4 May 2001 23:46:28 +0000 (23:46 +0000)]
documentation and grammar updates
Richard Kreckel [Fri, 4 May 2001 23:29:42 +0000 (23:29 +0000)]
* add::coeff(): don't epvector::reserve() more terms than we'll actually
need and don't epvector::push_back() all those _ex0()'s into coeffseq.
Richard Kreckel [Thu, 3 May 2001 23:50:51 +0000 (23:50 +0000)]
* Fix incompatibilities with recent versions of libreadline by having
configure find out the version and then doing ugly things with #ifdef.
Richard Kreckel [Thu, 3 May 2001 23:50:48 +0000 (23:50 +0000)]
* Fix incompatibilities with recent versions of libreadline by having
configure find out the version and then doing ugly things with #ifdef.
* config.*: updates from upstream.
Richard Kreckel [Sat, 28 Apr 2001 22:02:15 +0000 (22:02 +0000)]
* Just for the record: this is what has been used for building.
Christian Bauer [Thu, 26 Apr 2001 19:36:07 +0000 (19:36 +0000)]
- dirac_trace() handles arbitrary expressions (even unexpanded), including
gamma5
- implemented color_trace()
- eps0123() creates a 4-dimensional epsilon tensor without checking the
indices (so they may be D-dimensional); this may become a different class
soon, but for now all the implemented properties of the standard epsilon
tensor also apply to eps0123
Christian Bauer [Thu, 26 Apr 2001 19:33:22 +0000 (19:33 +0000)]
added more trace checks
Christian Bauer [Wed, 25 Apr 2001 20:41:13 +0000 (20:41 +0000)]
dirac_trace() can handle arbitrary gamma strings without gamma5. The only
remaining unimplemented case is now Tr[gamma5 S_2n]
Christian Bauer [Wed, 25 Apr 2001 20:40:35 +0000 (20:40 +0000)]
added more trace checks
Richard Kreckel [Tue, 24 Apr 2001 23:53:52 +0000 (23:53 +0000)]
* Minor packaging fixes.
* Pushing towards version 0.8.2-1.
Richard Kreckel [Tue, 24 Apr 2001 19:37:24 +0000 (19:37 +0000)]
* Cint fix. It looks like the hacks are going to go away really soon,
after some recent work by Masaharu.
Richard Kreckel [Tue, 24 Apr 2001 19:35:39 +0000 (19:35 +0000)]
* Example: Don't confuse users with _ex0().
Richard Kreckel [Tue, 24 Apr 2001 19:35:20 +0000 (19:35 +0000)]
* Push towards 0.8.2.
Christian Bauer [Tue, 24 Apr 2001 17:22:09 +0000 (17:22 +0000)]
- added get_representation_label()
- clifford contractions honor repr. label
- first implementation of dirac_trace(), works with 0..3 clifford objects
Christian Bauer [Tue, 24 Apr 2001 17:21:16 +0000 (17:21 +0000)]
added first trace check
Richard Kreckel [Mon, 23 Apr 2001 19:50:23 +0000 (19:50 +0000)]
\18* class matrix: solve() doesn't call algorithms redundantly any more and
inverse() falls back to solve() which works in more general cases.
Richard Kreckel [Mon, 23 Apr 2001 19:50:16 +0000 (19:50 +0000)]
* class matrix: solve() doesn't call algorithms redundantly any more and
inverse() falls back to solve() which works in more general cases.
Christian Bauer [Fri, 20 Apr 2001 23:09:09 +0000 (23:09 +0000)]
- degree(), ldegree(), coeff(), lcoeff(), tcoeff() and collect() work with
non-symbols as the second argument
- collect_distributed() produces result in distributed form (second argument
should be a list of symbols)
Christian Bauer [Fri, 20 Apr 2001 23:06:55 +0000 (23:06 +0000)]
- color/clifford objects have representation label to distinguish elements
of different algebras; objects with different labels commute with each
other
- dirac_one() -> dirac_ONE()
- added gamma5 clifford objects which is constructed by dirac_gamma5()
- clifford::simplify_ncmul() anticommutes gamma5's to the front and removes
squares of gamma5
- the argument to collect() can be a list of objects in which case the
result is either a recursively collected polynomial, or a polynomial in
a distributed form with terms like coeff*x1^e1*...*xn^en, as specified by
the second argument to collect(). For example (ginsh):
> f=a*x-x+a*x*y+x*y+a*x*y^2-2*x*y^2+y^2;
a*x+y*a*x+y^2*a*x+y^2-x+y*x-2*y^2*x
> collect(f,x);
(-1+y+y^2*a+y*a+a-2*y^2)*x+y^2
> collect(f,y);
a*x-x+y^2*(1+a*x-2*x)+y*(a*x+x)
> collect(f,[x,y]);
(-1+y*(1+a)+y^2*(-2+a)+a)*x+y^2
> collect(f,[y,x]);
(-1+a)*x+y*(1+a)*x+(1+(-2+a)*x)*y^2
> collect_distributed(f,[x,y]);
(-1+a)*x+y^2*(-2+a)*x+y*(1+a)*x+y^2
Christian Bauer [Fri, 20 Apr 2001 23:03:43 +0000 (23:03 +0000)]
- dirac_one() -> dirac_ONE()
- more clifford checks
Christian Bauer [Fri, 20 Apr 2001 23:03:25 +0000 (23:03 +0000)]
documentation update
Richard Kreckel [Thu, 19 Apr 2001 00:41:18 +0000 (00:41 +0000)]
* fixed some mindboggling tremendous superhuge gigantic #*@$&! memory leaks.
Richard Kreckel [Wed, 18 Apr 2001 19:30:21 +0000 (19:30 +0000)]
* color.cpp: remove duplicated default args.
* numeric.cpp: insert some missing cln:: namespace decls.
Why did this ever work?
* structure.cpp, structure.h: adjust to the new print scheme.
Richard Kreckel [Mon, 16 Apr 2001 20:27:58 +0000 (20:27 +0000)]
* Now this four-package split-up is gonna get in. Promised.
Richard Kreckel [Mon, 16 Apr 2001 20:25:21 +0000 (20:25 +0000)]
* Finalization for 0.8.1.
Richard Kreckel [Mon, 16 Apr 2001 20:24:53 +0000 (20:24 +0000)]
* Documented print_latex.
Richard Kreckel [Mon, 16 Apr 2001 20:24:27 +0000 (20:24 +0000)]
* Don't print '*' in LaTeX mode.
Richard Kreckel [Mon, 16 Apr 2001 20:24:09 +0000 (20:24 +0000)]
* Still some std:: missing...
Richard Kreckel [Sun, 15 Apr 2001 00:28:38 +0000 (00:28 +0000)]
* Added example about series expansion.
Richard Kreckel [Sun, 15 Apr 2001 00:28:18 +0000 (00:28 +0000)]
* basic::collec() never worked correctly on non-polynomials till now.
We simply correct for the missing terms, which makes it at least
algebraically correct (suggested by Pearu Peterson).
* Added support to print out LaTeX-style, based on some work by Stefan
Weinzierl:
- print.h: added a class print_latex().
- function.pl: added function_options::latex_name() because there was
no good way of setting that name before.
- inifncs*.cpp: use it.
- *.cpp: switch to see if print_context is actually print_latex and
then change the style.
* Fixed some stupid bugs in sections that were #define'd away for gcc-2.95.
Richard Kreckel [Sun, 15 Apr 2001 00:22:44 +0000 (00:22 +0000)]
* INSTALL: adjusted Cint status.
* document change in .collect().
Richard Kreckel [Fri, 13 Apr 2001 19:26:29 +0000 (19:26 +0000)]
* Preparing for 0.8.1.
Richard Kreckel [Fri, 13 Apr 2001 18:46:23 +0000 (18:46 +0000)]
* Removed obsolete exponent marker in float output example.
Richard Kreckel [Fri, 13 Apr 2001 18:27:34 +0000 (18:27 +0000)]
* add::print() shouldn't put parens around overall_coeff.
Richard Kreckel [Fri, 13 Apr 2001 18:26:46 +0000 (18:26 +0000)]
* Remove bogus counter in sqrfree_yun().