[GiNaC-devel] [SCM] GiNaC -- a C++ library for symbolic computations branch, master, updated. release_1-4-0-146-g4fb48e2

Jens Vollinga git at ginac.de
Mon Oct 20 09:55:36 CEST 2008


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GiNaC -- a C++ library for symbolic computations".

The branch, master has been updated
       via  4fb48e28063e08c613a773378cfa5de608560a84 (commit)
       via  d327f3f00c66a79d42855939866047b3e8caa630 (commit)
       via  434e5582627a91aa4d8fdb5156d975482a7f350c (commit)
       via  8fdf123fe6dac43ad7b8020d7bb7446c51cf75e7 (commit)
       via  94e5076a9ad0d142ee4604e9b078a10083efd24c (commit)
       via  32209e57010f19f080cc25e527347bcaa36053ec (commit)
       via  def26469ff96228c66e877bb5594e7d9a24b638f (commit)
       via  09988aee53a2bfef87fc887a434b4c78d6326c47 (commit)
       via  12fefbca9b424cb8e9ae05d83883b96e17c7b96e (commit)
       via  b573b0146341709649f373e0fc5c0d440877ebaf (commit)
       via  e858ebe524f9beac33d492b9a4e614666819c3ab (commit)
       via  11fcbe7ea462936b79807a1f12273e5685f3f744 (commit)
       via  e9b5729311fcd5572d806f5df2e645e1845603e5 (commit)
       via  ce9053c15affb2a1a99d1157b85266d70aec601b (commit)
       via  c7d9b624cb4bd5658a36fbcac2f73dbdb99edd5f (commit)
       via  47b7f9c9b4a5bd91c7c83b12bac8481b55bf4b92 (commit)
       via  55fcb39a1209898ec43694f7e25ffb4572b0c4d1 (commit)
       via  62923ac249c7e4f7e824bc37030ac79bab3675f3 (commit)
       via  d5c76f155cfbd25ccfd14735b6d1041e23214a86 (commit)
       via  ceb63120f43b41b62dcb0328231a3137d666161b (commit)
      from  a377cee53b71348235ec36f83afeced7e10288a8 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4fb48e28063e08c613a773378cfa5de608560a84
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Sun Oct 19 20:21:33 2008 +0400

    tutorial: simplify the instructions on writing extension classes.
    
    Don't mention (un)archiving while describing the `mystring' class
    (the minimalistic extension class), so readers have less chances to get
    confused.

commit d327f3f00c66a79d42855939866047b3e8caa630
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Sun Oct 19 19:39:30 2008 +0400

    Don't force every algebraic class to implement archiving/unarchiving.
    
    So people who don't use (un)archiving don't need to bother with it.

commit 434e5582627a91aa4d8fdb5156d975482a7f350c
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Fri Oct 17 17:57:27 2008 +0400

    tutorial: don't mention custom RTTI any more (as it does not exist).

commit 8fdf123fe6dac43ad7b8020d7bb7446c51cf75e7
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Thu Oct 16 15:43:32 2008 +0400

    symbol: make get_domain() a virtual method, remove symbol::domain.
    
    This cuts yet another 4 bytes from GiNaC::symbol. While at it, fix a memory
    leak in ginsh.

commit 94e5076a9ad0d142ee4604e9b078a10083efd24c
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Thu Oct 16 15:43:32 2008 +0400

    symbol: don't bother to set TeX name if user did not specified one.
    
    Same for the usual name. As a result we use less memory (and the output
    is exactly the same).

commit 32209e57010f19f080cc25e527347bcaa36053ec
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Fri Oct 17 14:56:54 2008 +0400

    symbol: remove return_type_tinfo() and return_type() (shrink symbol by 8 bytes)
    
    Bloating symbol to the state sizeof(symbol) == 64 is not appreciated at all.
    If someone needs/wants non-commutative symbols or other fancy stuff, please
    derive from class symbol and do whatever you want.

commit def26469ff96228c66e877bb5594e7d9a24b638f
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Fri Oct 17 13:41:01 2008 +0400

    Wipe out remnants of custom RTTI.
    
    Custom RTTI considered harmful, final part.

commit 09988aee53a2bfef87fc887a434b4c78d6326c47
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Wed Oct 15 15:32:11 2008 +0400

    registered_class_info: use typeid() instead of tinfo_static.
    
    (Custom RTTI considered harmful, part 5).
    
    Since custom RTTI is going to be removed, registered_class_info needs to be
    re-organazied. Now tinfo_key is a (const) pointer to std::type_info.

