The output properties data structure actually defines a more general property about the diagonal, namely, that it is all ones. However, the available input matrix properties only allow the user to specify whether or not there is an implicit unit diagonal. Thus, it is possible that the user could create an input matrix with an explicit unit diagonal, but this condition is not checked when wrapping the data structure. It might be desirable to do this to make optimized triangular solve for the unit diagonal case more efficient.
What is the best way to initialize the dense matrix? For benchmarking, it seems sufficient to initialize all entries to 'tiny' values (here, ), which is faster than calling the random number generator.
For efficiency, this routine does not attempt to pre-scan the matrix data structure and ensure there are no zero diagonals. At least for CSR and CSC input matrices, we should add some kind of check somewhere (e.g., at matrix handle creation time). A similar to-do appears elsewhere in this source.
MBCSR currently has an overly strong interdependence on the BCSR data structure as defined in include/oski/BCSR/format.h because MBCSR contains a pointer to a BCSR object, and moreover initializes the fields of the BCSR object explicitly. We should weaken this dependence by implementing the submatrix instantiation functionality (see the defined but unused structure, oski_submat_t).
Generated on Wed Sep 19 16:41:23 2007 for BeBOP Optimized Sparse Kernel Interface Library by