The RIVET code is optimized for computing bigraded Betti numbers in the case where the bigrades of generators (simplices) live on a relatively small grid; for larger grids, our code has some memory inefficiencies that should be fairly straightforward to address.
-Currently, we implicitly store bigrades of all generators in a dense matirx called the IndexMatrix whose dimensions are the same as those of a grid containing all generators. We would probably want to move to a row-sparse version of the IndexMatrix.
-Currently, we compute and store the dimension function (i.e. Hilbert function) of the module during the Betti number computation, and use this to expedite the computation of xi_2. This works well for problems on a small gird. However, for a Betti number computation on a large grid, we would want to instead compute xi_2 directly, and avoid computing the dimension function altogether.
The need for these improvements is mitigated by the fact that in practice, there is little or no problem with light coarsening of the module. But given that we are also interested in scalable bigraded Betti number computation, these improvements may be worth implementing.
The RIVET code is optimized for computing bigraded Betti numbers in the case where the bigrades of generators (simplices) live on a relatively small grid; for larger grids, our code has some memory inefficiencies that should be fairly straightforward to address.
-Currently, we implicitly store bigrades of all generators in a dense matirx called the IndexMatrix whose dimensions are the same as those of a grid containing all generators. We would probably want to move to a row-sparse version of the IndexMatrix.
-Currently, we compute and store the dimension function (i.e. Hilbert function) of the module during the Betti number computation, and use this to expedite the computation of xi_2. This works well for problems on a small gird. However, for a Betti number computation on a large grid, we would want to instead compute xi_2 directly, and avoid computing the dimension function altogether.
The need for these improvements is mitigated by the fact that in practice, there is little or no problem with light coarsening of the module. But given that we are also interested in scalable bigraded Betti number computation, these improvements may be worth implementing.