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

Merge(Circulant, MLCirulant) and Merge(Toeplitz, MLToeplitz) #56

Closed ChristophWWagner closed 5 years ago

ChristophWWagner commented 5 years ago

As both effectively already share most of its code there is no reason not to combine them as from a user's perspective why should it be different to instantiate a Circulant matrix with a ndarray and get something with multiple levels?

ChristophWWagner commented 5 years ago

Does it actually make sense to merge MLToeplitz with Toeplitz?

The iterfaces are:

Toeplitz(vecC, vecR)
MLToeplitz(tenT)

Furthermore, MLToeplitz implicitly generates levels of square shape (we should stress this point a bit in the docs, at least with a hint) whereas Toeplitz can handle arbitrary shape.

Of course we could handle both cases transparently but then merging would not help things.

I would suggest to just merge when we can achieve a consistent interface for both, i.e. Toeplitz(tenC, tenR) and have arbitrary level-shape support for Toeplitz

ChristophWWagner commented 5 years ago

Resolved in #69