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.
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.