aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortradke <tradke@c78560ca-4b45-4335-b268-5f3340f3cb52>2006-05-11 15:21:20 +0000
committertradke <tradke@c78560ca-4b45-4335-b268-5f3340f3cb52>2006-05-11 15:21:20 +0000
commitb19b451b9761d537e103b83720d2ad040b8d42b2 (patch)
treedc0b9826c7e52fef7a04fe7517fc01d472a06dc9
parenta6003a455caf4f1d08825a9a1b64ee6ecf225ba3 (diff)
This applies Steve White's patch
http://www.cactuscode.org/pipermail/patches/2006-March/000154.html: Intel icc complains about lots of questionabale type conversions in CartGrid3D/src/Symmetry.c. Find attached a patch, to be applied from within the CartGrid3D directory. Notes ----- * Code is macros within macros within macros that depend on outside entities. Sometimes a type name is passed. * The innermost macro performs the type conversion * A typename is passed, but unfortunately, it isn't always the type being converted. Sometimes it's a CCTK_COMPLEX type, but the type being converted is only a component of the complex. Solution -------- Invented a new preprocessor symbol, NUMBER_TYPE, which indicates the of a scalar multiplication. git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/CartGrid3D/trunk@227 c78560ca-4b45-4335-b268-5f3340f3cb52
-rw-r--r--src/Symmetry.c46
1 files changed, 42 insertions, 4 deletions
diff --git a/src/Symmetry.c b/src/Symmetry.c
index bc7281b..27451ba 100644
--- a/src/Symmetry.c
+++ b/src/Symmetry.c
@@ -311,8 +311,9 @@ void CCTK_FCALL CCTK_FNAME (CartSymVN)
{ \
for (ii = 0; ii < gdata.nghostzones[dir/2]; ii++) \
{ \
- _var[INDEX_3D (lsh, i, j, k)] NUMBER_PART = GFSym[vindex][dir] * \
- _var[INDEX_3D (lsh, iii, jjj, kkk)] NUMBER_PART; \
+ _var[INDEX_3D (lsh, i, j, k)] NUMBER_PART \
+ = (NUMBER_TYPE)(GFSym[vindex][dir] \
+ * _var[INDEX_3D (lsh, iii, jjj, kkk)] NUMBER_PART); \
} \
} \
} \
@@ -326,8 +327,9 @@ void CCTK_FCALL CCTK_FNAME (CartSymVN)
{ \
for (ii = lsh[dir/2]-gdata.nghostzones[dir/2]; ii < lsh[dir/2]; ii++) \
{ \
- _var[INDEX_3D (lsh, i, j, k)] NUMBER_PART = GFSym[vindex][dir] * \
- _var[INDEX_3D (lsh, iii, jjj, kkk)] NUMBER_PART; \
+ _var[INDEX_3D (lsh, i, j, k)] NUMBER_PART \
+ = (NUMBER_TYPE)(GFSym[vindex][dir] \
+ * _var[INDEX_3D (lsh, iii, jjj, kkk)] NUMBER_PART); \
} \
} \
} \
@@ -446,55 +448,91 @@ void CCTK_FCALL CCTK_FNAME (CartSymVN)
*/
#define NUMBER_PART .Re
+#define NUMBER_TYPE CCTK_REAL
SYMMETRY_FUNCTION(CCTK_COMPLEX,R)
+#undef NUMBER_TYPE
#ifdef HAVE_CCTK_COMPLEX8
+#define NUMBER_TYPE CCTK_REAL4
SYMMETRY_FUNCTION(CCTK_COMPLEX8,R)
+#undef NUMBER_TYPE
#endif
#ifdef HAVE_CCTK_COMPLEX16
+#define NUMBER_TYPE CCTK_REAL8
SYMMETRY_FUNCTION(CCTK_COMPLEX16,R)
+#undef NUMBER_TYPE
#endif
#ifdef HAVE_CCTK_COMPLEX32
+#define NUMBER_TYPE CCTK_REAL16
SYMMETRY_FUNCTION(CCTK_COMPLEX32,R)
+#undef NUMBER_TYPE
#endif
#undef NUMBER_PART
#define NUMBER_PART .Im
+#define NUMBER_TYPE CCTK_REAL
SYMMETRY_FUNCTION(CCTK_COMPLEX,I)
+#undef NUMBER_TYPE
+#define NUMBER_TYPE CCTK_REAL4
#ifdef HAVE_CCTK_COMPLEX8
SYMMETRY_FUNCTION(CCTK_COMPLEX8,I)
+#undef NUMBER_TYPE
#endif
#ifdef HAVE_CCTK_COMPLEX16
+#define NUMBER_TYPE CCTK_REAL8
SYMMETRY_FUNCTION(CCTK_COMPLEX16,I)
+#undef NUMBER_TYPE
#endif
#ifdef HAVE_CCTK_COMPLEX32
+#define NUMBER_TYPE CCTK_REAL16
SYMMETRY_FUNCTION(CCTK_COMPLEX32,I)
+#undef NUMBER_TYPE
#endif
#undef NUMBER_PART
#define NUMBER_PART
+#define NUMBER_TYPE CCTK_BYTE
SYMMETRY_FUNCTION(CCTK_BYTE,R)
+#undef NUMBER_TYPE
+#define NUMBER_TYPE CCTK_INT
SYMMETRY_FUNCTION(CCTK_INT,R)
+#undef NUMBER_TYPE
#ifdef HAVE_CCTK_INT1
+#define NUMBER_TYPE CCTK_INT1
SYMMETRY_FUNCTION(CCTK_INT1,R)
+#undef NUMBER_TYPE
#endif
#ifdef HAVE_CCTK_INT2
+#define NUMBER_TYPE CCTK_INT2
SYMMETRY_FUNCTION(CCTK_INT2,R)
+#undef NUMBER_TYPE
#endif
#ifdef HAVE_CCTK_INT4
+#define NUMBER_TYPE CCTK_INT4
SYMMETRY_FUNCTION(CCTK_INT4,R)
+#undef NUMBER_TYPE
#endif
#ifdef HAVE_CCTK_INT8
+#define NUMBER_TYPE CCTK_INT8
SYMMETRY_FUNCTION(CCTK_INT8,R)
+#undef NUMBER_TYPE
#endif
+#define NUMBER_TYPE CCTK_REAL
SYMMETRY_FUNCTION(CCTK_REAL,R)
+#undef NUMBER_TYPE
#ifdef HAVE_CCTK_REAL4
+#define NUMBER_TYPE CCTK_REAL4
SYMMETRY_FUNCTION(CCTK_REAL4,R)
+#undef NUMBER_TYPE
#endif
#ifdef HAVE_CCTK_REAL8
+#define NUMBER_TYPE CCTK_REAL8
SYMMETRY_FUNCTION(CCTK_REAL8,R)
+#undef NUMBER_TYPE
#endif
#ifdef HAVE_CCTK_REAL16
+#define NUMBER_TYPE CCTK_REAL16
SYMMETRY_FUNCTION(CCTK_REAL16,R)
+#undef NUMBER_TYPE
#endif
#undef NUMBER_PART