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
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
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!