aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortradke <tradke@10716dce-81a3-4424-a2c8-48026a0d3035>2000-05-02 16:34:25 +0000
committertradke <tradke@10716dce-81a3-4424-a2c8-48026a0d3035>2000-05-02 16:34:25 +0000
commit3363fdc5acbe092423e6d6284aaaa7c8eb1259c4 (patch)
treee9c633099ef644f30d0dc36a2b6ce1fc3585b6af /src
parent096d45fa50a04ba721e1b3a11a11616892721ec6 (diff)
Loop optimization.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGH/PUGHSlab/trunk@7 10716dce-81a3-4424-a2c8-48026a0d3035
Diffstat (limited to 'src')
-rw-r--r--src/CollectData1D.c146
1 files changed, 28 insertions, 118 deletions
diff --git a/src/CollectData1D.c b/src/CollectData1D.c
index fa521b6..4d7c792 100644
--- a/src/CollectData1D.c
+++ b/src/CollectData1D.c
@@ -127,6 +127,10 @@ int CollectLocalData1D(cGH *GH, int vindex, int vtype, int vtypesize, int vtimel
l=0;
+ /* zero out gridpnt[] for unused dimensions */
+ for (idim = 0; idim < MAX_DIM; idim++)
+ gridpnt [idim] = 0;
+
/* CCTK_VARIABLE_INT */
if (vtype == CCTK_VARIABLE_INT)
{
@@ -134,35 +138,10 @@ int CollectLocalData1D(cGH *GH, int vindex, int vtype, int vtypesize, int vtimel
for (ipnt=0; ipnt<=nlocpoints; ipnt++)
{
-
- if (vdim==3) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
- int_dptr[l++]=((CCTK_INT *) data)
- [CCTK_GFINDEX3D(GH,gridpnt[0],gridpnt[1],gridpnt[2])];
- }
- }
- else if (vdim==2) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
- int_dptr[l++]=((CCTK_INT *) data)
- [CCTK_GFINDEX2D(GH,gridpnt[0],gridpnt[1])];
- }
- }
- else if (vdim==1) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
- int_dptr[l++]=((CCTK_INT *) data)
- [CCTK_GFINDEX1D(GH,gridpnt[0])];
- }
- }
- else return(-1);
+ for (idim=0;idim<vdim;idim++)
+ gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
+ int_dptr[l++]=((CCTK_INT *) data)
+ [CCTK_GFINDEX3D(GH,gridpnt[0],gridpnt[1],gridpnt[2])];
}
}
/* CCTK_VARIABLE_CHAR */
@@ -170,31 +149,11 @@ int CollectLocalData1D(cGH *GH, int vindex, int vtype, int vtypesize, int vtimel
{
CCTK_CHAR *char_dptr = (CCTK_CHAR *) *loc_dptr;
- if (vdim==3) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
- char_dptr[l++]=((CCTK_CHAR *) data)[CCTK_GFINDEX3D(GH,gridpnt[0],gridpnt[1],gridpnt[2])];
- }
- }
- else if (vdim==2) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
- char_dptr[l++]=((CCTK_CHAR *) data)
- [CCTK_GFINDEX2D(GH,gridpnt[0],gridpnt[1])];
- }
- }
- else if (vdim==1) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
- char_dptr[l++]=((CCTK_CHAR *) data)
- [CCTK_GFINDEX1D(GH,gridpnt[0])];
- }
+ for (ipnt=0; ipnt<=nlocpoints; ipnt++)
+ {
+ for (idim=0;idim<vdim;idim++)
+ gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
+ char_dptr[l++]=((CCTK_CHAR *) data)[CCTK_GFINDEX3D(GH,gridpnt[0],gridpnt[1],gridpnt[2])];
}
}
@@ -204,32 +163,12 @@ int CollectLocalData1D(cGH *GH, int vindex, int vtype, int vtypesize, int vtimel
CCTK_REAL *real_dptr = (CCTK_REAL *) *loc_dptr;
- if (vdim==3) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
- real_dptr[l++]=((CCTK_REAL *) data)
- [CCTK_GFINDEX3D(GH,gridpnt[0],gridpnt[1],gridpnt[2])];
- }
- }
- else if (vdim==2) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
- real_dptr[l++]=((CCTK_REAL *) data)
- [CCTK_GFINDEX2D(GH,gridpnt[0],gridpnt[1])];
- }
- }
- else if (vdim==1) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
- real_dptr[l++]=((CCTK_REAL *) data)
- [CCTK_GFINDEX1D(GH,gridpnt[0])];
- }
+ for (ipnt=0; ipnt<=nlocpoints; ipnt++)
+ {
+ for (idim=0;idim<vdim;idim++)
+ gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
+ real_dptr[l++]=((CCTK_REAL *) data)
+ [CCTK_GFINDEX3D(GH,gridpnt[0],gridpnt[1],gridpnt[2])];
}
}
/* CCTK_VARIABLE_REAL4 */
@@ -238,44 +177,15 @@ int CollectLocalData1D(cGH *GH, int vindex, int vtype, int vtypesize, int vtimel
CCTK_REAL4 *real4_dptr = (CCTK_REAL4*) *loc_dptr;
- if (vdim==3) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
-
- real4_dptr[l++]=((CCTK_REAL4 *) data)
- [CCTK_GFINDEX3D(GH,gridpnt[0],gridpnt[1],gridpnt[2])];
- }
- }
- else if (vdim==2) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
-
- real4_dptr[l++]=((CCTK_REAL4 *) data)
- [CCTK_GFINDEX2D(GH,gridpnt[0],gridpnt[1])];
- }
- }
- else if (vdim==1) {
- for (ipnt=0; ipnt<=nlocpoints; ipnt++)
- {
- for (idim=0;idim<vdim;idim++)
- gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
-
- real4_dptr[l++]=((CCTK_REAL4 *) data)
- [CCTK_GFINDEX1D(GH,gridpnt[0])];
- }
+ for (ipnt=0; ipnt<=nlocpoints; ipnt++)
+ {
+ for (idim=0;idim<vdim;idim++)
+ gridpnt[idim] = locstart[idim]+ipnt * u_l[idim];
+
+ real4_dptr[l++]=((CCTK_REAL4 *) data)
+ [CCTK_GFINDEX3D(GH,gridpnt[0],gridpnt[1],gridpnt[2])];
}
}
-}
-
-
-
-
-
-
-
-
+ *dsize = nlocpoints;
+}