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

Richard B. Kreckel git at ginac.de
Wed Jun 13 23:12:52 CEST 2018


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  26840ecc367d9f9dd4e3758233be1bdd3563cd8a (commit)
      from  48619ed77871a6bcae23df460f426fc34698cd1e (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 26840ecc367d9f9dd4e3758233be1bdd3563cd8a
Author: Vitaly Magerya <vmagerya at gmail.com>
Date:   Wed Jun 13 23:07:45 2018 +0200

    Add optional matrix::rank() algorighm selection.
    
    Before, matrix::rank() was hardcoded to use Bareiss elimination,
    which for some matrices is way too slow (and I had to work around
    this limitation in my own code). I propose adding an argument that
    will allow users to select which elimination scheme to use. The
    argument is the same as matrix::solve() takes (so, solve_algo::*).
    
    I've tried to mimic how a similar argument was added to
    matrix::inverse() by keeping the current set of rank() functions
    and defining separate ones with the 'algo' argument, with the
    old ones calling the new ones with solve_algo::automatic. This
    is instead of using default argument values.
    
    I've also put the code that makes the automatic selection of
    the elimination method into a separate function so that both
    matrix::solve() and matrix::rank() could share it. There's a bit
    of similar code in matrix::determinant(), but since the self
    of determinant algorithms is different from the elimination
    algorithms, it's not clear if these two could be unified.

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

Summary of changes:
 doc/tutorial/ginac.texi |  14 +++----
 ginac/matrix.cpp        | 108 ++++++++++++++++++++++++++----------------------
 ginac/matrix.h          |   4 ++
 3 files changed, 69 insertions(+), 57 deletions(-)


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


More information about the GiNaC-devel mailing list