I'm having some issues with integer matrices.  I have a matrix mat:

sage: mat
891 x 1559 sparse matrix over Integer Ring
sage: mat.rank()  # this takes a long time
sage.bin(75404,0xa06be720) malloc: *** mmap(size=447524864) failed
(error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
---------------------------------------------------------------------------
PariError                                 Traceback (most recent call
last)
...
PariError: not enough memory (48)


On the other hand:

sage: mat.dense_matrix().rank()  # this is pretty quick
891

Similarly for elementary divisors: the sparse case makes Sage crash:

sage: mat.elementary_divisors()
sage.bin(75404,0xa06be720) malloc: *** mmap(size=2097152) failed
(error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
sage.bin(75404,0xa06be720) malloc: *** mmap(size=2097152) failed
(error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug

------------------------------------------------------------
Unhandled SIGBUS: A bus error occured in SAGE.
This probably occured because a *compiled* component
of SAGE has a bug in it (typically accessing invalid memory)
or is not properly wrapped with _sig_on, _sig_off.
You might want to run SAGE under gdb with 'sage -gdb' to debug this.
SAGE will now terminate (sorry).
------------------------------------------------------------

The dense case finishes successfully and pretty quickly.

I've had some similar issues before; if you have a sparse matrix over
the integers, it seems as though you should always convert it to a
dense matrix before doing anything to it.  (This doesn't seem true
over a field; rank works for both dense and sparse matrices, and at
least for some sparse ones, rank is faster without converting.)

Questions:

1. for anyone familiar with the code, do these observations make
sense?  Is it sensible to convert sparse integer matrices to dense
ones before doing anything else?

2. Are there any guidelines about how large a matrix Sage (or Pari)
can handle without barfing?  For example, if I'm using a Mac with 2GB
of memory, or if I'm using sage.math?

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to