On Wed, Apr 25, 2012 at 4:58 PM, Jed Brown <[email protected]> wrote:
On Wed, Apr 25, 2012 at 16:41, Barry Smith <[email protected]> wrote:
I admit MatSetVirtualColumnBlockSize() is clunky and would be happy to hear alternatives.
What about having a separate row and column block size? The BAIJ and MAIJ formats can continue to store data using bs=gcd(rowbs,colbs), but those row and column block sizes indicate that redundancy exists in the data structure, so it can be utilized by appropriate operations.
I agree. In fact, P's "column block size" (cbs) has exactly that meaning in the GAMG code (e.g., formProl0() in gamg/agg.c) -- it sets matrix values in adjacent multiples of cbs within each row. MatPtAP() could easily impart that block size (cbs = rbs, in this case) to its result. This way the meaning of "column block size" and "row block size" are meaningful for any matrix and not just within some particular context. Dmitry.