tabmat
tabmat copied to clipboard
Matrix optimizations
- [ ] Add to the benchmark suite: problems with mild and severe row restrictions, problems with mild and severe column restrictions.
- [ ] Add exceptions everywhere for when cols is None or rows is None.
- [ ] Add output array as an optional argument to dot/transpose_dot/sandwich. This will be useful for avoiding unnecessary allocations. It will solve https://github.com/Quantco/quantcore.matrix/issues/25 and will enable some improvements in speed, particularly for SplitMatrix.dot which is allocating a new output array for each submatrix. After the optimization, SplitMatrix will only need one output array instead of len(matrices). Relatedly (complete now): flatironinstitute/sparse_dot#9
- [ ] Cythonize row and column limiting for categorical sandwiches (currently just have rows)
- [ ] Think about reducing duplication across different implementations that differ based on whether rows or cols are restricted: https://github.com/Quantco/quantcore.matrix/issues/5 -- is there some inspiration that would come from thinking about the restrictions as sparse matrices?
Relatedly: https://github.com/flatironinstitute/sparse_dot/issues/9