diff options
Diffstat (limited to 'Carpet/Carpet/src/typecase')
-rw-r--r-- | Carpet/Carpet/src/typecase | 136 |
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 |