diff scripts/linear-algebra/__norm__.m @ 7101:2c5b14c60c6c

[project @ 2007-11-06 16:26:13 by jwe]
author jwe
date Tue, 06 Nov 2007 16:26:13 +0000
parents a1dbe9d80eee
children a627f27c1e8e
line wrap: on
line diff
--- a/scripts/linear-algebra/__norm__.m	Mon Nov 05 23:42:01 2007 +0000
+++ b/scripts/linear-algebra/__norm__.m	Tue Nov 06 16:26:13 2007 +0000
@@ -40,11 +40,11 @@
   endif
 
   ## Do we have a vector or matrix as the first argument?
-
   if (ndims(x) == 2 && (rows (x) == 1 || columns (x) == 1))
     if (ischar (p))
       if (strcmp (p, "fro"))
-	retval = sqrt (sum (abs (x) .^ 2));
+        inf_norm = norm (x, "inf")
+	retval = inf_norm .* sqrt (sum (abs (x ./ inf_norm) .^ 2));
       elseif (strcmp (p, "inf"))
         retval = max (abs (x));
       else
@@ -69,7 +69,8 @@
   else
     if (ischar (p))
       if (strcmp (p, "fro"))
-	retval = sqrt (sum (sum (abs (x) .^ 2)));
+        inf_norm = norm (x, "inf")
+	retval = inf_norm .* sqrt (sum (sum (abs (x ./ inf_norm) .^ 2)));
       elseif (strcmp (p, "inf"))
         retval = max (sum (abs (x')));
       else