rivetTDA / rivet

RIVET is a tool for Topological Data Analysis, in particular two-parameter persistent homology.
GNU General Public License v3.0
73 stars 24 forks source link

Organization of MapMatrix Class Hierarchy #111

Open mlesnick opened 6 years ago

mlesnick commented 6 years ago

Recent changes to RIVET restructure the MapMatrix class hierarchy to do away with the linked-list representation of columns, and use a modified version of PHAT's lazy heaps instead.

This new code performs well in terms of speed, but is suboptimal from a design standpoint. I believe there are 6 different classes involved now (before there were four). In this structure, extending the functionality by adding new matrix operations is laborious. The structure should eventually be simplified. More comments about this can be found in comments in map_matrix.h.