Linear Algebra Library based on SciD

Cristi Cobzarenco

Abstract

This is a proposal for a linear algebra for D that allows for natural mathematical expressions to be converted into high performance BLAS calls at compile time.

Additional Information

The library builds upon SciD by Lars Kylingstad. There are three milestones in the development of the project:

1. New Matrix & Vector Types - SciD only provides MatrixView which is inadequate for most uses. I will implement customizable, generic Matrix and Vector classes with exchangeable storage. Depending on the storage type they can either have value or reference semantics. They will support full slicing capabilities.

2. Expression Templates - Convert expressions into ASTs at compile time and convert those into BLAS calls avoiding any unnecessary temporary allocation.

3. Sparse Algebra - Add support for sparse data types and provide seamless integration with the dense data types.

Code samples