Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elementary divisors for non PIDs #8226

Open
sagetrac-mraum mannequin opened this issue Feb 10, 2010 · 5 comments
Open

Elementary divisors for non PIDs #8226

sagetrac-mraum mannequin opened this issue Feb 10, 2010 · 5 comments

Comments

@sagetrac-mraum
Copy link
Mannequin

sagetrac-mraum mannequin commented Feb 10, 2010

Over maximal orders O in number fields K the elementary divisors provide a complete system of invariants for in matrices GL_n(K). Here the elementary divisors are the ideals e_i = d_i / d_{i-1} where d_i are the determinantal divisors. This patch provides the possibility to compute these elementary divisors.

Component: number fields

Keywords: elementary divisors

Work Issues: should be a separate named function

Author: Martin Raum

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

@sagetrac-mraum sagetrac-mraum mannequin added this to the sage-5.11 milestone Feb 10, 2010
@sagetrac-mraum
Copy link
Mannequin Author

sagetrac-mraum mannequin commented Feb 10, 2010

Attachment: trac-8226-elementary_divisors.patch.gz

@JohnCremona
Copy link
Member

comment:2

There looks like a typo on line 6293.

@sagetrac-mraum
Copy link
Mannequin Author

sagetrac-mraum mannequin commented Feb 21, 2010

comment:3

Replying to @JohnCremona:

There looks like a typo on line 6293.

Acutally no. The statement "raise" raises the last exception one has cached and this is exactly what I want. If the SMNF can't be obtainted by means of the algorithm implemented at the moment - and this is indicated by an ArithmeticError - I check whether I can do it diffently. If not the original ArithmeticError with its trac back is the most useful error message.
Do you think diffently about this?

The best would be to check whether a ring is a PID or not. Then decide on the algorithm to use. But this isn't even implemented for ZZ, so no chance to do it.

@loefflerd
Copy link
Mannequin

loefflerd mannequin commented Jun 29, 2010

comment:4

I think mraum's point is a fair one: re-raising the original error will generally be more helpful than raising a new one (e.g. it might give an explicit example of a non-principal ideal in the base ring).

But I don't like the idea that smith_form will sometimes return elements and sometimes ideals. I totally agree that we should have the functionality to compute these elementary divisor ideals, but it should be a separate function, with smith_form raising an error when the elementary divisors aren't principal. Also, Pari has a fast algorithm for this problem, so we should use that rather than devising our own; see #4742.

@loefflerd
Copy link
Mannequin

loefflerd mannequin commented Jun 29, 2010

Work Issues: should be a separate named function

@jdemeyer jdemeyer modified the milestones: sage-5.11, sage-5.12 Aug 13, 2013
@sagetrac-vbraun-spam sagetrac-vbraun-spam mannequin modified the milestones: sage-6.1, sage-6.2 Jan 30, 2014
@sagetrac-vbraun-spam sagetrac-vbraun-spam mannequin modified the milestones: sage-6.2, sage-6.3 May 6, 2014
@sagetrac-vbraun-spam sagetrac-vbraun-spam mannequin modified the milestones: sage-6.3, sage-6.4 Aug 10, 2014
@mkoeppe mkoeppe removed this from the sage-6.4 milestone Dec 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants