]> www.ginac.de Git - ginac.git/blobdiff - NEWS
degree(), ldegree(), coeff(), lcoeff(), tcoeff() and collect() can now
[ginac.git] / NEWS
diff --git a/NEWS b/NEWS
index ce9c69864d07515e1d1ef3e2bfc685b5ab906148..d68d427b2fbd3044b52af538999ed394ca631e62 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,99 @@
 This file records noteworthy changes.
 
-0.6.0 (...)
+0.8.1 (<date>)
+* degree(), ldegree(), coeff(), lcoeff(), tcoeff() and collect() can now
+  be used with constants and indexed expressions as well, so you can use
+  it to collect by powers of Pi or find the coefficient of gamma~0.
+  Limitations:
+   - it only works with symbols, constants and indexed expressions;
+     trying to find the coefficient of, e.g., "x^2" or "x+y" won't work
+   - it does not know about dummy index summations; the coefficient of
+     gamma~0 in p.mu*gamma~mu should be p.0 but is returned as 0
+   - using the functions on elements of noncommutative products might
+     return wrong or surprising results
+* Added preliminary (re)implementations of color and clifford classes.
+* simplify_indexed(): contraction of symmetric and antisymmetric tensors
+  is zero.
+* Some bugfixes (indexed objects, archive writing).
+
+0.8.0 (24 March 2001)
+* Complete revamp of indexed objects. Instead of multiple classes for
+  indexed things and their indices there is now only one "indexed" class
+  and two types of indices: "idx" for simple indices and "varidx" for
+  indices with variance. There are predefined delta, epsilon and metric
+  tensors, and a function simplify_indexed() that performs canonicalization
+  and dummy index summations. Matrix objects can be indexed for doing simple
+  linear algebra.
+* Added an option "expand_indexed" to expand() to perform expansion of
+  indexed objects like (a+b).i -> a.i + b.i
+* Renamed get_indices() to get_free_indices(), which no longer returns
+  dummy indices and checks the consistency of indices in sums.
+* sqrfree() factorization fixed and improved syntactically.
+* subs() works on matrices.
+* Matrices can be constructed from flat list of elements; diagonal matrices
+  can be constructed from list of diagonal elements with diag_matrix().
+* Fixed memory leak in expand().
+* Operator% for objects of class ncmul has gone.  Use operator* now for that
+  case too, which is much more natural.
+
+0.7.3 (28 February 2001)
+* Several bugfixes and minor performance tunings.
+* Added a section to the tutorial about adding new algebraic classes to GiNaC.
+* Closed many in-source documentation gaps.
+
+0.7.2 (17 February 2001)
+* Several bugfixes in power series expansion, one of them critical.
+
+0.7.1 (7 February 2001)
+* Fix problems with Cint that were caused by CLN's overloaded operator new.
+* Fix compilation errors with GCC3.
+* normal() handles large sums of fractions better and normalizes the exponent
+  of power expressions.
+* expand() always expands the exponent and transforms x^(a+b) -> x^a*x^b.
+* Some bugfixes of series expansion around branch cuts of special functions.
+
+0.7.0 (15 December 2000)
+* Requires CLN 1.1 now.  Class numeric doesn't use an indirect pointer to the
+  actual representation any more.  This is a speedup.
+* mul::expand() was reengineered to not allocate excess temporary memory.
+* Non-integer powers of a symbol are treated as constants by (l)degree() and
+  coeff().  Using these functions on an expression containing such powers used
+  to fail with an internal error message.  The side-effect is that collect()
+  can be used on expressions which are not polynomials.
+* Added a man page for the ginac-config script.
+* Ctor of numeric from char* honors Digits.
+
+0.6.4 (10 August 2000)
+* Complete revamp of methods in class matrix.  Some redundant (and poor)
+  implementations of elimination schemes were thrown out.  The code is now
+  highly orthogonal, more flexible and much more efficient.
+* Some long standing and quite nasty bugs were discovered and fixed in the
+  following functions: add::normal(), heur_gcd(), sr_gcd() and Order_eval().
+
+0.6.3 (25 July 2000)
+* Derivatives are now assembled in a slightly different manner (i.e. they
+  might 'look' different on first sight).  Under certain circumstances this
+  can result in a dramatic speedup because it gives hashing a better chance,
+  especially when computing higher derivatives.
+* Some series expansions of built-in functions have been reengineered.
+* The algorithm for computing determinants can be chosen by the user.  See
+  ginac/flags.h and ginac/matrix.h.
+* The Dilogarithm (Li2) now has floating point evaluation, derivative and a
+  proper series expansion.
+* Namespace 'std' cleanly disentangled, as demanded by ISO/EIC 14882-1998(E).
+* Some minor bugfixes, one major lsolve()-bugfix and documentation updates.
+
+0.6.2 (21 June 2000)
+* ginaccint.bin is now launched by a binary program instead of by a scripts.
+  This allows us to write #!-scripts.  A small test suite for GiNaC-cint was
+  added.
+* Several minor bugfixes.
+
+0.6.1 (18 May 2000)
+* Cleanup in the interface to Cint.  The required version is now Cint 5.14.38.
+* Several bugfixes in target install.
+
+0.6.0 (11 May 2000)
 * IMPORTANT: Several interface changes make programs written with GiNaC 
   much clearer but break compatibility with older versions:
   - f(x).series(x,p[,o]) -> f(x).series(x==p,o)
@@ -14,9 +107,12 @@ This file records noteworthy changes.
 * Expressions can be constructed from strings like this:
     ex e("2*x+y", lst(x, y));
 * ex::to_rational() provides a way to extend the domain of functions like
-  gcd() and divide() that only work on polynomials or rational functions
+  gcd() and divide() that only work on polynomials or rational functions (the
+  good old ex::subs() method reverses this process)
+* Calling diff() on a function that has no derivative defined returns the
+  inert derivative function "Derivative".
 * Several new timings in the check target.  Some of them may be rather rude 
-  at your machine.
+  at your machine, feel free to interrupt them.
 
 0.5.4 (15 March 2000)
 * Some algorithms in class matrix (notably determinant) were replaced by