aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschnetter <schnetter@10716dce-81a3-4424-a2c8-48026a0d3035>2003-10-13 18:07:50 +0000
committerschnetter <schnetter@10716dce-81a3-4424-a2c8-48026a0d3035>2003-10-13 18:07:50 +0000
commit18961562826e78e48215801836b6517589fd7f51 (patch)
tree5b696733a96dd1fa9d57622346811dc2def53adc
parentbd175df69326d5e687df3f7bf422a9367d76faf9 (diff)
Introduce the new Cactus variable type CCTK_INT1.
Extend routines to handle the new type. git-svn-id: http://svn.cactuscode.org/arrangements/CactusPUGH/PUGHSlab/trunk@114 10716dce-81a3-4424-a2c8-48026a0d3035
-rw-r--r--src/DatatypeConversion.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/DatatypeConversion.c b/src/DatatypeConversion.c
index e6f29e5..d6dc99c 100644
--- a/src/DatatypeConversion.c
+++ b/src/DatatypeConversion.c
@@ -59,9 +59,18 @@ static CCTK_INT Convert##source_type##to##dest_type (CCTK_INT nelems, \
#define CONVERT(src, dst, dst_type) (dst) = (CCTK_##dst_type) (src)
/* predefined conversion functions for integers */
+#if defined(CCTK_INT1) && defined(CCTK_INT2)
+CONVERSION_FUNCTION (INT2, INT1, INT1, CONVERT)
+#endif
+#if defined(CCTK_INT1) && defined(CCTK_INT4)
+CONVERSION_FUNCTION (INT4, INT1, INT1, CONVERT)
+#endif
#if defined(CCTK_INT2) && defined(CCTK_INT4)
CONVERSION_FUNCTION (INT4, INT2, INT2, CONVERT)
#endif
+#if defined(CCTK_INT1) && defined(CCTK_INT8)
+CONVERSION_FUNCTION (INT8, INT1, INT1, CONVERT)
+#endif
#if defined(CCTK_INT2) && defined(CCTK_INT8)
CONVERSION_FUNCTION (INT8, INT2, INT2, CONVERT)
#endif
@@ -141,12 +150,30 @@ t_hslabConversionFn PUGHSlabi_GetDatatypeConversionFn (int src_type,
{
/* this is just because of the following #ifdef'ed else branches */
}
+#if defined(CCTK_INT1) && defined(CCTK_INT2)
+ else if (src_type == CCTK_VARIABLE_INT2 && dst_type == CCTK_VARIABLE_INT1)
+ {
+ retval = ConvertINT2toINT1;
+ }
+#endif
+#if defined(CCTK_INT1) && defined(CCTK_INT4)
+ else if (src_type == CCTK_VARIABLE_INT4 && dst_type == CCTK_VARIABLE_INT1)
+ {
+ retval = ConvertINT4toINT1;
+ }
+#endif
#if defined(CCTK_INT2) && defined(CCTK_INT4)
else if (src_type == CCTK_VARIABLE_INT4 && dst_type == CCTK_VARIABLE_INT2)
{
retval = ConvertINT4toINT2;
}
#endif
+#if defined(CCTK_INT1) && defined(CCTK_INT8)
+ else if (src_type == CCTK_VARIABLE_INT8 && dst_type == CCTK_VARIABLE_INT1)
+ {
+ retval = ConvertINT8toINT1;
+ }
+#endif
#if defined(CCTK_INT2) && defined(CCTK_INT8)
else if (src_type == CCTK_VARIABLE_INT8 && dst_type == CCTK_VARIABLE_INT2)
{
@@ -218,6 +245,8 @@ static int PUGHSlabi_PrecisionVarType (int type)
type = CCTK_VARIABLE_INT4;
#elif CCTK_INTEGER_PRECISION_2
type = CCTK_VARIABLE_INT2;
+#elif CCTK_INTEGER_PRECISION_1
+ type = CCTK_VARIABLE_INT1;
#endif
}
else if (type == CCTK_VARIABLE_REAL)