diff options
Diffstat (limited to 'Carpet/CarpetLib/src/instantiate')
-rw-r--r-- | Carpet/CarpetLib/src/instantiate | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/Carpet/CarpetLib/src/instantiate b/Carpet/CarpetLib/src/instantiate new file mode 100644 index 000000000..1f4e2d6d7 --- /dev/null +++ b/Carpet/CarpetLib/src/instantiate @@ -0,0 +1,178 @@ +// Instantiate templates for all available types -*-C++-*- +// (C) 2001 Erik Schnetter <schnetter@uni-tuebingen.de> + +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/instantiate,v 1.10 2004/03/01 21:35:13 schnetter Exp $ + +// Usage: +// Define the macro INSTANTIATE(T) to instantiate for the type T, +// then include this file, +// then undefine the macro INSTANTIATE. + + + +// Decide which types to instantiate + +#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_INT1 +# undef CARPET_INT2 +# undef CARPET_INT4 +# undef CARPET_INT8 +# define CARPET_INT1 +# 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_INT) && !defined(CARPET_INT1) && !defined(CARPET_INT2) && !defined(CARPET_INT4) && !defined(CARPET_INT8) && !defined(CARPET_REAL) && !defined(CARPET_REAL4) && !defined(CARPET_REAL8) && !defined(CARPET_REAL16) && !defined(CARPET_COMPLEX) && !defined(CARPET_COMPLEX8) && !defined(CARPET_COMPLEX16) && !defined(CARPET_COMPLEX32) +// Assume the user just wants INT, REAL, and COMPLEX +# undef CARPET_INT +# define CARPET_INT +# undef CARPET_REAL +# define CARPET_REAL +# undef CARPET_COMPLEX +# define CARPET_COMPLEX +#endif + +#ifdef CARPET_INT +# ifdef CCTK_INTEGER_PRECISION_1 +# undef CARPET_INT1 +# define CARPET_INT1 +# endif +# 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_INT1) && !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 + + + +// Instantiate the desired types + +#ifdef CARPET_BYTE +INSTANTIATE(CCTK_BYTE) +#endif + +#ifdef CARPET_INT1 +# ifdef CCTK_INT1 +INSTANTIATE(CCTK_INT1) +# endif +#endif +#ifdef CARPET_INT2 +# ifdef CCTK_INT2 +INSTANTIATE(CCTK_INT2) +# endif +#endif +#ifdef CARPET_INT4 +# ifdef CCTK_INT4 +INSTANTIATE(CCTK_INT4) +# endif +#endif +#ifdef CARPET_INT8 +# ifdef CCTK_INT8 +INSTANTIATE(CCTK_INT8) +# endif +#endif + +#ifdef CARPET_REAL4 +# ifdef CCTK_REAL4 +INSTANTIATE(CCTK_REAL4) +# endif +#endif +#ifdef CARPET_REAL8 +# ifdef CCTK_REAL8 +INSTANTIATE(CCTK_REAL8) +# endif +#endif +#ifdef CARPET_REAL16 +# ifdef CCTK_REAL16 +INSTANTIATE(CCTK_REAL16) +# endif +#endif + +#ifdef CARPET_COMPLEX8 +# ifdef CCTK_REAL4 +INSTANTIATE(CCTK_COMPLEX8) +# endif +#endif +#ifdef CARPET_COMPLEX16 +# ifdef CCTK_REAL8 +INSTANTIATE(CCTK_COMPLEX16) +# endif +#endif +#ifdef CARPET_COMPLEX32 +# ifdef CCTK_REAL16 +INSTANTIATE(CCTK_COMPLEX32) +# endif +#endif |