I’m using Arpack.jl
to get the lowest few eigenvalues of relatively large N x N
matrices. To achive this, I’m first cal sparse(row, col, data)
to get the matrix to the appropriate form. Although the matrices I’m working on are large, N
should be representable with UInt32
, i.e., smaller than 2^32
, so this is what I’m using as the type of row
and col
to save some memory.
So far so good - but I get problems when the number of entries in my matrix is larger than 2^32
. In this case I get an error saying that the IndexType is too small and I should use something larger. They way I understand this is because the IndexType is automatically inferred from the provided arrays row
and col
. Straightforwardly, this can be fixed by simply using UInt64
or any larger type - but this requires quite a bit more memory because instead of two lists of UInt32
I now have to store two long lists of a larger type. Is there a way to specify the IndexType separately? If not: what is the (technical?) reason for this type of implementation?
Or, perhaps, did I understand something completely wrong here? Any help is appreciated - thanks!