cl_explore.h 1.58 KB
/*
 * cl_explore.h
 *
 *  Created on: 10/09/2019
 *      Author: Pedro
 */

#ifndef SRC_KERNELS_CL_EXPLORE_H_
#define SRC_KERNELS_CL_EXPLORE_H_

#ifndef __OPENCL_VERSION__

#include <stddef.h>
#include <stdio.h>
#include "cl_aux_functions.h"
#include "cl_propagators.h"
#include "../utils/cl_syntax.h"

#else

#include "cl_aux_functions.c"
#include "cl_propagators.c"

#endif

#include "../config.h"
#include "../domains.h"
#include "cl_constraints.h"
#include "cl_variables.h"
#include "cl_ttl.h"

#if CL_D_TYPE == CL_BITMAP
#include "cl_bitmaps.h"
#elif CL_D_TYPE == CL_INTERVAL
#include  "cl_intervals.h"
#endif

__kernel void explore( __global unsigned int *atoms, CL_INTS_MEM int *ints,
__global DOMAIN_ *backtrack1,

#if CL_USE_N_BUFFERS > 1
		__global DOMAIN_* backtrack2,
#endif
#if CL_USE_N_BUFFERS > 2
		__global DOMAIN_* backtrack3,
#endif
#if CL_USE_N_BUFFERS > 3
		__global DOMAIN_* backtrack4,
#endif

		__global int *generic_mem,
#if CL_CS_IGNORE
		__global char *cs_ignore_,
#endif

#if CL_WORK == CL_ONE || CL_WORK == CL_OPT
		__global DOMAIN_ *domains,
#endif

		CL_VS_MEM VARS *vs, CL_CS_MEM cl_constr *cs,
		CL_MEMORY VARS_PROP *vs_prop, CL_MEMORY unsigned short *vs_id_to_prop

#if CL_D_TYPE == CL_BITMAP
		, CL_B_DS_MEM cl_bitmap *b_ds
#endif

#if CL_STATS == 1
		, __global unsigned long *stats
#endif

#if CL_N_DEVS > 1
		, __global unsigned long *props
#endif

#if CL_N_SHARED_SS > 0
		, __global DOMAIN_* shared_ss
		, __global int* shared_ss_flags
#endif

#if CL_FILTERING
		,
		__global DOMAIN_ *filt_domains, __global char *filt_cs
#endif

		);

#endif /* SRC_KERNELS_CL_EXPLORE_H_ */