sparse-linear-algebra
sparse-linear-algebra copied to clipboard
Sparse matrix multiplication incorrect documentation
(#~#^) should be A B^T and vice versa for (#~^#). The documentation and function is above anb below the wrong type signature in each one respectively. Solution is to swap type signatures.
Wrong:
-- | Sparsifying A^T B
(#~#^) :: (MatrixRing (SpMatrix a), Epsilon a) =>
SpMatrix a -> SpMatrix a -> SpMatrix a
a #~^# b = transpose a #~# b
-- | Sparsifying A B^T
(#~^#) :: (MatrixRing (SpMatrix a), Epsilon a) =>
SpMatrix a -> SpMatrix a -> SpMatrix a
a #~#^ b = a #~# transpose b
Right:
-- | Sparsifying A^T B
(#~^#) :: (MatrixRing (SpMatrix a), Epsilon a) =>
SpMatrix a -> SpMatrix a -> SpMatrix a
a #~^# b = transpose a #~# b
-- | Sparsifying A B^T
(#~#^) :: (MatrixRing (SpMatrix a), Epsilon a) =>
SpMatrix a -> SpMatrix a -> SpMatrix a
a #~#^ b = a #~# transpose b