From 239521f159c9afda0fd3966d62e04ff9c2c2bd7f Mon Sep 17 00:00:00 2001 From: kalmar Date: Fri, 13 Jan 2017 18:00:14 +0100 Subject: [PATCH] workaround norm(vector,p) type-instability (p=1, Inf) --- GroupAlgebras.jl | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/GroupAlgebras.jl b/GroupAlgebras.jl index 4d0a52c..fc0e9b8 100644 --- a/GroupAlgebras.jl +++ b/GroupAlgebras.jl @@ -111,7 +111,17 @@ end length(X::GroupAlgebraElement) = length(X.coefficients) size(X::GroupAlgebraElement) = size(X.coefficients) -norm(X::GroupAlgebraElement, p=2) = norm(X.coefficients, p) + +function norm(X::GroupAlgebraElement, p=2) + if p == 1 + return sum(abs(X.coefficients)) + elseif p == Inf + return max(abs(X.coefficients)) + else + return norm(X.coefficients, p) + end +end + ɛ(X::GroupAlgebraElement) = sum(X.coefficients) rationalize{T<:Integer, S<:Number}(::Type{T}, X::GroupAlgebraElement{S}; @@ -119,5 +129,4 @@ rationalize{T<:Integer, S<:Number}(::Type{T}, X::GroupAlgebraElement{S}; GroupAlgebraElement( rationalize(T, X.coefficients, tol=tol), X.product_matrix) - end