Richard Kreckel [Wed, 27 Jun 2001 23:26:23 +0000 (23:26 +0000)]
- finalize.

Richard Kreckel [Wed, 27 Jun 2001 23:13:54 +0000 (23:13 +0000)]
- finalize.

Richard Kreckel [Wed, 27 Jun 2001 23:07:30 +0000 (23:07 +0000)]
- eta(x,y) was broken all along since ages: eta(I,I) for instance ought
to return 0 but... that formula that reduces eta(x,y) to theta functions
is basically to naive.

Richard Kreckel [Wed, 27 Jun 2001 23:05:49 +0000 (23:05 +0000)]
- finalize.

Richard Kreckel [Wed, 27 Jun 2001 23:05:32 +0000 (23:05 +0000)]
- minor cleanup

Christian Bauer [Wed, 27 Jun 2001 19:16:04 +0000 (19:16 +0000)]
added print_tree-style output for symmetry objects

Christian Bauer [Wed, 27 Jun 2001 19:15:31 +0000 (19:15 +0000)]
- added fderivative class to archive exam
- added slightly more complex symmetries to indexed exam

Christian Bauer [Wed, 27 Jun 2001 00:32:25 +0000 (00:32 +0000)]
moved ToString() here from utils.h

Christian Bauer [Wed, 27 Jun 2001 00:32:01 +0000 (00:32 +0000)]
- replaced the Derivative() function by a more resonable fderivative class;
to see it in action, try "series(abs(x),x==0,3)" and "series(abs(x),x==y,3)"
in ginsh with previous GiNaC releases and with this one
- add::eval() throws an exception when the first term is non-commutative and
the overall_coeff is non-zero
- small fixes to print_tree output of indexed objects
- ncmul::expand() now actually does expand something like "(dirac_gamma(mu)+1)
*dirac_gamma(nu)" correctly (but the change to add::eval() should make this
a "can't happen" case)
- moved ToString() to tostring.h (fewer header dependencies)
- ALL YOUR "BASES CLASSES" ARE BELONG TO US

Christian Bauer [Wed, 27 Jun 2001 00:26:24 +0000 (00:26 +0000)]

Christian Bauer [Wed, 27 Jun 2001 00:25:55 +0000 (00:25 +0000)]
adjusted for the fact that "A + c" is now rejected by add::eval if A is
noncommutative and c is a numeric

Richard Kreckel [Tue, 26 Jun 2001 23:52:41 +0000 (23:52 +0000)]
- silly test

Richard Kreckel [Tue, 26 Jun 2001 23:43:45 +0000 (23:43 +0000)]
- Updated to libtool 1.4 from FSF.

Richard Kreckel [Tue, 26 Jun 2001 23:41:32 +0000 (23:41 +0000)]

Richard Kreckel [Tue, 26 Jun 2001 21:19:34 +0000 (21:19 +0000)]
* Ctors of class numeric are not explicit any more.  All built-in callers for
pseudofunctions are now templated and default to ex arguments which relaxes
the need for explicit ctors.

Christian Bauer [Mon, 25 Jun 2001 22:32:26 +0000 (22:32 +0000)]
fixed some -Wall stuff

Christian Bauer [Mon, 25 Jun 2001 22:04:11 +0000 (22:04 +0000)]

Christian Bauer [Mon, 25 Jun 2001 22:04:03 +0000 (22:04 +0000)]
some more comments and cleanups to mul::expand() and ncmul::expand()

Christian Bauer [Mon, 25 Jun 2001 22:02:52 +0000 (22:02 +0000)]
- documented map(), find(), and new symmetry specifications for indexed objects
- added some ginsh examples for collect()

Richard Kreckel [Mon, 25 Jun 2001 00:18:10 +0000 (00:18 +0000)]
some cleanups

Christian Bauer [Sat, 23 Jun 2001 16:52:04 +0000 (16:52 +0000)]
- added find() (like has(), but returns list of all occurrences)
- status_flags::expanded is only taken into account when no expand options
are specified. This makes it possible to re-expand with other options.
- collect(foo, {}) doesn't crash any more
- introduced match_same_type() method which is slightly similar to
is_equal_same_type() but doesn't check subexpressions. Fixed a number of
match() bugs with this (e.g. a==b matched a!=b, and matrices with different
dimensions but the same number of elements could match). Only container
classes with additional member variables that have to be equal for a match
need to implement match_same_type().

Christian Bauer [Fri, 22 Jun 2001 22:02:28 +0000 (22:02 +0000)]
added a way to add more functions to ginsh in the file ginsh_extensions.h
(this is used by the xloops-variant of ginsh)

Christian Bauer [Fri, 22 Jun 2001 01:03:27 +0000 (01:03 +0000)]
some cleanups

Richard Kreckel [Fri, 22 Jun 2001 00:44:13 +0000 (00:44 +0000)]
* shift stuff into CVS before I start breaking things.   :-)

Christian Bauer [Thu, 21 Jun 2001 19:32:57 +0000 (19:32 +0000)]
removed a lot of superfluous const_cast<>()s

Christian Bauer [Tue, 19 Jun 2001 23:58:40 +0000 (23:58 +0000)]
some sections where sums/products are constructed are slightly more efficient

Richard Kreckel [Tue, 19 Jun 2001 22:58:20 +0000 (22:58 +0000)]
* Fix the other half of the test.

Richard Kreckel [Tue, 19 Jun 2001 21:33:04 +0000 (21:33 +0000)]
* Fix a bitch of a bug where 1<I (and all other relationals) returned true.
This did not happen for the binary relational operators between numerics.
Now the behaviour is more consistent (throwing exceptions when the difference
becomes complex).
* Some regression tests were actually wrong in the light of this bug.  :-(

Christian Bauer [Tue, 19 Jun 2001 19:50:14 +0000 (19:50 +0000)]

Christian Bauer [Tue, 19 Jun 2001 19:50:02 +0000 (19:50 +0000)]
- The default implementations of evalf(), diff(), normal() and expand() use
map() where useful. This has the nice effect of having a more reasonable
default behaviour for container functions (most of the evalfchildren() etc.
stuff is gone).
- diff() works with non-commutative products (product rule) and no longer
bails on indexed objects.
- added sqrfree_parfrac() which doesn't yet work in the general case and
is unsupported

Christian Bauer [Tue, 19 Jun 2001 19:45:42 +0000 (19:45 +0000)]
documentation update

Richard Kreckel [Mon, 18 Jun 2001 16:03:31 +0000 (16:03 +0000)]

Richard Kreckel [Sun, 17 Jun 2001 20:33:40 +0000 (20:33 +0000)]
* fix strange indentation thingie.

Christian Bauer [Sat, 16 Jun 2001 20:23:26 +0000 (20:23 +0000)]

Christian Bauer [Sat, 16 Jun 2001 20:23:21 +0000 (20:23 +0000)]
bumped archive version because of new way of specifying symmetry for indexed
objects

Richard Kreckel [Sat, 16 Jun 2001 20:13:15 +0000 (20:13 +0000)]
* Remove some cruft.

Richard Kreckel [Sat, 16 Jun 2001 18:38:00 +0000 (18:38 +0000)]
* Supplement some (now deprecated) macros by inlined template functions:
- ex_to_foobar(baz)  ->  ex_to<foobar>(baz).
* De-document is_of_type(obj, type) and document is_a<type>(obj).
* De-document ex_to_type(obj) and document ex_to<type>(obj) eliminating the
need to declare one's one inline converters in the mystring example.

Richard Kreckel [Sat, 16 Jun 2001 18:35:50 +0000 (18:35 +0000)]
* Supplement some (now deprecated) macros by inlined template functions:
- ex_to_foobar(baz)  ->  ex_to<foobar>(baz).

Richard Kreckel [Sat, 16 Jun 2001 18:35:45 +0000 (18:35 +0000)]
* Supplement some (now deprecated) macros by inlined template functions:
- ex_to_foobar(baz)  ->  ex_to<foobar>(baz).
* Bump up minor version.

Richard Kreckel [Fri, 15 Jun 2001 19:20:52 +0000 (19:20 +0000)]
* Supplement some (now deprecated) macros by inlined template functions:
- is_of_type(foo, type) -> is_a<type>(foo)
- is_ex_of_type(foo, type) -> is_a<type>(foo)
- is_exaclty_of_type(foo, type) -> is_exaclty_a<type>(foo)
- is_ex_exaclty_of_type(foo, type) -> is_exaclty_a<type>(foo)

Richard Kreckel [Tue, 12 Jun 2001 22:52:22 +0000 (22:52 +0000)]
- Just because it's fun: make the test more general using a formula for
the closed form of the result suggested by David B.

Richard Kreckel [Tue, 12 Jun 2001 22:51:39 +0000 (22:51 +0000)]
- Fix GCC 2.95.x brokenness.

Richard Kreckel [Tue, 12 Jun 2001 14:55:49 +0000 (14:55 +0000)]
- cruft removed.

Christian Bauer [Mon, 11 Jun 2001 23:49:51 +0000 (23:49 +0000)]
introduced new class for constructing symmetry tree definitions

Christian Bauer [Mon, 11 Jun 2001 23:48:43 +0000 (23:48 +0000)]
- Instead of just totally symmetric or antisymmetric, complex symmetries
can now be defined for indexed objects. Symmetries are described by a
tree of "symmetry" objects that is constructed with the sy_none(),
sy_symm(), sy_anti() and sy_cycl() functions. The symmetry of a function
with respect to its arguments can also be defined (this is currently
only used for the Beta function).
- color_trace() and dirac_trace() can be applied to a more general class
of expressions, e.g. using it on a relation will take the trace on both
sides etc.
- Generalized map() to take a function object instead of a function pointer.
This allows passing an arbitrary number of additional state to the
function being called.
- The unarchiving functinos find_bool(), find_unsigned() and find_string()
can take an additional "index" argument.

Christian Bauer [Mon, 11 Jun 2001 23:46:44 +0000 (23:46 +0000)]
fixed typos

Christian Bauer [Mon, 11 Jun 2001 23:46:39 +0000 (23:46 +0000)]
adapted for new method of specifying symmetries

Christian Bauer [Mon, 11 Jun 2001 23:46:15 +0000 (23:46 +0000)]
documentation update

Christian Bauer [Sat, 9 Jun 2001 19:17:32 +0000 (19:17 +0000)]
- antisymmetrize() is slightly faster
- ensure_if_modifiable() clears the hash_calculated flag

Richard Kreckel [Thu, 7 Jun 2001 22:48:08 +0000 (22:48 +0000)]
- Updated to reflect new version and split-off of ginaccint.

Richard Kreckel [Thu, 7 Jun 2001 22:27:59 +0000 (22:27 +0000)]
- don't recomment EGCS any more, it's crappy.

Richard Kreckel [Thu, 7 Jun 2001 22:27:15 +0000 (22:27 +0000)]
- insert date.

Richard Kreckel [Thu, 7 Jun 2001 22:26:43 +0000 (22:26 +0000)]
- some concept index tags.

Richard Kreckel [Thu, 7 Jun 2001 22:26:16 +0000 (22:26 +0000)]
- matrix::pow(): omit last big multiplication if it's not needed.

Christian Bauer [Thu, 7 Jun 2001 22:02:15 +0000 (22:02 +0000)]
building DVI/PS in separate directory now works

Christian Bauer [Thu, 7 Jun 2001 20:09:21 +0000 (20:09 +0000)]
- maximum number of arguments for lists bumped to 16 (for making 4x4 matrices)
- added non-const operator() for setting matrix elements

Christian Bauer [Thu, 7 Jun 2001 20:07:54 +0000 (20:07 +0000)]

Christian Bauer [Thu, 7 Jun 2001 20:07:44 +0000 (20:07 +0000)]
using () operator for setting matrix elements

Christian Bauer [Thu, 7 Jun 2001 20:07:32 +0000 (20:07 +0000)]
documentation update

Christian Bauer [Wed, 6 Jun 2001 22:17:38 +0000 (22:17 +0000)]
- mentioned that powers of matrices are not automatically expanded
- fixed typos

Richard Kreckel [Wed, 6 Jun 2001 22:16:02 +0000 (22:16 +0000)]
- Removed obsolete (even for Cint!) malloc_alloc template arguments.

Richard Kreckel [Wed, 6 Jun 2001 22:15:21 +0000 (22:15 +0000)]
- Removed cint subdir for good because the new separate package seems to
work properly now (after some longish argument with makecint).

Richard Kreckel [Wed, 6 Jun 2001 22:15:18 +0000 (22:15 +0000)]
- config.*: updated from FSF.
- Removed cint subdir for good because the new separate package seems to
work properly now (after some longish argument with makecint).

Richard Kreckel [Tue, 5 Jun 2001 21:07:04 +0000 (21:07 +0000)]
- inserted a couple of missing namepace std:: resolutions.

Richard Kreckel [Tue, 5 Jun 2001 20:59:12 +0000 (20:59 +0000)]
- document: collect's argument must be expanded.

Richard Kreckel [Tue, 5 Jun 2001 15:26:35 +0000 (15:26 +0000)]
- Small LaTeX output fixes as suggested by Stefan.

Christian Bauer [Tue, 5 Jun 2001 15:18:29 +0000 (15:18 +0000)]
- fixed typos
- c*M^n with M being a matrix wasn't correctly evalm()'d for n!=1

Richard Kreckel [Tue, 5 Jun 2001 13:55:01 +0000 (13:55 +0000)]
- ++version_major.
- added matrix::pow() to handle integer exponents with the least amount of
multiplications possible and...
- ...added power::evalm() to actually use it.
- some cleanups.

Christian Bauer [Fri, 1 Jun 2001 22:50:33 +0000 (22:50 +0000)]
- list delimiters are now { } and matrix delimiters are [ ]

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)]

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)]
- 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)]

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)]
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

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)]