X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=NEWS;h=4ff432d004df07268675f8d0223fa02ed269d4a8;hp=a312179c66aa341724243f7429f2f422ff54a430;hb=6a050869057036805a731bdfe627fda7521131a0;hpb=383d5eb3b0f0506810d9105a268f939125bfc347 diff --git a/NEWS b/NEWS index a312179c..4ff432d0 100644 --- a/NEWS +++ b/NEWS @@ -1,13 +1,93 @@ This file records noteworthy changes. -0.7.1 (--date--) +0.8.3 () +* Symbols can have a LaTeX name, e.g. symbol s("s", "\\sigma"); +* LaTeX output of indexed objects is much nicer. +* Fix 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 + of gamma~0. + Limitations: + - it only works with symbols, constants, functions 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 coeff(), tcoeff(), lcoeff() or collect() on elements of + noncommutative products might return wrong or surprising results. +* subs() no longer only substitutes symbols and indices but performs a more + general "syntactic substitution", i.e. it substitutes whole objects in sub- + expressions. You can subs((a+b)^2,a+b==3) and get 9, but subs(a+b+c,a+b==3) + doesn't do anything. + Limitations: + - substituting numerics (subs(expr, 2==4)) will not replace then in all + occurences; in general, you shouldn't substitute numerics, though. +* Added preliminary (re)implementations of color and clifford classes. +* simplify_indexed(): contraction of symmetric and antisymmetric tensors + is zero. +* Replaced the various print*() member functions by a single print() that + takes a print_context object that determines the output formatting. This + should make it easier to add more output types, such as LaTeX output, + which is based on work by Stefan Weinzierl. +* Added functions to retrieve the properties stored in archive objects + outside of unarchive() (for printing or debugging purposes). +* Some bugfixes (indexed objects, archive writing). +* .collect() on non-polynomials is now algebraically correct. + +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 temporary excess memory. +* 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()