Introduction
Within Hecke, abelian groups are of generic abstract type GrpAb
which does not have to be finitely generated,
Basic Creation
Finitely presented (as FinGenAbGroup
with elements of type FinGenAbGroupElem
. The creation is mostly via a relation matrix
abelian_group Method
abelian_group(::Type{T} = FinGenAbGroup, M::ZZMatrix) -> FinGenAbGroup
Creates the abelian group with relation matrix M
. That is, the group will have ncols(M)
generators and each row of M
describes one relation.
abelian_group Method
abelian_group(::Type{T} = FinGenAbGroup, M::AbstractMatrix{<:IntegerUnion})
Creates the abelian group with relation matrix M
. That is, the group will have ncols(M)
generators and each row of M
describes one relation.
abelian_group Method
abelian_group(::Type{T} = FinGenAbGroup, M::AbstractMatrix{<:IntegerUnion})
Creates the abelian group with relation matrix M
. That is, the group will have ncols(M)
generators and each row of M
describes one relation.
Alternatively, there are shortcuts to create products of cyclic groups:
abelian_group Method
abelian_group(::Type{T} = FinGenAbGroup, M::AbstractVector{<:IntegerUnion}) -> FinGenAbGroup
abelian_group(::Type{T} = FinGenAbGroup, M::IntegerUnion...) -> FinGenAbGroup
Creates the direct product of the cyclic groups M
.
julia> G = abelian_group(2, 2, 6)
(Z/2)^2 x Z/6
or even
free_abelian_group Method
free_abelian_group(::Type{T} = FinGenAbGroup, n::Int) -> FinGenAbGroup
Creates the free abelian group of rank n
.
abelian_groups Method
abelian_groups(n::Int) -> Vector{FinGenAbGroup}
Given a positive integer
julia> abelian_groups(8)
3-element Vector{FinGenAbGroup}:
(Z/2)^3
Z/2 x Z/4
Z/8
Invariants
is_snf Method
is_snf(G::FinGenAbGroup) -> Bool
Return whether the current relation matrix of the group
number_of_generators Method
number_of_generators(G::FinGenAbGroup) -> Int
Return the number of generators of
nrels Method
number_of_relations(G::FinGenAbGroup) -> Int
Return the number of relations of
rels Method
rels(A::FinGenAbGroup) -> ZZMatrix
Return the currently used relations of
torsion_free_rank Method
torsion_free_rank(A::FinGenAbGroup) -> Int
Return the torsion free rank of
See also rank
.
order Method
order(A::FinGenAbGroup) -> ZZRingElem
Return the order of
exponent Method
exponent(A::FinGenAbGroup) -> ZZRingElem
Return the exponent of
elementary_divisors Method
elementary_divisors(G::FinGenAbGroup) -> Vector{ZZRingElem}
Given