/* + * cl_intervals.h * * Created on: 27/07/2016 * Author: pedro */ #if CL_D_TYPE == CL_INTERVAL #ifndef SRC_KERNELS_CL_INTERVALS_H_ #define SRC_KERNELS_CL_INTERVALS_H_ #ifndef __OPENCL_VERSION__ #include "../utils/cl_syntax.h" #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) #include #endif #endif #include "../config.h" // An interval is empty if second value is smaller than the first value /* * Number of values that compose the domain of the received variable (s1-s0+1) * v - variable to get values in domain */ #define V_N_VALS(v) (((v).prop_d).s1 - ((v).prop_d).s0 + 1) /* * Does nothing when using intervals * v - variable to decrement the number of values */ #define V_DEC_N_VALS(v) /* * Return 1 if variable is empty and 0 if not * v - variable to check if empty */ #define V_IS_EMPTY(v) (((v).prop_d).s0 > ((v).prop_d).s1) /* * Minimum value of the variable (v->prop_d.s0) * v - variable to get maximum value from */ #define V_MIN(v) (((v).prop_d).s0) /* * Maximum value of the variable (from v->prop_d.s1) * v - variable to get maximum value from */ #define V_MAX(v) (((v).prop_d).s1) #define NOTHING #define SUFFIX _n #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M1 CL_MEMORY #define M2 CL_MEMORY #define SUFFIX _m #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M1 __global #define M2 __global #define SUFFIX _g #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M2 CL_MEMORY #define SUFFIX _pm #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M1 CL_MEMORY #define SUFFIX _mp #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M1 __global #define M2 CL_MEMORY #define SUFFIX _gm #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M1 CL_MEMORY #define M2 __global #define SUFFIX _mg #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M1 __global #define M2 __constant #define SUFFIX _gc #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M1 __global #define SUFFIX _gp #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M3 __constant #define SUFFIX _c #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M3 CL_VS_MEM #define SUFFIX _vs #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M1 __global #define M2 CL_VS_MEM #define SUFFIX _gvs #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M1 CL_MEMORY #define M2 CL_VS_MEM #define SUFFIX _mvs #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M3 CL_MEMORY #define M4 __global #define SUFFIX _m3 #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M2 __global #define SUFFIX _pg #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #define M3 CL_VS_MEM #define M4 __global #define SUFFIX _vsg #include "cl_intervals_src.h" #undef M1 #undef M2 #undef M3 #undef M4 #undef SUFFIX #endif /* SRC_KERNELS_CL_INTERVALS_H_ */ #endif