From 9ed8679c95ffdb9cc623c51b85839413be4bd3d6 Mon Sep 17 00:00:00 2001 From: kalmar Date: Fri, 4 Aug 2017 20:33:02 +0200 Subject: [PATCH] simplify groupring_square --- src/CheckSolution.jl | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/CheckSolution.jl b/src/CheckSolution.jl index 7fd32cb..0ddbd45 100644 --- a/src/CheckSolution.jl +++ b/src/CheckSolution.jl @@ -25,19 +25,21 @@ end EOI{T<:Number}(Δ::GroupRingElem{T}, λ::T) = Δ*Δ - λ*Δ -function groupring_square(vect::AbstractVector, elt::GroupRingElem) - zzz = zeros(eltype(vect), length(elt.coeffs)) +function groupring_square(vect::AbstractVector, l, pm) + zzz = zeros(eltype(vect), l) zzz[1:length(vect)] .= vect - return GroupRings.mul!(similar(zzz), zzz, zzz, parent(elt).pm) + return GroupRings.mul!(similar(zzz), zzz, zzz, pm) end -function compute_SOS(sqrt_matrix, elt) - n = size(sqrt_matrix,2) +function compute_SOS(sqrt_matrix, elt::GroupRingElem) + n = size(sqrt_matrix,2) + l = length(elt.coeffs) + pm = parent(elt).pm - result = zeros(eltype(sqrt_matrix), length(elt.coeffs)) - for i in 1:n - result .+= (groupring_square(view(sqrt_matrix,:,i), elt)) - end + result = zeros(eltype(sqrt_matrix), l) + for i in 1:n + result .+= groupring_square(view(sqrt_matrix,:,i), l, pm) + end # result = @parallel (+) for i in 1:n # groupring_square(sqrt_matrix[:,i], elt)