From 6c312cfef3455138d6338411479600ebf42c5e10 Mon Sep 17 00:00:00 2001 From: kalmar Date: Thu, 11 May 2017 18:19:59 +0200 Subject: [PATCH] hash, isone, change_pow, length for FPSymbol --- src/FPGroups.jl | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/FPGroups.jl b/src/FPGroups.jl index 65e1bbd..642c40b 100644 --- a/src/FPGroups.jl +++ b/src/FPGroups.jl @@ -54,6 +54,14 @@ end (G::FPGroup)(s::FPSymbol) = G(FPGroupElem(s)) +hash(s::FPSymbol, h::UInt) = hash(s.str, hash(s.pow, hash(FPSymbol, h))) + +isone(s::FPSymbol) = s.pow == 0 + +change_pow(s::FPSymbol, n::Int) = FPSymbol(s.str, n) + +length(s::FPSymbol) = abs(s.pow) + function show(io::IO, G::FPGroup) print(io, "Finitely presented group on $(length(G.gens)) gens and $(length(G.rels)) relations:\n") print(io, "gens:\t", join([g.gen for g in G.gens], ","),"\n")