From 04ee0ac659b760628d0e5e289b140c64b086db45 Mon Sep 17 00:00:00 2001 From: kalmar Date: Wed, 17 May 2017 11:39:19 +0200 Subject: [PATCH] groupring_mult should preserve type, when possible --- src/GroupRings.jl | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/GroupRings.jl b/src/GroupRings.jl index 18819c3..a4204be 100644 --- a/src/GroupRings.jl +++ b/src/GroupRings.jl @@ -229,8 +229,18 @@ function groupring_mult!(X,Y,pm,result) return result end -function group_star_multiplication{T<:Number}(X::GroupRingElem{T}, - Y::GroupRingElem{T}) +function groupring_mult{T<:Number}(X::AbstractVector{T}, Y::AbstractVector{T}, + pm::Array{Int,2}) + result = zeros(X) + return groupring_mult!(X,Y,pm,result) +end + +function groupring_mult(X::AbstractVector, Y::AbstractVector, pm::Array{Int,2}) + T = promote_type(eltype(X), eltype(Y)) + result = zeros(T, X) + return groupring_mult!(X,Y,pm,result) +end + parent(X) == parent(Y) || throw(ArgumentError( "Elements don't seem to belong to the same Group Algebra!")) result = algebra_multiplication(X.coeffs, Y.coeffs, X.pm)