Skip to content

Commit

Permalink
Rename rank(A::GrpAbFinGen) to torsion_free_rank
Browse files Browse the repository at this point in the history
Unfortunately the notion of 'rank' for groups clashes with that for abelian groups.
The latter is also known as 'torsion free rank'. Hence I propose to rename `rank`
for abelian groups here accordingly.
  • Loading branch information
fingolfin committed Nov 3, 2023
1 parent c4b9e50 commit 5c4e71a
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion docs/src/abelian/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ nrels(G::GrpAbFinGen)
rels(A::GrpAbFinGen)
is_finite(A::GrpAbFinGen)
is_infinite(A::GrpAbFinGen)
rank(A::GrpAbFinGen)
torsion_free_rank(A::GrpAbFinGen)
order(A::GrpAbFinGen)
exponent(A::GrpAbFinGen)
is_trivial(A::GrpAbFinGen)
Expand Down
8 changes: 4 additions & 4 deletions src/GrpAb/GrpAbFinGen.jl
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
################################################################################

export abelian_group, free_abelian_group, is_snf, ngens, nrels, rels, snf, isfinite,
is_infinite, rank, order, exponent, is_trivial, is_isomorphic,
is_infinite, torsion_free_rank, rank, order, exponent, is_trivial, is_isomorphic,
direct_product, is_torsion, torsion_subgroup, sub, quo, is_cyclic,
psylow_subgroup, is_subgroup, abelian_groups, flat, tensor_product,
dual, chain_complex, is_exact, free_resolution, obj, map,
Expand Down Expand Up @@ -474,12 +474,12 @@ is_finite_gen(A::GrpAbFinGen) = isfinite(snf(A)[1])
################################################################################

@doc raw"""
rank(A::GrpAbFinGen) -> Int
torsion_free_rank(A::GrpAbFinGen) -> Int
Return the rank of $A$, that is, the dimension of the
Return the torsion free rank of $A$, that is, the dimension of the
$\mathbf{Q}$-vectorspace $A \otimes_{\mathbf Z} \mathbf Q$.
"""
rank(A::GrpAbFinGen) = is_snf(A) ? rank_snf(A) : rank_gen(A)
torsion_free_rank(A::GrpAbFinGen) = is_snf(A) ? rank_snf(A) : rank_gen(A)

rank_snf(A::GrpAbFinGen) = length(findall(x -> iszero(x), A.snf))

Expand Down
8 changes: 4 additions & 4 deletions test/GrpAb/GrpAbFinGen.jl
Original file line number Diff line number Diff line change
Expand Up @@ -130,16 +130,16 @@

@testset "Rank" begin
G = abelian_group([3, 15])
@test @inferred rank(G) == 0
@test @inferred torsion_free_rank(G) == 0

G = abelian_group([3, 5])
@test @inferred rank(G) == 0
@test @inferred torsion_free_rank(G) == 0

G = abelian_group([3, 15, 0])
@test @inferred rank(G) == 1
@test @inferred torsion_free_rank(G) == 1

G = abelian_group([3, 5, 0])
@test @inferred rank(G) == 1
@test @inferred torsion_free_rank(G) == 1
end

@testset "Order" begin
Expand Down

0 comments on commit 5c4e71a

Please sign in to comment.