aboutsummaryrefslogtreecommitdiff
path: root/src/template.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/template.c')
-rw-r--r--src/template.c293
1 files changed, 155 insertions, 138 deletions
diff --git a/src/template.c b/src/template.c
index a22401e..9c012c4 100644
--- a/src/template.c
+++ b/src/template.c
@@ -217,43 +217,43 @@
#ifdef HAVE_OP_I
static
- void compute_coeffs_I(FP_XYZ, struct COEFFS_STRUCT *coeffs_I);
+ void compute_coeffs_I(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_I);
#endif
#ifdef HAVE_OP_DX
static
- void compute_coeffs_dx(FP_XYZ, struct COEFFS_STRUCT *coeffs_dx);
+ void compute_coeffs_dx(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dx);
#endif
#ifdef HAVE_OP_DY
static
- void compute_coeffs_dy(FP_XYZ, struct COEFFS_STRUCT *coeffs_dy);
+ void compute_coeffs_dy(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dy);
#endif
#ifdef HAVE_OP_DZ
static
- void compute_coeffs_dz(FP_XYZ, struct COEFFS_STRUCT *coeffs_dz);
+ void compute_coeffs_dz(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dz);
#endif
#ifdef HAVE_OP_DXX
static
- void compute_coeffs_dxx(FP_XYZ, struct COEFFS_STRUCT *coeffs_dxx);
+ void compute_coeffs_dxx(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dxx);
#endif
#ifdef HAVE_OP_DXY
static
- void compute_coeffs_dxy(FP_XYZ, struct COEFFS_STRUCT *coeffs_dxy);
+ void compute_coeffs_dxy(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dxy);
#endif
#ifdef HAVE_OP_DXZ
static
- void compute_coeffs_dxz(FP_XYZ, struct COEFFS_STRUCT *coeffs_dxz);
+ void compute_coeffs_dxz(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dxz);
#endif
#ifdef HAVE_OP_DYY
static
- void compute_coeffs_dyy(FP_XYZ, struct COEFFS_STRUCT *coeffs_dyy);
+ void compute_coeffs_dyy(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dyy);
#endif
#ifdef HAVE_OP_DYZ
static
- void compute_coeffs_dyz(FP_XYZ, struct COEFFS_STRUCT *coeffs_dyz);
+ void compute_coeffs_dyz(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dyz);
#endif
#ifdef HAVE_OP_DZZ
static
- void compute_coeffs_dzz(FP_XYZ, struct COEFFS_STRUCT *coeffs_dzz);
+ void compute_coeffs_dzz(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dzz);
#endif
/******************************************************************************/
@@ -335,38 +335,38 @@
@@*/
int FUNCTION_NAME(/***** coordinate system *****/
- const CCTK_REAL coord_origin[],
- const CCTK_REAL coord_delta[],
+ const CCTK_REAL *restrict coord_origin,
+ const CCTK_REAL *restrict coord_delta,
/***** interpolation points *****/
int N_interp_points,
int interp_coords_type_code,
- const void* const interp_coords[],
- const CCTK_INT N_boundary_points_to_omit[],
- const CCTK_REAL boundary_off_centering_tolerance[],
- const CCTK_REAL boundary_extrapolation_tolerance[],
+ const void *restrict const *restrict interp_coords,
+ const CCTK_INT *restrict N_boundary_points_to_omit,
+ const CCTK_REAL *restrict boundary_off_centering_tolerance,
+ const CCTK_REAL *restrict boundary_extrapolation_tolerance,
/***** input arrays *****/
int N_input_arrays,
- const CCTK_INT input_array_offsets[],
- const CCTK_INT input_array_strides[],
- const CCTK_INT input_array_min_subscripts[],
- const CCTK_INT input_array_max_subscripts[],
- const CCTK_INT input_array_type_codes[],
- const void* const input_arrays[],
+ const CCTK_INT *restrict input_array_offsets,
+ const CCTK_INT *restrict input_array_strides,
+ const CCTK_INT *restrict input_array_min_subscripts,
+ const CCTK_INT *restrict input_array_max_subscripts,
+ const CCTK_INT *restrict input_array_type_codes,
+ const void *restrict const *restrict input_arrays,
/***** output arrays *****/
int N_output_arrays,
- const CCTK_INT output_array_type_codes[],
- void* const output_arrays[],
+ const CCTK_INT *restrict output_array_type_codes,
+ void* const *restrict output_arrays,
/***** operation info *****/
- const CCTK_INT operand_indices[],
- const CCTK_INT operation_codes[],
+ const CCTK_INT *restrict operand_indices,
+ const CCTK_INT *restrict operation_codes,
/***** debugging *****/
int debug, FILE* log_fp,
/***** other return results *****/
struct error_info* error_info,
struct molecule_structure_flags* molecule_structure_flags,
struct molecule_min_max_m_info* molecule_min_max_m_info,
- CCTK_INT* const molecule_positions[],
- struct Jacobian_info* Jacobian_info)
+ CCTK_INT *restrict const *restrict molecule_positions,
+ struct Jacobian_info *restrict Jacobian_info)
{
/*
* ***** Naming conventions *****
@@ -824,6 +824,7 @@ if (debug > 0)
fflush(stdout);
}
+#pragma omp parallel for
for (pt = 0 ; pt < N_interp_points ; ++pt)
{
/* this struct holds a molecule-sized piece of a single */
@@ -871,7 +872,7 @@ if (debug > 0)
* from the interp_coords[] arrays
* FIXME: Maybe it would be better (faster) to do this
* with N_DIMS open-coded calls on a function?
- * But then we'd have to have a sentinal value
+ * But then we'd have to have a sentinel value
* return for the unknown-type-code error case.
* Yuk! :( :(
*/
@@ -885,16 +886,11 @@ if (debug > 0)
switch (interp_coords_type_code)
{
- case CCTK_VARIABLE_REAL:
- {
- const CCTK_REAL *const interp_coords_ptr_real
- = (const CCTK_REAL *) interp_coords_ptr;
- interp_coords_fp[axis] = interp_coords_ptr_real[pt];
- break;
- }
-
#ifdef HAVE_CCTK_REAL4
case CCTK_VARIABLE_REAL4:
+ #ifdef CCTK_REAL_PRECISION_4
+ case CCTK_VARIABLE_REAL:
+ #endif
{
const CCTK_REAL4 *const interp_coords_ptr_real4
= (const CCTK_REAL4 *) interp_coords_ptr;
@@ -905,6 +901,9 @@ if (debug > 0)
#ifdef HAVE_CCTK_REAL8
case CCTK_VARIABLE_REAL8:
+ #ifdef CCTK_REAL_PRECISION_8
+ case CCTK_VARIABLE_REAL:
+ #endif
{
const CCTK_REAL8 *const interp_coords_ptr_real8
= (const CCTK_REAL8 *) interp_coords_ptr;
@@ -915,6 +914,9 @@ if (debug > 0)
#ifdef HAVE_CCTK_REAL16
case CCTK_VARIABLE_REAL16:
+ #ifdef CCTK_REAL_PRECISION_16
+ case CCTK_VARIABLE_REAL:
+ #endif
{
/* FIXME: maybe we should warn (once per cactus run) */
/* that we may be doing arithmetic in lower */
@@ -935,7 +937,9 @@ if (debug > 0)
,
interp_coords_type_code);
/*NOTREACHED*/
- return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/
+#pragma omp critical
+ return_status = UTIL_ERROR_BAD_INPUT;
+ goto next_iteration;
/* end of switch (interp_coords_type_code) */
}
@@ -1152,8 +1156,12 @@ if (debug > 0)
#endif
}
- if (this_point_status < return_status)
- then return_status = this_point_status;
+ if (this_point_status < 0)
+ then {
+#pragma omp critical
+ if (this_point_status < return_status)
+ then return_status = this_point_status;
+ }
if (debug >= 6)
then {
@@ -1293,13 +1301,13 @@ if (debug > 0)
* execute the ***load*** the first time in the test at the
* top of the part loop below
*/
- const void* input_array_ptr__last_load = NULL;
+ const void *restrict input_array_ptr__last_load = NULL;
int part__last_load = -1;
for (out = 0 ; out < N_output_arrays ; ++out)
{
const int in = operand_indices[out];
- const void* const input_array_ptr = input_arrays[in];
+ const void *restrict const input_array_ptr = input_arrays[in];
/*
* ***decode*** the output array datatype
@@ -1323,7 +1331,9 @@ CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
,
out, (int) output_array_type_codes[out], N_output_parts);
/*NOTREACHED*/
- return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/
+#pragma omp critical
+ return_status = UTIL_ERROR_BAD_INPUT;
+ goto next_iteration;
}
{
@@ -1361,8 +1371,9 @@ CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
in, (int) input_array_type_codes[in], N_input_parts,
out, (int) output_array_type_codes[out], N_output_parts);
/*NOTREACHED*/
- return UTIL_ERROR_BAD_INPUT;
- /*** ERROR RETURN ***/
+#pragma omp critical
+ return_status = UTIL_ERROR_BAD_INPUT;
+ goto next_iteration;
}
/*
@@ -1375,13 +1386,32 @@ CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
+ input_array_offsets[in];
switch (input_array_type_codes[in])
{
+#ifdef HAVE_CCTK_REAL4
+case CCTK_VARIABLE_REAL4:
+#ifdef CCTK_REAL_PRECISION_4
+case CCTK_VARIABLE_REAL:
+#endif
+ {
+ const CCTK_REAL4 *restrict const input_array_ptr_real4
+ = ((const CCTK_REAL4 *) input_array_ptr) + input_posn;
+ LOAD_DATA_REAL4(input_array_ptr_real4,
+ STRIDE_IJK,
+ &data);
+ break;
+ }
+#endif
+
+#ifdef HAVE_CCTK_REAL8
+case CCTK_VARIABLE_REAL8:
+#ifdef CCTK_REAL_PRECISION_8
case CCTK_VARIABLE_REAL:
+#endif
{
- const CCTK_REAL *const input_array_ptr_real
- = ((const CCTK_REAL *) input_array_ptr) + input_posn;
- LOAD_DATA_REAL(input_array_ptr_real,
- STRIDE_IJK,
- &data);
+ const CCTK_REAL8 *restrict const input_array_ptr_real8
+ = ((const CCTK_REAL8 *) input_array_ptr) + input_posn;
+ LOAD_DATA_REAL8(input_array_ptr_real8,
+ STRIDE_IJK,
+ &data);
#if (N_DIMS == 2) && (MOLECULE_SIZE == 4)
if (debug >= 10)
then {
@@ -1408,37 +1438,17 @@ case CCTK_VARIABLE_REAL:
#endif
break;
}
-
-#ifdef HAVE_CCTK_REAL4
-case CCTK_VARIABLE_REAL4:
- {
- const CCTK_REAL4 *const input_array_ptr_real4
- = ((const CCTK_REAL4 *) input_array_ptr) + input_posn;
- LOAD_DATA_REAL4(input_array_ptr_real4,
- STRIDE_IJK,
- &data);
- break;
- }
-#endif
-
-#ifdef HAVE_CCTK_REAL8
-case CCTK_VARIABLE_REAL8:
- {
- const CCTK_REAL8 *const input_array_ptr_real8
- = ((const CCTK_REAL8 *) input_array_ptr) + input_posn;
- LOAD_DATA_REAL8(input_array_ptr_real8,
- STRIDE_IJK,
- &data);
- break;
- }
#endif
#ifdef HAVE_CCTK_REAL16
case CCTK_VARIABLE_REAL16:
+#ifdef CCTK_REAL_PRECISION_16
+case CCTK_VARIABLE_REAL:
+#endif
{
/* FIXME: maybe we should warn (once per cactus run) that we may be */
/* doing arithmetic in lower precision than the data type? */
- const CCTK_REAL16 *const input_array_ptr_real16
+ const CCTK_REAL16 *restrict const input_array_ptr_real16
= ((const CCTK_REAL16 *) input_array_ptr) + input_posn;
LOAD_DATA_REAL16(input_array_ptr_real16,
STRIDE_IJK,
@@ -1447,21 +1457,13 @@ case CCTK_VARIABLE_REAL16:
}
#endif
-case CCTK_VARIABLE_COMPLEX:
- {
- const CCTK_REAL (*const input_array_ptr_complex)[COMPLEX_N_PARTS]
- = ((const CCTK_REAL (*)[COMPLEX_N_PARTS]) input_array_ptr)
- + input_posn;
- LOAD_DATA_COMPLEX(input_array_ptr_complex,
- STRIDE_IJK, part,
- &data);
- break;
- }
-
#ifdef HAVE_CCTK_COMPLEX8
case CCTK_VARIABLE_COMPLEX8:
+#ifdef CCTK_COMPLEX_PRECISION_8
+case CCTK_VARIABLE_COMPLEX:
+#endif
{
- const CCTK_REAL4 (*const input_array_ptr_complex8)[COMPLEX_N_PARTS]
+ const CCTK_REAL4 (*restrict const input_array_ptr_complex8)[COMPLEX_N_PARTS]
= ((const CCTK_REAL4 (*)[COMPLEX_N_PARTS]) input_array_ptr)
+ input_posn;
LOAD_DATA_COMPLEX8(input_array_ptr_complex8,
@@ -1473,8 +1475,11 @@ case CCTK_VARIABLE_COMPLEX8:
#ifdef HAVE_CCTK_COMPLEX16
case CCTK_VARIABLE_COMPLEX16:
+#ifdef CCTK_COMPLEX_PRECISION_16
+case CCTK_VARIABLE_COMPLEX:
+#endif
{
- const CCTK_REAL8 (*const input_array_ptr_complex16)[COMPLEX_N_PARTS]
+ const CCTK_REAL8 (*restrict const input_array_ptr_complex16)[COMPLEX_N_PARTS]
= ((const CCTK_REAL8 (*)[COMPLEX_N_PARTS]) input_array_ptr)
+ input_posn;
LOAD_DATA_COMPLEX16(input_array_ptr_complex16,
@@ -1487,10 +1492,13 @@ case CCTK_VARIABLE_COMPLEX16:
#ifdef HAVE_CCTK_COMPLEX32
case CCTK_VARIABLE_COMPLEX32:
+#ifdef CCTK_COMPLEX_PRECISION_32
+case CCTK_VARIABLE_COMPLEX:
+#endif
{
/* FIXME: maybe we should warn (once per cactus run) that we may be */
/* doing arithmetic in lower precision than the data type? */
- const CCTK_REAL16 (*const input_array_ptr_complex32)[COMPLEX_N_PARTS]
+ const CCTK_REAL16 (*restrict const input_array_ptr_complex32)[COMPLEX_N_PARTS]
= ((const CCTK_REAL16 (*)[COMPLEX_N_PARTS]) input_array_ptr)
+ input_posn;
LOAD_DATA_COMPLEX32(input_array_ptr_complex32,
@@ -1508,7 +1516,9 @@ CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
,
(int) input_array_type_codes[in],
in); /*NOTREACHED*/
-return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/
+#pragma omp critical
+return_status = UTIL_ERROR_BAD_INPUT;
+goto next_iteration;
/* end of switch (input_array_type_codes[in]) */
}
}
@@ -1608,8 +1618,9 @@ CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
,
(int) operation_codes[out],
out);
- return UTIL_ERROR_BAD_INPUT;
- /*** ERROR RETURN ***/
+#pragma omp critical
+ return_status = UTIL_ERROR_BAD_INPUT;
+ goto next_iteration;
/* end of switch (operation_codes[out]) */
}
@@ -1629,29 +1640,13 @@ CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
switch (output_array_type_codes[out])
{
-case CCTK_VARIABLE_REAL:
- {
- CCTK_REAL *const output_array_ptr_real
- = (CCTK_REAL *) output_arrays[out];
- if (debug >= 10)
- then {
- if ((pt & (pt-1)) == 0) /* pt is 0 or a power of 2 */
- then {
- printf(" result addr is %p\n",
- (void *) &output_array_ptr_real[pt]);
- printf(" previous value there was %g\n",
- output_array_ptr_real[pt]);
- fflush(stdout);
- }
- }
- output_array_ptr_real[pt] = (CCTK_REAL) result;
- break;
- }
-
#ifdef HAVE_CCTK_REAL4
case CCTK_VARIABLE_REAL4:
+#ifdef CCTK_REAL_PRECISION_4
+case CCTK_VARIABLE_REAL:
+#endif
{
- CCTK_REAL4 *const output_array_ptr_real4
+ CCTK_REAL4 *restrict const output_array_ptr_real4
= (CCTK_REAL4 *) output_arrays[out];
output_array_ptr_real4[pt] = (CCTK_REAL4) result;
break;
@@ -1660,36 +1655,48 @@ case CCTK_VARIABLE_REAL4:
#ifdef HAVE_CCTK_REAL8
case CCTK_VARIABLE_REAL8:
+#ifdef CCTK_REAL_PRECISION_8
+case CCTK_VARIABLE_REAL:
+#endif
{
- CCTK_REAL8 *const output_array_ptr_real8
+ CCTK_REAL8 *restrict const output_array_ptr_real8
= (CCTK_REAL8 *) output_arrays[out];
output_array_ptr_real8[pt] = (CCTK_REAL8) result;
+ if (debug >= 10)
+ then {
+ if ((pt & (pt-1)) == 0) /* pt is 0 or a power of 2 */
+ then {
+ printf(" result addr is %p\n",
+ (void *) &output_array_ptr_real8[pt]);
+ printf(" previous value there was %.17g\n",
+ (double) output_array_ptr_real8[pt]);
+ fflush(stdout);
+ }
+ }
break;
}
#endif
#ifdef HAVE_CCTK_REAL16
case CCTK_VARIABLE_REAL16:
+#ifdef CCTK_REAL_PRECISION_16
+case CCTK_VARIABLE_REAL:
+#endif
{
- CCTK_REAL16 *const output_array_ptr_real16
+ CCTK_REAL16 *restrict const output_array_ptr_real16
= (CCTK_REAL16 *) output_arrays[out];
output_array_ptr_real16[pt] = (CCTK_REAL16) result;
break;
}
#endif
-case CCTK_VARIABLE_COMPLEX:
- {
- CCTK_REAL (*const output_array_ptr_complex)[COMPLEX_N_PARTS]
- = (CCTK_REAL (*)[COMPLEX_N_PARTS]) output_arrays[out];
- output_array_ptr_complex[pt][part] = (CCTK_REAL) result;
- break;
- }
-
#ifdef HAVE_CCTK_COMPLEX8
case CCTK_VARIABLE_COMPLEX8:
+#ifdef CCTK_COMPLEX_PRECISION_8
+case CCTK_VARIABLE_COMPLEX:
+#endif
{
- CCTK_REAL4 (*const output_array_ptr_complex8)[COMPLEX_N_PARTS]
+ CCTK_REAL4 (*restrict const output_array_ptr_complex8)[COMPLEX_N_PARTS]
= (CCTK_REAL4 (*)[COMPLEX_N_PARTS]) output_arrays[out];
output_array_ptr_complex8[pt][part] = (CCTK_REAL4) result;
break;
@@ -1698,8 +1705,11 @@ case CCTK_VARIABLE_COMPLEX8:
#ifdef HAVE_CCTK_COMPLEX16
case CCTK_VARIABLE_COMPLEX16:
+#ifdef CCTK_COMPLEX_PRECISION_16
+case CCTK_VARIABLE_COMPLEX:
+#endif
{
- CCTK_REAL8 (*const output_array_ptr_complex16)[COMPLEX_N_PARTS]
+ CCTK_REAL8 (*restrict const output_array_ptr_complex16)[COMPLEX_N_PARTS]
= (CCTK_REAL8 (*)[COMPLEX_N_PARTS]) output_arrays[out];
output_array_ptr_complex16[pt][part] = (CCTK_REAL8) result;
break;
@@ -1708,8 +1718,11 @@ case CCTK_VARIABLE_COMPLEX16:
#ifdef HAVE_CCTK_COMPLEX32
case CCTK_VARIABLE_COMPLEX32:
+#ifdef CCTK_COMPLEX_PRECISION_32
+case CCTK_VARIABLE_COMPLEX:
+#endif
{
- CCTK_REAL16 (*const output_array_ptr_complex32)[COMPLEX_N_PARTS]
+ CCTK_REAL16 (*restrict const output_array_ptr_complex32)[COMPLEX_N_PARTS]
= (CCTK_REAL16 (*)[COMPLEX_N_PARTS]) output_arrays[out];
output_array_ptr_complex32[pt][part] = (CCTK_REAL16) result;
break;
@@ -1724,7 +1737,9 @@ default:
,
(int) output_array_type_codes[out],
out);
- return UTIL_ERROR_BAD_INPUT; /*** ERROR RETURN ***/
+#pragma omp critical
+ return_status = UTIL_ERROR_BAD_INPUT;
+ goto next_iteration;
/* end of switch (output type code) */
}
@@ -1738,7 +1753,7 @@ default:
if ( (Jacobian_info != NULL)
&& (Jacobian_info->Jacobian_pointer[out] != NULL))
then {
- CCTK_REAL *const Jacobian_ptr
+ CCTK_REAL *restrict const Jacobian_ptr
= Jacobian_info->Jacobian_pointer[out]
+ Jacobian_info->Jacobian_offset[out]
+ Jacobian_info->Jacobian_interp_point_stride*pt
@@ -1828,8 +1843,9 @@ CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
,
(int) operation_codes[out],
out);
- return UTIL_ERROR_BAD_INPUT;
- /*** ERROR RETURN ***/
+#pragma omp critical
+ return_status = UTIL_ERROR_BAD_INPUT;
+ goto next_iteration;
/* end of switch(operation_codes[out])*/
}
/* end of Jacobian-query code */
@@ -1845,6 +1861,7 @@ CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING,
}
}
+ next_iteration:;
/* end of for (pt = ...) loop */
}
@@ -1909,7 +1926,7 @@ return return_status;
#ifdef HAVE_OP_I
static
- void compute_coeffs_I(FP_XYZ, struct COEFFS_STRUCT *coeffs_I)
+ void compute_coeffs_I(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_I)
{
#include COEFFS_I_COMPUTE_FILE_NAME
}
@@ -1917,7 +1934,7 @@ return return_status;
#ifdef HAVE_OP_DX
static
- void compute_coeffs_dx(FP_XYZ, struct COEFFS_STRUCT *coeffs_dx)
+ void compute_coeffs_dx(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dx)
{
#include COEFFS_DX_COMPUTE_FILE_NAME
}
@@ -1925,7 +1942,7 @@ return return_status;
#ifdef HAVE_OP_DY
static
- void compute_coeffs_dy(FP_XYZ, struct COEFFS_STRUCT *coeffs_dy)
+ void compute_coeffs_dy(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dy)
{
#include COEFFS_DY_COMPUTE_FILE_NAME
}
@@ -1933,7 +1950,7 @@ return return_status;
#ifdef HAVE_OP_DZ
static
- void compute_coeffs_dz(FP_XYZ, struct COEFFS_STRUCT *coeffs_dz)
+ void compute_coeffs_dz(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dz)
{
#include COEFFS_DZ_COMPUTE_FILE_NAME
}
@@ -1941,7 +1958,7 @@ return return_status;
#ifdef HAVE_OP_DXX
static
- void compute_coeffs_dxx(FP_XYZ, struct COEFFS_STRUCT *coeffs_dxx)
+ void compute_coeffs_dxx(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dxx)
{
#include COEFFS_DXX_COMPUTE_FILE_NAME
}
@@ -1949,7 +1966,7 @@ return return_status;
#ifdef HAVE_OP_DXY
static
- void compute_coeffs_dxy(FP_XYZ, struct COEFFS_STRUCT *coeffs_dxy)
+ void compute_coeffs_dxy(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dxy)
{
#include COEFFS_DXY_COMPUTE_FILE_NAME
}
@@ -1957,7 +1974,7 @@ return return_status;
#ifdef HAVE_OP_DXZ
static
- void compute_coeffs_dxz(FP_XYZ, struct COEFFS_STRUCT *coeffs_dxz)
+ void compute_coeffs_dxz(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dxz)
{
#include COEFFS_DXZ_COMPUTE_FILE_NAME
}
@@ -1965,7 +1982,7 @@ return return_status;
#ifdef HAVE_OP_DYY
static
- void compute_coeffs_dyy(FP_XYZ, struct COEFFS_STRUCT *coeffs_dyy)
+ void compute_coeffs_dyy(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dyy)
{
#include COEFFS_DYY_COMPUTE_FILE_NAME
}
@@ -1973,7 +1990,7 @@ return return_status;
#ifdef HAVE_OP_DYZ
static
- void compute_coeffs_dyz(FP_XYZ, struct COEFFS_STRUCT *coeffs_dyz)
+ void compute_coeffs_dyz(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dyz)
{
#include COEFFS_DYZ_COMPUTE_FILE_NAME
}
@@ -1981,7 +1998,7 @@ return return_status;
#ifdef HAVE_OP_DZZ
static
- void compute_coeffs_dzz(FP_XYZ, struct COEFFS_STRUCT *coeffs_dzz)
+ void compute_coeffs_dzz(FP_XYZ, struct COEFFS_STRUCT *restrict coeffs_dzz)
{
#include COEFFS_DZZ_COMPUTE_FILE_NAME
}