Partial Matrix Multiplication

Since sometimes matrices can be very large, it is useful to have a method that can compute partial products of certain groups of the matrix. For example computing products only between users from the same country to each other.

This optimization is done on the join level and not just by filtering out the unwanted results after the product.