aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortradke <tradke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2005-08-29 11:43:41 +0000
committertradke <tradke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b>2005-08-29 11:43:41 +0000
commitecdce2f6a326885693af7cbd4f00c67ce6da5e8b (patch)
treedf3795015ee2bca46708117607527e973c49fd63 /src
parent9d6165856a6a21b91b686c71064525fef6295599 (diff)
Small optimisation: substitute division by multiplication with the inverse.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/MoL/trunk@91 578cdeb0-5ea1-4b81-8215-5a3b8777ee0b
Diffstat (limited to 'src')
-rw-r--r--src/RK3.c6
-rw-r--r--src/RK45.c5
2 files changed, 7 insertions, 4 deletions
diff --git a/src/RK3.c b/src/RK3.c
index 1ecdcf5..cf21414 100644
--- a/src/RK3.c
+++ b/src/RK3.c
@@ -262,6 +262,8 @@ void MoL_RK3Add(CCTK_ARGUMENTS)
}
case 1:
{
+ const CCTK_REAL one_third = 1.0 / 3.0;
+
for (var = 0; var < MoLNumEvolvedVariables; var++)
{
OldVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 1,
@@ -273,7 +275,7 @@ void MoL_RK3Add(CCTK_ARGUMENTS)
for (index = 0; index < totalsize; index++)
{
- UpdateVar[index] = (OldVar[index] + 2*UpdateVar[index])/3
+ UpdateVar[index] = (OldVar[index] + 2*UpdateVar[index]) * one_third
+ CCTK_DELTA_TIME * RHSVar[index];
}
}
@@ -305,7 +307,7 @@ void MoL_RK3Add(CCTK_ARGUMENTS)
for (index = 0; index < arraytotalsize; index++)
{
- UpdateVar[index] = (OldVar[index] + 2*UpdateVar[index])/3
+ UpdateVar[index] = (OldVar[index] + 2*UpdateVar[index]) * one_third
+ CCTK_DELTA_TIME * RHSVar[index];
}
}
diff --git a/src/RK45.c b/src/RK45.c
index 41a0462..b2f6c88 100644
--- a/src/RK45.c
+++ b/src/RK45.c
@@ -122,6 +122,8 @@ void MoL_RK45Add(CCTK_ARGUMENTS)
for (var = 0; var < MoLNumEvolvedVariables; var++)
{
+ const CCTK_REAL tmp = (*Original_Delta_Time) / cctkGH->cctk_timefac;
+
UpdateVar = (CCTK_REAL *)CCTK_VarDataPtrI(cctkGH, 0,
EvolvedVariableIndex[var]);
RHSVar = (CCTK_REAL *)CCTK_VarDataPtrI(cctkGH, 0,
@@ -134,8 +136,7 @@ void MoL_RK45Add(CCTK_ARGUMENTS)
(*MoL_Intermediate_Step)));
for (index = 0; index < totalsize; index++)
{
- ScratchVar[index] = (*Original_Delta_Time) / cctkGH->cctk_timefac *
- RHSVar[index];
+ ScratchVar[index] = tmp * RHSVar[index];
}
}