Files @ b7792cb187f7
Branch filter:

Location: MD/arcos/include/cstream.h - annotation

greta
Edited file README via RhodeCode
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
d6faa5ffcedf
/** @file cstream.h
 *  @brief Global header file
 */

#ifndef _CSTREAM_H_

#include "tree.h"
#include "assert.h"
#include "stdlib.h"

#ifdef _OPENMP
# include "omp.h"
#endif

#ifndef TRUE
# define TRUE 1
#endif 

#ifndef FALSE
# define FALSE 0
#endif 


#ifdef DEBUG_LEVEL
# ifdef _OPENMP
#  define debug(level, ...) if (DEBUG_LEVEL >= level) {	      \
    fprintf (stderr,"[%d] %s:%d: ", omp_get_thread_num(),    \
	     __FILE__, __LINE__);			      \
    fprintf (stderr,__VA_ARGS__);			      \
  }
# else /*_OPENMP*/
#  define debug(level, ...) if (DEBUG_LEVEL >= level) {	      \
    fprintf (stderr,"%s:%d: ", __FILE__, __LINE__);	      \
    fprintf (stderr,__VA_ARGS__);			      \
  }
# endif
#else
# define debug(level, ...)
# define NDEBUG  /* To supress the asserts */
#endif

#define warning(...) do{				\
    fprintf (stderr, "%s: Warning: ", invok_name);	\
    fprintf (stderr, ## __VA_ARGS__);			\
  } while(0)

#define fatal(...) do{					\
    fprintf (stderr, "%s: Fatal error: ", invok_name);	\
    fprintf (stderr, ## __VA_ARGS__);			\
    exit(-1);						\
  } while(0)
    
/* Useful to debug. */
#define show_double(VAR_) printf (#VAR_ " = %g\n", VAR_)
#define show_int(VAR_) printf (#VAR_ " = %d\n", VAR_)

/* Beware of side-effects! */
#define MYMAX(X_, Y_)  ((X_) > (Y_)? (X_): (Y_))
#define MYMIN(X_, Y_)  ((X_) < (Y_)? (X_): (Y_))
#define MAX_AT_LEVEL(X_, Y_, L_)  MYMAX(X_, (Y_) << (L_))
#define MIN_AT_LEVEL(X_, Y_, L_)  MYMIN(X_, (Y_) << (L_))
#define MAX_AT_LEVEL_WITH_SHIFT(X_, Y_, L_, S_)  \
  MYMAX(X_, ((Y_) << (L_)) + ((L_) > 0? ((S_) << (L_ - 1)): 0))
#define MIN_AT_LEVEL_WITH_SHIFT(X_, Y_, L_, S_)  \
  MYMIN(X_, ((Y_) << (L_)) + ((L_) > 0? ((S_) << (L_ - 1)): 0))

#define XCHG(X1_, X2_) do {			\
    typeof(X1_) TMP_;				\
    TMP_ = X1_;					\
    X1_ = X2_;					\
    X2_ = TMP_;					\
  } while(0)


#define SQ(X_)  ((X_) * (X_))

///** @brief Information about each program parameter. */
//typedef struct param_t param_t;
//struct param_t {
  //char *name;
  //char *desc;
  //char *type;
  //void *value;
//};

/** @brief These are the types for the global parameters. */
typedef char* string;
typedef double* doublep;

//#ifdef ALLOC_PARAMS
//# define decl_param(TYPE, NAME, DESC, DEFAULT)		\
       //TYPE NAME = DEFAULT;				\
       //param_t NAME ## _st = {				\
	 //#NAME,						\
	 //DESC,						\
	 //#TYPE,						\
	 //(void *) &NAME};
//# define decl_deprec_param(TYPE, NAME, DESC, DEFAULT)	\
       //TYPE NAME;					\
       //param_t NAME ## _st = {				\
	 //#NAME,						\
	 //DESC,						\
	 //"deprecated",					\
	 //NULL};
//#else
//# define decl_param(TYPE, NAME, DESC, DEFAULT)	\
  //extern TYPE NAME;				\
  //extern param_t NAME ## _st;
//# define decl_deprec_param(TYPE, NAME, DESC, DEFAULT)	\
  //decl_param(TYPE, NAME, DESC, DEFAULT)
//#endif

typedef double REAL;

extern double *dr, *dz, dtheta;
/*!< The grid sizes */
extern double *w2k, *wk;
/*!< See cstream.c */

#define decl_field_comp(_DIR) \
  double (*ext_e_ ## _DIR) (double r, double z, double theta)
/*!< The three components of the external field: ext_e_r, ext_e_z and
 *   ext_e_theta. */

extern decl_field_comp(r);
extern decl_field_comp(z);
extern decl_field_comp(theta);

extern char *invok_name;

extern const double twopi;
extern const double invfourpi;
extern const double invpi32;

/**********
 * misc.c *
 **********/
void *xmalloc (size_t size);
void *xrealloc (void *ptr, size_t size);
void *xcalloc (size_t count, size_t size);

#define _CSTREAM_H_
#endif