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

Make _getNormalized great again! #31

Closed SebastianSemper closed 5 years ago

SebastianSemper commented 6 years ago

For some transforms, i.e. MLCirculant, MLToeplitz and MLUltraSound/BlkTwoLvlToep the _getNormalized function is highly inefficient, since each time a product is spawned instead of recreating the matrices with new defining elements.

possible issues with recreating the matrices is that we might get two explicit copies of the same transform only with scaled defining elements. might be problematic when working with really large transforms such that storing the defining elements actually becomes an issue.

ChristophWWagner commented 6 years ago

As it turned out the observed functional trouble with OMP(Circulant(...), ...) could be resolved in dd8954dc7e890e3499ef7aea58b766b668111858. Therefore it is technically speaking not a bug but more a performance caveat.

As the recreation of matrices in fact has its ups and downs we should open this point for discussion.

SebastianSemper commented 5 years ago

Addressed in various commits and pull requests concerning normalization and renaming and stuff like this. closing.