]> www.ginac.de Git - ginac.git/blobdiff - NEWS
documentation update
[ginac.git] / NEWS
diff --git a/NEWS b/NEWS
index 41d69fafe681699bf3897d3897be44e66e3be628..ab5d6a7e189b717829f6f684c1763361ad4f53cb 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,201 @@
 This file records noteworthy changes.
 
-0.8.1 (15 April 2001)
+1.0.14 (<date>)
+* Improved the C-source output: complex numbers are printed correctly (using
+  the STL complex<> template or cln::complex()), rational numbers use cl_RA()
+  in the CLN output, and small integers are printed in a more compact format
+  (e.g. "2.0" instead of "2.0000000e+00").
+* function_options::set_return_type() now actually works.
+
+1.0.13 (27 January 2003)
+* Contracting epsilon tensors with Euclidean indices now works.
+* Improved dummy index symmetrization in sums.
+* Added dirac_gammaL/R(), which can be used instead of dirac_gamma6/7()
+  but are single objects, to allow for a more compact notation of Dirac
+  strings.
+* Powers with negative numeric exponents are printed as fractions in the
+  LaTeX output.
+* Added symbolic_matrix() for the convenient creation of matrices filled
+  with symbols.
+* Added collect_common_factors() which collects common factors from the
+  terms of sums.
+* simplify_indexed() converts "gamma~mu*p.mu" to "p\".
+
+1.0.12 (30 October 2002)
+* Fixed a bug in power::expand() that could produce invalid expressions.
+* The input parser no longer ignores extra data following accepted input.
+* Improved the CLN C-source output (integers are printed as integers, and
+  floating point numbers include the precision).
+* Fixed a problem in the LaTeX-output of negative fractions.
+* Added print_latex() and print_csrc() to ginsh.
+* The sprem() function is now public.
+
+1.0.11 (18 September 2002)
+* Fixed a possible memory corruption in contractions of indexed objects with
+  delta or metric tensors.
+* Computing the derivative of a power series object with respect to a symbol
+  that is not the expansion variable now works correctly.
+* Several bugfixes in code generation.
+
+1.0.10 (24 July 2002)
+* Powers of indexed objects are now parenthesized correctly in LaTeX output.
+* Input parser handles indices (they have to be specified in the same list
+  as the symbols).
+* Added some limited support for subspaces in the idx and tensor classes.
+* Fixed a bug in canonicalize() (antisymmetric canonicalization of an already
+  sorted list containing two or more equal objects failed to return 0).
+
+1.0.9 (11 June 2002)
+* simplify_indexed() now raises/lowers dummy indices to canonicalize the index
+  variance. This allows some simplifications that weren't possible before,
+  like eps~a.b~c~d*X.a*X~b -> 0 and X.a~a-X~a.a -> 0.
+* Implemented relational::subs().
+* Fixed bug in simplify_ncmul() for clifford objects.
+
+1.0.8 (31 March 2002)
+* Improvements in memory usage of the expand() methods.
+
+1.0.7 (18 March 2002)
+* Fixed LaTeX output of indexed and matrix objects.
+* Fixed matrix::pow(n) for n==0 and added helper functions to create unit
+  matrices "ex unit_matrix(unsigned, unsigned)".
+
+1.0.6 (4 March 2002)
+* "(x+1).subs(x==x-1)" now returns the correct result "x" instead of "x-1".
+
+1.0.5 (27 January 2002)
+* (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).
+* Fixed a small output bug.
+
+1.0.4 (24 January 2002)
+* Speedup in expand().
+* Faster Bernoulli numbers (Markus Nullmeier).
+* Some minor bugfixes and documentation updates.
+
+1.0.3 (21 December 2001)
+* Fixed a bug where quo() would call vector::reserve() with a negative
+  argument.
+* Fix several bugs in code generation.
+
+1.0.2 (19 December 2001)
+* 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.
+* Add output-support for Python bindings.
+
+1.0.1 (22 November 2001)
+* Function sqrfree() handles a few more cases now.
+* Class relational has real canonical ordering now.
+* Handle obscene libreadline version numbers when building ginsh.
+
+1.0.0 (6 November 2001)
+* Some internal reorganization resulting in a general speed-up.
+* 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.
+
+0.9.4 (20 September 2001)
+* Functions have better support for external scripting languages.
+* Interface cleanups and bugfixes.
+* Fix silly bug in evalf() that prevented things like 2^Pi being computed.
+
+0.9.3 (16 August 2001)
+* series expansion now much more consistent for small order expansion.
+* lsolve() accepts algorithmic hint as parameter.
+
+0.9.2 (31 July 2001)
+* Epsilon tensor is more functional.
+* simplify_indexed() is better at detecting expressions that vanish for
+  symmetry reasons.
+* Several little bugfixes and consistency enhancements.
+
+0.9.1 (27 June 2001)
+* 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.
+* New functions/methods:
+   - find()
+   - remove_first(), remove_last(), sort() and unique() for lists
+   - symmetrize_cyclic()
+   - decomp_rational()
+* 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).
+* 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.
+* color_trace(), dirac_trace(), diff(), expand(), evalf() and normal() work
+  better with container classes, e.g. using color_trace() on a relation will
+  take the trace on both sides, using diff() on a matrix differentiates every
+  element etc.
+* diff() works properly with non-commutative products and indexed objects.
+* New option flag "expand_function_args" for expand().
+* 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)
+  - ex_to_foobar(baz)  ->  ex_to<foobar>(baz)
+* rem(c, p[x], x) (c: numeric, p[x]: polynomial) erroneously returned p[x]
+  instead of c.
+* Small bugfixes in pattern matching.
+* Updated libtool to version 1.4.
+
+0.9.0 (7 June 2001)
+* In the output and in ginsh, lists are now delimited by { } braces, and
+  matrices are delimited by single [ ] brackets.
+* simplify_indexed() renames dummy indices so, e.g., "a.i*a.i+a.j*a.j" gets
+  simplified to "2*a.i*a.i" (or "2*a.j*a.j").
+* New functions/methods:
+   - canonicalize_clifford() (helpful when comparing expressions containing
+     Dirac matrices)
+   - symmetrize() and antisymmetrize()
+   - numer_denom() (return numerator and denominator in one call)
+   - map() (apply function to subexpressions)
+   - evalm() (evaluate sums, products and integer powers of matrices)
+* Added a new function match() for performing pattern matching. subs() and
+  has() also accept patterns as arguments. A pattern can be any expression,
+  optionally containing wildcard objects. These are constructed with the
+  call "wild(<unsigned>)" and are denoted as "$0", "$1" etc. in the output
+  and in ginsh.
+* Positive integer powers of non-commutative expressions (except matrices)
+  are automatically expanded.
+* Removed cint subdirectory, ginaccint is a separate package now due to 
+  packaging considerations.
+* Several little bugfixes.
+
+0.8.3 (11 May 2001)
+* color and clifford classes are functional and documented.
+* New "spinidx" class for dotted/undotted indices.
+* Predefined spinor metric tensor (created by spinor_metric()).
+* Symbols can have a LaTeX name, e.g. symbol s("s", "\\sigma");
+* LaTeX output of indexed objects is much nicer.
+* Fixed some build problems (with recent libreadline).
+* Semantics of arithmetic operators now follows the C++ rules more strictly.
+
+0.8.2 (24 April 2001)
+* degree(), ldegree(), coeff(), lcoeff(), tcoeff() and collect() work with
+  non-symbols as the second argument in ginsh.
+* the argument to collect() can be a list of objects in which case the
+  result is either a recursively collected polynomial, or a polynomial in
+  a distributed form with terms like coeff*x1^e1*...*xn^en, as specified by
+  the second argument to collect().
+* Several bugfixes (including a nasty memory leak in .normal()).
+* class matrix: solve() doesn't call algorithms redundantly any more and
+  inverse() falls back to solve() which works in more general cases.
+
+0.8.1 (16 April 2001)
 * degree(), ldegree(), coeff(), lcoeff(), tcoeff() and collect() can now
   be used with constants, functions and indexed expressions as well, so you
   can use it to collect by powers of Pi or sin(x), or to find the coefficient