aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortradke <tradke@1c20744c-e24a-42ec-9533-f5004cb800e5>2001-05-28 15:28:21 +0000
committertradke <tradke@1c20744c-e24a-42ec-9533-f5004cb800e5>2001-05-28 15:28:21 +0000
commit5c06ee788482b032fc3c45e62dacd055c727d8b6 (patch)
tree572501419ade4fde00bc349330bcb40771591afe /src
parent593f34a2959d23695aaabae4847fcc9e56c781b8 (diff)
Use const pointers wherever possible.
Also removed volatile qualifiers for some pointers which were needed on the Hitachi. The compiler bug there seems to be fixed now. git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGH/PUGHInterp/trunk@15 1c20744c-e24a-42ec-9533-f5004cb800e5
Diffstat (limited to 'src')
-rw-r--r--src/Interpolate.c23
-rw-r--r--src/Operator.c71
-rw-r--r--src/Startup.c86
-rw-r--r--src/pughInterpGH.h44
4 files changed, 111 insertions, 113 deletions
diff --git a/src/Interpolate.c b/src/Interpolate.c
index dc6bc5a..b387b19 100644
--- a/src/Interpolate.c
+++ b/src/Interpolate.c
@@ -18,13 +18,14 @@
@@*/
#include <stdlib.h>
+#include <string.h>
#include "cctk.h"
#include "cctk_Parameters.h"
#include "pughInterpGH.h"
/* the rcs ID and its dummy function to use it */
-static const char *rcsid = "$Id$";
+static const char *rcsid = "$Header$";
CCTK_FILEVERSION(CactusPUGH_PUGHInterp_Interpolate_c)
@@ -39,7 +40,7 @@ CCTK_FILEVERSION(CactusPUGH_PUGHInterp_Interpolate_c)
order, point, dims, n, coeff) \
{ \
int ii, jj, kk; \
- cctk_type *fi; \
+ const cctk_type *fi; \
/* for some reason (probably loop unrolling & pipelining) the compiler \
produces faster code if arrays are used instead of scalars */ \
cctk_subtype interp_result, fj[1], fk[1]; \
@@ -54,7 +55,7 @@ CCTK_FILEVERSION(CactusPUGH_PUGHInterp_Interpolate_c)
for (jj = 0; jj <= order; jj++) \
{ \
/* NOTE: for >3D arrays adapt the index calculation here */ \
- fi = (cctk_type *) in_array + \
+ fi = (const cctk_type *) in_array + \
point[0] + dims[0]*(point[1]+jj + dims[1]*(point[2]+kk)); \
fj[0] = 0; \
for (ii = 0; ii <= order; ii++) \
@@ -164,14 +165,14 @@ int PUGHInterp_Interpolate (int order,
int num_points,
int num_dims,
int num_arrays,
- int dims[ /* num_dims */ ],
- CCTK_REAL coord[ /* num_dims * num_points */ ],
- CCTK_REAL origin[ /* num_dims */ ],
- CCTK_REAL delta[ /* num_dims */ ],
- int in_types[ /* num_arrays */ ],
- void *in_arrays[ /* num_arrays */ ],
- int out_types[ /* num_arrays */ ],
- void *out_arrays[ /* num_arrays */ ])
+ const int dims[],
+ const CCTK_REAL coord[],
+ const CCTK_REAL origin[],
+ const CCTK_REAL delta[],
+ const int in_types[],
+ const void *const in_arrays[],
+ const int out_types[],
+ void *const out_arrays[])
{
int retval;
int i, a, n, out_of_bounds, shift;
diff --git a/src/Operator.c b/src/Operator.c
index 51da9dc..58e8c74 100644
--- a/src/Operator.c
+++ b/src/Operator.c
@@ -73,13 +73,13 @@ static int PUGHInterp_CheckArguments (cGH *GH,
int num_points,
int num_in_arrays,
int num_out_arrays,
- int interp_coord_array_types[]);
+ const int interp_coord_array_types[]);
#ifdef CCTK_MPI
static int GetLocalCoords (cGH *GH,
int num_points,
const char *coord_system,
- pGExtras *extras,
- CCTK_REAL *coords[],
+ const pGExtras *extras,
+ const CCTK_REAL *coords[],
int *num_local_points,
CCTK_REAL **local_coords);
#endif
@@ -134,7 +134,7 @@ static int GetLocalCoords (cGH *GH,
@endvar
@var interp_coord_arrays
@vdesc coordinates of points to interpolate at
- @vtype void *[num_dims]
+ @vtype void *const [num_dims]
@vio in
@endvar
@var interp_coord_array_types
@@ -154,7 +154,7 @@ static int GetLocalCoords (cGH *GH,
@endvar
@var out_arrays
@vdesc list of output arrays to interpolate to
- @vtype void *[num_out_arrays]
+ @vtype void *const [num_out_arrays]
@vio out
@endvar
@var out_array_types
@@ -175,13 +175,14 @@ int PUGHInterp_InterpGV (cGH *GH,
int num_points,
int num_in_array_indices,
int num_out_arrays,
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- int in_array_indices[],
- void *out_arrays[],
- int out_array_types[])
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const int in_array_indices[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
- CCTK_REAL **data, *interp_local_coords;
+ const CCTK_REAL **data;
+ CCTK_REAL *interp_local_coords;
CCTK_REAL *origin, *delta;
int nprocs;
int timelevel;
@@ -189,7 +190,7 @@ int PUGHInterp_InterpGV (cGH *GH,
int array;
int point;
int retval;
- void **in_arrays;
+ const void **in_arrays;
pGH *pughGH;
pGExtras *extras;
cGroupDynamicData group_data;
@@ -308,7 +309,7 @@ int PUGHInterp_InterpGV (cGH *GH,
/* sort the individual interpolation coordinate arrays into a single one */
interp_local_coords = (CCTK_REAL *) malloc (num_dims * num_points *
sizeof (CCTK_REAL));
- data = (CCTK_REAL **) interp_coord_arrays;
+ data = (const CCTK_REAL **) interp_coord_arrays;
for (point = 0; point < num_points; point++)
{
for (dim = 0; dim < num_dims; dim++)
@@ -426,7 +427,7 @@ int PUGHInterp_InterpGV (cGH *GH,
the number of processor-local points is returned in num_local_points,
their coordinates in interp_local_coords */
retval = GetLocalCoords (GH, num_points, coord_system, extras,
- (CCTK_REAL **) interp_coord_arrays,
+ (const CCTK_REAL **) interp_coord_arrays,
&num_local_points, &interp_local_coords);
if (retval)
{
@@ -737,7 +738,7 @@ int PUGHInterp_InterpGV (cGH *GH,
@endvar
@var coord_arrays
@vdesc list of grid coordinate arrays
- @vtype void *[num_dims]
+ @vtype void *const [num_dims]
@vio in
@endvar
@var coord_array_types
@@ -747,7 +748,7 @@ int PUGHInterp_InterpGV (cGH *GH,
@endvar
@var interp_coord_arrays
@vdesc coordinates of points to interpolate at
- @vtype void *[num_dims]
+ @vtype void *const [num_dims]
@vio in
@endvar
@var interp_coord_array_types
@@ -757,7 +758,7 @@ int PUGHInterp_InterpGV (cGH *GH,
@endvar
@var in_arrays
@vdesc list of input arrays to interpolate on
- @vtype void *[num_in_arrays]
+ @vtype void *const [num_in_arrays]
@vio in
@endvar
@var in_array_types
@@ -767,7 +768,7 @@ int PUGHInterp_InterpGV (cGH *GH,
@endvar
@var out_arrays
@vdesc list of output arrays to interpolate to
- @vtype void *[num_out_arrays]
+ @vtype void *const [num_out_arrays]
@vio out
@endvar
@var out_array_types
@@ -788,21 +789,19 @@ int PUGHInterp_InterpLocal (cGH *GH,
int num_dims,
int num_in_arrays,
int num_out_arrays,
- int coord_dims[],
- void *coord_arrays[],
- int coord_array_types[],
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- void *in_arrays[],
- int in_array_types[],
- void *out_arrays[],
- int out_array_types[])
+ const int coord_dims[],
+ const void *const coord_arrays[],
+ const int coord_array_types[],
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const void *const in_arrays[],
+ const int in_array_types[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
int dim, point, retval;
CCTK_REAL *coords, *origin, *delta;
-/* FIXME: the volatile qualifier is just a workaround for compiler bug
- on the Hitachi SR8000 machine, without it optimized code will crash */
- volatile CCTK_REAL **data;
+ const CCTK_REAL *const *data;
/* check arguments */
@@ -830,7 +829,7 @@ int PUGHInterp_InterpLocal (cGH *GH,
/* get the grid spacings - this assumes a cartesian grid */
origin = (CCTK_REAL *) malloc (2 * num_dims * sizeof (CCTK_REAL));
delta = origin + num_dims;
- data = (volatile CCTK_REAL **) coord_arrays;
+ data = (const CCTK_REAL *const *) coord_arrays;
for (dim = 0; dim < num_dims; dim++)
{
origin[dim] = data[dim][0];
@@ -839,7 +838,7 @@ int PUGHInterp_InterpLocal (cGH *GH,
/* sort the individual interpolation coordinate arrays into a single one */
coords = (CCTK_REAL *) malloc (num_dims * num_points * sizeof (CCTK_REAL));
- data = (volatile CCTK_REAL **) interp_coord_arrays;
+ data = (const CCTK_REAL *const *) interp_coord_arrays;
for (point = 0; point < num_points; point++)
{
for (dim = 0; dim < num_dims; dim++)
@@ -897,7 +896,7 @@ int PUGHInterp_InterpLocal (cGH *GH,
@var GH
@vdesc Pointer to CCTK grid hierarchy
- @vtype cGH
+ @vtype cGH *
@vio in
@endvar
@var num_points
@@ -936,8 +935,8 @@ int PUGHInterp_InterpLocal (cGH *GH,
static int GetLocalCoords (cGH *GH,
int num_points,
const char *coord_system,
- pGExtras *extras,
- CCTK_REAL *coords[],
+ const pGExtras *extras,
+ const CCTK_REAL *coords[],
int *num_local_points,
CCTK_REAL **local_coords)
{
@@ -1259,7 +1258,7 @@ static int PUGHInterp_CheckArguments (cGH *GH,
int num_points,
int num_in_arrays,
int num_out_arrays,
- int interp_coord_array_types[])
+ const int interp_coord_array_types[])
{
int i;
diff --git a/src/Startup.c b/src/Startup.c
index d8eac29..f642715 100644
--- a/src/Startup.c
+++ b/src/Startup.c
@@ -5,8 +5,6 @@
@desc
Startup routines for PUGHInterp
@enddesc
- @history
- @endhistory
@version $Id$
@@*/
@@ -97,11 +95,11 @@ static int PUGHInterp_InterpGV_1stOrder (cGH *GH,
int num_points,
int num_in_array_indices,
int num_out_arrays,
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- int in_array_indices[],
- void *out_arrays[],
- int out_array_types[])
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const int in_array_indices[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpGV (GH, 1, coord_system, num_points,
num_in_array_indices, num_out_arrays,
@@ -115,11 +113,11 @@ static int PUGHInterp_InterpGV_2ndOrder (cGH *GH,
int num_points,
int num_in_array_indices,
int num_out_arrays,
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- int in_array_indices[],
- void *out_arrays[],
- int out_array_types[])
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const int in_array_indices[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpGV (GH, 2, coord_system, num_points,
num_in_array_indices, num_out_arrays,
@@ -133,11 +131,11 @@ static int PUGHInterp_InterpGV_3rdOrder (cGH *GH,
int num_points,
int num_in_array_indices,
int num_out_arrays,
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- int in_array_indices[],
- void *out_arrays[],
- int out_array_types[])
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const int in_array_indices[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpGV (GH, 3, coord_system, num_points,
num_in_array_indices, num_out_arrays,
@@ -151,15 +149,15 @@ static int PUGHInterp_InterpLocal_1stOrder (cGH *GH,
int num_dims,
int num_in_arrays,
int num_out_arrays,
- int coord_dims[],
- void *coord_arrays[],
- int coord_array_types[],
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- void *in_arrays[],
- int in_array_types[],
- void *out_arrays[],
- int out_array_types[])
+ const int coord_dims[],
+ const void *const coord_arrays[],
+ const int coord_array_types[],
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const void *const in_arrays[],
+ const int in_array_types[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpLocal (GH, 1, num_points, num_dims,
num_in_arrays, num_out_arrays,
@@ -175,15 +173,15 @@ static int PUGHInterp_InterpLocal_2ndOrder (cGH *GH,
int num_dims,
int num_in_arrays,
int num_out_arrays,
- int coord_dims[],
- void *coord_arrays[],
- int coord_array_types[],
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- void *in_arrays[],
- int in_array_types[],
- void *out_arrays[],
- int out_array_types[])
+ const int coord_dims[],
+ const void *const coord_arrays[],
+ const int coord_array_types[],
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const void *const in_arrays[],
+ const int in_array_types[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpLocal (GH, 2, num_points, num_dims,
num_in_arrays, num_out_arrays,
@@ -199,15 +197,15 @@ static int PUGHInterp_InterpLocal_3rdOrder (cGH *GH,
int num_dims,
int num_in_arrays,
int num_out_arrays,
- int coord_dims[],
- void *coord_arrays[],
- int coord_array_types[],
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- void *in_arrays[],
- int in_array_types[],
- void *out_arrays[],
- int out_array_types[])
+ const int coord_dims[],
+ const void *const coord_arrays[],
+ const int coord_array_types[],
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const void *const in_arrays[],
+ const int in_array_types[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpLocal (GH, 3, num_points, num_dims,
num_in_arrays, num_out_arrays,
diff --git a/src/pughInterpGH.h b/src/pughInterpGH.h
index e6eef76..c9187ff 100644
--- a/src/pughInterpGH.h
+++ b/src/pughInterpGH.h
@@ -34,11 +34,11 @@ int PUGHInterp_InterpGV (cGH *GH,
int num_points,
int num_in_array_indices,
int num_out_arrays,
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- int in_array_indices[],
- void *out_arrays[],
- int out_array_types[]);
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const int in_array_indices[],
+ void *const out_arrays[],
+ const int out_array_types[]);
int PUGHInterp_InterpLocal (cGH *GH,
int order,
@@ -46,26 +46,26 @@ int PUGHInterp_InterpLocal (cGH *GH,
int num_dims,
int num_in_arrays,
int num_out_arrays,
- int coord_dims[],
- void *coord_arrays[],
- int coord_array_types[],
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- void *in_arrays[],
- int in_array_types[],
- void *out_arrays[],
- int out_array_types[]);
+ const int coord_dims[],
+ const void *const coord_arrays[],
+ const int coord_array_types[],
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const void *const in_arrays[],
+ const int in_array_types[],
+ void *const out_arrays[],
+ const int out_array_types[]);
/* prototypes of routines used internally */
int PUGHInterp_Interpolate (int order,
int num_points,
int num_dims,
int num_arrays,
- int dims[ /* num_dims */ ],
- CCTK_REAL coord[ /* num_dims * num_points */ ],
- CCTK_REAL origin[ /* num_dims */ ],
- CCTK_REAL delta[ /* num_dims */ ],
- int in_types[ /* num_arrays */ ],
- void *in_arrays[ /* num_arrays */ ],
- int out_types[ /* num_arrays */ ],
- void *out_arrays[ /* num_arrays */ ]);
+ const int dims[ /* num_dims */ ],
+ const CCTK_REAL coord[ /* num_dims*num_points */ ],
+ const CCTK_REAL origin[ /* num_dims */ ],
+ const CCTK_REAL delta[ /* num_dims */ ],
+ const int in_types[ /* num_arrays */ ],
+ const void *const in_arrays[ /* num_arrays */ ],
+ const int out_types[ /* num_arrays */ ],
+ void *const out_arrays[ /* num_arrays */ ]);