From: guido Date: Mon, 28 Aug 2000 20:33:23 +0000 (+0000) Subject: do not overwrite original matrix X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99d9b3fb0b4e208a177532cc6610f5b9f80cf11c;p=dealii-svn.git do not overwrite original matrix git-svn-id: https://svn.dealii.org/trunk@3283 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/lac/source/full_matrix.double.cc b/deal.II/lac/source/full_matrix.double.cc index 1cc3f7b6cc..ab4b863e68 100644 --- a/deal.II/lac/source/full_matrix.double.cc +++ b/deal.II/lac/source/full_matrix.double.cc @@ -101,13 +101,17 @@ FullMatrix::invert (const FullMatrix &M) double* work = new double[lwork]; int info; - const char* trans = "N"; +// const char* trans = "N"; int rank; const double rcond=-1.; double* s = new double[dim_range]; + double* matrix = new double[dim_range*dim_range]; + copy (&M.val[0], &M.val[dim_image*dim_range], matrix); + + int erg = dgelss_ (&dim_range, &dim_range, &dim_range, - M.val, &dim_range, + matrix, &dim_range, val, &dim_range, s, &rcond, &rank, work, &lwork, @@ -118,14 +122,12 @@ FullMatrix::invert (const FullMatrix &M) // work, &lwork, // &info); - double condition = s[0]/s[dim_range-1]; +// double condition = s[0]/s[dim_range-1]; if (info!=0) deallog << "inverting error " << info << ' ' << erg << endl; if (rank<(int)dim_range) deallog << "rank deficiency " << rank << endl; - if (condition > 1.e6) - deallog << "Condition " << condition << endl; delete[] work; delete[] s; }