diff liboctave/dbleQR.cc @ 7482:29980c6b8604

don't check f77_exception_encountered
author John W. Eaton <jwe@octave.org>
date Thu, 14 Feb 2008 21:57:50 -0500
parents a1dbe9d80eee
children 56be6f31dd4e
line wrap: on
line diff
--- a/liboctave/dbleQR.cc	Thu Feb 14 17:14:23 2008 -0500
+++ b/liboctave/dbleQR.cc	Thu Feb 14 21:57:50 2008 -0500
@@ -76,56 +76,45 @@
 
   F77_XFCN (dgeqrf, DGEQRF, (m, n, tmp_data, m, ptau, pwork, lwork, info));
 
-  if (f77_exception_encountered)
-    (*current_liboctave_error_handler) ("unrecoverable error in dgeqrf");
+  if (qr_type == QR::raw)
+    {
+      for (octave_idx_type j = 0; j < min_mn; j++)
+	{
+	  octave_idx_type limit = j < min_mn - 1 ? j : min_mn - 1;
+	  for (octave_idx_type i = limit + 1; i < m; i++)
+	    A_fact.elem (i, j) *= tau.elem (j);
+	}
+
+      r = A_fact;
+
+      if (m > n)
+	r.resize (m, n);
+    }
   else
     {
-      if (qr_type == QR::raw)
-	{
-	  for (octave_idx_type j = 0; j < min_mn; j++)
-	    {
-	      octave_idx_type limit = j < min_mn - 1 ? j : min_mn - 1;
-	      for (octave_idx_type i = limit + 1; i < m; i++)
-		A_fact.elem (i, j) *= tau.elem (j);
-	    }
-
-	  r = A_fact;
+      octave_idx_type n2 = (qr_type == QR::economy) ? min_mn : m;
 
-	  if (m > n)
-	    r.resize (m, n);
-	}
+      if (qr_type == QR::economy && m > n)
+	r.resize (n, n, 0.0);
       else
-	{
-	  octave_idx_type n2 = (qr_type == QR::economy) ? min_mn : m;
-
-	  if (qr_type == QR::economy && m > n)
-	    r.resize (n, n, 0.0);
-	  else
-	    r.resize (m, n, 0.0);
+	r.resize (m, n, 0.0);
 
-	  for (octave_idx_type j = 0; j < n; j++)
-	    {
-	      octave_idx_type limit = j < min_mn-1 ? j : min_mn-1;
-	      for (octave_idx_type i = 0; i <= limit; i++)
-		r.elem (i, j) = tmp_data[m*j+i];
-	    }
-
-	  lwork = 32 * n2;
-	  work.resize (lwork);
-	  double *pwork2 = work.fortran_vec ();
+      for (octave_idx_type j = 0; j < n; j++)
+	{
+	  octave_idx_type limit = j < min_mn-1 ? j : min_mn-1;
+	  for (octave_idx_type i = 0; i <= limit; i++)
+	    r.elem (i, j) = tmp_data[m*j+i];
+	}
 
-	  F77_XFCN (dorgqr, DORGQR, (m, n2, min_mn, tmp_data, m, ptau,
-				     pwork2, lwork, info));
+      lwork = 32 * n2;
+      work.resize (lwork);
+      double *pwork2 = work.fortran_vec ();
 
-	  if (f77_exception_encountered)
-	    (*current_liboctave_error_handler)
-	      ("unrecoverable error in dorgqr");
-	  else
-	    {
-	      q = A_fact;
-	      q.resize (m, n2);
-	    }
-	}
+      F77_XFCN (dorgqr, DORGQR, (m, n2, min_mn, tmp_data, m, ptau,
+				 pwork2, lwork, info));
+
+      q = A_fact;
+      q.resize (m, n2);
     }
 }