Feature #1277
Gaussian row reduction
Description
Julian Danner (Passau) would like CoCoA to offer matrix row reduction via gaussian elimination.
Discuss, design, implement.
History
#1 Updated by John Abbott almost 5 years ago
The request seems reasonable to me.
Not yet sure what the best design might be, but I suggest the following as a start:- assume input matrix is over a field (so we may divide by any non-zero)
- output could be a triple: row-permutation, column-permutation, and "echelon" matrix
The interpretation is that we apply the permutations to the rows and cols of the input matrix, then we do gaussian row reduction (from left to right, and always using the element in position (k,k)
as pivot, unless this element is zero in which case the rest of the matrix is zero).
Perhaps I'll look to see what NTL offers...
#2 Updated by John Abbott almost 5 years ago
NTL's doc shows just one fn gauss
which accepts 2 args: matrix M
and an optional integer w
(default is number of rows in M
); it computes row reduction on the first w
rows of M
.
Mmm, maybe my design is too complicated? :-/
#3 Updated by John Abbott over 4 years ago
- Status changed from New to In Progress
- Assignee set to John Abbott
- % Done changed from 0 to 30
I have a prototype which seems to work.
It is very simple: accepts a matrix, and returns a matrix. No smarts inside; works by columns from left to right.
A couple of quick tests worked.
No doc; no official tests (yet).
#4 Updated by John Abbott about 4 years ago
- Status changed from In Progress to Feedback
- % Done changed from 30 to 90
Now documented. CoCoALib and CoCoA-5.
Do we really need a test?
#5 Updated by John Abbott about 4 years ago
- Status changed from Feedback to Closed
- % Done changed from 90 to 100
- Estimated time set to 1.99 h
I have added a test to test-matrix2.C
.