Avoid declaring variables in the middle of a block, to avoid requiring C99.
[pspp-builds.git] / lib / linreg / sweep.c
index 7667e3a555db063502eae81dcdd8188921630872..62dda200701ceda43e4040e3128b1b8121b9e279 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2005, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2009, 2011 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 int
 reg_sweep (gsl_matrix * A, int last_col)
 {
-  if (A == NULL)
-    return GSL_EFAULT;
-
-  if (A->size1 != A->size2)
-    return GSL_ENOTSQR;
-
   int i;
   int j;
   int k;
   gsl_matrix *B;
 
+  if (A == NULL)
+    return GSL_EFAULT;
+
+  if (A->size1 != A->size2)
+    return GSL_ENOTSQR;
 
   assert (last_col < A->size1);
   gsl_matrix_swap_rows (A, A->size1 - 1, last_col);
@@ -142,11 +141,7 @@ reg_sweep (gsl_matrix * A, int last_col)
                }
            }
        }
-      for (i = 0; i < A->size1; i++)
-       for (j = i; j < A->size2; j++)
-         {
-           gsl_matrix_set (A, i, j, gsl_matrix_get (B, i, j));
-         }
+      gsl_matrix_memcpy (A, B);
     }
   gsl_matrix_free (B);