X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=NEWS;h=0b32e11773d7d403b52d50cf416016d0f2fb50c8;hp=544721fc0fcfba67a9571c50f8669a2b3ae44db0;hb=69a9c8e530d6f430b660f1caec465ad4cd7cca66;hpb=9be13abd83a350a3e9a30c539e80c46d4f3b17d6 diff --git a/NEWS b/NEWS index 544721fc..0b32e117 100644 --- a/NEWS +++ b/NEWS @@ -1,26 +1,177 @@ This file records noteworthy changes. -0.9.0 () +1.0.14 (1 March 2003) +* 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() and function_options::do_not_evalf_params() + now actually work. + +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(foo) + - is_ex_of_type(foo, type) -> is_a(foo) + - is_exaclty_of_type(foo, type) -> is_exaclty_a(foo) + - is_ex_exaclty_of_type(foo, type) -> is_exaclty_a(foo) + - ex_to_foobar(baz) -> ex_to(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". + 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) + - numer_denom() (return numerator and denominator in one call) - map() (apply function to subexpressions) - - evalm() (evaluate sums and products of matrices) + - 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()" and are denoted as "$0", "$1" etc. in the output and in ginsh. -* Fixed possible crash when calling subs() on expressions with non-commutative - products. -* Positive integer powers of non-commutative expressions are automatically - expanded. +* 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.