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.
Richard Kreckel [Mon, 22 Oct 2001 17:59:49 +0000 (17:59 +0000)]
* Some internal reorganization WRT flyweight handling and initialization,
resulting in a general speed-up.
Wherever thou hast written _ex7() thou shalt write _ex7 from now on.
Richard Kreckel [Wed, 22 Aug 2001 20:11:48 +0000 (20:11 +0000)]
- Cleanups: My evil plot of making ex::bp private may finally be carried
out, provided one changes all the is_of_type(obj,type) to is_a<type>(obj)
which we don't do right now because it would degrade performance on
gcc-2.95.x. Also, ex_to_type(obj) has gone for good now, we have been
having ex_to<type>(obj) long enough. ex_to_nonconst_type(obj) have gone
as well, since they are almost never used and one can always cast aways
the constness explicitly if need should arise.