# HG changeset patch # User jwe # Date 1191447428 0 # Node ID 09a89fb42c09a3528e303652ac919507fb6ffa9f # Parent f359defe99ffff78662ca56219dfb9c06c023728 [project @ 2007-10-03 21:36:42 by jwe] diff --git a/scripts/ChangeLog b/scripts/ChangeLog --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,6 +1,6 @@ 2007-10-03 Quentin Spencer - * linear-algebra/norm.m: Special case vector 1-norm. + * linear-algebra/norm.m: Special case vector 1-norm and 2-norm. 2007-10-03 David Bateman diff --git a/scripts/linear-algebra/norm.m b/scripts/linear-algebra/norm.m --- a/scripts/linear-algebra/norm.m +++ b/scripts/linear-algebra/norm.m @@ -95,6 +95,11 @@ retval = min (abs (x)); elseif (p == 1) retval = sum (abs (x)); + elseif (p == 2) + if (iscomplex (x)) + x = abs (x); + endif + retval = sqrt (sum (x .* x)); else retval = sum (abs (x) .^ p) ^ (1/p); endif @@ -138,6 +143,7 @@ %!assert(norm(x,"fro"), 10); %!assert(norm(x), 10); %!assert(norm([1e200, 1]), 1e200); +%!assert(norm([3+4i, 3-4i, sqrt(31)]), 9, -4*eps); %!shared m %! m = magic (4); %!assert(norm(m,1), 34);