commit 12fefbca9b424cb8e9ae05d83883b96e17c7b96e
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Fri Oct 17 13:15:03 2008 +0400

    A better return_type_tinfo() mechanism.
    
    return_type_tinfo() is used in order to distingish between non-commutative
    objects of different type. However, often it's necessary to distingish
    between non-commutative objects of the same type, for example, between
    gamma matrices with different representation label. return_type_tinfo()
    does not provide any clean way to do that. Hence, introduce return_type_t
    type which holds representation label along with type information, and
    use it for return_type_tinfo().

commit b573b0146341709649f373e0fc5c0d440877ebaf
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Wed Oct 15 15:32:11 2008 +0400

    calchash(): use type_info::name() instead of tinfo().
    
    Custom RTTI considered harmful, part 4.
    
    The hash value of the object of different types should be different whenever
    possible. Hence calcash() needs a unique per type number. Previously we used
    tinfo_key for this. typeinfo::name() (a *pointer* to implementation dependent
    string) is also unique for each class, so it's just as good as tinfo() is.

commit e858ebe524f9beac33d492b9a4e614666819c3ab
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Wed Oct 15 15:32:11 2008 +0400

    indexed::eval: use standard C++ RTTI.
    
    Custom RTTI considered harmful, part 3.

commit 11fcbe7ea462936b79807a1f12273e5685f3f744
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Wed Oct 15 15:32:11 2008 +0400

    basic, expairseq: use standard C++ RTTI in compare(), is_equal(), match(), etc.
    
    Custom RTTI considered harmful, part 2.
    
    * basic.cpp: use standard C++ RTTI in compare(), is_equal(), operator=(),
      match().
    * expairseq.cpp: use standard C++ RTTI in match(), make_flat(),
      construct_from_2_ex().

commit e9b5729311fcd5572d806f5df2e645e1845603e5
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Wed Oct 15 15:32:11 2008 +0400

    is_exactly_a: use typeid() to check the type of expression.
    
    Custom RTTI considered harmful, part 1.
    
    Custom run time type information (RTTI) system implemented in GiNaC have
    several serious drawbacks, such as
    
    1. It makes writing GiNaC classes unnecessary cumbersome.
    2. It wastes sizeof(void *) bytes per object, for small objects like
       symbol, numeric, etc. this overhead is considerable.
    
    It turns out that GiNaC's RTTI is not any faster than the standard one
    (at least on GNU/Linux and Solaris with GNU C++ library and compiler).
    So, GiNaC RTTI have no reasons to exit any more.

commit ce9053c15affb2a1a99d1157b85266d70aec601b
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Wed Oct 15 10:16:07 2008 +0400

    ptr.h: use unsigned int to store reference counts (in order to save memory).
    
    We'll hardly ever get more than 2^32 references to the same object. So using
    size_t to store reference count only wastes 4 bytes per object (on 64-bit
    architecture). Use unsigned int instead.

commit c7d9b624cb4bd5658a36fbcac2f73dbdb99edd5f
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Sun Oct 19 21:27:14 2008 +0400

    Rewritten heuristic and PRS GCD for univariate polynomials, added benchmark.
    
    Using a better data structure for univariate polynomials makes GCD 10 -- 300
    times faster (and less memory hungry).

commit 47b7f9c9b4a5bd91c7c83b12bac8481b55bf4b92
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Tue Oct 14 10:44:07 2008 +0400

    polynomial: introduce a helper function to divide polynomial by ring element.

commit 55fcb39a1209898ec43694f7e25ffb4572b0c4d1
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Tue Oct 14 10:37:42 2008 +0400

    mod_gcd: naive hack to chose a 'good' prime (to speed up gcd computation).

commit 62923ac249c7e4f7e824bc37030ac79bab3675f3
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Mon Sep 29 09:58:35 2008 +0400

    [bugfix] remainder_in_ring: using exact division is plain wrong.

commit d5c76f155cfbd25ccfd14735b6d1041e23214a86
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Mon Sep 29 09:53:46 2008 +0400

    [bugfix] normalize_in_ring: don't set the leading coefficient to 1.
    
    The coefficient ring is not a field, so the leading coefficient don't
    have to be 1.

commit ceb63120f43b41b62dcb0328231a3137d666161b
Author: Alexei Sheplyakov <varg at theor.jinr.ru>
Date:   Thu Sep 25 13:19:57 2008 +0400

    [trivial] excompiler.cpp: shut up some silly compiler warnings.
    
    GCC warns about 'comparison between signed and unsigned integer expressions'.
    In this case such comparison is harmless, but still it's a bit annoying.

-----------------------------------------------------------------------

