From 215b3c513cff17190dc7b04530d97c6b8ec7307c Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Sat, 6 Feb 2021 10:11:17 +0100 Subject: [PATCH] This version will laeds to speedup of 5 - 7% with VS2019, Windows 10. It is useful (necessary?) to have the loop index private, it might not crash, but happpen that not all are set to 0. The local ElementPtr pElement does not sacrifice speed, but removes a compiler warning. --- src/maths/sparse/spbuild.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/maths/sparse/spbuild.c b/src/maths/sparse/spbuild.c index 8ee62b2da..afd60758e 100644 --- a/src/maths/sparse/spbuild.c +++ b/src/maths/sparse/spbuild.c @@ -96,7 +96,6 @@ static void ExpandTranslationArrays( MatrixPtr, int ); void spClear(MatrixPtr Matrix) { - ElementPtr pElement; int I; /* Begin `spClear'. */ @@ -106,11 +105,11 @@ spClear(MatrixPtr Matrix) if (Matrix->PreviousMatrixWasComplex || Matrix->Complex) { #ifdef USE_OMP -#pragma omp parallel for private(pElement) +#pragma omp parallel for private(I) schedule(static, 1024) #endif for (I = Matrix->Size; I > 0; I--) { - pElement = Matrix->FirstInCol[I]; + ElementPtr pElement = Matrix->FirstInCol[I]; while (pElement != NULL) { pElement->Real = 0.0; @@ -122,11 +121,11 @@ spClear(MatrixPtr Matrix) else { #ifdef USE_OMP -#pragma omp parallel for private(pElement) +#pragma omp parallel for private(I) schedule(static, 1024) #endif for (I = Matrix->Size; I > 0; I--) { - pElement = Matrix->FirstInCol[I]; + ElementPtr pElement = Matrix->FirstInCol[I]; while (pElement != NULL) { pElement->Real = 0.0;