/*@@ @file util.c @date 23 Oct 2001 @author Jonathan Thornburg @desc Utility routines for generalized interpolation. This file contains various utility routines for the interpolator. @enddesc @version $Id$ @@*/ #include #include #include #include #ifndef LOCALINTERP_STANDALONE_BUILD #include "cctk.h" #endif #include "InterpLocalUniform.h" /* the rcs ID and its dummy function to use it */ static const char *rcsid = "$Header$"; #ifndef LOCALINTERP_STANDALONE_BUILD CCTK_FILEVERSION(CactusBase_LocalInterp_src_GeneralizedPolynomialUniform_util_c) #endif /******************************************************************************/ /*@@ @routine LocalInterp_zero_int_array @date 23 Oct 2001 @author Jonathan Thornburg @desc This function sets a CCTK_INT array to all zeros. @enddesc @var N @vdesc The number of elements in the array. @vtype CCTK_INT N @endvar @var array @vdesc (A pointer to) the array @vtype CCTK_INT array[] @vio out @endvar @@*/ void LocalInterp_zero_int_array(int N, CCTK_INT array[]) { int i; for (i = 0 ; i < N ; ++i) { array[i] = 0; } } /******************************************************************************/ /*@@ @routine LocalInterp_decode_N_parts @date 22 Jan 2002 @author Jonathan Thornburg @desc This function decodes a CCTK_VARIABLE_* variable type code (cctk_Constants.h) to determine whether the type is real or complex. @enddesc @var type_code @vdesc The type code to be decoded @vtype int @endvar @returntype int @returndesc This function returns 1 if the data type represents a real number of some sort (includes integers) 2 if the data type represents a complex number 0 if the data type doesn't represent a number, eg strings and pointers -1 if the data type is invalid @endreturndesc @@*/ int LocalInterp_decode_N_parts(int type_code) { switch (type_code) { case CCTK_VARIABLE_VOID: return 0; case CCTK_VARIABLE_BYTE: return 1; case CCTK_VARIABLE_INT: return 1; case CCTK_VARIABLE_INT2: return 1; case CCTK_VARIABLE_INT4: return 1; case CCTK_VARIABLE_INT8: return 1; case CCTK_VARIABLE_REAL: return 1; case CCTK_VARIABLE_REAL4: return 1; case CCTK_VARIABLE_REAL8: return 1; case CCTK_VARIABLE_REAL16: return 1; case CCTK_VARIABLE_COMPLEX: return 2; case CCTK_VARIABLE_COMPLEX8: return 2; case CCTK_VARIABLE_COMPLEX16: return 2; case CCTK_VARIABLE_COMPLEX32: return 2; case CCTK_VARIABLE_STRING: return 0; case CCTK_VARIABLE_POINTER: return 0; case CCTK_VARIABLE_FPOINTER: return 0; default: return -1; } }