aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/typecase
diff options
context:
space:
mode:
Diffstat (limited to 'Carpet/Carpet/src/typecase')
-rw-r--r--Carpet/Carpet/src/typecase136
1 files changed, 132 insertions, 4 deletions
diff --git a/Carpet/Carpet/src/typecase b/Carpet/Carpet/src/typecase
index 67d115a1d..f964d3300 100644
--- a/Carpet/Carpet/src/typecase
+++ b/Carpet/Carpet/src/typecase
@@ -1,32 +1,160 @@
// Instantiate type cases for all available types -*-C++-*-
// (C) 2001 Erik Schnetter <schnetter@uni-tuebingen.de>
-// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/typecase,v 1.1 2001/03/01 13:40:10 eschnett Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/typecase,v 1.2 2001/03/19 21:30:00 eschnett Exp $
// Usage:
// Define the macro TYPECASE(N,T) to be a typecase for the type T with name N,
// then include this file,
// then undefine the macro TYPECASE.
+
+
+// Decide which types to typecase
+
+#ifdef CARPET_ALL
+# undef CARPET_BYTE
+# undef CARPET_INT
+# undef CARPET_REAL
+# undef CARPET_COMPLEX
+# define CARPET_BYTE
+# define CARPET_INT
+# define CARPET_REAL
+# define CARPET_COMPLEX
+#endif
+
+#ifdef CARPET_ALL_INT
+# undef CARPET_INT2
+# undef CARPET_INT4
+# undef CARPET_INT8
+# define CARPET_INT2
+# define CARPET_INT4
+# define CARPET_INT8
+#endif
+
+#ifdef CARPET_ALL_REAL
+# undef CARPET_REAL4
+# undef CARPET_REAL8
+# undef CARPET_REAL16
+# define CARPET_REAL4
+# define CARPET_REAL8
+# define CARPET_REAL16
+#endif
+
+#ifdef CARPET_ALL_COMPLEX
+# undef CARPET_COMPLEX8
+# undef CARPET_COMPLEX16
+# undef CARPET_COMPLEX32
+# define CARPET_COMPLEX8
+# define CARPET_COMPLEX16
+# define CARPET_COMPLEX32
+#endif
+
+#if !defined(CARPET_BYTE) && !defined(CARPET_INT2) && !defined(CARPET_INT4) && !defined(CARPET_INT8) && !defined(CARPET_REAL4) && !defined(CARPET_REAL8) && !defined(CARPET_REAL16) && !defined(CARPET_COMPLEX8) && !defined(CARPET_COMPLEX16) && !defined(CARPET_COMPLEX32)
+// Assume the user just wants REAL
+# undef CARPET_REAL
+# define CARPET_REAL
+#endif
+
+#ifdef CARPET_INT
+# ifdef CCTK_INTEGER_PRECISION_2
+# undef CARPET_INT2
+# define CARPET_INT2
+# endif
+# ifdef CCTK_INTEGER_PRECISION_4
+# undef CARPET_INT4
+# define CARPET_INT4
+# endif
+# ifdef CCTK_INTEGER_PRECISION_8
+# undef CARPET_INT8
+# define CARPET_INT8
+# endif
+#endif
+#ifdef CARPET_REAL
+# ifdef CCTK_REAL_PRECISION_4
+# undef CARPET_REAL4
+# define CARPET_REAL4
+# endif
+# ifdef CCTK_REAL_PRECISION_8
+# undef CARPET_REAL8
+# define CARPET_REAL8
+# endif
+# ifdef CCTK_REAL_PRECISION_16
+# undef CARPET_REAL16
+# define CARPET_REAL16
+# endif
+#endif
+#ifdef CARPET_COMPLEX
+# ifdef CCTK_REAL_PRECISION_4
+# undef CARPET_COMPLEX8
+# define CARPET_COMPLEX8
+# endif
+# ifdef CCTK_REAL_PRECISION_8
+# undef CARPET_COMPLEX16
+# define CARPET_COMPLEX16
+# endif
+# ifdef CCTK_REAL_PRECISION_16
+# undef CARPET_COMPLEX32
+# define CARPET_COMPLEX32
+# endif
+#endif
+
+
+
+// // Check
+// #if !defined(CARPET_BYTE) && !defined(CARPET_INT2) && !defined(CARPET_INT4) && !defined(CARPET_INT8) && !defined(CARPET_REAL4) && !defined(CARPET_REAL8) && !defined(CARPET_REAL16) && !defined(CARPET_COMPLEX8) && !defined(CARPET_COMPLEX16) && !defined(CARPET_COMPLEX32)
+// # error "You have not defined which grid function types to instantiate."
+// #endif
+
+
+
+// Typecase the desired types
+
+#ifdef CARPET_BYTE
TYPECASE(CCTK_VARIABLE_BYTE, CCTK_BYTE)
+#endif
+#ifdef CARPET_INT
TYPECASE(CCTK_VARIABLE_INT, CCTK_INT)
+#endif
+#ifdef CARPET_INT2
TYPECASE(CCTK_VARIABLE_INT2, CCTK_INT2)
+#endif
+#ifdef CARPET_INT4
TYPECASE(CCTK_VARIABLE_INT4, CCTK_INT4)
-#ifdef CCTK_INT8
+#endif
+#ifdef CARPET_INT4
+# ifdef CCTK_INT8
TYPECASE(CCTK_VARIABLE_INT8, CCTK_INT8)
+# endif
#endif
+#ifdef CARPET_REAL
TYPECASE(CCTK_VARIABLE_REAL, CCTK_REAL)
+#endif
+#ifdef CARPET_REAL4
TYPECASE(CCTK_VARIABLE_REAL4, CCTK_REAL4)
+#endif
+#ifdef CARPET_REAL8
TYPECASE(CCTK_VARIABLE_REAL8, CCTK_REAL8)
-#ifdef CCTK_REAL16
+#endif
+#ifdef CARPET_REAL16
+# ifdef CCTK_REAL16
TYPECASE(CCTK_VARIABLE_REAL16, CCTK_REAL16)
+# endif
#endif
+#ifdef CARPET_COMPLEX
TYPECASE(CCTK_VARIABLE_COMPLEX, complex<CCTK_REAL>)
+#endif
+#ifdef CARPET_COMPLEX8
TYPECASE(CCTK_VARIABLE_COMPLEX8, complex<CCTK_REAL4>)
+#endif
+#ifdef CARPET_COMPLEX16
TYPECASE(CCTK_VARIABLE_COMPLEX16, complex<CCTK_REAL8>)
-#ifdef CCTK_REAL16
+#endif
+#ifdef CARPET_COMPLEX32
+# ifdef CCTK_REAL16
TYPECASE(CCTK_VARIABLE_COMPLEX32, complex<CCTK_REAL16>)
+# endif
#endif