I want to use sparse matrices in which the nonzeros are fixed-sized dense matrices. The matrix is of size m*p by n*q with nz nonzero blocks, each of size p by q. Generally p and q are very small but m, n and nz can be large. In a CSC representation of such a matrix, A, the A.colptr and A.rowval arrays are of lengths n+1 and nz, respectively, and A.nzval is a 3-dimensional array of size p by q by nz
Does this type of structure appear elsewhere? I think I have seen descriptions in some sparse matrix packages of arrays like this where p and q might be stencil sizes. I'm fine with creating the structure and its methods myself but I also don't want to reinvent the wheel. Mostly I want to evaluate products of such matrices.