![]() | 1 | initial version |
Yes, what you are looking for is the method ìdealstar
.
See the documentation here: http://doc.sagemath.org/html/en/reference/number_fields/sage/rings/number_field/number_field_ideal.html#sage.rings.number_field.number_field_ideal.NumberFieldFractionalIdeal.idealstar
Following the documentation.
Define a number field K and an ideal A.
sage: K.<a> = NumberField(x^3 - 11)
sage: A = K.ideal(5)
The method idealstar
gives you (OK/A)×.
sage: G = A.idealstar(); G
Multiplicative Abelian group isomorphic to C24 x C4
sage: G.gens()
(f0, f1)
Using the optional argument flag=2
, the generators of (OK/A)× are computed as elements in K.
sage: G = A.idealstar(flag=2)
sage: G.gens()
(f0, f1)
sage: G.gens_values()
(2*a^2 + a - 2, 2*a^2 + 2*a - 2)
![]() | 2 | No.2 Revision |
Yes, what you are looking for is To construct (OK/A)×, use the method ìdealstar
.
See the documentation here: http://doc.sagemath.org/html/en/reference/number_fields/sage/rings/number_field/number_field_ideal.html#sage.rings.number_field.number_field_ideal.NumberFieldFractionalIdeal.idealstar.
Following the documentation.
Define a number field K and an ideal A.
sage: K.<a> = NumberField(x^3 - 11)
sage: A = K.ideal(5)
The method idealstar
gives you (OK/A)×.
sage: G = A.idealstar(); G
Multiplicative Abelian group isomorphic to C24 x C4
sage: G.gens()
(f0, f1)
Using the optional argument flag=2
, the generators of (OK/A)× are computed as elements in K.
sage: G = A.idealstar(flag=2)
sage: G.gens()
(f0, f1)
sage: G.gens_values()
(2*a^2 + a - 2, 2*a^2 + 2*a - 2)
To work with characters, use the method dual_group
.
See the documentation here: http://doc.sagemath.org/html/en/reference/groups/sage/groups/abelian_gps/dual_abelian_group.html.