#12103: Use MeatAxe as an optional back end for dense matrices over `GF(p^n)`, p
odd, n>1, `p^n<255`
-------------------------------------+-------------------------------------
Reporter: SimonKing | Owner: jason, was
Type: defect | Status: needs_work
Priority: major | Milestone: sage-6.4
Component: packages: | Resolution:
experimental | Merged in:
Keywords: linear algebra, | Reviewers:
MeatAxe | Work issues:
Authors: Simon King | Commit:
Report Upstream: None of the above | 191477e697d5fb02c0e6bf7f8b80850e1092d4f6
- read trac for reasoning. | Stopgaps:
Branch: |
u/SimonKing/meataxe |
Dependencies: #19240 |
-------------------------------------+-------------------------------------
Comment (by SimonKing):
I think there is a very severe problem: Error handling.
I thought that meataxe would set an error and then return an error value,
for example in matinv.c in the function zmatinv:
{{{
#!C
if (f1 == FF_ZERO)
{
MTX_ERROR1("%E",MTX_ERR_DIV0);
return -1;
}
}}}
which should propage to the function !MatInverse:
{{{
#!C
if (zmatinv(tmp,dest->Data) != 0)
{
MatFree(dest);
return NULL;
}
return dest;
}}}
And in my wrapper, I also test for the error return value:
{{{
#!python
sig_on()
OUT.Data = MatInverse(self.Data)
sig_off()
if OUT.Data != NULL:
return OUT
raise ArithmeticError("This matrix is not invertible")
}}}
However, it doesn't work. I get an immediate crash of Sage without any
traceback:
{{{
sage: M = MatrixSpace(GF(27,'x'),5).random_element(density=0.4)
sage: M.rank()
4
sage: ~M
matinv.c(50):Division by zero
}}}
Hence, I need to study how meataxe manages to crash everything, even
though it pretends to handle errors.
--
Ticket URL: <http://trac.sagemath.org/ticket/12103#comment:115>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.