diff liboctave/array/CMatrix.cc @ 15383:2137f5638521

maint: periodic merge of stable to default
author John W. Eaton <jwe@octave.org>
date Thu, 13 Sep 2012 15:20:16 -0400
parents liboctave/CMatrix.cc@197774b411ec liboctave/CMatrix.cc@648dabbb4c6b
children 0a0912a9ab6e
line wrap: on
line diff
--- a/liboctave/array/CMatrix.cc
+++ b/liboctave/array/CMatrix.cc
@@ -1786,15 +1786,17 @@
       else if (typ == MatrixType::Full || typ == MatrixType::Hermitian)
         {
           double anorm = -1.0;
-          ComplexMatrix atmp = *this;
-          Complex *tmp_data = atmp.fortran_vec ();
 
           if (typ == MatrixType::Hermitian)
             {
               octave_idx_type info = 0;
               char job = 'L';
-              anorm = atmp.abs ().sum ().
-                row(static_cast<octave_idx_type>(0)).max ();
+
+              ComplexMatrix atmp = *this;
+              Complex *tmp_data = atmp.fortran_vec ();
+
+              anorm = atmp.abs().sum().
+                row(static_cast<octave_idx_type>(0)).max();
 
               F77_XFCN (zpotrf, ZPOTRF, (F77_CONST_CHAR_ARG2 (&job, 1), nr,
                                          tmp_data, nr, info
@@ -1829,6 +1831,9 @@
             {
               octave_idx_type info = 0;
 
+              ComplexMatrix atmp = *this;
+              Complex *tmp_data = atmp.fortran_vec ();
+
               Array<octave_idx_type> ipvt (dim_vector (nr, 1));
               octave_idx_type *pipvt = ipvt.fortran_vec ();
 
@@ -2098,9 +2103,11 @@
         {
           info = 0;
           char job = 'L';
+
           ComplexMatrix atmp = *this;
           Complex *tmp_data = atmp.fortran_vec ();
-          anorm = atmp.abs ().sum ().row (static_cast<octave_idx_type>(0)).max ();
+
+          anorm = atmp.abs().sum().row(static_cast<octave_idx_type>(0)).max();
 
           F77_XFCN (zpotrf, ZPOTRF, (F77_CONST_CHAR_ARG2 (&job, 1), nr,
                                      tmp_data, nr, info