diff --git a/.travis.yml b/.travis.yml index 28d4d10..608fbfc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ os: - osx julia: - 1.0 + - 1.1 - nightly notifications: email: true @@ -14,8 +15,6 @@ matrix: - julia: nightly script: - - julia -e 'using Pkg; pkg"add https://github.com/kalmarek/Groups.jl#enh/julia-v0.7"; Pkg.build(); Pkg.test(coverage=true);' + - julia -e 'using Pkg; pkg"add https://github.com/kalmarek/Groups.jl"; Pkg.build(); Pkg.test(coverage=true);' -after_success: - # push coverage results to Coveralls - - julia -e 'import Pkg; Pkg.add("Coverage"); using Coverage; Codecov.submit(process_folder())' +codecov: true diff --git a/README.md b/README.md index 4f40151..91389a5 100644 --- a/README.md +++ b/README.md @@ -1 +1,9 @@ # GroupRings + +[![Build Status](https://travis-ci.org/kalmarek/GroupRings.jl.svg?branch=master)](https://travis-ci.org/kalmarek/GroupRings.jl) +[![codecov](https://codecov.io/gh/kalmarek/GroupRings.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/kalmarek/GroupRings.jl) + +Please have a look at [tests](https://github.com/kalmarek/GroupRings.jl/blob/master/test/runtests.jl) to see how to use this package. It depends on [AbstractAlgebra.jl](https://github.com/Nemocas/AbstractAlgebra.jl) and [Groups.jl](https://github.com/kalmarek/GroupRings.jl) + +For an example applications have a look at our papers: +[1703.09680](https://arxiv.org/abs/1703.09680), [1712.07167](https://arxiv.org/abs/1712.07167) and [1812.03456](https://arxiv.org/abs/1812.03456). diff --git a/src/GroupRings.jl b/src/GroupRings.jl index a29f7da..53f5156 100644 --- a/src/GroupRings.jl +++ b/src/GroupRings.jl @@ -301,11 +301,11 @@ function mul(a::T, X::GroupRingElem{S}) where {T<:Number, S<:Number} return GroupRingElem(a.*X.coeffs, parent(X)) end -(*)(a::Number, X::GroupRingElem) = mul(a,X) -(*)(X::GroupRingElem, a::Number) = mul(a,X) +(*)(a::Number, X::GroupRingElem) = mul(a, X) +(*)(X::GroupRingElem, a::Number) = mul(a, X) # disallow Rings to hijack *(::, ::GroupRingElem) -*(a::Union{AbstractFloat, Integer, RingElem, Rational}, X::GroupRingElem) = mul(a,X) +*(a::Union{AbstractFloat, Integer, RingElem, Rational}, X::GroupRingElem) = mul(a, X) (/)(X::GroupRingElem, a) = 1/a*X (//)(X::GroupRingElem, a::Union{Integer, Rational}) = 1//a*X @@ -375,10 +375,8 @@ function fmac!(result::AbstractVector{T}, end @doc doc""" - GRmul!(result::AbstractVector{T}, - X::AbstractVector, - Y::AbstractVector, - pm::Array{Int,2}) where {T<:Number} + GRmul!(result::AbstractVector{T}, X::AbstractVector, Y::AbstractVector, + pm::Matrix{<:Integer}) where {T<:Number} > The most specialised multiplication for `X` and `Y` (intended for `coeffs` of > `GroupRingElems`), using multiplication table `pm`. > Notes: @@ -391,7 +389,7 @@ end function GRmul!(result::AbstractVector{T}, X::AbstractVector, Y::AbstractVector, - pm::Array{Int,2}) where {T<:Number} + pm::AbstractMatrix{<:Integer}) where {T<:Number} z = zero(T) result .= z @@ -399,9 +397,7 @@ function GRmul!(result::AbstractVector{T}, end @doc doc""" - mul!{T}(result::GroupRingElem{T}, - X::GroupRingElem, - Y::GroupRingElem) + mul!(result::GroupRingElem, X::GroupRingElem, Y::GroupRingElem) > In-place multiplication for `GroupRingElem`s `X` and `Y`. > `mul!` will make use the initialised entries of `pm` attribute of > `parent(X)::GroupRing` (if available), and will compute and store in `pm` the