An Abstraction-Preserving Block Matrix Implementation in Maple
David J. Jeffrey, Stephen M. Watt
TL;DR
The paper tackles the challenge of performing linear-algebra operations on block-partitioned matrices while preserving their block structure, rather than flattening to a single matrix. It introduces a Maple-based implementation using a recursive data type $BM(kind, er, ec, val)$ and a dedicated module that provides construction, type abstraction, and core algebraic operations, including inversion. A key contribution is the $PLU$ decomposition demonstrated entirely with block-operations, underpinned by a recursive treatment of $2\times2$ block cases and Schur-complement techniques. The approach enables symbolic matrix elements and outlines a path toward performance-oriented, compiled-language implementations, offering a flexible framework for block-matrix computations and algorithm analysis.
Abstract
A Maple implementation of partitioned matrices is described. A recursive block data structure is used, with all operations preserving the block abstraction. These include constructor functions, ring operations such as addition and product, and inversion. The package is demonstrated by calculating the PLU factorization of a block matrix.
