1
0
mirror of https://github.com/kalmarek/Groups.jl.git synced 2024-07-17 10:55:33 +02:00
Commit Graph

334 Commits

Author SHA1 Message Date
87a7285ba5 don't use length for permutation 2018-08-01 22:39:43 +02:00
d373a0c7c2 add comment why specialized deepcopy for GWords is necessary 2018-07-30 15:20:12 +02:00
7f25d96038 Automorphism: initialize hash to 0x0 2018-07-30 15:19:18 +02:00
e9ae22cfe9 convenience (S)Aut(G) and (G::WreathProduct)(n,p) constructors 2018-07-30 15:01:20 +02:00
0a20c5bb73 change hashing constant for reproducible hash of Automorphisms 2018-07-30 15:00:02 +02:00
192230c8d3 throw uniformly DomainError on check 2018-07-30 14:59:11 +02:00
0de75f1262 convenience constructors for DirectProduct 2018-07-30 14:56:28 +02:00
8a40d76143 add setindex!(::DirectProductGroupElem) 2018-07-30 14:54:54 +02:00
5ac1ea7ba8 rename Automorphism.typ -> Automorphism.fn 2018-07-30 14:54:09 +02:00
d78f1ec38a remove specialized deepcopy 2018-07-30 14:53:20 +02:00
78abdc3181 fix elem_types: they dispatch on TYPE of parent 2018-07-30 14:07:42 +02:00
1783ba5065 fix indentation 2018-07-30 14:05:47 +02:00
0ab4df2ce5 WreathProduct uses the additive group of a ring by default 2018-07-30 14:03:51 +02:00
93253115ab Introduce AddGrp, MltGrp etc.
for the additive group of a ring.
2018-07-30 14:03:04 +02:00
fe0e22f0bf align to perms acting on the right 2018-07-30 13:54:15 +02:00
158ce5ee27 replace Nemo -> AbstractAlgebra 2018-07-30 08:30:27 +02:00
1597784ac5 add the standard linear representation for Automorphisms 2018-04-10 13:14:45 +02:00
df554480ea parametrize WreathProduct over Integers 2018-04-10 13:09:50 +02:00
f2fb7f53cd move ==(::GSymbol, ::GSymbol) to Groups.jl 2018-04-09 13:00:50 +02:00
b8abe64656 Parametrise Automorphisms on Integer type 2018-04-09 12:59:47 +02:00
3ac9231032 replace free_reduce! -> freereduce! 2018-04-02 18:19:55 +02:00
3ff1f1897e fix simplify_perms! → simplifyperms!
Currently it passes twice over W.symbols, but should be correct
2018-04-02 18:18:12 +02:00
f9ede91343 replace delete_ids! -> deleteids! 2018-04-02 18:15:12 +02:00
c880b51346 remove isone(::GSymbol) 2018-03-29 19:37:32 +02:00
d1db939a63 newnew version of hash and == 2018-03-29 19:24:15 +02:00
d83af99fbc rework reduce! and sumplify_perms! using delete_ids! 2018-03-29 19:23:24 +02:00
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
eed218da3c rework hash, == 2018-03-28 12:28:47 +02:00
e6b1b2a663 make id always have length 0 2018-03-28 12:21:50 +02:00
f493ed7283 rewrite simplify_perms! 2018-03-28 12:20:03 +02:00
6b0499005f rename field of PermAut p->perm 2018-03-28 12:19:18 +02:00
17958fbd2c accomodate to abstract GWord{T} 2018-03-27 21:48:36 +02:00
fc879f068b clean-up findfirst, findnext 2018-03-27 21:48:02 +02:00
3a6506ae40 is_subsymbol -> issubsymbol 2018-03-27 21:31:23 +02:00
57dfc05221 shift documentation and GWord{T} definition 2018-03-27 21:30:36 +02:00
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
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
ffd5bbdc19 remove savedimage: Automorphism becomes prohibitively large 2018-03-27 18:23:43 +02:00
9e053df1a8 Add needed convert to Automorhphism{N} 2018-03-26 07:29:41 +02:00
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
0b800b5366 move includes to the top of the file 2018-03-26 07:25:32 +02:00
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
02d947899f immutable -> struct 2018-03-25 19:13:30 +02:00
c89ffbb4b4 constructing NTuple is faster than deepcopying it? 2018-03-25 19:12:29 +02:00
0233aedc41 use perms{Int8} in AutGroup and in tests 2018-03-22 17:24:23 +01:00
203e084ff3 don't print overly long presentations 2018-03-22 10:49:52 +01:00
d834935d05 be more specific on the type of objectGroup in AutGroup 2018-03-22 10:49:31 +01:00
c8f0ee04da automorphisms apply in-place 2018-03-21 19:23:13 +01:00
dd4d23189b domain(G::AutGroup) returns deepcopy of G.domain 2018-03-21 19:22:09 +01:00
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
181073b517 use domain in hash and == 2018-03-17 05:09:09 +01:00
acb1dbe6c8 use tuples in evaluation of AutSymbols 2018-03-17 05:08:42 +01:00
6a59c53c8f add domain field to AutGroup 2018-03-17 05:01:21 +01:00
03b7590faa fix merging master 2017-11-15 20:43:09 +01:00
c18e2156b5 Merge branch 'master' into enh/julia-v0.6 2017-11-15 20:34:30 +01:00
36279d2601 generate_balls for RingElem 2017-11-08 11:51:26 +01:00
99c07c6909 allow precompilation of the module 2017-11-08 09:06:50 +01:00
78881e1d79 more economical generate_balls using Base.product 2017-11-05 14:58:58 +01:00
04d1591c7d actually cache and use savedhash + tests 2017-10-27 16:16:43 +02:00
5945462d45 no need for ispermauto function
handled easily by isa(..., PermAut)
2017-10-27 16:15:33 +02:00
5c14edc53c update change_pow to the new AutSymbol 2017-10-27 16:14:28 +02:00
329e481d24 move getperm 2017-10-27 16:13:45 +02:00
0144c49372 AutSymbol evaluation -- much simpler
due to automorphism type carried as an attribute
2017-10-27 16:12:28 +02:00
3d2bc63723 creating AutSymbols 2017-10-27 16:11:18 +02:00
5f224f6713 Evaluation of {R,L}Transvec, PermAut, FlipAut types 2017-10-27 16:10:04 +02:00
e6a0ffd3d6 AutSymbol carries automorphism type, not expression 2017-10-27 16:09:23 +02:00
c593522ab9 fix the AutGroup gens 2017-10-24 15:27:43 +02:00
23d3787e34 evaluate AutSymbol 2017-10-24 15:26:27 +02:00
54e8eb0b43 remove .func field from autsymbol 2017-10-24 15:25:37 +02:00
30f44cca71 remove outer keyword (it was wrong!) 2017-10-04 21:34:59 +02:00
261f7761eb use the new Nemo.Generic module 2017-09-15 18:54:32 +02:00
2e208032d2 use the new 0.6 syntax: structs, where etc.
one test broken
2017-09-13 16:47:31 +02:00
29d1b8364d fix deprecation warnings 2017-09-13 15:48:40 +02:00
32a76f9efa remove Compat 2017-09-13 11:22:21 +02:00
36b87c12fa Merge branch 'master' into enh/julia-v0.6
# Conflicts:
#	src/FPGroups.jl
2017-09-13 11:17:42 +02:00
a71f99670c deepcopy S to avoid external changes 2017-08-08 19:15:55 +02:00
2e6372576e argument name is not used in elem_type 2017-07-23 17:07:21 +02:00
cac6305852 trivial changes in docs 2017-07-23 17:04:22 +02:00
166c4c217b parent_type dispatches after Type of element 2017-07-23 17:01:11 +02:00
b04a472063 combine * and inv under "Group Operations" label 2017-07-23 03:24:40 +02:00
251fdd4afa fix setindex! 2017-07-23 03:24:05 +02:00
aad2907c51 fix: WreathProductElem is typed only after GroupElem 2017-07-21 17:14:55 +02:00
b7151d1fc2 docs 2017-07-21 16:05:49 +02:00
6fa01d87ef faster versions of * and inv for products of rings 2017-07-21 16:04:45 +02:00
6f08259466 Don't multiply if not necessary -> directly create element 2017-07-21 16:04:11 +02:00
d668574805 parent is constructable, don't use it in hash 2017-07-21 16:03:26 +02:00
c60e5a8c5c reworked inv + doc 2017-07-21 16:02:44 +02:00
70a8a9b72d get rid of the old parent stuff 2017-07-21 16:02:07 +02:00
0519d06baa add check argument to WreathProductElem constructor 2017-07-21 16:01:22 +02:00
36a0e8593d new multiplication 2017-07-21 15:59:47 +02:00
620b970f62 merge Binary operators and Inversion as Group operations 2017-07-21 14:33:53 +02:00
354da78769 clean-up show 2017-07-21 14:31:05 +02:00
68df946c81 don't construct parent(::WreatProductElem) when not necessary 2017-07-21 14:30:48 +02:00
7c1a96b64e don't compare parents when parents are constructable 2017-07-21 14:29:38 +02:00
89b89f13a5 there is no parent field 2017-07-21 14:23:47 +02:00
b89e60e508 standard outer constructors for WreathProduct{Elem} 2017-07-21 13:40:54 +02:00
06a4e50a2d don't compute G.N(p.n) and G.P(g.p) twice when coercing 2017-07-21 13:37:28 +02:00
4fa7d744c2 parent(WreathProductElem) is now computed on the fly ==> slow 2017-07-21 13:36:39 +02:00
a6f0685313 concrete updates to elem_type, parent_type 2017-07-21 13:36:04 +02:00
fa996d68fb make WreathProduct{Elem} concrete & immutable
parametrize by WreathProduct{Elem} by T<:Group{Elem}
2017-07-21 13:34:57 +02:00