src/ast/defaults.h
# 2 "ast/defaults.h"
Default typedef/enum declarations
To avoid having to parse large (and non-standard) system header files.
typedef int extrae_type_t, extrae_value_t;
typedef void QFILE;
struct timeval { long tv_sec, tv_usec; };
For Python/SWIG
typedef void PyObject;
From MPI
typedef void MPI_Datatype, MPI_Request, MPI_Comm, MPI_Op, MPI_Aint;
typedef int MPI_Status;
typedef long long MPI_Offset;
typedef struct MPIR_Info *MPI_Info;
From OpenGL
From standard C libraries
typedef int bool;
typedef long ssize_t, size_t, clock_t, ptrdiff_t;
typedef long int64_t, int32_t, uint32_t, uint16_t, uint64_t;
typedef void va_list, FILE;
typedef unsigned char uint8_t;
typedef char int8_t;
typedef short int16_t;
typedef unsigned short uint16_t;
typedef int int32_t;
typedef unsigned int uint32_t;
typedef long int64_t;
typedef unsigned long uint64_t;
typedef double time_t;
Tricks for AST
The following are declarations semantically equivalent to their real implementations (which are often C preprocessor macros).
enum AstBoolean { false, true };
Stencils
Need to know about these implicitly declared variables/macros.
int BGHOSTS, o_stencil;
double HUGE;
void * NULL;
Functions supported by GLSL
bool is_constant();
void dimensional();
void NOT_UNUSED();
void neighborp();
double val_diagonal();
double abs (double x);
double acos (double x);
double acosh (double x);
double asin (double x);
double asinh (double x);
double atan (double x);
double atanh (double x);
double ceil (double x);
double cos (double x);
double cosh (double x);
double exp (double x);
double fabs(double x);
double log (double x);
double log2 (double x);
double fmax (double a, double b);
double fmin (double a, double b);
double mix (double a, double b, double c);
double mod (double a, double b);
double modf (double a, double * b);
double pow (double a, double b);
double round (double x);
double sin (double x);
double sinh (double x);
double sqrt (double x);
double tan (double x);
double tanh (double x);
double trunc (double x);