#14032: determinant() of integer matrices of size in [51,63] broken
----------------------------------+-----------------------------------------
       Reporter:  jdemeyer        |         Owner:  jason, was
           Type:  defect          |        Status:  new       
       Priority:  critical        |     Milestone:  sage-5.7  
      Component:  linear algebra  |    Resolution:            
       Keywords:                  |   Work issues:            
Report Upstream:  N/A             |     Reviewers:            
        Authors:  Jeroen Demeyer  |     Merged in:            
   Dependencies:                  |      Stopgaps:            
----------------------------------+-----------------------------------------
Changes (by {'newvalue': u'Jeroen Demeyer', 'oldvalue': ''}):

  * author:  => Jeroen Demeyer


Old description:

> {{{
> sage: random_matrix(ZZ,60).det()
> [...]
> RuntimeError: maximum recursion depth exceeded while calling a Python
> object
> }}}
>
> It seems that the "padic" algorithm for integer determinants uses one
> implementation for sizes <= 50 and another implementation for sizes >= 64
> and is broken in between those sizes (the reason is suspect two
> implementations is that size 64 is usually a lot faster than size 50).

New description:

 {{{
 sage: random_matrix(ZZ,60).det()
 [...]
 RuntimeError: maximum recursion depth exceeded while calling a Python
 object
 }}}

 The problem was an infinite recursion where we compute a determinant over
 ZZ by working mod p and we compute a determinant over GF(p) by lifting to
 ZZ...

 This recursion got broken because the bound to use !LinBox for matrices
 mod p changed in #12883.  This patch fixes this bound.

 It also does various clean-up of doctests and removes `_det_4x4_unsafe()`
 which only added an extra level of indirection ({{{determinant() ->
 _det_4x4_unsafe() -> four_dim_det()}}})

--

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/14032#comment:5>
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to