EMS-TU-Ilmenau / fastmat

A library to build up lazily evaluated expressions of linear transforms for efficient scientific computing.
https://fastmat.readthedocs.io
Apache License 2.0
24 stars 8 forks source link

The Overlay class: Grow an abstraction layer for a range of Matrices #74

Open ChristophWWagner opened 5 years ago

ChristophWWagner commented 5 years ago

Currently, we feature many matrix types that allow certain basic modifications of already defined matrix instances of limited scope. Among these are:

This issue proposes a new matrix type, referred to as Overlay, which will be a superset of the listed matrices' functionality. In the following sections I will introduce the motivation behind this idea and outline some aspects of implementation.

Scope of this proposal as a list

Basic Idea and structure

Example case

Consider a BlockDiagonal matrix where all blocks are equal In this case the overlay matrix instance is defined by a dictionary contains exacly one pair matrix instance:list of mapping that maps the matrix to-be-repeated-along-main-diagonal matrix instance to the locations it shall appear in the to-be-defined matrix. NOTE: The locations not neccessarily need to share a common block grid and each individual occurance may be transformed (permutated, partialed) as required.

Other effects and new matrix types

Further suggestions

Thank you for the following discussion!