Richard Kreckel [Fri, 7 Sep 2001 22:53:06 +0000 (22:53 +0000)]
- Make some tests more stringent and meaningful.
Richard Kreckel [Thu, 6 Sep 2001 19:31:49 +0000 (19:31 +0000)]
- replaced dumb consistency check by a rigorous one.
Christian Bauer [Mon, 3 Sep 2001 22:28:30 +0000 (22:28 +0000)]
added a section about error handling
Richard Kreckel [Thu, 23 Aug 2001 18:20:29 +0000 (18:20 +0000)]
- Pearu Peterson's patch for class function giving them better support
for external scripting languages.
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.
Christian Bauer [Wed, 22 Aug 2001 16:10:59 +0000 (16:10 +0000)]
updated my_print2(): every find*() method of archive_node accepts an "index"
parameter
Richard Kreckel [Mon, 20 Aug 2001 22:00:45 +0000 (22:00 +0000)]
- carried on with felonious plot about making ex::bp private.
Richard Kreckel [Mon, 20 Aug 2001 19:42:26 +0000 (19:42 +0000)]
- Fix the evalf(2^Pi) bug reported by Pearu.
Richard Kreckel [Sat, 18 Aug 2001 21:46:14 +0000 (21:46 +0000)]
- carried on with felonious plot about making ex::bp private.
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 [Fri, 17 Aug 2001 00:20:23 +0000 (00:20 +0000)]
- adjust.
Richard Kreckel [Fri, 17 Aug 2001 00:20:02 +0000 (00:20 +0000)]
- config.{guess,sub} updated from FSF.
- NEWS: finalization.
Richard Kreckel [Thu, 16 Aug 2001 22:47:54 +0000 (22:47 +0000)]
- doc update: motivate use of .expand() in basic::series().
Christian Bauer [Thu, 16 Aug 2001 20:08:17 +0000 (20:08 +0000)]
behavior when expanding (x-x_0)^-n is more reasonable
Richard Kreckel [Wed, 15 Aug 2001 21:36:18 +0000 (21:36 +0000)]
- added a check for small log expansions.
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.
Christian Bauer [Tue, 14 Aug 2001 21:23:36 +0000 (21:23 +0000)]
fixed a little const-ness problem
Richard Kreckel [Tue, 14 Aug 2001 21:09:16 +0000 (21:09 +0000)]
- added comment about more recent terminology involving eta(x,y).
Christian Bauer [Tue, 14 Aug 2001 19:00:14 +0000 (19:00 +0000)]
trivial change just to see whether a mail is being sent to ginac-cvs
Richard Kreckel [Tue, 14 Aug 2001 18:56:55 +0000 (18:56 +0000)]
- catch up on changes.
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:51:27 +0000 (18:51 +0000)]
- ginac-config.1: removed (duplicate).
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.)
Richard Kreckel [Tue, 14 Aug 2001 18:13:33 +0000 (18:13 +0000)]
- added another minor shortcut.
Richard Kreckel [Tue, 14 Aug 2001 18:13:16 +0000 (18:13 +0000)]
- added an optional algorithm-switch to lsolve().
Ayeee, this breaks the interface again!
Richard Kreckel [Mon, 13 Aug 2001 15:33:58 +0000 (15:33 +0000)]
- minor shortcut.
Christian Bauer [Wed, 8 Aug 2001 14:47:38 +0000 (14:47 +0000)]
should work with readline 4.1 again
Christian Bauer [Tue, 7 Aug 2001 23:40:55 +0000 (23:40 +0000)]
- increased compatibility with RedHat's readline-4.2-1 package
Richard Kreckel [Tue, 7 Aug 2001 19:04:40 +0000 (19:04 +0000)]
- ex_to<foo>(obj) is a good candidate for asserting is_a<foo>(obj).
Richard Kreckel [Tue, 7 Aug 2001 19:03:26 +0000 (19:03 +0000)]
- use initializers in exception class pole_error.
Richard Kreckel [Thu, 2 Aug 2001 02:53:14 +0000 (02:53 +0000)]
- fixed a very stupid ancient error (older than v0.4.0).
Richard Kreckel [Thu, 2 Aug 2001 02:24:36 +0000 (02:24 +0000)]
- minor ISO cleanup.
Richard Kreckel [Wed, 1 Aug 2001 21:44:50 +0000 (21:44 +0000)]
- pseries::power_const(): check for integer-exponent invariant.
- mul::series(): remove some bloat.
Richard Kreckel [Wed, 1 Aug 2001 17:43:46 +0000 (17:43 +0000)]
- adjust for 0.9.2, close open bugreports.
Richard Kreckel [Tue, 31 Jul 2001 22:48:17 +0000 (22:48 +0000)]
- NEWS: prepare for landing.
- acinclude.m4: <stdlib.h> is evil.
Christian Bauer [Tue, 31 Jul 2001 21:44:36 +0000 (21:44 +0000)]
updated for new behaviour of dirac_slash() and epsilon tensor
Christian Bauer [Tue, 31 Jul 2001 21:44:10 +0000 (21:44 +0000)]
documentation update
Richard Kreckel [Tue, 31 Jul 2001 21:28:10 +0000 (21:28 +0000)]
- fixed example of evalf-function.
Christian Bauer [Tue, 31 Jul 2001 20:31:19 +0000 (20:31 +0000)]
fixed potential crash in power:(l)degree() when used with non-integer
exponents
Christian Bauer [Tue, 31 Jul 2001 19:30:34 +0000 (19:30 +0000)]
exit() is in stdlib.h
Richard Kreckel [Tue, 31 Jul 2001 17:02:00 +0000 (17:02 +0000)]
- configure.in: bumped up version.
- config.{guess,sub}: updated from FSF.
Richard Kreckel [Tue, 31 Jul 2001 17:01:20 +0000 (17:01 +0000)]
- fixed three little standard-conformance issues.
Christian Bauer [Mon, 30 Jul 2001 20:02:34 +0000 (20:02 +0000)]
epsilon tensor contractions evaluate to metric tensors instead of deltas,
which is more general
Richard Kreckel [Mon, 30 Jul 2001 19:09:29 +0000 (19:09 +0000)]
- moved is_of_type and friend macros into utils.h so they can be phased
out in one of the next releases.
- rewrote the foo_evalf() functions without TYPECHECK macros. (Since they
were not flexible enough and some functions need more flexibility than
can be provided by such macros. They are evil anyways.)
- marked the TYPECHECK macros as evil^H^H^H^Hdeprecated.
- implemented a more flexible scheme for some foo_evalf() functions, notably
zeta(3.0) eval's to a float now while zeta(3) doesn't eval, just as is
usual for all the trigonometric functions.
- this day is very hot.
Richard Kreckel [Mon, 30 Jul 2001 19:03:16 +0000 (19:03 +0000)]
- updated semantics of pseries truncation to reflect current version
(since we must not break this one).
Christian Bauer [Mon, 30 Jul 2001 17:32:47 +0000 (17:32 +0000)]
- (a+b)*gamma5 was incorrectly rewritten as -gamma5*(a+b)
Richard Kreckel [Sat, 28 Jul 2001 18:50:22 +0000 (18:50 +0000)]
- Move several comments into doxygen comment blocks.
Christian Bauer [Fri, 27 Jul 2001 18:49:41 +0000 (18:49 +0000)]
- fixed a problem where (p\-m*ONE)*(p\-m*ONE) would be automatically simplified
to complete nonsense...
Christian Bauer [Fri, 27 Jul 2001 04:43:57 +0000 (04:43 +0000)]
fixed bogus assertion
Richard Kreckel [Fri, 27 Jul 2001 03:58:21 +0000 (03:58 +0000)]
- power::eval(): for the case (b_n/b_d)^(e_n/e_d) we now check separately
if we can compute numerator and denominator. This allows us to eval
(3/8)^(1/3) to 1/2*3^(1/3) instead of holding it. For square roots this
is still less clever than what MapleV does, but then again that system
has the funny goof not to touch 8^(1/3) where we immediately eval() to
plain 2; fun, fun, fun...
Oh, and a little memory hole has been squished along the way, too.
Richard Kreckel [Fri, 27 Jul 2001 03:24:46 +0000 (03:24 +0000)]
- no, no, no, there is no such thing as is_of_type<T>(ex&)...
Christian Bauer [Thu, 26 Jul 2001 23:28:08 +0000 (23:28 +0000)]
- epsilon*epsilon contractions work
- dirac_slash(a, D) now constructs a special kind of clifford object (printed
as "a\") instead of creating a "a.symbol42*gamma~symbol42" product. This
helps avoiding problems when doing something like
ex prop = (dirac_slash(p, D) - m * dirac_ONE());
ex I = prop * dirac_slash(l, D) * prop;
where the same dummy index would be used for both p-slash in I. Now it's
perfectly safe to do this. Dummy indices are only created when taking
traces or contracting indices. A nice side-effect of this is that "a\*a\"
immediately gets simplified to a^2.
- The "contraction of symmetric and antisymmetric objects is zero" rule
in simplify_indexed() has been generalized. Now expressions like
"epsilon.i.j.k*A.j*A.k" also get simplified to zero (what GiNaC does is
to assert dummy index exchange symmetry).
Christian Bauer [Thu, 26 Jul 2001 23:19:54 +0000 (23:19 +0000)]
Hm, what exactly changed here...?
Christian Bauer [Thu, 26 Jul 2001 23:19:25 +0000 (23:19 +0000)]
documentation update
Richard Kreckel [Tue, 24 Jul 2001 22:04:43 +0000 (22:04 +0000)]
- in LaTeX context, fractions now print as \frac{n}{d}.
Richard Kreckel [Tue, 24 Jul 2001 00:59:16 +0000 (00:59 +0000)]
- rewrote binary scanning in matrix::pow(), stealing from CLN's expt_pos().
Richard Kreckel [Mon, 23 Jul 2001 21:32:45 +0000 (21:32 +0000)]
- comment: elaborate on matrix::pow().
Richard Kreckel [Mon, 23 Jul 2001 21:32:11 +0000 (21:32 +0000)]
- added Knuth as useful reference.
Christian Bauer [Mon, 23 Jul 2001 21:08:46 +0000 (21:08 +0000)]
- dummy index renaming works better
- implemented contractions of epsilon tensors
Christian Bauer [Mon, 23 Jul 2001 21:07:42 +0000 (21:07 +0000)]
added another map_function example
Christian Bauer [Mon, 23 Jul 2001 21:07:29 +0000 (21:07 +0000)]
- added check for epsilon tensor contraction
- fixed typo
Richard Kreckel [Wed, 18 Jul 2001 22:55:14 +0000 (22:55 +0000)]
- removed this file. it has become obsolete as of libtool-1.4. removing
the file may cause old versions of automake to fail, however. please
apply the patch at the end of libtool-1.4's README to automake if you
encounter this problem (i.e. simply remove 'ltconfig' from the
@libtoolize_files list).
Richard Kreckel [Tue, 17 Jul 2001 19:22:59 +0000 (19:22 +0000)]
- added historical note.
Richard Kreckel [Sat, 30 Jun 2001 19:23:38 +0000 (19:23 +0000)]
- insert class fderivative.
Richard Kreckel [Sat, 30 Jun 2001 19:18:26 +0000 (19:18 +0000)]
- fix typo.
Richard Kreckel [Thu, 28 Jun 2001 19:22:24 +0000 (19:22 +0000)]
- symmetrize eta(x,y).
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)]
added note about the necessity of dirac_ONE()/color_ONE()
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)]
- added ginsh_extensions.h to ginsh_SOURCES.
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)]
added map()
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)
- added lst::sort() and lst::unique()
- status_flags::expanded is only taken into account when no expand options
are specified. This makes it possible to re-expand with other options.
- added expand_options::expand_function_args
- 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
(add(exvector)/mul(exvector) instead of +=/*=)
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)]
added decomp_rational()
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 decomp_rational()
- 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)]
- do something about the mad cast disease.
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)]
fixed comments