505295aa5a
convert directly the elements of X.coeffs
2017-09-14 17:32:31 +02:00
439be34d21
move to the new syntax of v0.6
2017-09-14 17:31:27 +02:00
b0cce16dfa
Merge branch 'master' into enh/julia-v0.6
2017-09-14 11:51:54 +02:00
6061e8c323
fix deprecated warnings
2017-09-13 11:13:53 +02:00
822067b04c
Merge branch 'master' into enh/julia-v0.6
2017-09-13 10:59:27 +02:00
df2e51128d
add baseless_warn global constant to suppress warnings
...
for baseless Group Rings
2017-09-10 21:44:15 +02:00
61bed0f3d0
allow to have 0s in completed pm
2017-09-10 21:42:45 +02:00
e223763b75
add check_pm function to test against zeros;
...
Since we can not throw from a thread, after introduction of Threading
into create_pm doesn't warn user on the possible not supported product.
Indeed threading quits immediately after first error is thrown, leaving
the pm matrix under-populated;
we check on zeros and warn the user on the situation;
2017-09-10 21:41:36 +02:00
0e8cec9f41
Performance tweaks to mul!
2017-08-27 20:38:02 +02:00
53c1872d0d
avoid temporary variable
2017-08-04 21:35:29 +02:00
7bbfe4408c
add scalar in-place mul!
2017-08-04 18:25:44 +02:00
50629a762c
add threading to create_pm
2017-08-04 15:55:46 +02:00
afaff8cc41
add elem_type(::Type{GroupRing{T,S}})
2017-08-01 10:31:35 +02:00
8d1604863c
RG(::Vector{GroupElem}) method for constructing GroupRingElems
2017-07-27 22:09:48 +02:00
9e09317148
add specialisations for GroupRing over multiplicative Groups of Rings
2017-07-27 22:08:53 +02:00
ddaef73872
add explicit types for keywords
2017-07-25 14:49:41 +02:00
9919652590
replace eachindex() by 1:length() for now
2017-07-25 14:49:17 +02:00
66711a3181
cosmetic
2017-07-25 14:48:48 +02:00
39039f9ec1
no need to parametrize parent by type of coefficients
2017-07-25 14:47:59 +02:00
3e7fed4e41
totally pm-free multiplication!
2017-07-25 14:44:37 +02:00
147cd053e3
make complete! use fastm!
2017-07-25 14:43:37 +02:00
75627514fd
replace init kw. by fastm in GroupRing constructor
2017-07-25 14:43:04 +02:00
2c4a7561c4
fix: parent_type, elem_type dispatch after type!
2017-07-25 14:35:09 +02:00
14e9a8505c
Merge branch 'master' into enh/pmfree_mul
2017-07-25 00:03:02 +02:00
7188433472
fix: remove remains of the old version
2017-07-25 00:01:23 +02:00
1862868a35
more verbose throws in divexact
2017-07-24 22:50:52 +02:00
c21f9e043b
throw if idices of X or Y go beyond size(pm)
2017-07-24 17:27:49 +02:00
de72253e90
export complete! and star-involution
2017-07-21 20:36:48 +02:00
13fa9962a9
input similar directly into mul!
2017-07-21 17:33:29 +02:00
bce92ef278
change collect(a) -> [a...]: we need vector of elements for GroupRing
2017-07-21 17:17:38 +02:00
24312ee972
slowly update RG.pm as multiplication happens
2017-07-21 17:16:38 +02:00
9a35d1f6ae
always return result from mul!
2017-07-21 17:15:38 +02:00
afac7de06d
doc strings for mul!s
2017-07-19 23:00:44 +02:00
d80cee5df5
when completing RG.pm compute only missing products
2017-07-19 22:57:59 +02:00
9470d31e95
rename A -> RG
2017-07-19 22:56:41 +02:00
170903b430
new versions of * : for those with and those without basis
2017-07-19 22:55:44 +02:00
9d5790d6d3
allow for pm to be slowly filled when computing products
2017-07-19 22:54:18 +02:00
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