Summary of changes:
 check/Makefile.am                         |    4 +
 check/exam_archive.cpp                    |    3 +-
 check/test_runner.h                       |   67 +
 check/time_uvar_gcd.cpp                   | 1877 +++++++++++++++++++++++++++++
 doc/examples/mystring.cpp                 |   24 +-
 doc/tutorial/ginac.texi                   |  195 +---
 ginac/Makefile.am                         |    6 +
 ginac/add.cpp                             |   12 +-
 ginac/add.h                               |    3 +-
 ginac/archive.cpp                         |   46 +-
 ginac/archive.h                           |   80 ++
 ginac/basic.cpp                           |   47 +-
 ginac/basic.h                             |   31 +-
 ginac/clifford.cpp                        |   40 +-
 ginac/clifford.h                          |   25 +-
 ginac/color.cpp                           |   34 +-
 ginac/color.h                             |   12 +-
 ginac/constant.cpp                        |   20 +-
 ginac/constant.h                          |    7 +-
 ginac/container.h                         |  104 +-
 ginac/ex.h                                |    3 +-
 ginac/excompiler.cpp                      |    6 +-
 ginac/expairseq.cpp                       |   38 +-
 ginac/expairseq.h                         |    3 +
 ginac/exprseq.h                           |    3 -
 ginac/fail.cpp                            |    3 +-
 ginac/fail.h                              |    2 +
 ginac/fderivative.cpp                     |    9 +-
 ginac/fderivative.h                       |    3 +
 ginac/function.pl                         |   40 +-
 ginac/idx.cpp                             |   29 +-
 ginac/idx.h                               |   12 +-
 ginac/indexed.cpp                         |   22 +-
 ginac/indexed.h                           |    7 +-
 ginac/integral.cpp                        |   12 +-
 ginac/integral.h                          |    8 +-
 ginac/lst.cpp                             |    3 +
 ginac/lst.h                               |    4 +-
 ginac/matrix.cpp                          |   20 +-
 ginac/matrix.h                            |    6 +
 ginac/mul.cpp                             |   17 +-
 ginac/mul.h                               |    3 +-
 ginac/ncmul.cpp                           |   23 +-
 ginac/ncmul.h                             |    4 +-
 ginac/numeric.cpp                         |   24 +-
 ginac/numeric.h                           |    6 +
 ginac/polynomial/eval_uvar.h              |   38 +
 ginac/polynomial/gcd_uvar.cpp             |   33 +
 ginac/polynomial/heur_gcd_uvar.h          |   66 +
 ginac/polynomial/interpolate_padic_uvar.h |   40 +
 ginac/polynomial/mod_gcd.cpp              |   12 +-
 ginac/polynomial/normalize.tcc            |    3 +-
 ginac/polynomial/prem_uvar.h              |   47 +
 ginac/polynomial/remainder.tcc            |    2 +-
 ginac/polynomial/ring_traits.hpp          |   13 +
 ginac/polynomial/sr_gcd_uvar.h            |   95 ++
 ginac/polynomial/upoly.hpp                |   31 +
 ginac/power.cpp                           |   11 +-
 ginac/power.h                             |   12 +-
 ginac/pseries.cpp                         |   10 +-
 ginac/pseries.h                           |    5 +
 ginac/ptr.h                               |   10 +-
 ginac/registrar.cpp                       |   10 -
 ginac/registrar.h                         |   75 +-
 ginac/relational.cpp                      |   16 +-
 ginac/relational.h                        |    8 +-
 ginac/structure.h                         |   35 +-
 ginac/symbol.cpp                          |  231 ++--
 ginac/symbol.h                            |   79 +-
 ginac/symmetry.cpp                        |   15 +-
 ginac/symmetry.h                          |    6 +
 ginac/tensor.cpp                          |   26 +-
 ginac/tensor.h                            |   19 +-
 ginac/utils.cpp                           |    2 +
 ginac/utils.h                             |   16 +-
 ginac/wildcard.cpp                        |   15 +-
 ginac/wildcard.h                          |    6 +
 ginsh/ginsh.h                             |    2 +-
 ginsh/ginsh_lexer.ll                      |    8 +-
 79 files changed, 3121 insertions(+), 823 deletions(-)
 create mode 100644 check/test_runner.h
 create mode 100644 check/time_uvar_gcd.cpp
 create mode 100644 ginac/polynomial/eval_uvar.h
 create mode 100644 ginac/polynomial/gcd_uvar.cpp
 create mode 100644 ginac/polynomial/heur_gcd_uvar.h
 create mode 100644 ginac/polynomial/interpolate_padic_uvar.h
 create mode 100644 ginac/polynomial/prem_uvar.h
 create mode 100644 ginac/polynomial/sr_gcd_uvar.h


hooks/post-receive
--
GiNaC -- a C++ library for symbolic computations


More information about the GiNaC-devel mailing list