X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=NEWS;h=ef550a6c7b09ddd7a038fb7dffb1b0ef8aecd364;hp=81f2975fa5da049c1d633c35fdeff7fff8b82062;hb=ba8a13307a3b0761fcf5187edecc408975c308a6;hpb=6cc3f2ca177a5e5e255aa1b05b30b1bc5ce98373 diff --git a/NEWS b/NEWS index 81f2975f..ef550a6c 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,72 @@ This file records noteworthy changes. -1.0.13 () +1.2.0 () +* Added a structure template class for the easy creation of user-defined + algebraic classes. +* +* +* +* +* Improved the speed of subs(), normal(), to_rational() and to_polynomial() + by the use of maps instead of lists. The old forms + subs(const lst & ls, const lst & lr, unsigned options) + to_rational/to_polynomial(lst & repl) + are still available for compatibility, but using the new forms + subs(const exmap & m, unsigned options) + to_rational/to_polynomial(exmap & repl) + is more efficient, especially when the number of replacements is large. +* quo(), rem(), prem(), sprem(), decomp_rational(), unit(), content(), + primpart() and matrix::charpoly() now take a "const ex &" instead of a + "const symbol &". +* +* Lots of internal streamlining and optimizations. +* Caveats for class implementors: + - basic::copy() and basic::destroy() are gone; classes derived from + basic can use the defaults for the assignment operator and copy + constructor. + - basic::subs(), basic::normal(), basic::to_rational() and + basic::to_polynomial() take 'exmap' objects instead of lists. + - basic::subs() now descends into subexpressions (if accessible via + nops()/op()/let_op()). If you have a custom implementation of subs() + that calls basic::subs() after substituting subexpressions, this needs + to be changed to a call to subs_one_level(). + - lst::thislst() and exprseq::thisexprseq() renamed to thiscontainer(). + - thiscontainer() and associated constructors now take a std::auto_ptr. + - Overloading basic::print() is now deprecated. You should use + print_func<>() class options instead. + +1.1.0 (3 April 2003) +* Removed deprecated macros is_ex_a, is_ex_exactly_a and friends for good. +* The scalar_products mechanism allows the specification of an index dimension. +* Removed dirac_gamma6/7(). +* Added ex::to_polynomial(). +* subs() accepts an optional "options" argument. The option + subs_option::subs_algebraic enables "smart" substitutions in products and + powers. +* Added stream manipulators "dflt", "latex", "python", "python_repr", "tree", + "csrc", "csrc_float", "csrc_double", "csrc_cl_N", "index_dimensions" and + "no_index_dimensions" to control the output format. Calling basic::print() + directly is now deprecated. +* Made the hashing more simple and efficient. +* Caveats for class implementors: + - basic::subs(): third argument changed from "bool" to "unsigned" + - unarchiving constructor and basic::unarchive(): "const" removed from + second argument + - basic::let_op() should only be implemented if write access to + subexpressions is desired + - simplify_ncmul() renamed to eval_ncmul() + - simplified_ncmul() renamed to hold_ncmul() + - nonsimplified_ncmul() renamed to reeval_ncmul() + +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() @@ -10,6 +76,9 @@ This file records noteworthy changes. 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.