1
0
mirror of https://github.com/kalmarek/GroupRings.jl.git synced 2024-12-29 11:00:28 +01:00
Commit Graph

242 Commits

Author SHA1 Message Date
acb05e7a85 better text of throws 2017-07-19 22:53:19 +02:00
bd300d83a5 compare GroupRing's pms only if basis is not available 2017-07-19 22:52:35 +02:00
4707cdf40a restrict methods to GroupRings with basis 2017-07-19 22:51:56 +02:00
e8eaabc5d2 minimal constructor for GroupRing with no initialisation 2017-07-19 22:49:57 +02:00
10ab783844 pairing outer constructors 2017-07-19 22:48:59 +02:00
5b128cd146 brave new inner constructors for GroupRing 2017-07-19 22:48:17 +02:00
f2ad7c8045 new version of *, with optional check::Bool=true 2017-07-19 22:43:46 +02:00
f586cb5146 remove mul functions: * should call mul! directly 2017-07-19 22:41:40 +02:00
5c2fabfb08 make another version of mul! for GroupRingElts 2017-07-19 22:38:17 +02:00
4c275460cc indentation 2017-07-19 22:19:58 +02:00
3166c588b1 remove checks from addeq! 2017-07-19 22:17:06 +02:00
7390f4699e add check::Bool=true to add(::GroupRingElem, ::GroupRingElem) 2017-07-19 22:15:47 +02:00
f939a2ae27 Revert "Type experiment: parametrise GroupRingElem after types of its parent"
This reverts commit 75a83da8cb.
2017-07-19 13:33:55 +02:00
1a77e8a2bc faster (RG::GroupRing)(i::Int) 2017-07-17 09:32:38 +02:00
b3024a36c6 Merge branch 'enh/mul_addeq' of https://git.wmi.amu.edu.pl/kalmar/GroupRings.jl into enh/mul_addeq 2017-07-17 09:25:31 +02:00
75a83da8cb Type experiment: parametrise GroupRingElem after types of its parent 2017-07-17 09:24:56 +02:00
c1e2d4209a to match e.g. sparse and dense zeros... ugly 2017-07-16 21:45:24 +02:00
8daa86df31 try...catch are slow 2017-07-16 21:44:42 +02:00
a66d7755ae fix copy-paste mistake 2017-07-12 20:56:59 +02:00
fc3cbeb14c preserve type of coerced element 2017-07-12 20:56:38 +02:00
ee3b4e0761 allocation-free multiplication! 2017-07-12 20:43:12 +02:00
6e95eae583 convert only if type of the product and result disagree 2017-07-12 14:31:51 +02:00
b40b9f94eb in mul! promote to the common type only if necessary 2017-07-12 11:34:43 +02:00
4e213c691d throw if dividing by a non-unit 2017-07-11 22:37:53 +02:00
4cb4d299de small tweaks to printing 2017-07-11 18:44:08 +02:00
ffee54616a critical fix: if g was not in basis setindex! failed silently 2017-07-11 18:28:30 +02:00
51c638fd65 mul! function for GroupRingElems (different coeffs) 2017-07-11 16:16:41 +02:00
b80db52742 deepcopy result if result === X to prevent X from zeroing 2017-07-11 16:02:43 +02:00
5a3e2761a4 change throw message 2017-07-11 16:01:42 +02:00
ed023be1fd zero the array where product of X and Y is stored 2017-07-11 16:00:50 +02:00
8d22162504 implement Array protocol for GroupRingElem 2017-07-11 15:59:15 +02:00
e92a5d72e8 add divexact function 2017-07-11 15:58:45 +02:00
27e0b03b3c move type-related functions to one location 2017-07-11 15:58:02 +02:00
688dfa5062 result is the firs argument of mul! 2017-07-10 19:28:19 +02:00
dd518574ff fix: zero result coeffs before jumping into loopy mul! 2017-07-10 19:27:28 +02:00
8463b928cb add RG(i::Int) = i*(id) function 2017-07-10 19:26:44 +02:00
3b9e405565 use a single zero object to compare 2017-07-10 19:25:52 +02:00
56a0964f30 better printing 2017-07-10 19:21:38 +02:00
5fb131c390 add mul! and addeq! for MatrixSpace construction 2017-07-09 14:56:11 +02:00
7fb68f8c68 initial @compat changes, works on v0.6 without warnings 2017-07-06 17:29:10 +02:00
db02dbb97c add zero(RG::GroupRing) 2017-07-06 10:09:43 +02:00
19f6906d33 add parent_type(::Type{GroupRingElem}) 2017-07-06 10:06:17 +02:00
35fc74e6f2 fix multiple dispatch of scalar * 2017-06-06 22:29:02 +02:00
962a9e6e73 Revert "reparametrise parent call overloads"
This reverts commit 4b86d5d075.
2017-06-06 22:25:01 +02:00
a726462488 Merge branch 'enh/Nemoification' of git.wmi.amu.edu.pl:kalmar/GroupRings.jl into enh/Nemoification
# Conflicts:
#	src/GroupRings.jl
2017-06-06 18:46:11 +02:00
e61b573642 multiple dispatch of * and mul! 2017-06-06 18:44:53 +02:00
292806db17 multiple dispatch of * instead of scalar mult 2017-06-06 18:44:00 +02:00
61ed1f7870 rename groupring_mult[!] -> mul[!] 2017-06-06 11:46:15 +02:00
fe1f552b26 Merge branch 'enh/Nemoification' of https://git.wmi.amu.edu.pl/kalmar/GroupRings.jl into enh/Nemoification 2017-06-06 00:12:15 +02:00
4b86d5d075 reparametrise parent call overloads 2017-06-06 00:03:38 +02:00
43d78c97f8 parametrise GroupRing by Group and GroupElem
as suggested by thofma
2017-06-05 23:50:15 +02:00
1e75372068 in setindex! perform coercion only when necessary 2017-06-05 21:38:03 +02:00
b2231c44e6 coercion to GroupRing via specified function on underlying groups 2017-06-05 21:37:11 +02:00
7ba59d6508 safer coercion of GroupRingElem to GroupRing 2017-06-05 21:36:31 +02:00
986dd3dae1 deprecate groupring_mult in favour of multiple dispatch of (*) 2017-06-05 11:03:37 +02:00
2eeb85d2ed Allow limited use of GroupRings without basis 2017-06-05 11:02:38 +02:00
1e990f5896 better show of ::GroupRingElem 2017-05-19 10:32:09 +02:00
6379c76646 change full -> initialise keyword; the default is to initialise by default 2017-05-19 10:00:41 +02:00
5a26aaa5cb need vector for basis; collect(Base.product) preserves the structure 2017-05-18 21:50:57 +02:00
faf1b94bae remove generators (for now) 2017-05-18 21:49:57 +02:00
27e9ce254f try to coerce before throwing error 2017-05-18 21:49:12 +02:00
ca3ec95ea2 rationalize for Integral Group Rings 2017-05-18 17:58:13 +02:00
92daac300b one(GroupRing) returns multiplicative identity 2017-05-18 17:57:15 +02:00
e3fa702507 length of GroupRingElem is the size of its support 2017-05-18 17:56:46 +02:00
148c8e2611 rational division for integral group rings 2017-05-18 12:19:41 +02:00
486f2cff9a add eltype(::GroupRingElem) 2017-05-18 12:19:12 +02:00
3c8022b59d export complete, create_pm 2017-05-17 17:45:03 +02:00
408c5a34e3 create_pm convenience 2017-05-17 17:44:51 +02:00
07cc7eff16 generators of GroupRing (symmetric generating set) 2017-05-17 17:44:36 +02:00
396f5b529c check basis equality for (==) of GroupRings 2017-05-17 17:44:13 +02:00
4f5f6c685a format 2017-05-17 17:43:37 +02:00
bef0b67af6 modify reverse_dict to allow generator arg
e.g. reverse_dict(elements(G))
2017-05-17 17:43:11 +02:00
e18e90ddaf fix equality of GroupRing elements with different types of coeffs
eg. SparseVector vs Vector
2017-05-17 17:41:34 +02:00
4491078b9e adapt GroupRing constructors to new type definition 2017-05-17 17:40:32 +02:00
203743bb4d hide correctness check of GroupRingElem behind check arg 2017-05-17 17:39:56 +02:00
796f04261d rework (RG::GroupRing) overloads, allowing Type argument 2017-05-17 17:39:05 +02:00
9b8c2f6b45 rearange fields in GroupRing; second internal constructor (full) 2017-05-17 17:36:29 +02:00
15af76f068 formatting 2017-05-17 14:38:00 +02:00
0dd23532ac Type-parametrised star(::GroupRingElem) 2017-05-17 14:37:22 +02:00
50e54fbe3b division works the other way 2017-05-17 14:36:55 +02:00
0c0b3551b2 workaround Nemo-defined (*)(::Integer, RingElem) 2017-05-17 14:36:23 +02:00
26abb88b3a get parametrised type constructor finally right 2017-05-17 14:33:49 +02:00
7994c2d308 GroupRingElem is just a RingElem 2017-05-17 14:32:17 +02:00
1393810781 parents are always defined for GroupRingElems 2017-05-17 12:51:08 +02:00
20f0734d6f avoid comparison warnings in show 2017-05-17 12:50:46 +02:00
05b7274ee7 rename k to value 2017-05-17 12:49:45 +02:00
3176172f23 isdefined(::GroupRing, :basis) safety checks 2017-05-17 12:49:12 +02:00
b73aebe33a star-involution using setindex! 2017-05-17 12:34:24 +02:00
5913206954 this promotion has no effect 2017-05-17 12:33:37 +02:00
6dec41ad18 adapt for groupring_mlt! in-place modification 2017-05-17 12:33:16 +02:00
2461d54d8a zeros(T::Type, X::Array) modifies X?? 2017-05-17 12:32:46 +02:00
560cfc182a get rid of Group Algebra legacy 2017-05-17 12:31:49 +02:00
a62f63178c fix typo 2017-05-17 12:31:16 +02:00
82f3ab6c34 pretty print of GroupRingElems 2017-05-17 12:31:04 +02:00
192c72a39c isdefined(RG, :basis) for safety 2017-05-17 12:30:33 +02:00
caf72ae980 coercion of GroupElem to GroupRingElem 2017-05-17 12:28:59 +02:00
cdc2326e06 import getindex, setindex! 2017-05-17 12:28:22 +02:00
04257e9054 short-circuting -> proper if...ends 2017-05-17 11:47:59 +02:00
3a50399fb0 remove completetion of (::GroupRingElem) 2017-05-17 11:47:13 +02:00
8685c25600 format 2017-05-17 11:45:56 +02:00
890bde8b82 group_star_multiplication -> groupring_mult 2017-05-17 11:45:37 +02:00
04ee0ac659 groupring_mult should preserve type, when possible 2017-05-17 11:44:33 +02:00
2c43984e19 groupring_mult! (inplace) 2017-05-17 11:37:48 +02:00
679166114e format 2017-05-17 11:37:17 +02:00
085c47ddd3 fix not defined S -> Y 2017-05-17 11:36:21 +02:00
7cdaeea6e9 getindex, setindex for (::GroupRingElem, n::Int/g::GroupElem) 2017-05-17 11:35:39 +02:00
933c578b8f (::GroupRing)() zero elt 2017-05-17 11:34:39 +02:00
ab0b6c871a use reverse_dict 2017-05-17 11:34:03 +02:00
a7683c6fcc fix order of args 2017-05-17 11:33:01 +02:00
3da2110355 check on the vector length in GroupRingElem constructor 2017-05-17 11:32:28 +02:00
ec39853e92 type parametrised parent, parent_type 2017-05-17 11:30:35 +02:00
d53051a349 No GroupRingElem without parent is allowed 2017-05-17 11:30:05 +02:00
1d5bf641ff abstract AbstractGrouRingElem & GroupRingElem{T}
triangular dispatch??
2017-05-17 11:28:47 +02:00
917606af53 move the simplest GroupRing constructor to type definition 2017-05-17 11:27:25 +02:00
010fdb13a0 import all the necessary stuff 2017-05-17 11:26:35 +02:00
e862cd92b0 Rename module to GroupRings 2017-05-16 21:06:44 +02:00
5f32052560 move GroupAlgebras -> GroupRings 2017-05-16 21:03:21 +02:00
ab1e827fb0 fix indentation to 3 spaces (Nemo-like) 2017-05-16 18:51:40 +02:00
bb28b1bc54 add missing end 2017-05-16 18:51:22 +02:00
b51eb71d56 Headers 2017-05-16 18:47:34 +02:00
d919826e49 complete(::GroupRing) to complete not fully initalised GroupRing 2017-05-16 18:47:22 +02:00
70817a8fbc reverse_dict function for fast basis element lookup 2017-05-16 18:46:30 +02:00
d13a8b27df rationalize 2017-05-16 18:45:56 +02:00
fc837ff481 length, norm, augmentation 2017-05-16 18:45:31 +02:00
1c340ce008 remove size function, length(::GroupRingElem) is enough 2017-05-16 18:42:52 +02:00
7e1f0ebc46 scalar functions for GrouRingElems: -, *, /, // 2017-05-16 18:42:19 +02:00
ba51f2ba0e multiplication in the GroupRing 2017-05-16 18:38:37 +02:00
7204492e53 add, +, - for GroupRingElems 2017-05-16 18:37:55 +02:00
955aaf48fa == for GroupRing and GroupRingElem 2017-05-16 18:36:17 +02:00
ad97e1fab7 deepcopy & hash 2017-05-16 18:35:37 +02:00
eecba6c5d8 GroupRing coercion (::GroupRing object overloads) 2017-05-16 18:35:20 +02:00
5d51146688 elem_type, parent_type, parent 2017-05-16 18:34:43 +02:00
6dd130e789 show GroupRing/GroupRingElem 2017-05-16 18:34:21 +02:00
82fb401539 constructors for GroupRing 2017-05-16 18:32:12 +02:00
84de4de030 exports 2017-05-16 18:31:45 +02:00
03de314479 basic constructors of GroupRingElem 2017-05-16 18:31:26 +02:00
02eff23d17 remove isequal 2017-05-16 18:30:43 +02:00
89c5971cdd GroupAlgebraElement -> GroupRingElem 2017-05-16 18:29:14 +02:00
7a23fdb759 GroupRing type definition 2017-05-16 18:28:32 +02:00
200e9b429a using Nemo, imports 2017-05-16 18:27:32 +02:00
5dcae51b48 Initial Commit 2017-03-13 19:44:26 +01:00
5058d27d25 GroupAlgebras.jl generated files.
license:  MIT
    authors:  kalmar
    years:    2017
    user:     

Julia Version 0.5.1-pre+0 [8d4ef37*]
2017-03-13 18:03:48 +01:00