aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Symmetry.c91
1 files changed, 35 insertions, 56 deletions
diff --git a/src/Symmetry.c b/src/Symmetry.c
index 1cf8544..ec57769 100644
--- a/src/Symmetry.c
+++ b/src/Symmetry.c
@@ -316,9 +316,9 @@ void CCTK_FCALL CCTK_FNAME (CartSymVN)
{ \
for (ii = 0; ii < gdata.nghostzones[dir/2]; ii++) \
{ \
- _var[INDEX_3D (ash, i, j, k)] NUMBER_PART \
+ _var[INDEX_3D (ash, i, j, k)] \
= (itype)(GFSym[vindex][dir] \
- * _var[INDEX_3D (ash, iii, jjj, kkk)] NUMBER_PART); \
+ * _var[INDEX_3D (ash, iii, jjj, kkk)]); \
} \
} \
} \
@@ -332,9 +332,9 @@ void CCTK_FCALL CCTK_FNAME (CartSymVN)
{ \
for (ii = lsh[dir/2]-gdata.nghostzones[dir/2]; ii < lsh[dir/2]; ii++) \
{ \
- _var[INDEX_3D (ash, i, j, k)] NUMBER_PART \
+ _var[INDEX_3D (ash, i, j, k)] \
= (itype)(GFSym[vindex][dir] \
- * _var[INDEX_3D (ash, iii, jjj, kkk)] NUMBER_PART); \
+ * _var[INDEX_3D (ash, iii, jjj, kkk)]); \
} \
} \
} \
@@ -443,8 +443,8 @@ void CCTK_FCALL CCTK_FNAME (CartSymVN)
}
/* Function to apply above macros. */
-#define SYMMETRY_FUNCTION(cctk_type,integral_type,SUFFIX) \
- static void cctk_type ## _SymBC ## SUFFIX(const cGH *GH, const int vindex, const int *doSym, const int *offset, const int *lsh, const int *ash, const cGroup group_static_data, const cGroupDynamicData gdata, int **GFSym) { int i,j,k; SYMMETRY_BOUNDARY(cctk_type, integral_type); }
+#define SYMMETRY_FUNCTION(cctk_type,integral_type) \
+ static void cctk_type ## _SymBC(const cGH *GH, const int vindex, const int *doSym, const int *offset, const int *lsh, const int *ash, const cGroup group_static_data, const cGroupDynamicData gdata, int **GFSym) { int i,j,k; SYMMETRY_BOUNDARY(cctk_type, integral_type); }
/* Create functions to apply macros.
* This is much easier for the optiser to deal with.
@@ -452,60 +452,43 @@ void CCTK_FCALL CCTK_FNAME (CartSymVN)
* directly in the switch statement in ApplySymmetry.
*/
-#define NUMBER_PART .Re
-SYMMETRY_FUNCTION(CCTK_COMPLEX,CCTK_REAL,R)
+SYMMETRY_FUNCTION(CCTK_COMPLEX,CCTK_REAL)
#ifdef HAVE_CCTK_COMPLEX8
-SYMMETRY_FUNCTION(CCTK_COMPLEX8,CCTK_REAL4,R)
+SYMMETRY_FUNCTION(CCTK_COMPLEX8,CCTK_REAL4)
#endif
#ifdef HAVE_CCTK_COMPLEX16
-SYMMETRY_FUNCTION(CCTK_COMPLEX16,CCTK_REAL8,R)
+SYMMETRY_FUNCTION(CCTK_COMPLEX16,CCTK_REAL8)
#endif
#ifdef HAVE_CCTK_COMPLEX32
-SYMMETRY_FUNCTION(CCTK_COMPLEX32,CCTK_REAL16,R)
+SYMMETRY_FUNCTION(CCTK_COMPLEX32,CCTK_REAL16)
#endif
-#undef NUMBER_PART
-#define NUMBER_PART .Im
-SYMMETRY_FUNCTION(CCTK_COMPLEX,CCTK_REAL,I)
-#ifdef HAVE_CCTK_COMPLEX8
-SYMMETRY_FUNCTION(CCTK_COMPLEX8,CCTK_REAL4,I)
-#endif
-#ifdef HAVE_CCTK_COMPLEX16
-SYMMETRY_FUNCTION(CCTK_COMPLEX16,CCTK_REAL8,I)
-#endif
-#ifdef HAVE_CCTK_COMPLEX32
-SYMMETRY_FUNCTION(CCTK_COMPLEX32,CCTK_REAL16,I)
-#endif
-#undef NUMBER_PART
-
-#define NUMBER_PART
-SYMMETRY_FUNCTION(CCTK_BYTE,CCTK_BYTE,R)
-SYMMETRY_FUNCTION(CCTK_INT,CCTK_INT,R)
+SYMMETRY_FUNCTION(CCTK_BYTE,CCTK_BYTE)
+SYMMETRY_FUNCTION(CCTK_INT,CCTK_INT)
#ifdef HAVE_CCTK_INT1
-SYMMETRY_FUNCTION(CCTK_INT1,CCTK_INT1,R)
+SYMMETRY_FUNCTION(CCTK_INT1,CCTK_INT1)
#endif
#ifdef HAVE_CCTK_INT2
-SYMMETRY_FUNCTION(CCTK_INT2,CCTK_INT2,R)
+SYMMETRY_FUNCTION(CCTK_INT2,CCTK_INT2)
#endif
#ifdef HAVE_CCTK_INT4
-SYMMETRY_FUNCTION(CCTK_INT4,CCTK_INT4,R)
+SYMMETRY_FUNCTION(CCTK_INT4,CCTK_INT4)
#endif
#ifdef HAVE_CCTK_INT8
-SYMMETRY_FUNCTION(CCTK_INT8,CCTK_INT8,R)
+SYMMETRY_FUNCTION(CCTK_INT8,CCTK_INT8)
#endif
-SYMMETRY_FUNCTION(CCTK_REAL,CCTK_REAL,R)
+SYMMETRY_FUNCTION(CCTK_REAL,CCTK_REAL)
#ifdef HAVE_CCTK_REAL4
-SYMMETRY_FUNCTION(CCTK_REAL4,CCTK_REAL4,R)
+SYMMETRY_FUNCTION(CCTK_REAL4,CCTK_REAL4)
#endif
#ifdef HAVE_CCTK_REAL8
-SYMMETRY_FUNCTION(CCTK_REAL8,CCTK_REAL8,R)
+SYMMETRY_FUNCTION(CCTK_REAL8,CCTK_REAL8)
#endif
#ifdef HAVE_CCTK_REAL16
-SYMMETRY_FUNCTION(CCTK_REAL16,CCTK_REAL16,R)
+SYMMETRY_FUNCTION(CCTK_REAL16,CCTK_REAL16)
#endif
-#undef NUMBER_PART
-#define CALL_SYMBC(cctk_type,SUFFIX) cctk_type ## _SymBC ## SUFFIX(GH, vindex, doSym, offset, lsh, ash, group_static_data, gdata, GFSym)
+#define CALL_SYMBC(cctk_type) cctk_type ## _SymBC(GH, vindex, doSym, offset, lsh, ash, group_static_data, gdata, GFSym)
/*@@
@routine ApplySymmetry
@@ -643,63 +626,59 @@ static int ApplySymmetry (const cGH *GH, int gindex, int first_vindex,
switch (group_static_data.vartype)
{
case CCTK_VARIABLE_BYTE:
- CALL_SYMBC(CCTK_BYTE,R); break;
+ CALL_SYMBC(CCTK_BYTE); break;
case CCTK_VARIABLE_INT:
- CALL_SYMBC(CCTK_INT,R); break;
+ CALL_SYMBC(CCTK_INT); break;
case CCTK_VARIABLE_REAL:
- CALL_SYMBC(CCTK_REAL,R); break;
+ CALL_SYMBC(CCTK_REAL); break;
case CCTK_VARIABLE_COMPLEX:
- CALL_SYMBC(CCTK_COMPLEX,R);
- CALL_SYMBC(CCTK_COMPLEX,I); break;
+ CALL_SYMBC(CCTK_COMPLEX); break;
#ifdef HAVE_CCTK_INT1
case CCTK_VARIABLE_INT1:
- CALL_SYMBC(CCTK_INT1,R); break;
+ CALL_SYMBC(CCTK_INT1); break;
#endif
#ifdef HAVE_CCTK_INT2
case CCTK_VARIABLE_INT2:
- CALL_SYMBC(CCTK_INT2,R); break;
+ CALL_SYMBC(CCTK_INT2); break;
#endif
#ifdef HAVE_CCTK_INT4
case CCTK_VARIABLE_INT4:
- CALL_SYMBC(CCTK_INT4,R); break;
+ CALL_SYMBC(CCTK_INT4); break;
#endif
#ifdef HAVE_CCTK_INT8
case CCTK_VARIABLE_INT8:
- CALL_SYMBC(CCTK_INT8,R); break;
+ CALL_SYMBC(CCTK_INT8); break;
#endif
#ifdef HAVE_CCTK_REAL4
case CCTK_VARIABLE_REAL4:
- CALL_SYMBC(CCTK_REAL4,R); break;
+ CALL_SYMBC(CCTK_REAL4); break;
case CCTK_VARIABLE_COMPLEX8:
- CALL_SYMBC(CCTK_COMPLEX8,R);
- CALL_SYMBC(CCTK_COMPLEX8,I); break;
+ CALL_SYMBC(CCTK_COMPLEX8); break;
#endif
#ifdef HAVE_CCTK_REAL8
case CCTK_VARIABLE_REAL8:
- CALL_SYMBC(CCTK_REAL8,R); break;
+ CALL_SYMBC(CCTK_REAL8); break;
case CCTK_VARIABLE_COMPLEX16:
- CALL_SYMBC(CCTK_COMPLEX16,R);
- CALL_SYMBC(CCTK_COMPLEX16,I); break;
+ CALL_SYMBC(CCTK_COMPLEX16); break;
#endif
#ifdef HAVE_CCTK_REAL16
case CCTK_VARIABLE_REAL16:
- CALL_SYMBC(CCTK_REAL16,R); break;
+ CALL_SYMBC(CCTK_REAL16); break;
case CCTK_VARIABLE_COMPLEX32:
- CALL_SYMBC(CCTK_COMPLEX32,R);
- CALL_SYMBC(CCTK_COMPLEX32,I); break;
+ CALL_SYMBC(CCTK_COMPLEX32); break;
#endif
default: