mirror of
https://github.com/kalmarek/Groups.jl.git
synced 2024-09-27 19:40:36 +02:00
fix simplify_perms! → simplifyperms!
Currently it passes twice over W.symbols, but should be correct
This commit is contained in:
parent
f9ede91343
commit
3ff1f1897e
@ -329,8 +329,9 @@ function getperm(s::AutSymbol)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function simplify_perms!(W::Automorphism{N}) where N
|
function simplifyperms!(W::Automorphism{N}) where N
|
||||||
reduced = true
|
reduced = true
|
||||||
|
to_delete = Int[]
|
||||||
for i in 1:length(W.symbols)-1
|
for i in 1:length(W.symbols)-1
|
||||||
if W.symbols[i].pow == 0
|
if W.symbols[i].pow == 0
|
||||||
continue
|
continue
|
||||||
@ -338,10 +339,11 @@ function simplify_perms!(W::Automorphism{N}) where N
|
|||||||
reduced = false
|
reduced = false
|
||||||
c = W.symbols[i]
|
c = W.symbols[i]
|
||||||
n = W.symbols[i+1]
|
n = W.symbols[i+1]
|
||||||
p = (getperm(c)*getperm(n)).d
|
W.symbols[i+1] = perm_autsymbol(getperm(c)*getperm(n))
|
||||||
W.symbols[i+1].typ.perm.d = p
|
push!(to_delete, i)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
deleteat!(W.symbols, to_delete)
|
||||||
deleteids!(W)
|
deleteids!(W)
|
||||||
return reduced
|
return reduced
|
||||||
end
|
end
|
||||||
@ -349,13 +351,12 @@ end
|
|||||||
function reduce!(W::Automorphism)
|
function reduce!(W::Automorphism)
|
||||||
if length(W) == 0
|
if length(W) == 0
|
||||||
return W
|
return W
|
||||||
elseif length(W)< 2
|
elseif length(W.symbols) == 1
|
||||||
W.modified = true
|
|
||||||
deleteids!(W)
|
deleteids!(W)
|
||||||
else
|
else
|
||||||
reduced = false
|
reduced = false
|
||||||
while !reduced
|
while !reduced
|
||||||
reduced = simplify_perms!(W) && free_reduce!(W)
|
reduced = simplifyperms!(W) && free_reduce!(W)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user