diff options
author | tradke <tradke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b> | 2005-08-29 11:43:41 +0000 |
---|---|---|
committer | tradke <tradke@578cdeb0-5ea1-4b81-8215-5a3b8777ee0b> | 2005-08-29 11:43:41 +0000 |
commit | ecdce2f6a326885693af7cbd4f00c67ce6da5e8b (patch) | |
tree | df3795015ee2bca46708117607527e973c49fd63 /src | |
parent | 9d6165856a6a21b91b686c71064525fef6295599 (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.c | 6 | ||||
-rw-r--r-- | src/RK45.c | 5 |
2 files changed, 7 insertions, 4 deletions
@@ -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]; } } @@ -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]; } } |