Generic Matrix Multiplication and Memory Management in LinBox

Erich Kaltofen, Dmitriy Morozov, George Yuhasz.
Proceedings of the 2005 International Symposium on Symbolic and Algebraic Computation, pages 216-223, 2005.
PDF ISSAC'05
Official ACM version: through ACM portal
Abstract
We describe the design and implementation of two components in the LinBox library. The first is an implementation of black box matrix multiplication as a lazy matrix-times-matrix product. The implementation uses template meta-programming to set the intermediate vector type used during application of the matrix product. We also describe an interface mechanism that allows incorporation of external components with native memory management such as garbage collection into LinBox. An implementation of the interface based on SACLIB's field arithmetic procedures is presented.