aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib/src/typeprops.hh
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2010-02-13 18:33:30 -0600
committerBarry Wardell <barry.wardell@gmail.com>2011-12-14 16:45:26 +0000
commit3b52b3721d634461b2d3840db16735b78a4a8cad (patch)
treebf192abc623573e7124f3810a7336d1f85fe3c54 /Carpet/CarpetLib/src/typeprops.hh
parent23a591ba88475bf0842257215f04c9f76a1c3fc4 (diff)
Combine CarpetLib's INSTANTIATE and Carpet's TYPECASE mechanism into a
single mechanism provided by CarpetLib. Use this mechanism everywhere.
Diffstat (limited to 'Carpet/CarpetLib/src/typeprops.hh')
-rw-r--r--Carpet/CarpetLib/src/typeprops.hh45
1 files changed, 45 insertions, 0 deletions
diff --git a/Carpet/CarpetLib/src/typeprops.hh b/Carpet/CarpetLib/src/typeprops.hh
index e8a1ec342..9e82a8a19 100644
--- a/Carpet/CarpetLib/src/typeprops.hh
+++ b/Carpet/CarpetLib/src/typeprops.hh
@@ -41,4 +41,49 @@ struct typeprops <CCTK_COMPLEX32> {
+static inline int specific_cactus_type (int const vartype)
+{
+ switch (vartype) {
+ case CCTK_VARIABLE_INT:
+#ifdef CCTK_INTEGER_PRECISION_1
+ return CCTK_VARIABLE_INT1;
+#endif
+#ifdef CCTK_INTEGER_PRECISION_2
+ return CCTK_VARIABLE_INT2;
+#endif
+#ifdef CCTK_INTEGER_PRECISION_4
+ return CCTK_VARIABLE_INT4;
+#endif
+#ifdef CCTK_INTEGER_PRECISION_8
+ return CCTK_VARIABLE_INT8;
+#endif
+ return -1;
+ case CCTK_VARIABLE_REAL:
+#ifdef CCTK_REAL_PRECISION_4
+ return CCTK_VARIABLE_REAL4;
+#endif
+#ifdef CCTK_REAL_PRECISION_8
+ return CCTK_VARIABLE_REAL8;
+#endif
+#ifdef CCTK_REAL_PRECISION_16
+ return CCTK_VARIABLE_REAL16;
+#endif
+ return -1;
+ case CCTK_VARIABLE_COMPLEX:
+#ifdef CCTK_REAL_PRECISION_4
+ return CCTK_VARIABLE_COMPLEX8;
+#endif
+#ifdef CCTK_REAL_PRECISION_8
+ return CCTK_VARIABLE_COMPLEX16;
+#endif
+#ifdef CCTK_REAL_PRECISION_16
+ return CCTK_VARIABLE_COMPLEX32;
+#endif
+ return -1;
+ }
+ return vartype;
+}
+
+
+
#endif // #ifndef TYPEPROPS_HH