From ebf2583f23bf70df353e37b6bf5fafc15cb16a45 Mon Sep 17 00:00:00 2001 From: Martin Kronbichler Date: Sat, 30 May 2009 12:29:22 +0000 Subject: [PATCH] Improve our own mmult implementation. git-svn-id: https://svn.dealii.org/trunk@18889 0785d39b-7218-0410-832d-ea1e28bc413d --- .../lac/include/lac/full_matrix.templates.h | 67 ++++++++++--------- 1 file changed, 35 insertions(+), 32 deletions(-) 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