#6018: Confusing behaviour with Dirichlet characters
-------------------------------------+-------------------------------------
Reporter: davidloeffler | Owner: craigcitro
Type: defect | Status: needs_work
Priority: minor | Milestone: sage-6.4
Component: modular forms | Resolution:
Keywords: Dirichlet | Merged in:
characters | Reviewers:
Authors: David Loeffler, | Work issues:
Peter Bruin | Commit:
Report Upstream: N/A | b03524d51a87612922108e137132f7d55ef13646
Branch: | Stopgaps:
u/pbruin/6018-DirichletGroup_zeta |
Dependencies: #18540 |
-------------------------------------+-------------------------------------
Changes (by {'newvalue': u'David Loeffler, Peter Bruin', 'oldvalue': ''}):
* commit: => b03524d51a87612922108e137132f7d55ef13646
* dependencies: => #18540
* branch: => u/pbruin/6018-DirichletGroup_zeta
* author: => David Loeffler, Peter Bruin
Comment:
Here is a branch implementing a solution which is somewhat like the third
option in the ticket description. The idea is to introduce two different
variants of `DirichletGroup`:
- `DirichletGroup(N, base_ring)`, corresponding to the group
Hom(('''Z'''/''N'''''Z''')^*^, ''R''^*^);
- `DirichletGroup(N, base_ring, zeta[, zeta_order])` corresponding to the
group Hom(('''Z'''/''N'''''Z''')^*^, 〈ζ〉).
If ''R'' is a domain, we also allow the user to only specify `zeta_order`,
in which case the `DirichletGroup` factory tries to compute a suitable
`zeta`.
The difference between the two variants is visible from the string
representation:
{{{
sage: R.<x> = PolynomialRing(QQ)
sage: K.<a> = NumberField(x^4 + 1)
sage: DirichletGroup(5, K)
Group of Dirichlet characters of modulus 5 over Number Field in a with
defining polynomial x^4 + 1
sage: DirichletGroup(5, K, a)
Group of Dirichlet characters of modulus 5 over Number Field in a with
defining polynomial x^4 + 1 with values in the group of order 8 generated
by a
}}}
Because it is no longer mandatory to have a distinguished `zeta`,
Dirichlet characters are by default specified by their values instead of a
vector of integers modulo the order of `zeta`. For efficiency reasons,
this vector is still used whenever a `zeta` is known (whether it has been
specified as in the second syntax above or has been computed at a later
stage).
Besides solving the problems in the ticket description, this ticket
greatly speeds up constructing Dirichlet groups over number fields. This
is because `zeta` is only computed when needed, and hence factoring
cyclotomic polynomials is avoided. This factoring will still happen when
one asks for things like generators or a list of all elements.
David: part of the branch (including some doctests) is based on your
patches; I hope you don't mind me adding you as an author.
--
Ticket URL: <http://trac.sagemath.org/ticket/6018#comment:18>
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 unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.