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.
Richard Kreckel [Fri, 17 Aug 2001 21:33:57 +0000 (21:33 +0000)]
- removed manual basepointer-fiddling in construct-on-first-use objects
in favor of ex_to<foo>(obj) functions. This is part of an evil plot
I have to remove all of these and eventually make ex::bp a private thing.
(Incidentally these changes compile to slightly better code. Dunno why.)
Richard Kreckel [Wed, 15 Aug 2001 21:16:19 +0000 (21:16 +0000)]
- remove some explicit accesses to ex::bp by replacing with ex_to<>().
- log_series(): check if the argument expands simply to Order(x^foo) and
if so expand somewhat further in order not to produce rubbish like
log(Order(x)^(-1)... and such.
Richard Kreckel [Tue, 14 Aug 2001 18:52:29 +0000 (18:52 +0000)]
- Remove the -ansi compiler switch in the example since it doesn't
play well with lex.
- Added a passing reference to autogen.sh for brave people who are running
from CVS.
Richard Kreckel [Tue, 14 Aug 2001 18:18:10 +0000 (18:18 +0000)]
- Updated to the optimized version. This allows us to
a) add more tests for consistency
b) actually believe the result of the timings because they were
irreproducible before (due to different branches taken by different
representations, which happens because eariler tests account for
low timings by iterating an unknown number of times thus producing
different hashvalues for symbols in later calculations.)