From: Martin Kronbichler Date: Sat, 30 May 2009 12:29:22 +0000 (+0000) Subject: Improve our own mmult implementation. X-Git-Tag: v8.0.0~7648 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ebf2583f23bf70df353e37b6bf5fafc15cb16a45;p=dealii.git Improve our own mmult implementation. git-svn-id: https://svn.dealii.org/trunk@18889 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/lac/include/lac/full_matrix.templates.h b/deal.II/lac/include/lac/full_matrix.templates.h index 4b7744d5e0..f56acaf1c4 100644 --- a/deal.II/lac/include/lac/full_matrix.templates.h +++ b/deal.II/lac/include/lac/full_matrix.templates.h @@ -626,24 +626,26 @@ void FullMatrix::mmult (FullMatrix &dst, #endif + const unsigned int m = this->m(), n = src.n(), l = this->n(); + + // arrange the loops in a way + // that we can access contiguous + // fields at the innermost loop + // (even though this introduces + // a lot of writing into the + // destination matrix) if (!adding) - for (unsigned int i=0; i::Tmmult (FullMatrix &dst, #endif + const unsigned int m = n(), n = src.n(), l = this->m(); + // arrange the loops in a way + // that we can access contiguous + // fields at the innermost loop + // (even though this introduces + // a lot of writing into the + // destination matrix) if (!adding) - for (unsigned int i=0; i