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!