Table of Contents
Fetching ...

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.

An Abstraction-Preserving Block Matrix Implementation in Maple

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 and a dedicated module that provides construction, type abstraction, and core algebraic operations, including inversion. A key contribution is the decomposition demonstrated entirely with block-operations, underpinned by a recursive treatment of 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.
Paper Structure (11 sections, 4 equations, 3 figures)

This paper contains 11 sections, 4 equations, 3 figures.

Figures (3)

  • Figure 1: $2\times2$rblock case of PLU_Decomp
  • Figure 2: Inversion of a block matrix whose blocks are all singular. The symbols $R,M,Z,S$ respectively indicate recursive, matrix, zero and scalar nodes. The last line verifies the matrix and inverse multiply to give an identity matrix.
  • Figure 3: $PLU$ decomposition of a block matrix and check of result