diff scripts/linear-algebra/orth.m @ 3141:292ff0bf484b

[project @ 1998-02-03 08:11:07 by jwe]
author jwe
date Tue, 03 Feb 1998 08:11:22 +0000
parents 8b262e771614
children f16c2ce14886
line wrap: on
line diff
--- a/scripts/linear-algebra/orth.m	Tue Feb 03 08:07:51 1998 +0000
+++ b/scripts/linear-algebra/orth.m	Tue Feb 03 08:11:22 1998 +0000
@@ -33,30 +33,36 @@
 
 function retval = orth (A, tol)
 
-  [U, S, V] = svd (A);
+  if (nargin == 1 || nargin == 2)
 
-  [rows, cols] = size (A);
+    [U, S, V] = svd (A);
 
-  [S_nr, S_nc] = size (S);
+    [rows, cols] = size (A);
 
-  if (S_nr == 1 || S_nc == 1)
-    s = S(1);
-  else
-    s = diag (S);
-  endif
+    [S_nr, S_nc] = size (S);
+
+    if (S_nr == 1 || S_nc == 1)
+      s = S(1);
+    else
+      s = diag (S);
+    endif
 
-  if (nargin == 1)
-    tol = max (size (A)) * s (1) * eps;
-  elseif (nargin != 2)
-    usage ("orth (A [, tol])");
-  endif
+    if (nargin == 1)
+      tol = max (size (A)) * s (1) * eps;
+    endif
+
+    rank = sum (s > tol);
 
-  rank = sum (s > tol);
+    if (rank > 0)
+      retval = -U (:, 1:rank);
+    else
+      retval = zeros (rows, 0);
+    endif
 
-  if (rank > 0)
-    retval = -U (:, 1:rank);
   else
-    retval = zeros (rows, 0);
+
+    usage ("orth (a [, tol]");
+
   endif
 
 endfunction