parametrise GroupRing by Group and GroupElem

as suggested by thofma
This commit is contained in:
kalmar 2017-06-05 23:50:15 +02:00
parent 0972cd1fdc
commit 43d78c97f8
1 changed files with 10 additions and 6 deletions

View File

@ -11,13 +11,13 @@ import Base: convert, show, hash, ==, +, -, *, //, /, length, norm, rationalize,
#
###############################################################################
type GroupRing <: Ring
group::Group
basis::Vector{GroupElem}
basis_dict::Dict{GroupElem, Int}
type GroupRing{Gr<:Group, T<:GroupElem} <: Ring
group::Gr
basis::Vector{T}
basis_dict::Dict{T, Int}
pm::Array{Int,2}
function GroupRing(G::Group; initialise=true)
function GroupRing(G::Gr; initialise=true)
A = new(G)
if initialise
complete(A)
@ -25,11 +25,15 @@ type GroupRing <: Ring
return A
end
function GroupRing(G::Group, basis, basis_dict, pm::Array{Int,2})
function GroupRing(G::Gr, basis::Vector{T}, basis_dict::Dict{T,Int}, pm::Array{Int,2})
return new(G, basis, basis_dict, pm)
end
end
GroupRing{Gr<:Group}(G::Gr;initialise=true) = GroupRing{Gr, elem_type(G)}(G, initialise=initialise)
GroupRing{Gr<:Group, T<:GroupElem}(G::Gr, b::Vector{T}, b_d::Dict{T,Int}, pm::Array{Int,2}) = GroupRing{Gr, T}(G, b, b_d, pm)
type GroupRingElem{T<:Number} <: RingElem
coeffs::AbstractVector{T}
parent::GroupRing