From c0dc6937a51444b9a6bbec16edd7d918cb4a3aba Mon Sep 17 00:00:00 2001 From: kalmarek Date: Fri, 3 Nov 2017 16:54:41 +0100 Subject: [PATCH] cut on allocations in compute_SOS --- src/CheckSolution.jl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/CheckSolution.jl b/src/CheckSolution.jl index 6e17050..d9078a6 100644 --- a/src/CheckSolution.jl +++ b/src/CheckSolution.jl @@ -18,25 +18,27 @@ EOI{T<:Number}(Δ::GroupRingElem{T}, λ::T) = Δ*Δ - λ*Δ function groupring_square(vect::AbstractVector, l, pm) zzz = zeros(eltype(vect), l) - zzz[1:length(vect)] .= vect - return GroupRings.mul!(similar(zzz), zzz, zzz, pm) + return GroupRings.mul!(zzz, vect, vect, pm) end function compute_SOS(Q::AbstractArray, pm::Array{Int,2}, l::Int) - n = size(Q,2) # result = zeros(eltype(Q), l) - # for i in 1:n - # result .+= groupring_square(view(Q,:,i), l, pm) + # r = similar(result) + # for i in 1:size(Q,2) + # print(" $i") + # result += GroupRings.mul!(r, view(Q,:,i), view(Q,:,i), pm) # end @everywhere groupring_square = PropertyT.groupring_square - result = @parallel (+) for i in 1:n + result = @parallel (+) for i in 1:size(Q,2) print(" $i") groupring_square(view(Q,:,i), l, pm) end + println("") + return result end