Type DirichletGroup
Gens
--+
|
object
--+ |
| |
_uniqDirichletGroup
--+
|
DirichletGroup
The group of Dirichlet character mod modulus with values in the
subgroup <zeta> of the multiplicative group of the base_ring. If
the base_ring is omitted then we use Q(zeta_n), where n is the
exponent of (Z/NZ)^*. If zeta is omitted then we compute and use
a maximal-order zeta in base_ring, if possible.
Creation function:
DirichletGroup(modulus, base_ring=None, zeta=None, zeta_order=None)
INPUT:
modulus -- int
base_ring -- Ring (optional), where characters take their values
(should be an integral domain).
zeta -- Element (optional), element of base_ring; zeta is a root of unity
zeta_order -- int (optional), the order of zeta
OUTPUT:
DirichletGroup -- a group of Dirichlet characters.
NOTES:
Uniqueness -- If a group is created with the same parameters
as another DirichletGroup still in memory, then the same group
is returned instead of a new group defined by the same
parameters.
EXAMPLES:
The default base ring is a cyclotomic field of order the exponent
of (Z/NZ)^*.
>>> DirichletGroup(20)
Group of Dirichlet characters of modulus 20 over Cyclotomic Field of order 4 and degree 2
We create the group of Dirichlet character mod 20 with values
in the rational numbers:
>>> G = DirichletGroup(20, rings.RationalField()); G
Group of Dirichlet characters of modulus 20 over Rational Field
>>> G.order()
4
>>> G.base_ring()
Rational Field
The elements of G print as lists giving the values of the
character on the generators of (Z/NZ)^*:
>>> list(G)
[[1,1], [-1,1], [1,-1], [-1,-1]]
Next we construct the group of Dirichlet character mod 20, but
with values in Q(zeta_n):
>>> G = DirichletGroup(20)
>>> G.list()
[[1,1], [-1,1], [1,zeta_4], [-1,zeta_4], [1,-1], [-1,-1], [1,-zeta_4], [-1,-zeta_4]]
We next compute several invariants of G:
>>> G.gens()
[[-1,1], [1,zeta_4]]
>>> G.unit_gens()
[11, 17]
>>> G.zeta()
zeta_4
>>> G.zeta_order()
4
In this example we create a Dirichlet character with values in a
number field. We have to give zeta, but not its order.
>>> R = rings.PolynomialRing(rings.RationalField()); x = R.gen()
>>> K = rings.NumberField(x**4 + 1); a = K.gen(0)
>>> G = DirichletGroup(5, K, a); G
Group of Dirichlet characters of modulus 5 over Number Field with defining polynomial x^4 + 1
>>> G.list()
[[1], [a^2], [-1], [-a^2]]
Method Summary |
|
__init__(self,
modulus,
base_ring,
zeta,
zeta_order)
|
|
__call__(self,
x)
|
|
__cmp__(self,
other)
|
|
__len__(self)
|
|
__repr__(self)
|
|
base_ring (self)
Returns the base ring of self. |
|
change_base (self,
R)
Returns the Dirichlet group over R with the same modulus as self. |
|
decomposition (self)
Returns the Dirichlet groups of prime power modulus corresponding to
primes dividing modulus. |
|
galois_orbits (self)
Return a list of the Galois orbits of Dirichlet characters in
self. |
|
gen(self,
n)
|
|
gens (self)
Returns generators of self. |
|
integers_mod (self)
Returns the group of integers Z/NZ where N is the modulus of self. |
|
modulus (self)
Returns the modulus of self. |
|
ngens (self)
Returns the number of generators of self. |
|
order(self)
|
|
primitive_character (self)
Returns the primitive character associated to self. |
|
unit_gens (self)
Returns the minimal generators for the units of (Z/NZ)^*, where N is
the modulus of self. |
|
zeta (self)
Returns the chosen root zeta of unity in the base ring R. |
|
zeta_order (self)
Returns the order of the chosen root zeta of unity in the base ring
R. |
Inherited from object |
|
__delattr__ (...)
x.__delattr__('name') <==> del x.name |
|
__getattribute__ (...)
x.__getattribute__('name') <==> x.name |
|
__hash__ (x)
x.__hash__() <==> hash(x) |
|
__reduce__ (...)
helper for pickle |
|
__reduce_ex__ (...)
helper for pickle |
|
__setattr__ (...)
x.__setattr__('name', value) <==> x.name = value |
|
__str__ (x)
x.__str__() <==> str(x) |
Inherited from Gens |
|
__getattr__ (self,
attrname)
|
|
__getitem__ (self,
n)
|
|
__getslice__ (self,
n,
m)
|
|
list (self)
|
base_ring(self)
Returns the base ring of self.
-
|
change_base(self,
R)
Returns the Dirichlet group over R with the same modulus as
self.
-
|
decomposition(self)
Returns the Dirichlet groups of prime power modulus corresponding to
primes dividing modulus.
-
|
galois_orbits(self)
Return a list of the Galois orbits of Dirichlet characters in
self.
The Galois group is the absolute Galois group of the prime subfield
of Frac(R).
-
|
integers_mod(self)
Returns the group of integers Z/NZ where N is the modulus of
self.
-
|
modulus(self)
Returns the modulus of self.
-
|
ngens(self)
Returns the number of generators of self.
-
|
primitive_character(self)
Returns the primitive character associated to self.
-
|
unit_gens(self)
Returns the minimal generators for the units of (Z/NZ)^*, where N is
the modulus of self.
-
|
zeta(self)
Returns the chosen root zeta of unity in the base ring R.
-
|
zeta_order(self)
Returns the order of the chosen root zeta of unity in the base ring
R.
-
|