I have a proposed enhancement:
I'm using a Reed Solomon code over GF(2**16) and the G matrix gets around 7-8gb. Since its a systematic code, a k sized block of G is the identity matrix, which is typically the majority of that 7-8gb.
I noticed in the source code that optimizations are made to avoid multiplication by the identity for systematic codes but storage of that matrix is still done.
Besides just not being wasteful this has the benefit in enabling faster serialization of a galois.ReedSolomon object. With the newest version (0.4.10) of galois it takes about 20 seconds for me to generate a ReedSolomon object or alternatively about 16 seconds to de-serialize one from pickle. shrinking the memory footprint would greatly speed up de-serialization allowing me to speed code that relies on a predefined long RS code.
(also thanks again for this great library!)
I have a proposed enhancement:
I'm using a Reed Solomon code over
GF(2**16)and theGmatrix gets around 7-8gb. Since its a systematic code, aksized block ofGis the identity matrix, which is typically the majority of that 7-8gb.I noticed in the source code that optimizations are made to avoid multiplication by the identity for systematic codes but storage of that matrix is still done.
Besides just not being wasteful this has the benefit in enabling faster serialization of a
galois.ReedSolomonobject. With the newest version (0.4.10) of galois it takes about 20 seconds for me to generate aReedSolomonobject or alternatively about 16 seconds to de-serialize one from pickle. shrinking the memory footprint would greatly speed up de-serialization allowing me to speed code that relies on a predefined long RS code.(also thanks again for this great library!)