diff --git a/src/GroupRings.jl b/src/GroupRings.jl index 1adf81b..d2cf331 100644 --- a/src/GroupRings.jl +++ b/src/GroupRings.jl @@ -110,6 +110,7 @@ end zero(RG::GroupRing, T::Type=Int) = RG(T) one(RG::GroupRing, T::Type=Int) = RG(RG.group(), T) +one{R<:Nemo.Ring, S<:Nemo.RingElem}(RG::GroupRing{R,S}) = RG(eye(RG.group())) function (RG::GroupRing)(i::Int, T::Type=Int) elt = RG(T) @@ -117,6 +118,12 @@ function (RG::GroupRing)(i::Int, T::Type=Int) return elt end +function (RG::GroupRing{R,S}){R<:Ring, S}(i::Int, T::Type=Int) + elt = RG(T) + elt[eye(RG.group())] = i + return elt +end + function (RG::GroupRing)(T::Type=Int) isdefined(RG, :basis) || throw("Can not coerce without basis of GroupRing") return GroupRingElem(spzeros(T,length(RG.basis)), RG)