Skip to content

Sparse matrix multiplication incorrect documentation #76

@GregorySchwartz

Description

@GregorySchwartz

(#~#^) 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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions