[SciPy-dev] bug: indexing CSR matrix, 64bits
Fri May 9 12:17:34 CDT 2008
On Fri, May 9, 2008 at 4:46 AM, Robert Cimrman <firstname.lastname@example.org> wrote:
> indexing by slices is broken on a 64 bit machine. On a 32 bit one, all
> is ok. Is something missing in the INSTANTIATE_ALL macro in sparsetools.i?
Robert, I can't reproduce your problem on my system (Ubuntu 8.04, Athlon 64):
Linux droog 2.6.24-16-generic #1 SMP Thu Apr 10 12:47:45 UTC 2008
Since your .indptr and .indices arrays are 32-bits, I doubt that the
problem is with INSTANTIATE_ALL. Currently sparsetools does not
instantiate functions using 64-bit indices because it doubles the
compilation time and it's not likely that anyone will have sparse
matrices with dimensions >= 2**31 anytime soon. OTOH I don't know
what else it could be so please try the following:
1) do a completely fresh install of numpy/scipy (rm -rf build and rm
-rf /site-packages/scipy )
See if the problem still exists.
2) instantiate additional "long long" versions of the sparsetools functions:
First check that you have a recent SWIG:
$ swig -version
SWIG Version 1.3.34
Add the following after line 145 of sparsetools.i
DECLARE_INDEX_TYPE( long long )
Then, for each line that looks like:
174 %template(f_name) f_name<int,signed char>;
175 %template(f_name) f_name<int,unsigned char>;
176 %template(f_name) f_name<int,short>;
187 %template(f_name) f_name<int,npy_clongdouble_wrapper>;
add a long long version also, e.g.
%template(f_name) f_name<long long,signed char>;
Lastly, regenerate the SWIG wrappers as described here:
This will rule out the possible backend problems.
Also, can you tell me what your C compiler thinks sizeof(int) is?
Nathan Bell email@example.com
More information about the Scipy-dev