#7730: hessenberg_form hangs (or is *very* slow)
-------------------------+--------------------------------------------------
Reporter: spancratz | Owner: spancratz
Type: defect | Status: new
Priority: minor | Milestone:
Component: algebra | Keywords: matrices, hessenberg form
Work_issues: | Author:
Upstream: N/A | Reviewer:
Merged: |
-------------------------+--------------------------------------------------
Comment(by spancratz):
I've come a little closer to isolating the problem. Using the matrix from
the code in the problem description and the notation from the method
``hessenbergize`` in file ``matrix2.pyx``, the first problematic case
occurs when ``m = 4`` (in the outer loop) and ``j = 5`` (in the inner
loop). This is the point at which the size of the elements that are
considered changes from a couple of lines to something filling more than
one screen (at a little over 80 characters per line).
Then, in the call to ``add_multiple_of_row_c`` (in the file
``matrix0.pyx``) at the iteration ``c = 4`` in the inner loop an
expression of the form `x + a*y` is formed. The attached file ``x.sage``
contains that particular case as follows:
sage: x, a, y = test_problem()
Now the easier expression ``a*y`` already causes Sage to hang. I can't
see an easy reason for why this computation shouldn't finish, I guess it's
just that *fraction fields* of multivariate polynomial rings are very slow
in the current implementation. In any case, I'll run the code on an idle
machine in a few minutes and post here again in the next few days.
Sebastian
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/7730#comment:3>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.