[GiNaC-list] [patch] Add 'algo' parameter to matrix::rank()
Richard B. Kreckel
kreckel at in.terlu.de
Sun Jun 10 14:01:16 CEST 2018
On 06/07/2018 05:39 PM, Vitaly Magerya wrote:
> Hi, folks. Currently matrix::rank() is 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.
Could you, please, include an update of doc/tutorial/gianc.texi in your
patch? Thanks in advance!
-richy.
More information about the GiNaC-list
mailing list