[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