I understand that Julia made the decision to support only a single sparse matrix format (in the standard library, anyway) - CSC (compressed sparse column).
I tried searching and couldn’t find any discussion of why this was chosen as opposed to supporting both CSC and CSR.
Certain operations are much more efficient using CSR, especially certain multiplications. As an example, if supporting both CSC and CSR, then transpose becomes trivial and the common computation transpose(A) * A (for least square approximation and many other usages) becomes much more efficient.
Is there some thread somewhere that discusses this? Is it at all likely that Julia will “natively” support additional compressed formats? I assume it is always possible to support such formats as an additional package, but I couldn’t find any generic CSR package - all the packages I could find weren’t generic (e.g., CUSPARSE.jl).