diff options
author | tradke <tradke@10716dce-81a3-4424-a2c8-48026a0d3035> | 2000-05-02 16:34:25 +0000 |
---|---|---|
committer | tradke <tradke@10716dce-81a3-4424-a2c8-48026a0d3035> | 2000-05-02 16:34:25 +0000 |
commit | 3363fdc5acbe092423e6d6284aaaa7c8eb1259c4 (patch) | |
tree | e9c633099ef644f30d0dc36a2b6ce1fc3585b6af /src | |
parent | 096d45fa50a04ba721e1b3a11a11616892721ec6 (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.c | 146 |
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; +} |