Commit Graph

347 Commits

Author SHA1 Message Date
kalmarek 7663381084 switch to AbstractAlgebra 2018-04-11 08:13:23 +02:00
kalmarek c4f5bea063 Merge branch 'master' of https://github.com/kalmarek/Groups.jl
# Conflicts:
#	test/WreathProd-tests.jl
2018-04-10 13:20:35 +02:00
kalmarek 1597784ac5 add the standard linear representation for Automorphisms 2018-04-10 13:14:45 +02:00
kalmarek df554480ea parametrize WreathProduct over Integers 2018-04-10 13:09:50 +02:00
kalmarek 777684db28 fix tests for parametrised Automorphisms 2018-04-09 13:01:21 +02:00
kalmarek f2fb7f53cd move ==(::GSymbol, ::GSymbol) to Groups.jl 2018-04-09 13:00:50 +02:00
kalmarek b8abe64656 Parametrise Automorphisms on Integer type 2018-04-09 12:59:47 +02:00
kalmarek d46c5dafcc Vector{Groups.FreeGroupElem} fixed itself 2018-04-03 15:43:17 +02:00
kalmarek 435d3d88ad fix simplifyperms! test 2018-04-03 15:36:32 +02:00
kalmarek 3ac9231032 replace free_reduce! -> freereduce! 2018-04-02 18:19:55 +02:00
kalmarek 3ff1f1897e fix simplify_perms! → simplifyperms!
Currently it passes twice over W.symbols, but should be correct
2018-04-02 18:18:12 +02:00
kalmarek f9ede91343 replace delete_ids! -> deleteids! 2018-04-02 18:15:12 +02:00
kalmarek c880b51346 remove isone(::GSymbol) 2018-03-29 19:37:32 +02:00
kalmarek d1db939a63 newnew version of hash and == 2018-03-29 19:24:15 +02:00
kalmarek d83af99fbc rework reduce! and sumplify_perms! using delete_ids! 2018-03-29 19:23:24 +02:00
kalmarek 40cf8a4e9f new version of reduce! and free_reduce using delete_ids!
delete_ids requires second pass of W.symbols, but is so much easier to
get it right!
2018-03-29 19:19:34 +02:00
kalmarek eed218da3c rework hash, == 2018-03-28 12:28:47 +02:00
kalmarek e6b1b2a663 make id always have length 0 2018-03-28 12:21:50 +02:00
kalmarek f493ed7283 rewrite simplify_perms! 2018-03-28 12:20:03 +02:00
kalmarek 6b0499005f rename field of PermAut p->perm 2018-03-28 12:19:18 +02:00
kalmarek 41abf789ef eliminate GWord and replace is_subsymbol by issubsymbol 2018-03-28 00:54:52 +02:00
kalmarek 3dcef3189e AutGroupElem -> Automorphism{N} 2018-03-27 21:49:22 +02:00
kalmarek 17958fbd2c accomodate to abstract GWord{T} 2018-03-27 21:48:36 +02:00
kalmarek fc879f068b clean-up findfirst, findnext 2018-03-27 21:48:02 +02:00
kalmarek 3a6506ae40 is_subsymbol -> issubsymbol 2018-03-27 21:31:23 +02:00
kalmarek 57dfc05221 shift documentation and GWord{T} definition 2018-03-27 21:30:36 +02:00
kalmarek 8cd10c0bfa make sure we don't reduce if not asked 2018-03-27 20:15:28 +02:00
kalmarek 7139322d05 New version of hash and ==
evaluation of Automorphism on the standard basis is expensive

in hash(g::Automorphism, h::UInt) we
1. compute and store savedhash (evaluating f, if necessary) with a fixed value HASHINGCONST
2. xor h with savedhash

in == we evaluate f only at hash-colision (or when
This way we evaluate f multiple times only in ~2% of cases (for SAut(F_4))
2018-03-27 20:14:24 +02:00
kalmarek 6a7bb03d73 no need to store initial value of savedhash
it must be accessed after checking the modified filed
2018-03-27 18:24:40 +02:00
kalmarek ffd5bbdc19 remove savedimage: Automorphism becomes prohibitively large 2018-03-27 18:23:43 +02:00
kalmarek 9e053df1a8 Add needed convert to Automorhphism{N} 2018-03-26 07:29:41 +02:00
kalmarek a7bf32145c replace AutGroupElem with Automorphism{N} <: GWord{AutSymbol}
this allows to store in the Automorphism struct
 precomputed hash and
 image of the canonical basis
2018-03-26 07:26:48 +02:00
kalmarek 0b800b5366 move includes to the top of the file 2018-03-26 07:25:32 +02:00
kalmarek 6939c0f00a introduce GroupWord{T} <: GWord{T<:GSymbol}
This allows subtyping of GWord{T} with more specific group elements
2018-03-26 07:24:37 +02:00
kalmarek 02d947899f immutable -> struct 2018-03-25 19:13:30 +02:00
kalmarek c89ffbb4b4 constructing NTuple is faster than deepcopying it? 2018-03-25 19:12:29 +02:00
kalmarek 81b580a92b Not so simple arithmetic: ϱ₁₂*ϱ₂₁⁻¹*λ₁₂*ε₂ == σ₂₁₃₄ 2018-03-22 17:28:07 +01:00
kalmarek 8f990d9014 use tuples & domain in Automorphism evaluations 2018-03-22 17:27:31 +01:00
kalmarek 0233aedc41 use perms{Int8} in AutGroup and in tests 2018-03-22 17:24:23 +01:00
kalmarek fadc2d9619 Merge branch 'master' of github.com:kalmarek/Groups.jl 2018-03-22 15:19:58 +01:00
kalmarek b7e7bcb7ef fix tests (parametrised perms) 2018-03-22 15:07:18 +01:00
kalmarek 203e084ff3 don't print overly long presentations 2018-03-22 10:49:52 +01:00
kalmarek d834935d05 be more specific on the type of objectGroup in AutGroup 2018-03-22 10:49:31 +01:00
kalmarek c8f0ee04da automorphisms apply in-place 2018-03-21 19:23:13 +01:00
kalmarek dd4d23189b domain(G::AutGroup) returns deepcopy of G.domain 2018-03-21 19:22:09 +01:00
kalmarek 49198dfdf4 use append! and prepend! instead of push! and unshift!
This also fixes a bug in l_multiply!
2018-03-21 19:21:03 +01:00
kalmarek 181073b517 use domain in hash and == 2018-03-17 05:09:09 +01:00
kalmarek acb1dbe6c8 use tuples in evaluation of AutSymbols 2018-03-17 05:08:42 +01:00
kalmarek 6a59c53c8f add domain field to AutGroup 2018-03-17 05:01:21 +01:00
kalmarek c76ad85067 remove support for julia-0.5 2017-11-20 09:44:04 +01:00