sparse-outer-product