#9332: S_class_group() should return a group
-------------------------------------------------------------+--------------
Reporter: stankewicz | Owner:
davidloeffler
Type: enhancement | Status:
needs_work
Priority: major | Milestone:
Component: number fields | Keywords:
Author: Jim Stankewicz, Erin Beyerstedt, Anna Haensch | Upstream:
N/A
Reviewer: | Merged:
Work_issues: |
-------------------------------------------------------------+--------------
Comment(by cremona):
Replying to [comment:9 davidloeffler]:
> The AttributeError comes up because attributes whose names start with an
underscore are private, and ones with two underscores are "very private"
-- so private that they aren't even accessible to subclasses. So when code
in {{{FractionalIdealClass}}} sets {{{__ideal}}}, code in the subclass
{{{SFractionalIdealClass}}}. In fact it is still accessible but under a
mangled name: see [http://docs.python.org/tutorial/classes.html#private-
variables].
>
> But there is another, deeper, bug which will be uncovered when you fix
this. After my changes at #9244, a {{{FractionalIdealClass}}} stores both
a representing ideal of that class, accessed via {{{self.ideal()}}}, and
an expression for self in terms of the generators of its parent class
group, accessed via {{{self.list()}}}. The way you've set this up,
elements of an S-class group use the same data structure, but the data
which {{{list()}}} uses is set completely wrongly: it's set to the
exponents of the given ideal in terms of the generators of the class
group, but it should be in terms of the generators of the **S-class
group**. What you need to do is to store somewhere the expressions for the
generators of the S-class group in terms of the generators of the class
group (i.e. the matrix of the quotient map) and then multiply the output
of {{{_ideal_class_log}}} by this.
>
> This is the sort of stuff that #6449 was intended to solve: quotients of
abelian groups should be automatically handled by general code, rather
than having to do it by hand in every specific example.
David, you should have been at Sage Days!
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9332#comment:10>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.