From 9eeeb452f037649331b1f680efd385a9b40185b4 Mon Sep 17 00:00:00 2001 From: kalmar Date: Sat, 21 Jan 2017 17:22:55 +0100 Subject: [PATCH] make pow a keyword argument for all primitive AutSymbols --- AutGroups.jl | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/AutGroups.jl b/AutGroups.jl index 94c7372..261b7db 100644 --- a/AutGroups.jl +++ b/AutGroups.jl @@ -43,22 +43,28 @@ function change_pow(s::AutSymbol, n::Int) end end -function rmul_AutSymbol(i,j, pow::Int=1) +inv(f::AutSymbol) = change_pow(f, -1*f.pow) +(^)(s::AutSymbol, n::Integer) = change_pow(s, s.pow*n) + +function rmul_AutSymbol(i,j; pow::Int=1) gen = string('ϱ',Char(8320+i), Char(8320+j)...) return AutSymbol(gen, pow, :(ϱ($i,$j))) end -function lmul_AutSymbol(i,j, pow::Int=1) +function lmul_AutSymbol(i,j; pow::Int=1) gen = string('λ',Char(8320+i), Char(8320+j)...) return AutSymbol(gen, pow, :(λ($i,$j))) end -function flip_AutSymbol(j, pow::Int=1) +function flip_AutSymbol(j; pow::Int=1) gen = string('ɛ', Char(8320 + j)) - return AutSymbol(gen, pow%2, :(ɛ($j))) + return AutSymbol(gen, (2+ pow%2)%2, :(ɛ($j))) end -function symmetric_AutSymbol(perm::Vector{Int}, pow::Int=1) +function symmetric_AutSymbol(perm::Vector{Int}; pow::Int=1) + # if perm == collect(1:length(perm)) + # return one(AutSymbol) + # end perm = Permutation(perm) ord = order(perm) pow = pow % ord