Re: How to deal with a block of memory when pickling?

Simon King <[email protected]>
Newsgroups gmane.comp.python.pyrex
Message-ID <[email protected]>
Dear Simon, dear Robert,

> Use these functions instead:
> 
> cdef extern from "Python.h":
> 
>     object PyString_FromStringAndSize(char *s, Py_ssize_t len)
>     char* PyString_AsString(object string)
 
Again, thank you for your valuable help! 

As part of a project on the computation of cohomology rings (in terms of 
minimal generators of a graded commutative algebra and a minimal set of 
algebraic relations between them) for finite p-groups, i wrote a 
Pyrex/Cython class "MTX" wrapping Ringe's MeatAxe matrices.

Disadvantage of MTX: 
 It is only for small fields (order <256). But i don't need more.

Advantage: 
 In some tests (dense matrices over GF(7), size 200x200), addition of 
matrices, multiplication by scalars, inversion and various basic 
operations (e.g. transposition) turned out to be faster with MTX than with 
the matrices used by Sage (addition and inversion only slightly, but the 
rest by factors of more than 100).

And, with your help, pickling/unpickling is faster as well, namely by a 
factor of >200 compared with Sage-matrices.

Do you know another piece of free software that is good in dealing with 
matrices over small fields? Perhaps there is some further improvement 
possible, specifically if the matrices are of large size (i need kernels 
of matrices with >1000 rows and columns)? Any hint is welcome!

Cheers
	Simon
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.