Skip to content

elementary_divisors for integer matrices: fix doc string #5009

@jhpalmieri

Description

@jhpalmieri

The doc string for the elementary_divisors method in matrix_integer_dense.pyx says

The elementary divisors are the invariants of the finite
abelian group that is the cokernel of this matrix. 

The word "cokernel" needs to be expanded upon. I think, from trial and error, that this is computing the cokernel of left multiplication by the matrix, and this needs to be clearly stated, especially given other left/right issues with matrices in Sage. (See #1587, for example.)

Furthermore, give at least one example where the matrix isn't square so we can see a bit more clearly on which side the matrix is acting, say a simple matrix like [[3, 0, 0], [0, 0, 0]]. Maybe even include both this and its transpose.

(As an editorial comment, I find it really annoying that methods like this are for left multiplication, while methods like restrict_codomain are for right multiplication, so if I want to use them both, I have to take transposes way too many times.)

Component: linear algebra

Keywords: elementary divisor

Issue created by migration from https://trac.sagemath.org/ticket/5009

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions