Richard Kreckel [Thu, 4 Jul 2002 19:50:27 +0000 (19:50 +0000)]
* Include the operators.h header file in the source files, not in ex.h.
Rationale: It really gets in the way there, when trying to strip down
the source files for debugging purposes.
Richard Kreckel [Wed, 3 Jul 2002 21:33:20 +0000 (21:33 +0000)]
* Enable tests N, Q and Q' by default.
Rationale: Hubert finally is buying new cool hardware. ;-)
* New test for expanding x^(x-1)*x. Complain to JvdH. ;-)
Richard Kreckel [Wed, 3 Jul 2002 21:31:50 +0000 (21:31 +0000)]
* Include the operators.h header file in the source files, not in ex.h.
Rationale: It really gets in the way there, when trying to strip down
the source files for debugging purposes.
* are_ex_trivially_equal(): use this only when reasonable, i.e. when
an operation on all children was a no-op such that the this pointer is
returned.
Richard Kreckel [Wed, 10 Apr 2002 18:57:06 +0000 (18:57 +0000)]
* numeric::calchash(): Apply golden_ratio_hash() to the value returned
by CLN. (Rationale: this populates more bits for the frequent small
integers resulting in much less opportunity for funny cancellations in
hash-values of monomials.)
Christian Bauer [Fri, 25 Jan 2002 18:33:01 +0000 (18:33 +0000)]
- (l)degree(s), coeff(s, n) and collect(s) were extended to accept expressions
of any class (except add/mul/ncmul/numeric) for "s". They should even work
if "s" is a "power" object, as long as the exponent is non-integer, but with
some limitations. For example, you can "collect(a*2^x+b*2^x, 2^x)" to get
"(a+b)*2^x", but "degree(2^(3*x), 2^x)" yields 0 instead of 3).
Christian Bauer [Tue, 18 Dec 2001 18:48:06 +0000 (18:48 +0000)]
- input parser recognizes "sqrt()", which is also used in the output
- divide(a,b,q) only modifies q if the division succeeds; also, divide(a,b,a)
works now
- fixed small bug in dummy index renaming which could cause it to not
recognize renamable indices in some cases
- power::degree() and power::ldegree() throw an exception when encountering
a non-integer exponent
Richard Kreckel [Sat, 17 Nov 2001 18:48:46 +0000 (18:48 +0000)]
* sqrfree(ex, lst): after factoring in the first variable, we forgot to call
sqrfree again in the remaining variables for the constant term. For
example, the expanded polynomial (x+1)*(y-1)*z only found one of the
factors, no matter which variable order was specified in lst.
Richard Kreckel [Thu, 1 Nov 2001 19:27:43 +0000 (19:27 +0000)]
* Make installdirs before trying to write there.
(NB: Dunno why this worked before, it seems totally unrelated to the
last patch, judging from the generated Makefiles.)
Christian Bauer [Mon, 29 Oct 2001 19:29:02 +0000 (19:29 +0000)]
The last 3 evaluated expressions in ginsh are now referred to with the
tokens '%', '%%' and '%%%'. The old '"', '""' and '"""' remain for
compatibility but may be removed in a future version of GiNaC.
Christian Bauer [Mon, 29 Oct 2001 19:03:06 +0000 (19:03 +0000)]
- renamed configure.in to configure.ac as suggested in the autoconf docs
- removed acconfig.h in favour of 3-argument AC_DEFINE_UNQUOTED
- autoupdated configure.ac
- removed the following files which are generated by the autogen.sh script:
config.guess, config.sub, install-sh, ltmain.sh, missing, mkinstalldirs
This means that you have to run autogen.sh on a machine with sufficiently
recent version of autoconf (2.50), automake (1.5) and libtool (1.4)
Richard Kreckel [Sun, 28 Oct 2001 17:37:50 +0000 (17:37 +0000)]
* Hahaha! The second of the two tests was actually BS(tm) but this was only
triggered with nonvanishing probability on systems like IRIX with a weak
rand() function. Added a little additional check to trap those cases.
Richard Kreckel [Sun, 28 Oct 2001 14:58:24 +0000 (14:58 +0000)]
* Require Autoconf 2.50.
Rationale: Older versions set YYTEXT_POINTER wrong in config.h for nearly
all non-Linux platforms resulting in a build failure.
Note to developers: you either need to install your own autoconf or run
autogen.sh on a Debian Woody platform (which has a hybrid 2.13/2.52
installation of Autoconf, choosing 2.13 by default and 2.52 if AC_PREREQ
asks for it. Sorry.
Richard Kreckel [Sat, 27 Oct 2001 20:18:51 +0000 (20:18 +0000)]
* Headers only include <iosfwd> from now on, since that contains all the
necessary forward declarations without bringing in the whole big
<iostream> header.