aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/DatatypeConversion.c33
1 files changed, 14 insertions, 19 deletions
diff --git a/src/DatatypeConversion.c b/src/DatatypeConversion.c
index 156e631..1073205 100644
--- a/src/DatatypeConversion.c
+++ b/src/DatatypeConversion.c
@@ -23,7 +23,7 @@ CCTK_FILEVERSION(CactusPUGH_PUGHSlab_DatatypeConversion_c)
/* macro to generate a predefined conversion function
along with its prototype */
-#define CONVERSION_FUNCTION(source_type, dest_type, dest_elemtype, conversion)\
+#define CONVERSION_FUNCTION(source_type, dest_type, conversion) \
static CCTK_INT Convert##source_type##to##dest_type (CCTK_INT nelems, \
CCTK_INT src_stride, \
CCTK_INT dst_stride, \
@@ -49,7 +49,7 @@ static CCTK_INT Convert##source_type##to##dest_type (CCTK_INT nelems, \
(void) (dst_type + 0); \
for (_i = 0; _i < nelems; _i++, _src += src_stride, _dst += dst_stride) \
{ \
- conversion (*_src, *_dst, dest_elemtype); \
+ conversion (*_src, *_dst, dest_type); \
} \
\
return (nelems); \
@@ -63,49 +63,44 @@ static CCTK_INT Convert##source_type##to##dest_type (CCTK_INT nelems, \
/* predefined conversion functions for integers */
#if defined(CCTK_INT1) && defined(CCTK_INT2)
-CONVERSION_FUNCTION (INT2, INT1, INT1, CONVERT)
+CONVERSION_FUNCTION (INT2, INT1, CONVERT)
#endif
#if defined(CCTK_INT1) && defined(CCTK_INT4)
-CONVERSION_FUNCTION (INT4, INT1, INT1, CONVERT)
+CONVERSION_FUNCTION (INT4, INT1, CONVERT)
#endif
#if defined(CCTK_INT2) && defined(CCTK_INT4)
-CONVERSION_FUNCTION (INT4, INT2, INT2, CONVERT)
+CONVERSION_FUNCTION (INT4, INT2, CONVERT)
#endif
#if defined(CCTK_INT1) && defined(CCTK_INT8)
-CONVERSION_FUNCTION (INT8, INT1, INT1, CONVERT)
+CONVERSION_FUNCTION (INT8, INT1, CONVERT)
#endif
#if defined(CCTK_INT2) && defined(CCTK_INT8)
-CONVERSION_FUNCTION (INT8, INT2, INT2, CONVERT)
+CONVERSION_FUNCTION (INT8, INT2, CONVERT)
#endif
#if defined(CCTK_INT4) && defined(CCTK_INT8)
-CONVERSION_FUNCTION (INT8, INT4, INT4, CONVERT)
+CONVERSION_FUNCTION (INT8, INT4, CONVERT)
#endif
/* predefined conversion functions for reals */
#if defined(CCTK_REAL4) && defined(CCTK_REAL8)
-CONVERSION_FUNCTION (REAL8, REAL4, REAL4, CONVERT)
+CONVERSION_FUNCTION (REAL8, REAL4, CONVERT)
#endif
#if defined(CCTK_REAL4) && defined(CCTK_REAL16)
-CONVERSION_FUNCTION (REAL16, REAL4, REAL4, CONVERT)
+CONVERSION_FUNCTION (REAL16, REAL4, CONVERT)
#endif
#if defined(CCTK_REAL8) && defined(CCTK_REAL16)
-CONVERSION_FUNCTION (REAL16, REAL8, REAL8, CONVERT)
+CONVERSION_FUNCTION (REAL16, REAL8, CONVERT)
#endif
-/* the conversion of complex datatypes */
-#undef CONVERT
-#define CONVERT(src, dst, dst_type) (dst).Re = (CCTK_##dst_type) (src).Re; \
- (dst).Im = (CCTK_##dst_type) (src).Im
-
/* predefined conversion functions for complex */
#if defined(CCTK_REAL4) && defined(CCTK_REAL8)
-CONVERSION_FUNCTION (COMPLEX16, COMPLEX8, REAL4, CONVERT)
+CONVERSION_FUNCTION (COMPLEX16, COMPLEX8, CONVERT)
#endif
#if defined(CCTK_REAL4) && defined(CCTK_REAL16)
-CONVERSION_FUNCTION (COMPLEX32, COMPLEX16, REAL8, CONVERT)
+CONVERSION_FUNCTION (COMPLEX32, COMPLEX16, CONVERT)
#endif
#if defined(CCTK_REAL8) && defined(CCTK_REAL16)
-CONVERSION_FUNCTION (COMPLEX32, COMPLEX8, REAL4, CONVERT)
+CONVERSION_FUNCTION (COMPLEX32, COMPLEX8, CONVERT)
#endif