Merge branch 'master' of git.dcc.fc.up.pt:yap-6.3
This commit is contained in:
commit
291486af3d
@ -637,7 +637,7 @@ CreateStaticArray(AtomEntry *ae, Int dim, static_array_types type, CODEADDR star
|
|||||||
p->ArrayEArity = -dim;
|
p->ArrayEArity = -dim;
|
||||||
p->ArrayType = type;
|
p->ArrayType = type;
|
||||||
if (start_addr == NULL) {
|
if (start_addr == NULL) {
|
||||||
int i;
|
Int i;
|
||||||
|
|
||||||
AllocateStaticArraySpace(p, type, dim PASS_REGS);
|
AllocateStaticArraySpace(p, type, dim PASS_REGS);
|
||||||
if (p->ValueOfVE.ints == NULL) {
|
if (p->ValueOfVE.ints == NULL) {
|
||||||
@ -790,7 +790,7 @@ ClearStaticArray(StaticArrayEntry *pp)
|
|||||||
WRITE_LOCK(pp->ArRWLock);
|
WRITE_LOCK(pp->ArRWLock);
|
||||||
switch(type) {
|
switch(type) {
|
||||||
case array_of_ints:
|
case array_of_ints:
|
||||||
memset((void *)pp->ValueOfVE.ints,0,sizeof(int)*dim);
|
memset((void *)pp->ValueOfVE.ints,0,sizeof(Int)*dim);
|
||||||
break;
|
break;
|
||||||
case array_of_chars:
|
case array_of_chars:
|
||||||
memset((void *)pp->ValueOfVE.chars,0,sizeof(char)*dim);
|
memset((void *)pp->ValueOfVE.chars,0,sizeof(char)*dim);
|
||||||
|
@ -992,7 +992,7 @@ YAP_MkListFromTerms(Term *ta, Int sz)
|
|||||||
if (sz == 0)
|
if (sz == 0)
|
||||||
return TermNil;
|
return TermNil;
|
||||||
BACKUP_H();
|
BACKUP_H();
|
||||||
if (H+sz*2 > ASP-1024) {
|
while (H+sz*2 > ASP-1024) {
|
||||||
Int sl1 = Yap_InitSlot((CELL)ta PASS_REGS);
|
Int sl1 = Yap_InitSlot((CELL)ta PASS_REGS);
|
||||||
RECOVER_H();
|
RECOVER_H();
|
||||||
if (!dogc( PASS_REGS1 )) {
|
if (!dogc( PASS_REGS1 )) {
|
||||||
|
@ -1392,8 +1392,10 @@ Yap_clean_tokenizer(TokEntry *tokstart, VarEntry *vartable, VarEntry *anonvartab
|
|||||||
}
|
}
|
||||||
LOCAL_Comments = TermNil;
|
LOCAL_Comments = TermNil;
|
||||||
LOCAL_CommentsNextChar = LOCAL_CommentsTail = NULL;
|
LOCAL_CommentsNextChar = LOCAL_CommentsTail = NULL;
|
||||||
free(LOCAL_CommentsBuff);
|
if (LOCAL_CommentsBuff) {
|
||||||
LOCAL_CommentsBuff = NULL;
|
free(LOCAL_CommentsBuff);
|
||||||
|
LOCAL_CommentsBuff = NULL;
|
||||||
|
}
|
||||||
LOCAL_CommentsBuffLim = 0;
|
LOCAL_CommentsBuffLim = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
38
C/threads.c
38
C/threads.c
@ -114,6 +114,14 @@ store_specs(int new_worker_id, UInt ssize, UInt tsize, UInt sysize, Term *tpgoal
|
|||||||
REMOTE_ThreadHandle(new_worker_id).texit_mod = tmod;
|
REMOTE_ThreadHandle(new_worker_id).texit_mod = tmod;
|
||||||
REMOTE_ThreadHandle(new_worker_id).texit =
|
REMOTE_ThreadHandle(new_worker_id).texit =
|
||||||
Yap_StoreTermInDB(tgoal,7);
|
Yap_StoreTermInDB(tgoal,7);
|
||||||
|
REMOTE_ThreadHandle(new_worker_id).local_preds =
|
||||||
|
NULL;
|
||||||
|
REMOTE_ThreadHandle(new_worker_id).start_of_timesp =
|
||||||
|
NULL;
|
||||||
|
REMOTE_ThreadHandle(new_worker_id).last_timep =
|
||||||
|
NULL;
|
||||||
|
REMOTE_ScratchPad(new_worker_id).ptr =
|
||||||
|
NULL;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,12 +129,11 @@ store_specs(int new_worker_id, UInt ssize, UInt tsize, UInt sysize, Term *tpgoal
|
|||||||
static void
|
static void
|
||||||
kill_thread_engine (int wid, int always_die)
|
kill_thread_engine (int wid, int always_die)
|
||||||
{
|
{
|
||||||
CACHE_REGS
|
|
||||||
Prop p0 = AbsPredProp(REMOTE_ThreadHandle(wid).local_preds);
|
Prop p0 = AbsPredProp(REMOTE_ThreadHandle(wid).local_preds);
|
||||||
GlobalEntry *gl = LOCAL_GlobalVariables;
|
GlobalEntry *gl = REMOTE_GlobalVariables(wid);
|
||||||
|
|
||||||
REMOTE_ThreadHandle(wid).local_preds = NIL;
|
REMOTE_ThreadHandle(wid).local_preds = NIL;
|
||||||
LOCAL_GlobalVariables = NULL;
|
REMOTE_GlobalVariables(wid) = NULL;
|
||||||
/* kill all thread local preds */
|
/* kill all thread local preds */
|
||||||
while(p0) {
|
while(p0) {
|
||||||
PredEntry *ap = RepPredProp(p0);
|
PredEntry *ap = RepPredProp(p0);
|
||||||
@ -140,12 +147,19 @@ kill_thread_engine (int wid, int always_die)
|
|||||||
}
|
}
|
||||||
Yap_KillStacks(wid);
|
Yap_KillStacks(wid);
|
||||||
REMOTE_ActiveSignals(wid) = 0L;
|
REMOTE_ActiveSignals(wid) = 0L;
|
||||||
free(REMOTE_ScratchPad(wid).ptr);
|
if (REMOTE_ScratchPad(wid).ptr)
|
||||||
free(REMOTE_ThreadHandle(wid).default_yaam_regs);
|
free(REMOTE_ScratchPad(wid).ptr);
|
||||||
REMOTE_ThreadHandle(wid).current_yaam_regs = NULL;
|
REMOTE_ThreadHandle(wid).current_yaam_regs = NULL;
|
||||||
free(REMOTE_ThreadHandle(wid).start_of_timesp);
|
if (REMOTE_ThreadHandle(wid).start_of_timesp)
|
||||||
free(REMOTE_ThreadHandle(wid).last_timep);
|
free(REMOTE_ThreadHandle(wid).start_of_timesp);
|
||||||
Yap_FreeCodeSpace((ADDR)REMOTE_ThreadHandle(wid).texit);
|
if (REMOTE_ThreadHandle(wid).last_timep)
|
||||||
|
free(REMOTE_ThreadHandle(wid).last_timep);
|
||||||
|
if (REMOTE_ThreadHandle(wid).texit) {
|
||||||
|
Yap_FreeCodeSpace((ADDR)REMOTE_ThreadHandle(wid).texit);
|
||||||
|
}
|
||||||
|
/* FreeCodeSpace requires LOCAL requires yaam_regs */
|
||||||
|
free(REMOTE_ThreadHandle(wid).default_yaam_regs);
|
||||||
|
REMOTE_ThreadHandle(wid).default_yaam_regs = NULL;
|
||||||
LOCK(GLOBAL_ThreadHandlesLock);
|
LOCK(GLOBAL_ThreadHandlesLock);
|
||||||
if (REMOTE_ThreadHandle(wid).tdetach == MkAtomTerm(AtomTrue) ||
|
if (REMOTE_ThreadHandle(wid).tdetach == MkAtomTerm(AtomTrue) ||
|
||||||
always_die) {
|
always_die) {
|
||||||
@ -167,13 +181,15 @@ thread_die(int wid, int always_die)
|
|||||||
kill_thread_engine(wid, always_die);
|
kill_thread_engine(wid, always_die);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static int
|
||||||
setup_engine(int myworker_id, int init_thread)
|
setup_engine(int myworker_id, int init_thread)
|
||||||
{
|
{
|
||||||
CACHE_REGS
|
CACHE_REGS
|
||||||
REGSTORE *standard_regs;
|
REGSTORE *standard_regs;
|
||||||
|
|
||||||
standard_regs = (REGSTORE *)calloc(1,sizeof(REGSTORE));
|
standard_regs = (REGSTORE *)calloc(1,sizeof(REGSTORE));
|
||||||
|
if (!standard_regs)
|
||||||
|
return FALSE;
|
||||||
regcache = standard_regs;
|
regcache = standard_regs;
|
||||||
/* create the YAAM descriptor */
|
/* create the YAAM descriptor */
|
||||||
REMOTE_ThreadHandle(myworker_id).default_yaam_regs = standard_regs;
|
REMOTE_ThreadHandle(myworker_id).default_yaam_regs = standard_regs;
|
||||||
@ -194,6 +210,7 @@ setup_engine(int myworker_id, int init_thread)
|
|||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
DepFr_cons_cp(LOCAL_top_dep_fr) = B; /* same as in Yap_init_root_frames() */
|
DepFr_cons_cp(LOCAL_top_dep_fr) = B; /* same as in Yap_init_root_frames() */
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -418,7 +435,8 @@ Yap_thread_create_engine(thread_attr *ops)
|
|||||||
REMOTE_ThreadHandle(new_id).pthread_handle = 0L;
|
REMOTE_ThreadHandle(new_id).pthread_handle = 0L;
|
||||||
REMOTE_ThreadHandle(new_id).id = new_id;
|
REMOTE_ThreadHandle(new_id).id = new_id;
|
||||||
REMOTE_ThreadHandle(new_id).ref_count = 0;
|
REMOTE_ThreadHandle(new_id).ref_count = 0;
|
||||||
setup_engine(new_id, FALSE);
|
if (!setup_engine(new_id, FALSE))
|
||||||
|
return -1;
|
||||||
if (pthread_self() != GLOBAL_master_thread) {
|
if (pthread_self() != GLOBAL_master_thread) {
|
||||||
pthread_setspecific(Yap_yaamregs_key, NULL);
|
pthread_setspecific(Yap_yaamregs_key, NULL);
|
||||||
pthread_mutex_unlock(&(REMOTE_ThreadHandle(0).tlock));
|
pthread_mutex_unlock(&(REMOTE_ThreadHandle(0).tlock));
|
||||||
|
@ -152,7 +152,6 @@ clrsb(Int i)
|
|||||||
inline static Term
|
inline static Term
|
||||||
do_sll(Int i, Int j) /* j > 0 */
|
do_sll(Int i, Int j) /* j > 0 */
|
||||||
{
|
{
|
||||||
Int k;
|
|
||||||
#ifdef USE_GMP
|
#ifdef USE_GMP
|
||||||
if (
|
if (
|
||||||
#ifdef __GNUC__X
|
#ifdef __GNUC__X
|
||||||
|
@ -13,107 +13,45 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
/****************************************************************
|
||||||
** General Configuration Parameters **
|
** Configuration Parameters **
|
||||||
************************************************************************/
|
****************************************************************/
|
||||||
|
|
||||||
/******************************************************************************************
|
|
||||||
** use shared pages memory alloc scheme for OPTYap data structures? (optional) **
|
|
||||||
******************************************************************************************/
|
|
||||||
/* #define USE_PAGES_MALLOC 1 */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
|
||||||
** Tabling Configuration Parameters **
|
|
||||||
************************************************************************/
|
|
||||||
|
|
||||||
/****************************
|
|
||||||
** default sizes **
|
|
||||||
****************************/
|
|
||||||
#define MAX_TABLE_VARS 1000
|
|
||||||
|
|
||||||
/**********************************************************
|
|
||||||
** trail freeze scheme (mandatory, define one) **
|
|
||||||
**********************************************************/
|
|
||||||
#define BFZ_TRAIL_SCHEME 1
|
|
||||||
/* #define BBREG_TRAIL_SCHEME 1 */
|
|
||||||
|
|
||||||
/*********************************************************
|
|
||||||
** support mode directed tabling ? (optional) **
|
|
||||||
*********************************************************/
|
|
||||||
#define MODE_DIRECTED_TABLING 1
|
|
||||||
|
|
||||||
/****************************************************
|
|
||||||
** support early completion ? (optional) **
|
|
||||||
****************************************************/
|
|
||||||
#define TABLING_EARLY_COMPLETION 1
|
|
||||||
|
|
||||||
/******************************************************
|
|
||||||
** support trie compact pairs ? (optional) **
|
|
||||||
******************************************************/
|
|
||||||
#define TRIE_COMPACT_PAIRS 1
|
|
||||||
|
|
||||||
/************************************************************
|
|
||||||
** support global trie for subterms ? (optional) **
|
|
||||||
************************************************************/
|
|
||||||
/* #define GLOBAL_TRIE_FOR_SUBTERMS 1 */
|
|
||||||
|
|
||||||
/******************************************************
|
|
||||||
** support incomplete tabling ? (optional) **
|
|
||||||
******************************************************/
|
|
||||||
/* #define INCOMPLETE_TABLING 1 */
|
|
||||||
|
|
||||||
/******************************************************
|
|
||||||
** limit the table space size ? (optional) **
|
|
||||||
******************************************************/
|
|
||||||
/* #define LIMIT_TABLING 1 */
|
|
||||||
|
|
||||||
/*********************************************************
|
|
||||||
** support deterministic tabling ? (optional) **
|
|
||||||
*********************************************************/
|
|
||||||
/* #define DETERMINISTIC_TABLING 1 */
|
|
||||||
|
|
||||||
/*************************************************
|
|
||||||
** enable error checking ? (optional) **
|
|
||||||
*************************************************/
|
|
||||||
/* #define DEBUG_TABLING 1 */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
|
||||||
** YapOr Configuration Parameters **
|
|
||||||
************************************************************************/
|
|
||||||
|
|
||||||
/****************************
|
/****************************
|
||||||
** default sizes **
|
** default sizes **
|
||||||
****************************/
|
****************************/
|
||||||
|
#define MAX_TABLE_VARS 1000
|
||||||
|
#define TRIE_LOCK_BUCKETS 512
|
||||||
|
#define THREADS_FIRST_LEVEL_BUCKETS 16
|
||||||
|
#define THREADS_SECOND_LEVEL_BUCKETS (MAX_THREADS / THREADS_FIRST_LEVEL_BUCKETS) /* 64 (1024/16) */
|
||||||
|
#define TG_ANSWER_SLOTS 20
|
||||||
#define MAX_LENGTH_ANSWER 1000
|
#define MAX_LENGTH_ANSWER 1000
|
||||||
#define MAX_BRANCH_DEPTH 1000
|
#define MAX_BRANCH_DEPTH 1000
|
||||||
#define MAX_BEST_TIMES 21
|
|
||||||
|
|
||||||
/************************************************************
|
/**********************************************************************
|
||||||
** memory mapping scheme (mandatory, define one) **
|
** memory mapping scheme for YapOr (mandatory, define one) **
|
||||||
************************************************************/
|
**********************************************************************/
|
||||||
#define MMAP_MEMORY_MAPPING_SCHEME 1
|
#define MMAP_MEMORY_MAPPING_SCHEME 1
|
||||||
/* #define SHM_MEMORY_MAPPING_SCHEME 1 */
|
/* #define SHM_MEMORY_MAPPING_SCHEME 1 */
|
||||||
|
|
||||||
/*************************************************
|
/****************************************************************
|
||||||
** enable error checking ? (optional) **
|
** use shared pages memory alloc scheme ? (optional) **
|
||||||
*************************************************/
|
****************************************************************/
|
||||||
/* #define DEBUG_YAPOR 1 */
|
/* #define USE_PAGES_MALLOC 1 */
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
** trail freeze scheme for tabling (mandatory, define one) **
|
||||||
|
**********************************************************************/
|
||||||
|
#define BFZ_TRAIL_SCHEME 1
|
||||||
|
/* #define BBREG_TRAIL_SCHEME 1 */
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
** OPTYap Configuration Parameters **
|
** multithreading design for tabling (mandatory, define one) **
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
|
#define THREADS_NO_SHARING 1
|
||||||
/****************************
|
/* #define THREADS_SUBGOAL_SHARING 1 */
|
||||||
** default sizes **
|
/* #define THREADS_FULL_SHARING 1 */
|
||||||
****************************/
|
/* #define THREADS_CONSUMER_SHARING 1 */
|
||||||
#define TG_ANSWER_SLOTS 20
|
|
||||||
#define TRIE_LOCK_BUCKETS 512
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
** tries locking scheme (mandatory, define one per trie type) **
|
** tries locking scheme (mandatory, define one per trie type) **
|
||||||
@ -154,26 +92,86 @@
|
|||||||
#define TRIE_LOCK_USING_NODE_FIELD 1
|
#define TRIE_LOCK_USING_NODE_FIELD 1
|
||||||
/* #define TRIE_LOCK_USING_GLOBAL_ARRAY 1 */
|
/* #define TRIE_LOCK_USING_GLOBAL_ARRAY 1 */
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
** support mode directed tabling ? (optional) **
|
||||||
|
*********************************************************/
|
||||||
|
#define MODE_DIRECTED_TABLING 1
|
||||||
|
|
||||||
|
/****************************************************************
|
||||||
|
** support early completion for tabling ? (optional) **
|
||||||
|
*****************************************************************/
|
||||||
|
#define TABLING_EARLY_COMPLETION 1
|
||||||
|
|
||||||
/******************************************************
|
/******************************************************
|
||||||
** support tabling inner cuts ? (optional) **
|
** support trie compact pairs ? (optional) **
|
||||||
******************************************************/
|
******************************************************/
|
||||||
#define TABLING_INNER_CUTS 1
|
#define TRIE_COMPACT_PAIRS 1
|
||||||
|
|
||||||
|
/************************************************************
|
||||||
|
** support global trie for subterms ? (optional) **
|
||||||
|
************************************************************/
|
||||||
|
/* #define GLOBAL_TRIE_FOR_SUBTERMS 1 */
|
||||||
|
|
||||||
|
/******************************************************
|
||||||
|
** support incomplete tabling ? (optional) **
|
||||||
|
******************************************************/
|
||||||
|
/* #define INCOMPLETE_TABLING 1 */
|
||||||
|
|
||||||
|
/******************************************************
|
||||||
|
** limit the table space size ? (optional) **
|
||||||
|
******************************************************/
|
||||||
|
/* #define LIMIT_TABLING 1 */
|
||||||
|
|
||||||
/*********************************************************
|
/*********************************************************
|
||||||
** use timestamps for suspension ? (optional) **
|
** support deterministic tabling ? (optional) **
|
||||||
*********************************************************/
|
*********************************************************/
|
||||||
|
/* #define DETERMINISTIC_TABLING 1 */
|
||||||
|
|
||||||
|
/******************************************************************
|
||||||
|
** support tabling inner cuts with OPTYap ? (optional) **
|
||||||
|
******************************************************************/
|
||||||
|
#define TABLING_INNER_CUTS 1
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
** use timestamps for suspension with OPTYap ? (optional) **
|
||||||
|
*********************************************************************/
|
||||||
#define TIMESTAMP_CHECK 1
|
#define TIMESTAMP_CHECK 1
|
||||||
|
|
||||||
|
/*************************************************
|
||||||
|
** enable error checking ? (optional) **
|
||||||
|
*************************************************/
|
||||||
|
/* #define DEBUG_TABLING 1 */
|
||||||
|
/* #define DEBUG_YAPOR 1 */
|
||||||
|
|
||||||
|
/**************************************************
|
||||||
|
** enable output checking ? (optional) **
|
||||||
|
**************************************************/
|
||||||
|
/* #define OUTPUT_THREADS_TABLING 1 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
** Parameter Checks **
|
** Parameter Checks **
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
|
|
||||||
#ifndef USE_PAGES_MALLOC
|
#ifdef YAPOR
|
||||||
#undef LIMIT_TABLING
|
#ifdef i386 /* For i386 machines we use shared memory segments */
|
||||||
#endif /* ! USE_PAGES_MALLOC */
|
#undef MMAP_MEMORY_MAPPING_SCHEME
|
||||||
|
#define SHM_MEMORY_MAPPING_SCHEME
|
||||||
|
#endif
|
||||||
|
#if !defined(MMAP_MEMORY_MAPPING_SCHEME) && !defined(SHM_MEMORY_MAPPING_SCHEME)
|
||||||
|
#error Define a memory mapping scheme
|
||||||
|
#endif
|
||||||
|
#if defined(MMAP_MEMORY_MAPPING_SCHEME) && defined(SHM_MEMORY_MAPPING_SCHEME)
|
||||||
|
#error Do not define multiple memory mapping schemes
|
||||||
|
#endif
|
||||||
|
#else /* ! YAPOR */
|
||||||
|
#undef MMAP_MEMORY_MAPPING_SCHEME
|
||||||
|
#undef SHM_MEMORY_MAPPING_SCHEME
|
||||||
|
#undef DEBUG_YAPOR
|
||||||
|
#endif /* YAPOR */
|
||||||
|
|
||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
#if !defined(BFZ_TRAIL_SCHEME) && !defined(BBREG_TRAIL_SCHEME)
|
#if !defined(BFZ_TRAIL_SCHEME) && !defined(BBREG_TRAIL_SCHEME)
|
||||||
@ -195,27 +193,7 @@
|
|||||||
#undef DEBUG_TABLING
|
#undef DEBUG_TABLING
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
|
|
||||||
|
#if defined(TABLING) && (defined(YAPOR) || defined(THREADS))
|
||||||
#ifdef YAPOR
|
|
||||||
#ifdef i386 /* For i386 machines we use shared memory segments */
|
|
||||||
#undef MMAP_MEMORY_MAPPING_SCHEME
|
|
||||||
#define SHM_MEMORY_MAPPING_SCHEME
|
|
||||||
#endif
|
|
||||||
#if !defined(MMAP_MEMORY_MAPPING_SCHEME) && !defined(SHM_MEMORY_MAPPING_SCHEME)
|
|
||||||
#error Define a memory mapping scheme
|
|
||||||
#endif
|
|
||||||
#if defined(MMAP_MEMORY_MAPPING_SCHEME) && defined(SHM_MEMORY_MAPPING_SCHEME)
|
|
||||||
#error Do not define multiple memory mapping schemes
|
|
||||||
#endif
|
|
||||||
#undef LIMIT_TABLING
|
|
||||||
#else /* ! YAPOR */
|
|
||||||
#undef MMAP_MEMORY_MAPPING_SCHEME
|
|
||||||
#undef SHM_MEMORY_MAPPING_SCHEME
|
|
||||||
#undef DEBUG_YAPOR
|
|
||||||
#endif /* YAPOR */
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(YAPOR) && defined(TABLING)
|
|
||||||
/* SUBGOAL_TRIE_LOCK_LEVEL */
|
/* SUBGOAL_TRIE_LOCK_LEVEL */
|
||||||
#if !defined(SUBGOAL_TRIE_LOCK_AT_ENTRY_LEVEL) && !defined(SUBGOAL_TRIE_LOCK_AT_NODE_LEVEL) && !defined(SUBGOAL_TRIE_LOCK_AT_WRITE_LEVEL)
|
#if !defined(SUBGOAL_TRIE_LOCK_AT_ENTRY_LEVEL) && !defined(SUBGOAL_TRIE_LOCK_AT_NODE_LEVEL) && !defined(SUBGOAL_TRIE_LOCK_AT_WRITE_LEVEL)
|
||||||
#error Define a subgoal trie lock scheme
|
#error Define a subgoal trie lock scheme
|
||||||
@ -258,35 +236,14 @@
|
|||||||
#ifndef GLOBAL_TRIE_LOCK_AT_WRITE_LEVEL
|
#ifndef GLOBAL_TRIE_LOCK_AT_WRITE_LEVEL
|
||||||
#undef GLOBAL_TRIE_ALLOC_BEFORE_CHECK
|
#undef GLOBAL_TRIE_ALLOC_BEFORE_CHECK
|
||||||
#endif
|
#endif
|
||||||
/* TRIE_LOCK_USING_NODE_FIELD / TRIE_LOCK_USING_GLOBAL_ARRAY */
|
/* TRIE_LOCK_USING */
|
||||||
#if !defined(TRIE_LOCK_USING_NODE_FIELD) && !defined(TRIE_LOCK_USING_GLOBAL_ARRAY)
|
#if !defined(TRIE_LOCK_USING_NODE_FIELD) && !defined(TRIE_LOCK_USING_GLOBAL_ARRAY)
|
||||||
#error Define a trie lock data structure
|
#error Define a trie lock data structure
|
||||||
#endif
|
#endif
|
||||||
#if defined(TRIE_LOCK_USING_NODE_FIELD) && defined(TRIE_LOCK_USING_GLOBAL_ARRAY)
|
#if defined(TRIE_LOCK_USING_NODE_FIELD) && defined(TRIE_LOCK_USING_GLOBAL_ARRAY)
|
||||||
#error Do not define multiple trie lock data structures
|
#error Do not define multiple trie lock data structures
|
||||||
#endif
|
#endif
|
||||||
#ifdef TRIE_LOCK_USING_NODE_FIELD
|
#else /* ! TABLING || (! YAPOR && ! THREADS) */
|
||||||
#if defined(SUBGOAL_TRIE_LOCK_AT_NODE_LEVEL) || defined(SUBGOAL_TRIE_LOCK_AT_WRITE_LEVEL)
|
|
||||||
#define SUBGOAL_TRIE_LOCK_USING_NODE_FIELD 1
|
|
||||||
#endif
|
|
||||||
#if defined(ANSWER_TRIE_LOCK_AT_NODE_LEVEL) || defined(ANSWER_TRIE_LOCK_AT_WRITE_LEVEL)
|
|
||||||
#define ANSWER_TRIE_LOCK_USING_NODE_FIELD 1
|
|
||||||
#endif
|
|
||||||
#if defined(GLOBAL_TRIE_LOCK_AT_NODE_LEVEL) || defined(GLOBAL_TRIE_LOCK_AT_WRITE_LEVEL)
|
|
||||||
#define GLOBAL_TRIE_LOCK_USING_NODE_FIELD 1
|
|
||||||
#endif
|
|
||||||
#elif TRIE_LOCK_USING_GLOBAL_ARRAY
|
|
||||||
#if defined(SUBGOAL_TRIE_LOCK_AT_NODE_LEVEL) || defined(SUBGOAL_TRIE_LOCK_AT_WRITE_LEVEL)
|
|
||||||
#define SUBGOAL_TRIE_LOCK_USING_GLOBAL_ARRAY 1
|
|
||||||
#endif
|
|
||||||
#if defined(ANSWER_TRIE_LOCK_AT_NODE_LEVEL) || defined(ANSWER_TRIE_LOCK_AT_WRITE_LEVEL)
|
|
||||||
#define ANSWER_TRIE_LOCK_USING_GLOBAL_ARRAY 1
|
|
||||||
#endif
|
|
||||||
#if defined(GLOBAL_TRIE_LOCK_AT_NODE_LEVEL) || defined(GLOBAL_TRIE_LOCK_AT_WRITE_LEVEL)
|
|
||||||
#define GLOBAL_TRIE_LOCK_USING_GLOBAL_ARRAY 1
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#else /* ! TABLING || ! YAPOR */
|
|
||||||
#undef SUBGOAL_TRIE_LOCK_AT_ENTRY_LEVEL
|
#undef SUBGOAL_TRIE_LOCK_AT_ENTRY_LEVEL
|
||||||
#undef SUBGOAL_TRIE_LOCK_AT_NODE_LEVEL
|
#undef SUBGOAL_TRIE_LOCK_AT_NODE_LEVEL
|
||||||
#undef SUBGOAL_TRIE_LOCK_AT_WRITE_LEVEL
|
#undef SUBGOAL_TRIE_LOCK_AT_WRITE_LEVEL
|
||||||
@ -300,11 +257,98 @@
|
|||||||
#undef GLOBAL_TRIE_ALLOC_BEFORE_CHECK
|
#undef GLOBAL_TRIE_ALLOC_BEFORE_CHECK
|
||||||
#undef TRIE_LOCK_USING_NODE_FIELD
|
#undef TRIE_LOCK_USING_NODE_FIELD
|
||||||
#undef TRIE_LOCK_USING_GLOBAL_ARRAY
|
#undef TRIE_LOCK_USING_GLOBAL_ARRAY
|
||||||
|
#endif /* TABLING && (YAPOR || THREADS) */
|
||||||
|
|
||||||
|
#if defined(TABLING) && defined(THREADS)
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING) && !defined(THREADS_FULL_SHARING) && !defined(THREADS_CONSUMER_SHARING)
|
||||||
|
#error Define a multithreading table design
|
||||||
|
#endif
|
||||||
|
#if defined(THREADS_NO_SHARING) && defined(THREADS_SUBGOAL_SHARING)
|
||||||
|
#error Do not define multiple multithreading table designs
|
||||||
|
#endif
|
||||||
|
#if defined(THREADS_NO_SHARING) && defined(THREADS_FULL_SHARING)
|
||||||
|
#error Do not define multiple multithreading table designs
|
||||||
|
#endif
|
||||||
|
#if defined(THREADS_NO_SHARING) && defined(THREADS_CONSUMER_SHARING)
|
||||||
|
#error Do not define multiple multithreading table designs
|
||||||
|
#endif
|
||||||
|
#if defined(THREADS_SUBGOAL_SHARING) && defined(THREADS_FULL_SHARING)
|
||||||
|
#error Do not define multiple multithreading table designs
|
||||||
|
#endif
|
||||||
|
#if defined(THREADS_SUBGOAL_SHARING) && defined(THREADS_CONSUMER_SHARING)
|
||||||
|
#error Do not define multiple multithreading table designs
|
||||||
|
#endif
|
||||||
|
#if defined(THREADS_FULL_SHARING) && defined(THREADS_CONSUMER_SHARING)
|
||||||
|
#error Do not define multiple multithreading table designs
|
||||||
|
#endif
|
||||||
|
#ifdef THREADS_NO_SHARING
|
||||||
|
#undef SUBGOAL_TRIE_LOCK_AT_ENTRY_LEVEL
|
||||||
|
#undef SUBGOAL_TRIE_LOCK_AT_NODE_LEVEL
|
||||||
|
#undef SUBGOAL_TRIE_LOCK_AT_WRITE_LEVEL
|
||||||
|
#undef SUBGOAL_TRIE_ALLOC_BEFORE_CHECK
|
||||||
|
#endif
|
||||||
|
#if defined(THREADS_NO_SHARING) || defined(THREADS_SUBGOAL_SHARING)
|
||||||
|
#undef ANSWER_TRIE_LOCK_AT_ENTRY_LEVEL
|
||||||
|
#undef ANSWER_TRIE_LOCK_AT_NODE_LEVEL
|
||||||
|
#undef ANSWER_TRIE_LOCK_AT_WRITE_LEVEL
|
||||||
|
#undef ANSWER_TRIE_ALLOC_BEFORE_CHECK
|
||||||
|
#endif
|
||||||
|
#else /* ! TABLING || ! THREADS */
|
||||||
|
#undef THREADS_NO_SHARING
|
||||||
|
#undef THREADS_SUBGOAL_SHARING
|
||||||
|
#undef THREADS_FULL_SHARING
|
||||||
|
#undef THREADS_CONSUMER_SHARING
|
||||||
|
#endif /* TABLING && THREADS */
|
||||||
|
|
||||||
|
#ifdef TRIE_LOCK_USING_NODE_FIELD
|
||||||
|
#if defined(SUBGOAL_TRIE_LOCK_AT_NODE_LEVEL) || defined(SUBGOAL_TRIE_LOCK_AT_WRITE_LEVEL)
|
||||||
|
#define SUBGOAL_TRIE_LOCK_USING_NODE_FIELD 1
|
||||||
|
#endif
|
||||||
|
#if defined(ANSWER_TRIE_LOCK_AT_NODE_LEVEL) || defined(ANSWER_TRIE_LOCK_AT_WRITE_LEVEL)
|
||||||
|
#define ANSWER_TRIE_LOCK_USING_NODE_FIELD 1
|
||||||
|
#endif
|
||||||
|
#if defined(GLOBAL_TRIE_LOCK_AT_NODE_LEVEL) || defined(GLOBAL_TRIE_LOCK_AT_WRITE_LEVEL)
|
||||||
|
#define GLOBAL_TRIE_LOCK_USING_NODE_FIELD 1
|
||||||
|
#endif
|
||||||
|
#elif defined(TRIE_LOCK_USING_GLOBAL_ARRAY)
|
||||||
|
#if defined(SUBGOAL_TRIE_LOCK_AT_NODE_LEVEL) || defined(SUBGOAL_TRIE_LOCK_AT_WRITE_LEVEL)
|
||||||
|
#define SUBGOAL_TRIE_LOCK_USING_GLOBAL_ARRAY 1
|
||||||
|
#endif
|
||||||
|
#if defined(ANSWER_TRIE_LOCK_AT_NODE_LEVEL) || defined(ANSWER_TRIE_LOCK_AT_WRITE_LEVEL)
|
||||||
|
#define ANSWER_TRIE_LOCK_USING_GLOBAL_ARRAY 1
|
||||||
|
#endif
|
||||||
|
#if defined(GLOBAL_TRIE_LOCK_AT_NODE_LEVEL) || defined(GLOBAL_TRIE_LOCK_AT_WRITE_LEVEL)
|
||||||
|
#define GLOBAL_TRIE_LOCK_USING_GLOBAL_ARRAY 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(TABLING) || !defined(YAPOR)
|
||||||
#undef TABLING_INNER_CUTS
|
#undef TABLING_INNER_CUTS
|
||||||
#undef TIMESTAMP_CHECK
|
#undef TIMESTAMP_CHECK
|
||||||
#endif /* YAPOR && TABLING */
|
#endif
|
||||||
|
|
||||||
|
#if defined(TABLING) && defined(THREADS)
|
||||||
|
#if THREADS_FIRST_LEVEL_BUCKETS > THREADS_SECOND_LEVEL_BUCKETS
|
||||||
|
#error THREADS_FIRST_LEVEL_BUCKETS cannot exceed THREADS_SECOND_LEVEL_BUCKETS
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#undef OUTPUT_THREADS_TABLING
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(DEBUG_YAPOR) && defined(DEBUG_TABLING)
|
#if defined(DEBUG_YAPOR) && defined(DEBUG_TABLING)
|
||||||
#define DEBUG_OPTYAP
|
#define DEBUG_OPTYAP
|
||||||
#endif /* DEBUG_YAPOR && DEBUG_TABLING */
|
#endif
|
||||||
|
|
||||||
|
#if defined(LIMIT_TABLING) && !defined(USE_PAGES_MALLOC)
|
||||||
|
#error LIMIT_TABLING requires USE_PAGES_MALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
|
#undef MODE_DIRECTED_TABLING
|
||||||
|
#undef TABLING_EARLY_COMPLETION
|
||||||
|
#undef INCOMPLETE_TABLING
|
||||||
|
#undef LIMIT_TABLING
|
||||||
|
#undef DETERMINISTIC_TABLING
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,36 +63,39 @@ void Yap_init_global_optyap_data(int max_table_size, int n_workers, int sch_loop
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* global data related to memory management */
|
/* global data related to memory management */
|
||||||
#ifdef LIMIT_TABLING
|
INIT_PAGES(GLOBAL_pages_void, void *);
|
||||||
if (max_table_size)
|
#ifdef TABLING
|
||||||
GLOBAL_max_pages = ((max_table_size - 1) * 1024 * 1024 / SHMMAX + 1) * SHMMAX / Yap_page_size;
|
INIT_PAGES(GLOBAL_pages_tab_ent, struct table_entry);
|
||||||
else
|
#if defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
GLOBAL_max_pages = -1;
|
INIT_PAGES(GLOBAL_pages_sg_ent, struct subgoal_entry);
|
||||||
#endif /* LIMIT_TABLING */
|
#endif
|
||||||
INIT_PAGES(GLOBAL_pages_void, void *);
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING) && !defined(THREADS_FULL_SHARING) && !defined(THREADS_CONSUMER_SHARING)
|
||||||
|
INIT_PAGES(GLOBAL_pages_sg_fr, struct subgoal_frame);
|
||||||
|
INIT_PAGES(GLOBAL_pages_dep_fr, struct dependency_frame);
|
||||||
|
#endif
|
||||||
|
#if !defined(THREADS_NO_SHARING)
|
||||||
|
INIT_PAGES(GLOBAL_pages_sg_node, struct subgoal_trie_node);
|
||||||
|
INIT_PAGES(GLOBAL_pages_sg_hash, struct subgoal_trie_hash);
|
||||||
|
#endif
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING)
|
||||||
|
INIT_PAGES(GLOBAL_pages_ans_node, struct answer_trie_node);
|
||||||
|
INIT_PAGES(GLOBAL_pages_ans_hash, struct answer_trie_hash);
|
||||||
|
#endif
|
||||||
|
INIT_PAGES(GLOBAL_pages_gt_node, struct global_trie_node);
|
||||||
|
INIT_PAGES(GLOBAL_pages_gt_hash, struct global_trie_hash);
|
||||||
|
#endif /* TABLING */
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
INIT_PAGES(GLOBAL_pages_or_fr, struct or_frame);
|
INIT_PAGES(GLOBAL_pages_or_fr, struct or_frame);
|
||||||
INIT_PAGES(GLOBAL_pages_qg_sol_fr, struct query_goal_solution_frame);
|
INIT_PAGES(GLOBAL_pages_qg_sol_fr, struct query_goal_solution_frame);
|
||||||
INIT_PAGES(GLOBAL_pages_qg_ans_fr, struct query_goal_answer_frame);
|
INIT_PAGES(GLOBAL_pages_qg_ans_fr, struct query_goal_answer_frame);
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
|
#if defined(YAPOR) && defined(TABLING)
|
||||||
|
INIT_PAGES(GLOBAL_pages_susp_fr, struct suspension_frame);
|
||||||
|
#endif /* YAPOR && TABLING */
|
||||||
#ifdef TABLING_INNER_CUTS
|
#ifdef TABLING_INNER_CUTS
|
||||||
INIT_PAGES(GLOBAL_pages_tg_sol_fr, struct table_subgoal_solution_frame);
|
INIT_PAGES(GLOBAL_pages_tg_sol_fr, struct table_subgoal_solution_frame);
|
||||||
INIT_PAGES(GLOBAL_pages_tg_ans_fr, struct table_subgoal_answer_frame);
|
INIT_PAGES(GLOBAL_pages_tg_ans_fr, struct table_subgoal_answer_frame);
|
||||||
#endif /* TABLING_INNER_CUTS */
|
#endif /* TABLING_INNER_CUTS */
|
||||||
#ifdef TABLING
|
|
||||||
INIT_PAGES(GLOBAL_pages_tab_ent, struct table_entry);
|
|
||||||
INIT_PAGES(GLOBAL_pages_sg_fr, struct subgoal_frame);
|
|
||||||
INIT_PAGES(GLOBAL_pages_dep_fr, struct dependency_frame);
|
|
||||||
INIT_PAGES(GLOBAL_pages_sg_node, struct subgoal_trie_node);
|
|
||||||
INIT_PAGES(GLOBAL_pages_ans_node, struct answer_trie_node);
|
|
||||||
INIT_PAGES(GLOBAL_pages_gt_node, struct global_trie_node);
|
|
||||||
INIT_PAGES(GLOBAL_pages_sg_hash, struct subgoal_trie_hash);
|
|
||||||
INIT_PAGES(GLOBAL_pages_ans_hash, struct answer_trie_hash);
|
|
||||||
INIT_PAGES(GLOBAL_pages_gt_hash, struct global_trie_hash);
|
|
||||||
#endif /* TABLING */
|
|
||||||
#if defined(YAPOR) && defined(TABLING)
|
|
||||||
INIT_PAGES(GLOBAL_pages_susp_fr, struct suspension_frame);
|
|
||||||
#endif /* YAPOR && TABLING */
|
|
||||||
|
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
/* global static data */
|
/* global static data */
|
||||||
@ -136,6 +139,10 @@ void Yap_init_global_optyap_data(int max_table_size, int n_workers, int sch_loop
|
|||||||
new_global_trie_node(GLOBAL_root_gt, 0, NULL, NULL, NULL);
|
new_global_trie_node(GLOBAL_root_gt, 0, NULL, NULL, NULL);
|
||||||
GLOBAL_root_tab_ent = NULL;
|
GLOBAL_root_tab_ent = NULL;
|
||||||
#ifdef LIMIT_TABLING
|
#ifdef LIMIT_TABLING
|
||||||
|
if (max_table_size)
|
||||||
|
GLOBAL_max_pages = ((max_table_size - 1) * 1024 * 1024 / SHMMAX + 1) * SHMMAX / Yap_page_size;
|
||||||
|
else
|
||||||
|
GLOBAL_max_pages = -1;
|
||||||
GLOBAL_first_sg_fr = NULL;
|
GLOBAL_first_sg_fr = NULL;
|
||||||
GLOBAL_last_sg_fr = NULL;
|
GLOBAL_last_sg_fr = NULL;
|
||||||
GLOBAL_check_sg_fr = NULL;
|
GLOBAL_check_sg_fr = NULL;
|
||||||
@ -158,8 +165,37 @@ void Yap_init_global_optyap_data(int max_table_size, int n_workers, int sch_loop
|
|||||||
|
|
||||||
|
|
||||||
void Yap_init_local_optyap_data(int wid) {
|
void Yap_init_local_optyap_data(int wid) {
|
||||||
#ifdef YAPOR
|
|
||||||
CACHE_REGS
|
CACHE_REGS
|
||||||
|
|
||||||
|
#if defined(TABLING) && (defined(YAPOR) || defined(THREADS))
|
||||||
|
/* local data related to memory management */
|
||||||
|
#if defined(YAPOR)
|
||||||
|
REMOTE_next_free_ans_node(wid) = NULL;
|
||||||
|
#elif defined(THREADS)
|
||||||
|
INIT_PAGES(REMOTE_pages_void(wid), void *);
|
||||||
|
INIT_PAGES(REMOTE_pages_sg_fr(wid), struct subgoal_frame);
|
||||||
|
INIT_PAGES(REMOTE_pages_dep_fr(wid), struct dependency_frame);
|
||||||
|
#if defined(THREADS_NO_SHARING)
|
||||||
|
INIT_PAGES(REMOTE_pages_sg_node(wid), struct subgoal_trie_node);
|
||||||
|
INIT_PAGES(REMOTE_pages_sg_hash(wid), struct subgoal_trie_hash);
|
||||||
|
#elif defined(THREADS_SUBGOAL_SHARING) || defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
|
REMOTE_next_free_sg_node(wid) = NULL;
|
||||||
|
REMOTE_next_free_sg_hash(wid) = NULL;
|
||||||
|
#endif
|
||||||
|
#if defined(THREADS_NO_SHARING) || defined(THREADS_SUBGOAL_SHARING)
|
||||||
|
INIT_PAGES(REMOTE_pages_ans_node(wid), struct answer_trie_node);
|
||||||
|
INIT_PAGES(REMOTE_pages_ans_hash(wid), struct answer_trie_hash);
|
||||||
|
#elif defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
|
REMOTE_next_free_ans_node(wid) = NULL;
|
||||||
|
REMOTE_next_free_ans_hash(wid) = NULL;
|
||||||
|
#endif
|
||||||
|
#if defined(THREADS_FULL_SHARING)
|
||||||
|
INIT_PAGES(REMOTE_pages_ans_ref_node(wid), struct answer_ref_node);
|
||||||
|
#endif
|
||||||
|
#endif /* YAPOR - THREADS */
|
||||||
|
#endif /* TABLING && (YAPOR || THREADS) */
|
||||||
|
|
||||||
|
#ifdef YAPOR
|
||||||
/* local data related to or-parallelism */
|
/* local data related to or-parallelism */
|
||||||
Set_REMOTE_top_cp(wid, (choiceptr) LOCAL_LocalBase);
|
Set_REMOTE_top_cp(wid, (choiceptr) LOCAL_LocalBase);
|
||||||
REMOTE_top_or_fr(wid) = GLOBAL_root_or_fr;
|
REMOTE_top_or_fr(wid) = GLOBAL_root_or_fr;
|
||||||
@ -175,7 +211,6 @@ void Yap_init_local_optyap_data(int wid) {
|
|||||||
|
|
||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
/* local data related to tabling */
|
/* local data related to tabling */
|
||||||
REMOTE_next_free_ans_node(wid) = NULL;
|
|
||||||
REMOTE_top_sg_fr(wid) = NULL;
|
REMOTE_top_sg_fr(wid) = NULL;
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
REMOTE_top_dep_fr(wid) = GLOBAL_root_dep_fr;
|
REMOTE_top_dep_fr(wid) = GLOBAL_root_dep_fr;
|
||||||
@ -219,7 +254,7 @@ void Yap_init_root_frames(void) {
|
|||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
/* root dependency frame */
|
/* root dependency frame */
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
DepFr_cons_cp(GLOBAL_root_dep_fr) = B;
|
DepFr_cons_cp(GLOBAL_root_dep_fr) = B; /* with YAPOR, at that point, LOCAL_top_dep_fr shouldn't be the same as GLOBAL_root_dep_fr ? */
|
||||||
#else
|
#else
|
||||||
DepFr_cons_cp(LOCAL_top_dep_fr) = B;
|
DepFr_cons_cp(LOCAL_top_dep_fr) = B;
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
|
@ -280,55 +280,104 @@ extern int Yap_page_size;
|
|||||||
}
|
}
|
||||||
#endif /******************************************************************************/
|
#endif /******************************************************************************/
|
||||||
|
|
||||||
#define ALLOC_OR_FRAME(STR) ALLOC_STRUCT(STR, struct or_frame, GLOBAL_pages_or_fr, GLOBAL_pages_void)
|
|
||||||
#define FREE_OR_FRAME(STR) FREE_STRUCT(STR, struct or_frame, GLOBAL_pages_or_fr, GLOBAL_pages_void)
|
|
||||||
|
|
||||||
#define ALLOC_QG_SOLUTION_FRAME(STR) ALLOC_STRUCT(STR, struct query_goal_solution_frame, GLOBAL_pages_qg_sol_fr, GLOBAL_pages_void)
|
|
||||||
#define FREE_QG_SOLUTION_FRAME(STR) FREE_STRUCT(STR, struct query_goal_solution_frame, GLOBAL_pages_qg_sol_fr, GLOBAL_pages_void)
|
|
||||||
|
|
||||||
#define ALLOC_QG_ANSWER_FRAME(STR) ALLOC_STRUCT(STR, struct query_goal_answer_frame, GLOBAL_pages_qg_ans_fr, GLOBAL_pages_void)
|
|
||||||
#define FREE_QG_ANSWER_FRAME(STR) FREE_STRUCT(STR, struct query_goal_answer_frame, GLOBAL_pages_qg_ans_fr, GLOBAL_pages_void)
|
|
||||||
|
|
||||||
#define ALLOC_TG_SOLUTION_FRAME(STR) ALLOC_STRUCT(STR, struct table_subgoal_solution_frame, GLOBAL_pages_tg_sol_fr, GLOBAL_pages_void)
|
|
||||||
#define FREE_TG_SOLUTION_FRAME(STR) FREE_STRUCT(STR, struct table_subgoal_solution_frame, GLOBAL_pages_tg_sol_fr, GLOBAL_pages_void)
|
|
||||||
|
|
||||||
#define ALLOC_TG_ANSWER_FRAME(STR) ALLOC_STRUCT(STR, struct table_subgoal_answer_frame, GLOBAL_pages_tg_ans_fr, GLOBAL_pages_void)
|
|
||||||
#define FREE_TG_ANSWER_FRAME(STR) FREE_STRUCT(STR, struct table_subgoal_answer_frame, GLOBAL_pages_tg_ans_fr, GLOBAL_pages_void)
|
|
||||||
|
|
||||||
#define ALLOC_TABLE_ENTRY(STR) ALLOC_STRUCT(STR, struct table_entry, GLOBAL_pages_tab_ent, GLOBAL_pages_void)
|
#define ALLOC_TABLE_ENTRY(STR) ALLOC_STRUCT(STR, struct table_entry, GLOBAL_pages_tab_ent, GLOBAL_pages_void)
|
||||||
#define FREE_TABLE_ENTRY(STR) FREE_STRUCT(STR, struct table_entry, GLOBAL_pages_tab_ent, GLOBAL_pages_void)
|
#define FREE_TABLE_ENTRY(STR) FREE_STRUCT(STR, struct table_entry, GLOBAL_pages_tab_ent, GLOBAL_pages_void)
|
||||||
|
|
||||||
|
#define ALLOC_SUBGOAL_ENTRY(STR) ALLOC_STRUCT(STR, struct subgoal_entry, GLOBAL_pages_sg_ent, GLOBAL_pages_void)
|
||||||
|
#define FREE_SUBGOAL_ENTRY(STR) FREE_STRUCT(STR, struct subgoal_entry, GLOBAL_pages_sg_ent, GLOBAL_pages_void)
|
||||||
|
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING) && !defined(THREADS_FULL_SHARING) && !defined(THREADS_CONSUMER_SHARING)
|
||||||
#define ALLOC_SUBGOAL_FRAME(STR) ALLOC_STRUCT(STR, struct subgoal_frame, GLOBAL_pages_sg_fr, GLOBAL_pages_void)
|
#define ALLOC_SUBGOAL_FRAME(STR) ALLOC_STRUCT(STR, struct subgoal_frame, GLOBAL_pages_sg_fr, GLOBAL_pages_void)
|
||||||
#define FREE_SUBGOAL_FRAME(STR) FREE_STRUCT(STR, struct subgoal_frame, GLOBAL_pages_sg_fr, GLOBAL_pages_void)
|
#define FREE_SUBGOAL_FRAME(STR) FREE_STRUCT(STR, struct subgoal_frame, GLOBAL_pages_sg_fr, GLOBAL_pages_void)
|
||||||
|
#else
|
||||||
|
#define ALLOC_SUBGOAL_FRAME(STR) ALLOC_STRUCT(STR, struct subgoal_frame, LOCAL_pages_sg_fr, LOCAL_pages_void)
|
||||||
|
#define FREE_SUBGOAL_FRAME(STR) FREE_STRUCT(STR, struct subgoal_frame, LOCAL_pages_sg_fr, LOCAL_pages_void)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING) && !defined(THREADS_FULL_SHARING) && !defined(THREADS_CONSUMER_SHARING)
|
||||||
#define ALLOC_DEPENDENCY_FRAME(STR) ALLOC_STRUCT(STR, struct dependency_frame, GLOBAL_pages_dep_fr, GLOBAL_pages_void)
|
#define ALLOC_DEPENDENCY_FRAME(STR) ALLOC_STRUCT(STR, struct dependency_frame, GLOBAL_pages_dep_fr, GLOBAL_pages_void)
|
||||||
#define FREE_DEPENDENCY_FRAME(STR) FREE_STRUCT(STR, struct dependency_frame, GLOBAL_pages_dep_fr, GLOBAL_pages_void)
|
#define FREE_DEPENDENCY_FRAME(STR) FREE_STRUCT(STR, struct dependency_frame, GLOBAL_pages_dep_fr, GLOBAL_pages_void)
|
||||||
|
#else
|
||||||
|
#define ALLOC_DEPENDENCY_FRAME(STR) ALLOC_STRUCT(STR, struct dependency_frame, LOCAL_pages_dep_fr, LOCAL_pages_void)
|
||||||
|
#define FREE_DEPENDENCY_FRAME(STR) FREE_STRUCT(STR, struct dependency_frame, LOCAL_pages_dep_fr, LOCAL_pages_void)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define ALLOC_SUSPENSION_FRAME(STR) ALLOC_STRUCT(STR, struct suspension_frame, GLOBAL_pages_susp_fr, GLOBAL_pages_void)
|
#if !defined(THREADS_NO_SHARING)
|
||||||
#define FREE_SUSPENSION_FRAME(STR) FREE_BLOCK(SuspFr_global_start(STR)); \
|
#if defined(THREADS_SUBGOAL_SHARING) || defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
FREE_STRUCT(STR, struct suspension_frame, GLOBAL_pages_susp_fr, GLOBAL_pages_void)
|
#define ALLOC_SUBGOAL_TRIE_NODE(STR) LOCAL_NEXT_ALLOC_STRUCT(STR, LOCAL_next_free_sg_node, struct subgoal_trie_node, GLOBAL_pages_sg_node, GLOBAL_pages_void)
|
||||||
|
#else
|
||||||
|
#define ALLOC_SUBGOAL_TRIE_NODE(STR) ALLOC_STRUCT(STR, struct subgoal_trie_node, GLOBAL_pages_sg_node, GLOBAL_pages_void)
|
||||||
|
#endif
|
||||||
|
#define FREE_SUBGOAL_TRIE_NODE(STR) FREE_STRUCT(STR, struct subgoal_trie_node, GLOBAL_pages_sg_node, GLOBAL_pages_void)
|
||||||
|
#else
|
||||||
|
#define ALLOC_SUBGOAL_TRIE_NODE(STR) ALLOC_STRUCT(STR, struct subgoal_trie_node, LOCAL_pages_sg_node, LOCAL_pages_void)
|
||||||
|
#define FREE_SUBGOAL_TRIE_NODE(STR) FREE_STRUCT(STR, struct subgoal_trie_node, LOCAL_pages_sg_node, LOCAL_pages_void)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(THREADS_NO_SHARING)
|
||||||
|
#if defined(THREADS_SUBGOAL_SHARING) || defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
|
#define ALLOC_SUBGOAL_TRIE_HASH(STR) LOCAL_NEXT_ALLOC_STRUCT(STR, LOCAL_next_free_sg_hash, struct subgoal_trie_hash, GLOBAL_pages_sg_hash, GLOBAL_pages_void)
|
||||||
|
#else
|
||||||
|
#define ALLOC_SUBGOAL_TRIE_HASH(STR) ALLOC_STRUCT(STR, struct subgoal_trie_hash, GLOBAL_pages_sg_hash, GLOBAL_pages_void)
|
||||||
|
#endif
|
||||||
|
#define FREE_SUBGOAL_TRIE_HASH(STR) FREE_STRUCT(STR, struct subgoal_trie_hash, GLOBAL_pages_sg_hash, GLOBAL_pages_void)
|
||||||
|
#else
|
||||||
|
#define ALLOC_SUBGOAL_TRIE_HASH(STR) ALLOC_STRUCT(STR, struct subgoal_trie_hash, LOCAL_pages_sg_hash, LOCAL_pages_void)
|
||||||
|
#define FREE_SUBGOAL_TRIE_HASH(STR) FREE_STRUCT(STR, struct subgoal_trie_hash, LOCAL_pages_sg_hash, LOCAL_pages_void)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING)
|
||||||
|
#if defined(YAPOR) || defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
|
#define ALLOC_ANSWER_TRIE_NODE(STR) LOCAL_NEXT_ALLOC_STRUCT(STR, LOCAL_next_free_ans_node, struct answer_trie_node, GLOBAL_pages_ans_node, GLOBAL_pages_void)
|
||||||
|
#else
|
||||||
|
#define ALLOC_ANSWER_TRIE_NODE(STR) ALLOC_STRUCT(STR, struct answer_trie_node, GLOBAL_pages_ans_node, GLOBAL_pages_void)
|
||||||
|
#endif
|
||||||
|
#define FREE_ANSWER_TRIE_NODE(STR) FREE_STRUCT(STR, struct answer_trie_node, GLOBAL_pages_ans_node, GLOBAL_pages_void)
|
||||||
|
#else
|
||||||
|
#define ALLOC_ANSWER_TRIE_NODE(STR) ALLOC_STRUCT(STR, struct answer_trie_node, LOCAL_pages_ans_node, LOCAL_pages_void)
|
||||||
|
#define FREE_ANSWER_TRIE_NODE(STR) FREE_STRUCT(STR, struct answer_trie_node, LOCAL_pages_ans_node, LOCAL_pages_void)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING)
|
||||||
|
#if defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
|
#define ALLOC_ANSWER_TRIE_HASH(STR) LOCAL_NEXT_ALLOC_STRUCT(STR, LOCAL_next_free_ans_hash, struct answer_trie_hash, GLOBAL_pages_ans_hash, GLOBAL_pages_void)
|
||||||
|
#else
|
||||||
|
#define ALLOC_ANSWER_TRIE_HASH(STR) ALLOC_STRUCT(STR, struct answer_trie_hash, GLOBAL_pages_ans_hash, GLOBAL_pages_void)
|
||||||
|
#endif
|
||||||
|
#define FREE_ANSWER_TRIE_HASH(STR) FREE_STRUCT(STR, struct answer_trie_hash, GLOBAL_pages_ans_hash, GLOBAL_pages_void)
|
||||||
|
#else
|
||||||
|
#define ALLOC_ANSWER_TRIE_HASH(STR) ALLOC_STRUCT(STR, struct answer_trie_hash, LOCAL_pages_ans_hash, LOCAL_pages_void)
|
||||||
|
#define FREE_ANSWER_TRIE_HASH(STR) FREE_STRUCT(STR, struct answer_trie_hash, LOCAL_pages_ans_hash, LOCAL_pages_void)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ALLOC_ANSWER_REF_NODE(STR) ALLOC_STRUCT(STR, struct answer_ref_node, LOCAL_pages_ans_ref_node, LOCAL_pages_void)
|
||||||
|
#define FREE_ANSWER_REF_NODE(STR) FREE_STRUCT(STR, struct answer_ref_node, LOCAL_pages_ans_ref_node, LOCAL_pages_void)
|
||||||
|
|
||||||
#define ALLOC_GLOBAL_TRIE_NODE(STR) ALLOC_STRUCT(STR, struct global_trie_node, GLOBAL_pages_gt_node, GLOBAL_pages_void)
|
#define ALLOC_GLOBAL_TRIE_NODE(STR) ALLOC_STRUCT(STR, struct global_trie_node, GLOBAL_pages_gt_node, GLOBAL_pages_void)
|
||||||
#define FREE_GLOBAL_TRIE_NODE(STR) FREE_STRUCT(STR, struct global_trie_node, GLOBAL_pages_gt_node, GLOBAL_pages_void)
|
#define FREE_GLOBAL_TRIE_NODE(STR) FREE_STRUCT(STR, struct global_trie_node, GLOBAL_pages_gt_node, GLOBAL_pages_void)
|
||||||
|
|
||||||
#define ALLOC_SUBGOAL_TRIE_NODE(STR) ALLOC_STRUCT(STR, struct subgoal_trie_node, GLOBAL_pages_sg_node, GLOBAL_pages_void)
|
|
||||||
#define FREE_SUBGOAL_TRIE_NODE(STR) FREE_STRUCT(STR, struct subgoal_trie_node, GLOBAL_pages_sg_node, GLOBAL_pages_void)
|
|
||||||
|
|
||||||
#ifdef YAPOR
|
|
||||||
#define ALLOC_ANSWER_TRIE_NODE(STR) LOCAL_NEXT_ALLOC_STRUCT(STR, LOCAL_next_free_ans_node, struct answer_trie_node, GLOBAL_pages_ans_node, GLOBAL_pages_void)
|
|
||||||
#else /* TABLING */
|
|
||||||
#define ALLOC_ANSWER_TRIE_NODE(STR) ALLOC_STRUCT(STR, struct answer_trie_node, GLOBAL_pages_ans_node, GLOBAL_pages_void)
|
|
||||||
#endif /* YAPOR - TABLING */
|
|
||||||
#define FREE_ANSWER_TRIE_NODE(STR) FREE_STRUCT(STR, struct answer_trie_node, GLOBAL_pages_ans_node, GLOBAL_pages_void)
|
|
||||||
|
|
||||||
#define ALLOC_GLOBAL_TRIE_HASH(STR) ALLOC_STRUCT(STR, struct global_trie_hash, GLOBAL_pages_gt_hash, GLOBAL_pages_void)
|
#define ALLOC_GLOBAL_TRIE_HASH(STR) ALLOC_STRUCT(STR, struct global_trie_hash, GLOBAL_pages_gt_hash, GLOBAL_pages_void)
|
||||||
#define FREE_GLOBAL_TRIE_HASH(STR) FREE_STRUCT(STR, struct global_trie_hash, GLOBAL_pages_gt_hash, GLOBAL_pages_void)
|
#define FREE_GLOBAL_TRIE_HASH(STR) FREE_STRUCT(STR, struct global_trie_hash, GLOBAL_pages_gt_hash, GLOBAL_pages_void)
|
||||||
|
|
||||||
#define ALLOC_SUBGOAL_TRIE_HASH(STR) ALLOC_STRUCT(STR, struct subgoal_trie_hash, GLOBAL_pages_sg_hash, GLOBAL_pages_void)
|
#define ALLOC_OR_FRAME(STR) ALLOC_STRUCT(STR, struct or_frame, GLOBAL_pages_or_fr, GLOBAL_pages_void)
|
||||||
#define FREE_SUBGOAL_TRIE_HASH(STR) FREE_STRUCT(STR, struct subgoal_trie_hash, GLOBAL_pages_sg_hash, GLOBAL_pages_void)
|
#define FREE_OR_FRAME(STR) FREE_STRUCT(STR, struct or_frame, GLOBAL_pages_or_fr, GLOBAL_pages_void)
|
||||||
|
|
||||||
#define ALLOC_ANSWER_TRIE_HASH(STR) ALLOC_STRUCT(STR, struct answer_trie_hash, GLOBAL_pages_ans_hash, GLOBAL_pages_void)
|
#define ALLOC_QG_SOLUTION_FRAME(STR) ALLOC_STRUCT(STR, struct query_goal_solution_frame, GLOBAL_pages_qg_sol_fr, GLOBAL_pages_void)
|
||||||
#define FREE_ANSWER_TRIE_HASH(STR) FREE_STRUCT(STR, struct answer_trie_hash, GLOBAL_pages_ans_hash, GLOBAL_pages_void)
|
#define FREE_QG_SOLUTION_FRAME(STR) FREE_STRUCT(STR, struct query_goal_solution_frame, GLOBAL_pages_qg_sol_fr, GLOBAL_pages_void)
|
||||||
|
|
||||||
|
#define ALLOC_QG_ANSWER_FRAME(STR) ALLOC_STRUCT(STR, struct query_goal_answer_frame, GLOBAL_pages_qg_ans_fr, GLOBAL_pages_void)
|
||||||
|
#define FREE_QG_ANSWER_FRAME(STR) FREE_STRUCT(STR, struct query_goal_answer_frame, GLOBAL_pages_qg_ans_fr, GLOBAL_pages_void)
|
||||||
|
|
||||||
|
#define ALLOC_SUSPENSION_FRAME(STR) ALLOC_STRUCT(STR, struct suspension_frame, GLOBAL_pages_susp_fr, GLOBAL_pages_void)
|
||||||
|
#define FREE_SUSPENSION_FRAME(STR) FREE_BLOCK(SuspFr_global_start(STR)); \
|
||||||
|
FREE_STRUCT(STR, struct suspension_frame, GLOBAL_pages_susp_fr, GLOBAL_pages_void)
|
||||||
|
|
||||||
|
#define ALLOC_TG_SOLUTION_FRAME(STR) ALLOC_STRUCT(STR, struct table_subgoal_solution_frame, GLOBAL_pages_tg_sol_fr, GLOBAL_pages_void)
|
||||||
|
#define FREE_TG_SOLUTION_FRAME(STR) FREE_STRUCT(STR, struct table_subgoal_solution_frame, GLOBAL_pages_tg_sol_fr, GLOBAL_pages_void)
|
||||||
|
|
||||||
|
#define ALLOC_TG_ANSWER_FRAME(STR) ALLOC_STRUCT(STR, struct table_subgoal_answer_frame, GLOBAL_pages_tg_ans_fr, GLOBAL_pages_void)
|
||||||
|
#define FREE_TG_ANSWER_FRAME(STR) FREE_STRUCT(STR, struct table_subgoal_answer_frame, GLOBAL_pages_tg_ans_fr, GLOBAL_pages_void)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,8 +78,8 @@ static inline long show_statistics_table_entries(IOSTREAM *out);
|
|||||||
static inline long show_statistics_subgoal_frames(IOSTREAM *out);
|
static inline long show_statistics_subgoal_frames(IOSTREAM *out);
|
||||||
static inline long show_statistics_dependency_frames(IOSTREAM *out);
|
static inline long show_statistics_dependency_frames(IOSTREAM *out);
|
||||||
static inline long show_statistics_subgoal_trie_nodes(IOSTREAM *out);
|
static inline long show_statistics_subgoal_trie_nodes(IOSTREAM *out);
|
||||||
static inline long show_statistics_answer_trie_nodes(IOSTREAM *out);
|
|
||||||
static inline long show_statistics_subgoal_trie_hashes(IOSTREAM *out);
|
static inline long show_statistics_subgoal_trie_hashes(IOSTREAM *out);
|
||||||
|
static inline long show_statistics_answer_trie_nodes(IOSTREAM *out);
|
||||||
static inline long show_statistics_answer_trie_hashes(IOSTREAM *out);
|
static inline long show_statistics_answer_trie_hashes(IOSTREAM *out);
|
||||||
static inline long show_statistics_global_trie_nodes(IOSTREAM *out);
|
static inline long show_statistics_global_trie_nodes(IOSTREAM *out);
|
||||||
static inline long show_statistics_global_trie_hashes(IOSTREAM *out);
|
static inline long show_statistics_global_trie_hashes(IOSTREAM *out);
|
||||||
@ -109,6 +109,83 @@ static int length_answer;
|
|||||||
static qg_ans_fr_ptr actual_answer;
|
static qg_ans_fr_ptr actual_answer;
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
|
|
||||||
|
struct page_statistics {
|
||||||
|
#ifdef USE_PAGES_MALLOC
|
||||||
|
long pages_allocated; /* same as struct pages (opt.structs.h) */
|
||||||
|
#endif /* USE_PAGES_MALLOC */
|
||||||
|
long structs_in_use; /* same as struct pages (opt.structs.h) */
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef USE_PAGES_MALLOC
|
||||||
|
#ifdef DEBUG_TABLING
|
||||||
|
#define CHECK_PAGE_FREE_STRUCTS(STR_TYPE, STR_PAGES) \
|
||||||
|
{ pg_hd_ptr pg_hd; \
|
||||||
|
STR_TYPE *aux_ptr; \
|
||||||
|
long cont = 0; \
|
||||||
|
pg_hd = Pg_free_pg(STR_PAGES); \
|
||||||
|
while (pg_hd) { \
|
||||||
|
aux_ptr = PgHd_free_str(pg_hd); \
|
||||||
|
while (aux_ptr) { \
|
||||||
|
cont++; \
|
||||||
|
aux_ptr = aux_ptr->next; \
|
||||||
|
} \
|
||||||
|
pg_hd = PgHd_next(pg_hd); \
|
||||||
|
} \
|
||||||
|
if(Pg_str_free(STR_PAGES) != cont)printf("ERRRO!!!!!!!!\n");\
|
||||||
|
TABLING_ERROR_CHECKING(CHECK_PAGE_FREE_STRUCTS, Pg_str_free(STR_PAGES) != cont); \
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#define CHECK_PAGE_FREE_STRUCTS(STR_TYPE,STR_PAGES)
|
||||||
|
#endif /* DEBUG_TABLING */
|
||||||
|
#define INIT_PAGE_STATS(STATS) \
|
||||||
|
Pg_pg_alloc(STATS) = 0; \
|
||||||
|
Pg_str_in_use(STATS) = 0
|
||||||
|
#define INCREMENT_PAGE_STATS(STATS,PAGE) \
|
||||||
|
Pg_pg_alloc(STATS) += Pg_pg_alloc(PAGE); \
|
||||||
|
Pg_str_in_use(STATS) += Pg_str_in_use(PAGE)
|
||||||
|
#define SHOW_PAGE_STATS_MSG(STR_NAME) " " STR_NAME " %10ld bytes (%ld pages and %ld structs in use)\n"
|
||||||
|
#define SHOW_PAGE_STATS_ARGS(STATS,STR_TYPE) Pg_str_in_use(STATS) * sizeof(STR_TYPE), Pg_pg_alloc(STATS), Pg_str_in_use(STATS)
|
||||||
|
#else /* !USE_PAGES_MALLOC */
|
||||||
|
#define INIT_PAGE_STATS(STATS) \
|
||||||
|
Pg_str_in_use(STATS) = 0
|
||||||
|
#define INCREMENT_PAGE_STATS(STATS,PAGE) \
|
||||||
|
Pg_str_in_use(STATS) += Pg_str_in_use(PAGE)
|
||||||
|
#define CHECK_PAGE_FREE_STRUCTS(STR_TYPE,STR_PAGES)
|
||||||
|
#define SHOW_PAGE_STATS_MSG(STR_NAME) " " STR_NAME " %10ld bytes (%ld structs in use)\n"
|
||||||
|
#define SHOW_PAGE_STATS_ARGS(STATS,STR_TYPE) Pg_str_in_use(STATS) * sizeof(STR_TYPE), Pg_str_in_use(STATS)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define GET_GLOBAL_PAGE_STATS(STATS,STR_PAGES) \
|
||||||
|
INIT_PAGE_STATS(STATS); \
|
||||||
|
CHECK_PAGE_FREE_STRUCTS(STR_TYPE,STR_PAGES); \
|
||||||
|
INCREMENT_PAGE_STATS(STATS,STR_PAGES)
|
||||||
|
#define GET_REMOTE_PAGE_STATS(STATS,STR_PAGES) \
|
||||||
|
INIT_PAGE_STATS(STATS); \
|
||||||
|
LOCK(GLOBAL_ThreadHandlesLock); \
|
||||||
|
{ int wid; \
|
||||||
|
for (wid = 0; wid < MAX_THREADS; wid++) { \
|
||||||
|
if (!Yap_local[wid]) \
|
||||||
|
break; \
|
||||||
|
if (REMOTE_ThreadHandle(wid).in_use) { \
|
||||||
|
CHECK_PAGE_FREE_STRUCTS(STR_TYPE,STR_PAGES); \
|
||||||
|
INCREMENT_PAGE_STATS(STATS,STR_PAGES(wid)); \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
UNLOCK(GLOBAL_ThreadHandlesLock)
|
||||||
|
#define SHOW_GLOBAL_PAGE_STATS(OUT_STREAM,STR_TYPE,STR_PAGES,STR_NAME) \
|
||||||
|
{ struct page_statistics stats; \
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats,STR_PAGES); \
|
||||||
|
Sfprintf(OUT_STREAM,SHOW_PAGE_STATS_MSG(STR_NAME),SHOW_PAGE_STATS_ARGS(stats,STR_TYPE)); \
|
||||||
|
return Pg_str_in_use(stats) * sizeof(STR_TYPE); \
|
||||||
|
}
|
||||||
|
#define SHOW_REMOTE_PAGE_STATS(OUT_STREAM,STR_TYPE,STR_PAGES,STR_NAME) \
|
||||||
|
{ struct page_statistics stats; \
|
||||||
|
GET_REMOTE_PAGE_STATS(stats,STR_PAGES); \
|
||||||
|
Sfprintf(OUT_STREAM,SHOW_PAGE_STATS_MSG(STR_NAME),SHOW_PAGE_STATS_ARGS(stats,STR_TYPE)); \
|
||||||
|
return Pg_str_in_use(stats) * sizeof(STR_TYPE); \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************
|
/*******************************
|
||||||
@ -412,7 +489,7 @@ static Int p_abolish_all_tables( USES_REGS1 ) {
|
|||||||
sg_node_ptr sg_node;
|
sg_node_ptr sg_node;
|
||||||
|
|
||||||
tab_ent = GLOBAL_root_tab_ent;
|
tab_ent = GLOBAL_root_tab_ent;
|
||||||
while(tab_ent) {
|
while (tab_ent) {
|
||||||
hash = TabEnt_hash_chain(tab_ent);
|
hash = TabEnt_hash_chain(tab_ent);
|
||||||
TabEnt_hash_chain(tab_ent) = NULL;
|
TabEnt_hash_chain(tab_ent) = NULL;
|
||||||
free_subgoal_hash_chain(hash);
|
free_subgoal_hash_chain(hash);
|
||||||
@ -438,7 +515,7 @@ static Int p_abolish_all_tables( USES_REGS1 ) {
|
|||||||
|
|
||||||
static Int p_abolish_all_local_tables( USES_REGS1 ) {
|
static Int p_abolish_all_local_tables( USES_REGS1 ) {
|
||||||
#ifdef THREADS
|
#ifdef THREADS
|
||||||
|
p_abolish_all_tables( PASS_REGS1 );
|
||||||
#else
|
#else
|
||||||
p_abolish_all_tables();
|
p_abolish_all_tables();
|
||||||
#endif /* THREADS */
|
#endif /* THREADS */
|
||||||
@ -792,110 +869,141 @@ static Int p_show_statistics_opt( USES_REGS1 ) {
|
|||||||
|
|
||||||
|
|
||||||
static Int p_get_optyap_statistics( USES_REGS1 ) {
|
static Int p_get_optyap_statistics( USES_REGS1 ) {
|
||||||
|
struct page_statistics stats;
|
||||||
|
Int value, bytes = 0, structs = -1;
|
||||||
Term tbytes, tstructs;
|
Term tbytes, tstructs;
|
||||||
Int value, bytes = -1, structs = -1;
|
|
||||||
|
|
||||||
value = IntOfTerm(Deref(ARG1));
|
value = IntOfTerm(Deref(ARG1));
|
||||||
if (value == 0) { /* total_memory */
|
|
||||||
bytes = 0;
|
|
||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_tab_ent) * sizeof(struct table_entry);
|
if (value == 0 || value == 1) { /* table_entries */
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_sg_fr) * sizeof(struct subgoal_frame);
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_tab_ent);
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_dep_fr) * sizeof(struct dependency_frame);
|
bytes += Pg_str_in_use(stats) * sizeof(struct table_entry);
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_sg_node) * sizeof(struct subgoal_trie_node);
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_ans_node) * sizeof(struct answer_trie_node);
|
}
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_sg_hash) * sizeof(struct subgoal_trie_hash);
|
#if defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_ans_hash) * sizeof(struct answer_trie_hash);
|
if (value == 0 || value == 16) { /* subgoal_entries */
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_gt_node) * sizeof(struct global_trie_node);
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_sg_entry);
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_gt_hash) * sizeof(struct global_trie_hash);
|
bytes += Pg_str_in_use(stats) * sizeof(struct subgoal_entry);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
#endif /* THREADS_FULL_SHARING || THREADS_CONSUMER_SHARING */
|
||||||
|
if (value == 0 || value == 2) { /* subgoal_frames */
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING) && !defined(THREADS_FULL_SHARING) && !defined(THREADS_CONSUMER_SHARING)
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_sg_fr);
|
||||||
|
#else
|
||||||
|
GET_REMOTE_PAGE_STATS(stats, REMOTE_pages_sg_fr);
|
||||||
|
#endif
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct subgoal_frame);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
if (value == 0 || value == 3) { /* dependency_frames */
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING) && !defined(THREADS_FULL_SHARING) && !defined(THREADS_CONSUMER_SHARING)
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_dep_fr);
|
||||||
|
#else
|
||||||
|
GET_REMOTE_PAGE_STATS(stats, REMOTE_pages_dep_fr);
|
||||||
|
#endif
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct dependency_frame);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
if (value == 0 || value == 6) { /* subgoal_trie_nodes */
|
||||||
|
#if !defined(THREADS_NO_SHARING)
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_sg_node);
|
||||||
|
#else
|
||||||
|
GET_REMOTE_PAGE_STATS(stats, REMOTE_pages_sg_node);
|
||||||
|
#endif
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct subgoal_trie_node);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
if (value == 0 || value == 8) { /* subgoal_trie_hashes */
|
||||||
|
#if !defined(THREADS_NO_SHARING)
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_sg_hash);
|
||||||
|
#else
|
||||||
|
GET_REMOTE_PAGE_STATS(stats, REMOTE_pages_sg_hash);
|
||||||
|
#endif
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct subgoal_trie_hash);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
if (value == 0 || value == 7) { /* answer_trie_nodes */
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING)
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_ans_node);
|
||||||
|
#else
|
||||||
|
GET_REMOTE_PAGE_STATS(stats, REMOTE_pages_ans_node);
|
||||||
|
#endif
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct answer_trie_node);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
if (value == 0 || value == 9) { /* answer_trie_hashes */
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING)
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_ans_hash);
|
||||||
|
#else
|
||||||
|
GET_REMOTE_PAGE_STATS(stats, REMOTE_pages_ans_hash);
|
||||||
|
#endif
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct answer_trie_hash);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
#if defined(THREADS_FULL_SHARING)
|
||||||
|
if (value == 0 || value == 17) { /* answer_ref_nodes */
|
||||||
|
GET_REMOTE_PAGE_STATS(stats, REMOTE_pages_ans_ref_node);
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct answer_ref_node);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
#endif /* THREADS_FULL_SHARING */
|
||||||
|
if (value == 0 || value == 10) { /* global_trie_nodes */
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_gt_node);
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct global_trie_node);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
if (value == 0 || value == 11) { /* global_trie_hashes */
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_gt_hash);
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct global_trie_hash);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_or_fr ) * sizeof(struct or_frame);
|
if (value == 0 || value == 4) { /* or_frames */
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_qg_sol_fr ) * sizeof(struct query_goal_solution_frame);
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_or_fr);
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_qg_ans_fr) * sizeof(struct query_goal_answer_frame);
|
bytes += Pg_str_in_use(stats) * sizeof(struct or_frame);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
if (value == 0 || value == 12) { /* query_goal_solution_frames */
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_qg_sol_fr);
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct query_goal_solution_frame);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
if (value == 0 || value == 13) { /* query_goal_answer_frames */
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_qg_ans_fr);
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct query_goal_answer_frame);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
#if defined(YAPOR) && defined(TABLING)
|
#if defined(YAPOR) && defined(TABLING)
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_susp_fr) * sizeof(struct suspension_frame);
|
if (value == 0 || value == 5) { /* suspension_frames */
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_susp_fr);
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct suspension_frame);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
#ifdef TABLING_INNER_CUTS
|
#ifdef TABLING_INNER_CUTS
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_tg_sol_fr) * sizeof(struct table_subgoal_solution_frame);
|
if (value == 0 || value == 14) { /* table_subgoal_solution_frames */
|
||||||
bytes += Pg_str_in_use(GLOBAL_pages_tg_ans_fr) * sizeof(struct table_subgoal_answer_frame);
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_tg_sol_fr);
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct table_subgoal_solution_frame);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
|
if (value == 0 || value == 15) { /* table_subgoal_answer_frames */
|
||||||
|
GET_GLOBAL_PAGE_STATS(stats, GLOBAL_pages_tg_ans_fr);
|
||||||
|
bytes += Pg_str_in_use(stats) * sizeof(struct table_subgoal_answer_frame);
|
||||||
|
if (value != 0) structs = Pg_str_in_use(stats);
|
||||||
|
}
|
||||||
#endif /* TABLING_INNER_CUTS */
|
#endif /* TABLING_INNER_CUTS */
|
||||||
#endif /* YAPOR && TABLING */
|
#endif /* YAPOR && TABLING */
|
||||||
|
|
||||||
|
if (value == 0) { /* total_memory */
|
||||||
#ifdef USE_PAGES_MALLOC
|
#ifdef USE_PAGES_MALLOC
|
||||||
structs = Pg_pg_alloc(GLOBAL_pages_void) * Yap_page_size;
|
structs = Pg_pg_alloc(GLOBAL_pages_void) * Yap_page_size;
|
||||||
#else
|
#else
|
||||||
structs = bytes;
|
structs = bytes;
|
||||||
#endif /* USE_PAGES_MALLOC */
|
#endif /* USE_PAGES_MALLOC */
|
||||||
}
|
}
|
||||||
#ifdef TABLING
|
if (structs == -1)
|
||||||
if (value == 1) { /* table_entries */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_tab_ent) * sizeof(struct table_entry);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_tab_ent);
|
|
||||||
}
|
|
||||||
if (value == 2) { /* subgoal_frames */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_sg_fr) * sizeof(struct subgoal_frame);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_sg_fr);
|
|
||||||
}
|
|
||||||
if (value == 3) { /* dependency_frames */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_dep_fr) * sizeof(struct dependency_frame);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_dep_fr);
|
|
||||||
}
|
|
||||||
if (value == 6) { /* subgoal_trie_nodes */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_sg_node) * sizeof(struct subgoal_trie_node);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_sg_node);
|
|
||||||
}
|
|
||||||
if (value == 7) { /* answer_trie_nodes */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_ans_node) * sizeof(struct answer_trie_node);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_ans_node);
|
|
||||||
}
|
|
||||||
if (value == 8) { /* subgoal_trie_hashes */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_sg_hash) * sizeof(struct subgoal_trie_hash);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_sg_hash);
|
|
||||||
}
|
|
||||||
if (value == 9) { /* answer_trie_hashes */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_ans_hash) * sizeof(struct answer_trie_hash);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_ans_hash);
|
|
||||||
}
|
|
||||||
if (value == 10) { /* global_trie_nodes */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_gt_node) * sizeof(struct global_trie_node);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_gt_node);
|
|
||||||
}
|
|
||||||
if (value == 11) { /* global_trie_hashes */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_gt_hash) * sizeof(struct global_trie_hash);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_gt_hash);
|
|
||||||
}
|
|
||||||
#endif /* TABLING */
|
|
||||||
#ifdef YAPOR
|
|
||||||
if (value == 4) { /* or_frames */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_or_fr ) * sizeof(struct or_frame);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_or_fr );
|
|
||||||
}
|
|
||||||
if (value == 12) { /* query_goal_solution_frames */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_qg_sol_fr ) * sizeof(struct query_goal_solution_frame);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_qg_sol_fr );
|
|
||||||
}
|
|
||||||
if (value == 13) { /* query_goal_answer_frames */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_qg_ans_fr) * sizeof(struct query_goal_answer_frame);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_qg_ans_fr);
|
|
||||||
}
|
|
||||||
#endif /* YAPOR */
|
|
||||||
#if defined(YAPOR) && defined(TABLING)
|
|
||||||
if (value == 5) { /* suspension_frames */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_susp_fr) * sizeof(struct suspension_frame);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_susp_fr);
|
|
||||||
}
|
|
||||||
#ifdef TABLING_INNER_CUTS
|
|
||||||
if (value == 14) { /* table_subgoal_solution_frames */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_tg_sol_fr) * sizeof(struct table_subgoal_solution_frame);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_tg_sol_fr);
|
|
||||||
}
|
|
||||||
if (value == 15) { /* table_subgoal_answer_frames */
|
|
||||||
bytes = Pg_str_in_use(GLOBAL_pages_tg_ans_fr) * sizeof(struct table_subgoal_answer_frame);
|
|
||||||
structs = Pg_str_in_use(GLOBAL_pages_tg_ans_fr);
|
|
||||||
}
|
|
||||||
#endif /* TABLING_INNER_CUTS */
|
|
||||||
#endif /* YAPOR && TABLING */
|
|
||||||
if (bytes == -1)
|
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
tbytes = Deref(ARG2);
|
tbytes = Deref(ARG2);
|
||||||
tstructs = Deref(ARG3);
|
tstructs = Deref(ARG3);
|
||||||
@ -1013,429 +1121,94 @@ static inline void answer_to_stdout(char *answer) {
|
|||||||
|
|
||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
static inline long show_statistics_table_entries(IOSTREAM *out) {
|
static inline long show_statistics_table_entries(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
SHOW_GLOBAL_PAGE_STATS(out, struct table_entry, GLOBAL_pages_tab_ent, "Table entries: ");
|
||||||
#ifdef DEBUG_TABLING
|
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
tab_ent_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_tab_ent);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = TabEnt_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
TABLING_ERROR_CHECKING(statistics_table_entries, Pg_str_free(GLOBAL_pages_tab_ent) != cont);
|
|
||||||
#endif /* DEBUG_TABLING */
|
|
||||||
Sfprintf(out, " Table entries: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_tab_ent) * sizeof(struct table_entry), Pg_pg_alloc(GLOBAL_pages_tab_ent), Pg_str_in_use(GLOBAL_pages_tab_ent));
|
|
||||||
#else
|
|
||||||
Sfprintf(out, " Table entries: %10ld bytes (%ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_tab_ent) * sizeof(struct table_entry), Pg_str_in_use(GLOBAL_pages_tab_ent));
|
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_tab_ent) * sizeof(struct table_entry);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline long show_statistics_subgoal_frames(IOSTREAM *out) {
|
static inline long show_statistics_subgoal_frames(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING) && !defined(THREADS_FULL_SHARING) && !defined(THREADS_CONSUMER_SHARING)
|
||||||
#ifdef DEBUG_TABLING
|
SHOW_GLOBAL_PAGE_STATS(out, struct subgoal_frame, GLOBAL_pages_sg_fr, "Subgoal frames: ");
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
sg_fr_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_sg_fr);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = SgFr_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
TABLING_ERROR_CHECKING(statistics_subgoal_frames, Pg_str_free(GLOBAL_pages_sg_fr) != cont);
|
|
||||||
#endif /* DEBUG_TABLING */
|
|
||||||
Sfprintf(out, " Subgoal frames: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_sg_fr) * sizeof(struct subgoal_frame), Pg_pg_alloc(GLOBAL_pages_sg_fr), Pg_str_in_use(GLOBAL_pages_sg_fr));
|
|
||||||
#else
|
#else
|
||||||
Sfprintf(out, " Subgoal frames: %10ld bytes (%ld structs in use)\n",
|
SHOW_REMOTE_PAGE_STATS(out, struct subgoal_frame, REMOTE_pages_sg_fr, "Subgoal frames: ");
|
||||||
Pg_str_in_use(GLOBAL_pages_sg_fr) * sizeof(struct subgoal_frame), Pg_str_in_use(GLOBAL_pages_sg_fr));
|
#endif
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_sg_fr) * sizeof(struct subgoal_frame);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline long show_statistics_dependency_frames(IOSTREAM *out) {
|
static inline long show_statistics_dependency_frames(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING) && !defined(THREADS_FULL_SHARING) && !defined(THREADS_CONSUMER_SHARING)
|
||||||
#ifdef DEBUG_TABLING
|
SHOW_GLOBAL_PAGE_STATS(out, struct dependency_frame, GLOBAL_pages_dep_fr, "Dependency frames: ");
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
dep_fr_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_dep_fr);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = DepFr_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
TABLING_ERROR_CHECKING(statistics_dependency_frames, Pg_str_free(GLOBAL_pages_dep_fr) != cont);
|
|
||||||
#endif /* DEBUG_TABLING */
|
|
||||||
Sfprintf(out, " Dependency frames: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_dep_fr) * sizeof(struct dependency_frame), Pg_pg_alloc(GLOBAL_pages_dep_fr), Pg_str_in_use(GLOBAL_pages_dep_fr));
|
|
||||||
#else
|
#else
|
||||||
Sfprintf(out, " Dependency frames: %10ld bytes (%ld structs in use)\n",
|
SHOW_REMOTE_PAGE_STATS(out, struct dependency_frame, REMOTE_pages_dep_fr, "Dependency frames: ");
|
||||||
Pg_str_in_use(GLOBAL_pages_dep_fr) * sizeof(struct dependency_frame), Pg_str_in_use(GLOBAL_pages_dep_fr));
|
#endif
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_dep_fr) * sizeof(struct dependency_frame);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline long show_statistics_subgoal_trie_nodes(IOSTREAM *out) {
|
static inline long show_statistics_subgoal_trie_nodes(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
#if !defined(THREADS_NO_SHARING)
|
||||||
#ifdef DEBUG_TABLING
|
SHOW_GLOBAL_PAGE_STATS(out, struct subgoal_trie_node, GLOBAL_pages_sg_node, "Subgoal trie nodes: ");
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
sg_node_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_sg_node);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = TrNode_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
TABLING_ERROR_CHECKING(statistics_subgoal_trie_nodes, Pg_str_free(GLOBAL_pages_sg_node) != cont);
|
|
||||||
#endif /* DEBUG_TABLING */
|
|
||||||
Sfprintf(out, " Subgoal trie nodes: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_sg_node) * sizeof(struct subgoal_trie_node), Pg_pg_alloc(GLOBAL_pages_sg_node), Pg_str_in_use(GLOBAL_pages_sg_node));
|
|
||||||
#else
|
#else
|
||||||
Sfprintf(out, " Subgoal trie nodes: %10ld bytes (%ld structs in use)\n",
|
SHOW_REMOTE_PAGE_STATS(out, struct subgoal_trie_node, REMOTE_pages_sg_node, "Subgoal trie nodes: ");
|
||||||
Pg_str_in_use(GLOBAL_pages_sg_node) * sizeof(struct subgoal_trie_node), Pg_str_in_use(GLOBAL_pages_sg_node));
|
#endif
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_sg_node) * sizeof(struct subgoal_trie_node);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline long show_statistics_answer_trie_nodes(IOSTREAM *out) {
|
|
||||||
#ifdef USE_PAGES_MALLOC
|
|
||||||
#ifdef DEBUG_TABLING
|
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
ans_node_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_ans_node);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = TrNode_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
TABLING_ERROR_CHECKING(statistics_answer_trie_nodes, Pg_str_free(GLOBAL_pages_ans_node) != cont);
|
|
||||||
#endif /* DEBUG_TABLING */
|
|
||||||
Sfprintf(out, " Answer trie nodes: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_ans_node) * sizeof(struct answer_trie_node), Pg_pg_alloc(GLOBAL_pages_ans_node), Pg_str_in_use(GLOBAL_pages_ans_node));
|
|
||||||
#else
|
|
||||||
Sfprintf(out, " Answer trie nodes: %10ld bytes (%ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_ans_node) * sizeof(struct answer_trie_node), Pg_str_in_use(GLOBAL_pages_ans_node));
|
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_ans_node) * sizeof(struct answer_trie_node);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static inline long show_statistics_subgoal_trie_hashes(IOSTREAM *out) {
|
static inline long show_statistics_subgoal_trie_hashes(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
#if !defined(THREADS_NO_SHARING)
|
||||||
#ifdef DEBUG_TABLING
|
SHOW_GLOBAL_PAGE_STATS(out, struct subgoal_trie_hash, GLOBAL_pages_sg_hash, "Subgoal trie hashes: ");
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
sg_hash_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_sg_hash);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = Hash_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
TABLING_ERROR_CHECKING(statistics_subgoal_trie_hashes, Pg_str_free(GLOBAL_pages_sg_hash) != cont);
|
|
||||||
#endif /* DEBUG_TABLING */
|
|
||||||
Sfprintf(out, " Subgoal trie hashes: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_sg_hash) * sizeof(struct subgoal_trie_hash), Pg_pg_alloc(GLOBAL_pages_sg_hash), Pg_str_in_use(GLOBAL_pages_sg_hash));
|
|
||||||
#else
|
#else
|
||||||
Sfprintf(out, " Subgoal trie hashes: %10ld bytes (%ld structs in use)\n",
|
SHOW_REMOTE_PAGE_STATS(out, struct subgoal_trie_hash, REMOTE_pages_sg_hash, "Subgoal trie hashes: ");
|
||||||
Pg_str_in_use(GLOBAL_pages_sg_hash) * sizeof(struct subgoal_trie_hash), Pg_str_in_use(GLOBAL_pages_sg_hash));
|
#endif
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_sg_hash) * sizeof(struct subgoal_trie_hash);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline long show_statistics_answer_trie_nodes(IOSTREAM *out) {
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING)
|
||||||
|
SHOW_GLOBAL_PAGE_STATS(out, struct answer_trie_node, GLOBAL_pages_ans_node, "Answer trie nodes: ");
|
||||||
|
#else
|
||||||
|
SHOW_REMOTE_PAGE_STATS(out, struct answer_trie_node, REMOTE_pages_ans_node, "Answer trie nodes: ");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static inline long show_statistics_answer_trie_hashes(IOSTREAM *out) {
|
static inline long show_statistics_answer_trie_hashes(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING)
|
||||||
#ifdef DEBUG_TABLING
|
SHOW_GLOBAL_PAGE_STATS(out, struct answer_trie_hash, GLOBAL_pages_ans_hash, "Answer trie hashes: ");
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
ans_hash_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_ans_hash);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = Hash_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
TABLING_ERROR_CHECKING(statistics_answer_trie_hashes, Pg_str_free(GLOBAL_pages_ans_hash) != cont);
|
|
||||||
#endif /* DEBUG_TABLING */
|
|
||||||
Sfprintf(out, " Answer trie hashes: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_ans_hash) * sizeof(struct answer_trie_hash), Pg_pg_alloc(GLOBAL_pages_ans_hash), Pg_str_in_use(GLOBAL_pages_ans_hash));
|
|
||||||
#else
|
#else
|
||||||
Sfprintf(out, " Answer trie hashes: %10ld bytes (%ld structs in use)\n",
|
SHOW_REMOTE_PAGE_STATS(out, struct answer_trie_hash, REMOTE_pages_ans_hash, "Answer trie hashes: ");
|
||||||
Pg_str_in_use(GLOBAL_pages_ans_hash) * sizeof(struct answer_trie_hash), Pg_str_in_use(GLOBAL_pages_ans_hash));
|
#endif
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_ans_hash) * sizeof(struct answer_trie_hash);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline long show_statistics_global_trie_nodes(IOSTREAM *out) {
|
static inline long show_statistics_global_trie_nodes(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
SHOW_GLOBAL_PAGE_STATS(out, struct global_trie_node, GLOBAL_pages_gt_node, "Global trie nodes: ");
|
||||||
#ifdef DEBUG_TABLING
|
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
gt_node_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_gt_node);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = TrNode_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
TABLING_ERROR_CHECKING(statistics_global_trie_nodes, Pg_str_free(GLOBAL_pages_gt_node) != cont);
|
|
||||||
#endif /* DEBUG_TABLING */
|
|
||||||
Sfprintf(out, " Global trie nodes: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_gt_node) * sizeof(struct global_trie_node), Pg_pg_alloc(GLOBAL_pages_gt_node), Pg_str_in_use(GLOBAL_pages_gt_node));
|
|
||||||
#else
|
|
||||||
Sfprintf(out, " Global trie nodes: %10ld bytes (%ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_gt_node) * sizeof(struct global_trie_node), Pg_str_in_use(GLOBAL_pages_gt_node));
|
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_gt_node) * sizeof(struct global_trie_node);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline long show_statistics_global_trie_hashes(IOSTREAM *out) {
|
static inline long show_statistics_global_trie_hashes(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
SHOW_GLOBAL_PAGE_STATS(out, struct global_trie_hash, GLOBAL_pages_gt_hash, "Global trie hashes: ");
|
||||||
#ifdef DEBUG_TABLING
|
|
||||||
/* suport not yet implemented :(
|
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
gt_hash_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_gt_hash);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = Hash_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
TABLING_ERROR_CHECKING(statistics_global_trie_hashes, Pg_str_free(GLOBAL_pages_gt_hash) != cont);
|
|
||||||
*/
|
|
||||||
#endif /* DEBUG_TABLING */
|
|
||||||
Sfprintf(out, " Global trie hashes: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_gt_hash) * sizeof(struct global_trie_hash), Pg_pg_alloc(GLOBAL_pages_gt_hash), Pg_str_in_use(GLOBAL_pages_gt_hash));
|
|
||||||
#else
|
|
||||||
Sfprintf(out, " Global trie hashes: %10ld bytes (%ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_gt_hash) * sizeof(struct global_trie_hash), Pg_str_in_use(GLOBAL_pages_gt_hash));
|
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_gt_hash) * sizeof(struct global_trie_hash);
|
|
||||||
}
|
}
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
|
|
||||||
|
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
static inline long show_statistics_or_frames(IOSTREAM *out) {
|
static inline long show_statistics_or_frames(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
SHOW_GLOBAL_PAGE_STATS(out, struct or_frame, GLOBAL_pages_or_fr, "Or-frames: ");
|
||||||
#ifdef DEBUG_YAPOR
|
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
or_fr_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_or_fr );
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = OrFr_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
YAPOR_ERROR_CHECKING(statistics_or_frames, Pg_str_free(GLOBAL_pages_or_fr ) != cont);
|
|
||||||
#endif /* DEBUG_YAPOR */
|
|
||||||
Sfprintf(out, " Or-frames: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_or_fr ) * sizeof(struct or_frame), Pg_pg_alloc(GLOBAL_pages_or_fr ), Pg_str_in_use(GLOBAL_pages_or_fr ));
|
|
||||||
#else
|
|
||||||
Sfprintf(out, " Or-frames: %10ld bytes (%ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_or_fr ) * sizeof(struct or_frame), Pg_str_in_use(GLOBAL_pages_or_fr ));
|
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_or_fr ) * sizeof(struct or_frame);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline long show_statistics_query_goal_solution_frames(IOSTREAM *out) {
|
static inline long show_statistics_query_goal_solution_frames(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
SHOW_GLOBAL_PAGE_STATS(out, struct query_goal_solution_frame, GLOBAL_pages_qg_sol_fr, "Query goal solution frames: ");
|
||||||
#ifdef DEBUG_YAPOR
|
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
qg_sol_fr_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_qg_sol_fr );
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = SolFr_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
YAPOR_ERROR_CHECKING(statistics_query_goal_solution_frames, Pg_str_free(GLOBAL_pages_qg_sol_fr ) != cont);
|
|
||||||
#endif /* DEBUG_YAPOR */
|
|
||||||
Sfprintf(out, " Query goal solution frames: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_qg_sol_fr ) * sizeof(struct query_goal_solution_frame), Pg_pg_alloc(GLOBAL_pages_qg_sol_fr ), Pg_str_in_use(GLOBAL_pages_qg_sol_fr ));
|
|
||||||
#else
|
|
||||||
Sfprintf(out, " Query goal solution frames: %10ld bytes (%ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_qg_sol_fr ) * sizeof(struct query_goal_solution_frame), Pg_str_in_use(GLOBAL_pages_qg_sol_fr ));
|
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_qg_sol_fr ) * sizeof(struct query_goal_solution_frame);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline long show_statistics_query_goal_answer_frames(IOSTREAM *out) {
|
static inline long show_statistics_query_goal_answer_frames(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
SHOW_GLOBAL_PAGE_STATS(out, struct query_goal_answer_frame, GLOBAL_pages_qg_ans_fr, "Query goal answer frames: ");
|
||||||
#ifdef DEBUG_YAPOR
|
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
qg_ans_fr_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_qg_ans_fr);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = AnsFr_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
YAPOR_ERROR_CHECKING(statistics_query_goal_answer_frames, Pg_str_free(GLOBAL_pages_qg_ans_fr) != cont);
|
|
||||||
#endif /* DEBUG_YAPOR */
|
|
||||||
Sfprintf(out, " Query goal answer frames: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_qg_ans_fr) * sizeof(struct query_goal_answer_frame), Pg_pg_alloc(GLOBAL_pages_qg_ans_fr), Pg_str_in_use(GLOBAL_pages_qg_ans_fr));
|
|
||||||
#else
|
|
||||||
Sfprintf(out, " Query goal answer frames: %10ld bytes (%ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_qg_ans_fr) * sizeof(struct query_goal_answer_frame), Pg_str_in_use(GLOBAL_pages_qg_ans_fr));
|
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_qg_ans_fr) * sizeof(struct query_goal_answer_frame);
|
|
||||||
}
|
}
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
|
|
||||||
|
|
||||||
#if defined(YAPOR) && defined(TABLING)
|
#if defined(YAPOR) && defined(TABLING)
|
||||||
static inline long show_statistics_suspension_frames(IOSTREAM *out) {
|
static inline long show_statistics_suspension_frames(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
SHOW_GLOBAL_PAGE_STATS(out, struct suspension_frame, GLOBAL_pages_susp_fr, "Suspension frames: ");
|
||||||
#ifdef DEBUG_OPTYAP
|
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
susp_fr_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_susp_fr);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = SuspFr_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
OPTYAP_ERROR_CHECKING(statistics_suspension_frames, Pg_str_free(GLOBAL_pages_susp_fr) != cont);
|
|
||||||
#endif /* DEBUG_OPTYAP */
|
|
||||||
Sfprintf(out, " Suspension frames: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_susp_fr) * sizeof(struct suspension_frame), Pg_pg_alloc(GLOBAL_pages_susp_fr), Pg_str_in_use(GLOBAL_pages_susp_fr));
|
|
||||||
#else
|
|
||||||
Sfprintf(out, " Suspension frames: %10ld bytes (%ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_susp_fr) * sizeof(struct suspension_frame), Pg_str_in_use(GLOBAL_pages_susp_fr));
|
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_susp_fr) * sizeof(struct suspension_frame);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef TABLING_INNER_CUTS
|
#ifdef TABLING_INNER_CUTS
|
||||||
static inline long show_statistics_table_subgoal_solution_frames(IOSTREAM *out) {
|
static inline long show_statistics_table_subgoal_solution_frames(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
SHOW_GLOBAL_PAGE_STATS(out, struct table_subgoal_solution_frame, GLOBAL_pages_tg_sol_fr, "Table subgoal solution frames:");
|
||||||
#ifdef DEBUG_OPTYAP
|
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
tg_sol_fr_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_tg_sol_fr);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = SolFr_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
OPTYAP_ERROR_CHECKING(statistics_table_subgoal_solution_frames, Pg_str_free(GLOBAL_pages_tg_sol_fr) != cont);
|
|
||||||
#endif /* DEBUG_OPTYAP */
|
|
||||||
Sfprintf(out, " Table subgoal solution frames: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_tg_sol_fr) * sizeof(struct table_subgoal_solution_frame), Pg_pg_alloc(GLOBAL_pages_tg_sol_fr), Pg_str_in_use(GLOBAL_pages_tg_sol_fr));
|
|
||||||
#else
|
|
||||||
Sfprintf(out, " Table subgoal solution frames: %10ld bytes (%ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_tg_sol_fr) * sizeof(struct table_subgoal_solution_frame), Pg_str_in_use(GLOBAL_pages_tg_sol_fr));
|
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_tg_sol_fr) * sizeof(struct table_subgoal_solution_frame);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline long show_statistics_table_subgoal_answer_frames(IOSTREAM *out) {
|
static inline long show_statistics_table_subgoal_answer_frames(IOSTREAM *out) {
|
||||||
#ifdef USE_PAGES_MALLOC
|
SHOW_GLOBAL_PAGE_STATS(out, struct table_subgoal_answer_frame, GLOBAL_pages_tg_ans_fr, "Table subgoal answer frames: ");
|
||||||
#ifdef DEBUG_OPTYAP
|
|
||||||
pg_hd_ptr pg_hd;
|
|
||||||
tg_ans_fr_ptr aux_ptr;
|
|
||||||
long cont = 0;
|
|
||||||
|
|
||||||
pg_hd = Pg_free_pg(GLOBAL_pages_tg_ans_fr);
|
|
||||||
while (pg_hd) {
|
|
||||||
aux_ptr = PgHd_free_str(pg_hd);
|
|
||||||
while (aux_ptr) {
|
|
||||||
cont++;
|
|
||||||
aux_ptr = AnsFr_next(aux_ptr);
|
|
||||||
}
|
|
||||||
pg_hd = PgHd_next(pg_hd);
|
|
||||||
}
|
|
||||||
OPTYAP_ERROR_CHECKING(statistics_table_subgoal_answer_frames, Pg_str_free(GLOBAL_pages_tg_ans_fr) != cont);
|
|
||||||
#endif /* DEBUG_OPTYAP */
|
|
||||||
Sfprintf(out, " Table subgoal answer frames: %10ld bytes (%ld pages and %ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_tg_ans_fr) * sizeof(struct table_subgoal_answer_frame), Pg_pg_alloc(GLOBAL_pages_tg_ans_fr), Pg_str_in_use(GLOBAL_pages_tg_ans_fr));
|
|
||||||
#else
|
|
||||||
Sfprintf(out, " Table subgoal answer frames: %10ld bytes (%ld structs in use)\n",
|
|
||||||
Pg_str_in_use(GLOBAL_pages_tg_ans_fr) * sizeof(struct table_subgoal_answer_frame), Pg_str_in_use(GLOBAL_pages_tg_ans_fr));
|
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
return Pg_str_in_use(GLOBAL_pages_tg_ans_fr) * sizeof(struct table_subgoal_answer_frame);
|
|
||||||
}
|
}
|
||||||
#endif /* TABLING_INNER_CUTS */
|
#endif /* TABLING_INNER_CUTS */
|
||||||
#endif /* YAPOR && TABLING */
|
#endif /* YAPOR && TABLING */
|
||||||
|
@ -53,6 +53,50 @@ cptr_to_offset_with_null(choiceptr node)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************
|
||||||
|
** Structs ma_h_inner_struct and ma_hash_entry **
|
||||||
|
**********************************************************/
|
||||||
|
|
||||||
|
#if (defined(TABLING) || !defined(YAPOR_COW)) && defined(MULTI_ASSIGNMENT_VARIABLES)
|
||||||
|
#define MAVARS_HASH_SIZE 512
|
||||||
|
|
||||||
|
typedef struct ma_h_entry {
|
||||||
|
CELL* addr;
|
||||||
|
struct ma_h_entry *next;
|
||||||
|
} ma_h_inner_struct;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UInt timestmp;
|
||||||
|
struct ma_h_entry val;
|
||||||
|
} ma_hash_entry;
|
||||||
|
#endif /* (TABLING || !YAPOR_COW) && MULTI_ASSIGNMENT_VARIABLES */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************
|
||||||
|
** threads_dependency_frame **
|
||||||
|
***************************************/
|
||||||
|
|
||||||
|
#ifdef THREADS_CONSUMER_SHARING
|
||||||
|
struct threads_dependency_frame {
|
||||||
|
lockvar lock;
|
||||||
|
enum {
|
||||||
|
working,
|
||||||
|
idle,
|
||||||
|
completing
|
||||||
|
} state;
|
||||||
|
int terminator;
|
||||||
|
int next;
|
||||||
|
};
|
||||||
|
#endif /* THREADS_CONSUMER_SHARING */
|
||||||
|
|
||||||
|
#define ThDepFr_lock(X) ((X).lock)
|
||||||
|
#define ThDepFr_state(X) ((X).state)
|
||||||
|
#define ThDepFr_terminator(X) ((X).terminator)
|
||||||
|
#define ThDepFr_next(X) ((X).next)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************
|
/*********************************
|
||||||
** Struct page_header **
|
** Struct page_header **
|
||||||
*********************************/
|
*********************************/
|
||||||
@ -64,12 +108,12 @@ typedef struct page_header {
|
|||||||
struct page_header *previous;
|
struct page_header *previous;
|
||||||
struct page_header *next;
|
struct page_header *next;
|
||||||
} *pg_hd_ptr;
|
} *pg_hd_ptr;
|
||||||
|
#endif /* USE_PAGES_MALLOC */
|
||||||
|
|
||||||
#define PgHd_str_in_use(X) ((X)->structs_in_use)
|
#define PgHd_str_in_use(X) ((X)->structs_in_use)
|
||||||
#define PgHd_free_str(X) ((X)->first_free_struct)
|
#define PgHd_free_str(X) ((X)->first_free_struct)
|
||||||
#define PgHd_previous(X) ((X)->previous)
|
#define PgHd_previous(X) ((X)->previous)
|
||||||
#define PgHd_next(X) ((X)->next)
|
#define PgHd_next(X) ((X)->next)
|
||||||
#endif /* USE_PAGES_MALLOC */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -78,10 +122,10 @@ typedef struct page_header {
|
|||||||
***************************/
|
***************************/
|
||||||
|
|
||||||
struct pages {
|
struct pages {
|
||||||
#ifdef USE_PAGES_MALLOC
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
#ifdef YAPOR
|
|
||||||
lockvar lock;
|
lockvar lock;
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR || THREADS */
|
||||||
|
#ifdef USE_PAGES_MALLOC
|
||||||
int structs_per_page;
|
int structs_per_page;
|
||||||
struct page_header *first_free_page;
|
struct page_header *first_free_page;
|
||||||
volatile long pages_allocated;
|
volatile long pages_allocated;
|
||||||
@ -103,34 +147,75 @@ struct pages {
|
|||||||
**********************************/
|
**********************************/
|
||||||
|
|
||||||
struct global_pages {
|
struct global_pages {
|
||||||
#ifdef LIMIT_TABLING
|
|
||||||
int max_pages;
|
|
||||||
#endif /* LIMIT_TABLING */
|
|
||||||
struct pages void_pages;
|
struct pages void_pages;
|
||||||
|
#ifdef TABLING
|
||||||
|
struct pages table_entry_pages;
|
||||||
|
#if defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
|
struct pages subgoal_entry_pages;
|
||||||
|
#endif
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING) && !defined(THREADS_FULL_SHARING) && !defined(THREADS_CONSUMER_SHARING)
|
||||||
|
struct pages subgoal_frame_pages;
|
||||||
|
struct pages dependency_frame_pages;
|
||||||
|
#endif
|
||||||
|
#if !defined(THREADS_NO_SHARING)
|
||||||
|
struct pages subgoal_trie_node_pages;
|
||||||
|
struct pages subgoal_trie_hash_pages;
|
||||||
|
#endif
|
||||||
|
#if !defined(THREADS_NO_SHARING) && !defined(THREADS_SUBGOAL_SHARING)
|
||||||
|
struct pages answer_trie_node_pages;
|
||||||
|
struct pages answer_trie_hash_pages;
|
||||||
|
#endif
|
||||||
|
struct pages global_trie_node_pages;
|
||||||
|
struct pages global_trie_hash_pages;
|
||||||
|
#endif /* TABLING */
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
struct pages or_frame_pages;
|
struct pages or_frame_pages;
|
||||||
struct pages query_goal_solution_frame_pages;
|
struct pages query_goal_solution_frame_pages;
|
||||||
struct pages query_goal_answer_frame_pages;
|
struct pages query_goal_answer_frame_pages;
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
|
#if defined(YAPOR) && defined(TABLING)
|
||||||
|
struct pages suspension_frame_pages;
|
||||||
|
#endif /* YAPOR && TABLING */
|
||||||
#ifdef TABLING_INNER_CUTS
|
#ifdef TABLING_INNER_CUTS
|
||||||
struct pages table_subgoal_solution_frame_pages;
|
struct pages table_subgoal_solution_frame_pages;
|
||||||
struct pages table_subgoal_answer_frame_pages;
|
struct pages table_subgoal_answer_frame_pages;
|
||||||
#endif /* TABLING_INNER_CUTS */
|
#endif /* TABLING_INNER_CUTS */
|
||||||
#ifdef TABLING
|
};
|
||||||
struct pages table_entry_pages;
|
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************
|
||||||
|
** Struct local_pages **
|
||||||
|
*********************************/
|
||||||
|
|
||||||
|
#if defined(TABLING) && (defined(YAPOR) || defined(THREADS))
|
||||||
|
struct local_pages {
|
||||||
|
#if defined(YAPOR)
|
||||||
|
struct answer_trie_node *next_free_answer_trie_node;
|
||||||
|
#elif defined(THREADS)
|
||||||
|
struct pages void_pages;
|
||||||
struct pages subgoal_frame_pages;
|
struct pages subgoal_frame_pages;
|
||||||
struct pages dependency_frame_pages;
|
struct pages dependency_frame_pages;
|
||||||
|
#if defined(THREADS_NO_SHARING)
|
||||||
struct pages subgoal_trie_node_pages;
|
struct pages subgoal_trie_node_pages;
|
||||||
struct pages answer_trie_node_pages;
|
|
||||||
struct pages global_trie_node_pages;
|
|
||||||
struct pages subgoal_trie_hash_pages;
|
struct pages subgoal_trie_hash_pages;
|
||||||
|
#elif defined(THREADS_SUBGOAL_SHARING) || defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
|
struct subgoal_trie_node *next_free_subgoal_trie_node;
|
||||||
|
struct subgoal_trie_hash *next_free_subgoal_trie_hash;
|
||||||
|
#endif
|
||||||
|
#if defined(THREADS_NO_SHARING) || defined(THREADS_SUBGOAL_SHARING)
|
||||||
|
struct pages answer_trie_node_pages;
|
||||||
struct pages answer_trie_hash_pages;
|
struct pages answer_trie_hash_pages;
|
||||||
struct pages global_trie_hash_pages;
|
#elif defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
#endif /* TABLING */
|
struct answer_trie_node *next_free_answer_trie_node;
|
||||||
#if defined(YAPOR) && defined(TABLING)
|
struct answer_trie_hash *next_free_answer_trie_hash;
|
||||||
struct pages suspension_frame_pages;
|
#endif
|
||||||
#endif /* YAPOR && TABLING */
|
#if defined(THREADS_FULL_SHARING)
|
||||||
|
struct pages answer_ref_node_pages;
|
||||||
|
#endif
|
||||||
|
#endif /* YAPOR - THREADS */
|
||||||
};
|
};
|
||||||
|
#endif /* TABLING && (YAPOR || THREADS) */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -158,6 +243,34 @@ struct global_optyap_locks {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************
|
||||||
|
** Struct local_optyap_signals **
|
||||||
|
******************************************/
|
||||||
|
|
||||||
|
#ifdef YAPOR
|
||||||
|
struct local_optyap_signals {
|
||||||
|
#if defined(YAPOR_COPY) || defined(YAPOR_THREADS)
|
||||||
|
lockvar lock;
|
||||||
|
volatile enum {
|
||||||
|
Q_idle = 0,
|
||||||
|
trail = 1,
|
||||||
|
global = 2,
|
||||||
|
local = 3,
|
||||||
|
P_idle = 4
|
||||||
|
} P_fase, Q_fase;
|
||||||
|
#endif /* YAPOR_COPY || YAPOR_THREADS */
|
||||||
|
volatile enum {
|
||||||
|
no_sharing = 0,
|
||||||
|
sharing = 1,
|
||||||
|
nodes_shared = 2,
|
||||||
|
copy_done = 3,
|
||||||
|
worker_ready = 4
|
||||||
|
} reply_signal;
|
||||||
|
};
|
||||||
|
#endif /* YAPOR */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************
|
/*********************************
|
||||||
* Struct global_optyap_data **
|
* Struct global_optyap_data **
|
||||||
*********************************/
|
*********************************/
|
||||||
@ -205,6 +318,7 @@ struct global_optyap_data {
|
|||||||
struct global_trie_node *root_global_trie;
|
struct global_trie_node *root_global_trie;
|
||||||
struct table_entry *root_table_entry;
|
struct table_entry *root_table_entry;
|
||||||
#ifdef LIMIT_TABLING
|
#ifdef LIMIT_TABLING
|
||||||
|
int max_pages;
|
||||||
struct subgoal_frame *first_subgoal_frame;
|
struct subgoal_frame *first_subgoal_frame;
|
||||||
struct subgoal_frame *last_subgoal_frame;
|
struct subgoal_frame *last_subgoal_frame;
|
||||||
struct subgoal_frame *check_subgoal_frame;
|
struct subgoal_frame *check_subgoal_frame;
|
||||||
@ -212,6 +326,9 @@ struct global_optyap_data {
|
|||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
struct dependency_frame *root_dependency_frame;
|
struct dependency_frame *root_dependency_frame;
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
|
#ifdef THREADS_CONSUMER_SHARING
|
||||||
|
struct threads_dependency_frame threads_dependency_frame[MAX_THREADS];
|
||||||
|
#endif /*THREADS_CONSUMER_SHARING*/
|
||||||
CELL table_var_enumerator[MAX_TABLE_VARS];
|
CELL table_var_enumerator[MAX_TABLE_VARS];
|
||||||
#ifdef TRIE_LOCK_USING_GLOBAL_ARRAY
|
#ifdef TRIE_LOCK_USING_GLOBAL_ARRAY
|
||||||
lockvar trie_locks[TRIE_LOCK_BUCKETS];
|
lockvar trie_locks[TRIE_LOCK_BUCKETS];
|
||||||
@ -222,23 +339,23 @@ struct global_optyap_data {
|
|||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define GLOBAL_max_pages (GLOBAL_optyap_data.pages.max_pages)
|
|
||||||
#define GLOBAL_pages_void (GLOBAL_optyap_data.pages.void_pages)
|
#define GLOBAL_pages_void (GLOBAL_optyap_data.pages.void_pages)
|
||||||
#define GLOBAL_pages_or_fr (GLOBAL_optyap_data.pages.or_frame_pages)
|
|
||||||
#define GLOBAL_pages_qg_sol_fr (GLOBAL_optyap_data.pages.query_goal_solution_frame_pages)
|
|
||||||
#define GLOBAL_pages_qg_ans_fr (GLOBAL_optyap_data.pages.query_goal_answer_frame_pages)
|
|
||||||
#define GLOBAL_pages_tg_sol_fr (GLOBAL_optyap_data.pages.table_subgoal_solution_frame_pages)
|
|
||||||
#define GLOBAL_pages_tg_ans_fr (GLOBAL_optyap_data.pages.table_subgoal_answer_frame_pages)
|
|
||||||
#define GLOBAL_pages_tab_ent (GLOBAL_optyap_data.pages.table_entry_pages)
|
#define GLOBAL_pages_tab_ent (GLOBAL_optyap_data.pages.table_entry_pages)
|
||||||
|
#define GLOBAL_pages_sg_ent (GLOBAL_optyap_data.pages.subgoal_entry_pages)
|
||||||
#define GLOBAL_pages_sg_fr (GLOBAL_optyap_data.pages.subgoal_frame_pages)
|
#define GLOBAL_pages_sg_fr (GLOBAL_optyap_data.pages.subgoal_frame_pages)
|
||||||
#define GLOBAL_pages_dep_fr (GLOBAL_optyap_data.pages.dependency_frame_pages)
|
#define GLOBAL_pages_dep_fr (GLOBAL_optyap_data.pages.dependency_frame_pages)
|
||||||
#define GLOBAL_pages_sg_node (GLOBAL_optyap_data.pages.subgoal_trie_node_pages)
|
#define GLOBAL_pages_sg_node (GLOBAL_optyap_data.pages.subgoal_trie_node_pages)
|
||||||
#define GLOBAL_pages_ans_node (GLOBAL_optyap_data.pages.answer_trie_node_pages)
|
|
||||||
#define GLOBAL_pages_gt_node (GLOBAL_optyap_data.pages.global_trie_node_pages)
|
|
||||||
#define GLOBAL_pages_sg_hash (GLOBAL_optyap_data.pages.subgoal_trie_hash_pages)
|
#define GLOBAL_pages_sg_hash (GLOBAL_optyap_data.pages.subgoal_trie_hash_pages)
|
||||||
|
#define GLOBAL_pages_ans_node (GLOBAL_optyap_data.pages.answer_trie_node_pages)
|
||||||
#define GLOBAL_pages_ans_hash (GLOBAL_optyap_data.pages.answer_trie_hash_pages)
|
#define GLOBAL_pages_ans_hash (GLOBAL_optyap_data.pages.answer_trie_hash_pages)
|
||||||
|
#define GLOBAL_pages_gt_node (GLOBAL_optyap_data.pages.global_trie_node_pages)
|
||||||
#define GLOBAL_pages_gt_hash (GLOBAL_optyap_data.pages.global_trie_hash_pages)
|
#define GLOBAL_pages_gt_hash (GLOBAL_optyap_data.pages.global_trie_hash_pages)
|
||||||
|
#define GLOBAL_pages_or_fr (GLOBAL_optyap_data.pages.or_frame_pages)
|
||||||
|
#define GLOBAL_pages_qg_sol_fr (GLOBAL_optyap_data.pages.query_goal_solution_frame_pages)
|
||||||
|
#define GLOBAL_pages_qg_ans_fr (GLOBAL_optyap_data.pages.query_goal_answer_frame_pages)
|
||||||
#define GLOBAL_pages_susp_fr (GLOBAL_optyap_data.pages.suspension_frame_pages)
|
#define GLOBAL_pages_susp_fr (GLOBAL_optyap_data.pages.suspension_frame_pages)
|
||||||
|
#define GLOBAL_pages_tg_sol_fr (GLOBAL_optyap_data.pages.table_subgoal_solution_frame_pages)
|
||||||
|
#define GLOBAL_pages_tg_ans_fr (GLOBAL_optyap_data.pages.table_subgoal_answer_frame_pages)
|
||||||
#define GLOBAL_scheduler_loop (GLOBAL_optyap_data.scheduler_loop)
|
#define GLOBAL_scheduler_loop (GLOBAL_optyap_data.scheduler_loop)
|
||||||
#define GLOBAL_delayed_release_load (GLOBAL_optyap_data.delayed_release_load)
|
#define GLOBAL_delayed_release_load (GLOBAL_optyap_data.delayed_release_load)
|
||||||
#define GLOBAL_number_workers (GLOBAL_optyap_data.number_workers)
|
#define GLOBAL_number_workers (GLOBAL_optyap_data.number_workers)
|
||||||
@ -246,7 +363,7 @@ struct global_optyap_data {
|
|||||||
#define GLOBAL_master_worker (GLOBAL_optyap_data.master_worker)
|
#define GLOBAL_master_worker (GLOBAL_optyap_data.master_worker)
|
||||||
#define GLOBAL_execution_time (GLOBAL_optyap_data.execution_time)
|
#define GLOBAL_execution_time (GLOBAL_optyap_data.execution_time)
|
||||||
#ifdef YAPOR_THREADS
|
#ifdef YAPOR_THREADS
|
||||||
#define Get_GLOBAL_root_cp() offset_to_cptr(GLOBAL_optyap_data.root_choice_point_offset)
|
#define Get_GLOBAL_root_cp() offset_to_cptr(GLOBAL_optyap_data.root_choice_point_offset)
|
||||||
#define Set_GLOBAL_root_cp(bptr) (GLOBAL_optyap_data.root_choice_point_offset = cptr_to_offset(bptr))
|
#define Set_GLOBAL_root_cp(bptr) (GLOBAL_optyap_data.root_choice_point_offset = cptr_to_offset(bptr))
|
||||||
#else
|
#else
|
||||||
#define GLOBAL_root_cp (GLOBAL_optyap_data.root_choice_point)
|
#define GLOBAL_root_cp (GLOBAL_optyap_data.root_choice_point)
|
||||||
@ -276,10 +393,12 @@ struct global_optyap_data {
|
|||||||
#define GLOBAL_parallel_mode (GLOBAL_optyap_data.parallel_mode)
|
#define GLOBAL_parallel_mode (GLOBAL_optyap_data.parallel_mode)
|
||||||
#define GLOBAL_root_gt (GLOBAL_optyap_data.root_global_trie)
|
#define GLOBAL_root_gt (GLOBAL_optyap_data.root_global_trie)
|
||||||
#define GLOBAL_root_tab_ent (GLOBAL_optyap_data.root_table_entry)
|
#define GLOBAL_root_tab_ent (GLOBAL_optyap_data.root_table_entry)
|
||||||
|
#define GLOBAL_max_pages (GLOBAL_optyap_data.max_pages)
|
||||||
#define GLOBAL_first_sg_fr (GLOBAL_optyap_data.first_subgoal_frame)
|
#define GLOBAL_first_sg_fr (GLOBAL_optyap_data.first_subgoal_frame)
|
||||||
#define GLOBAL_last_sg_fr (GLOBAL_optyap_data.last_subgoal_frame)
|
#define GLOBAL_last_sg_fr (GLOBAL_optyap_data.last_subgoal_frame)
|
||||||
#define GLOBAL_check_sg_fr (GLOBAL_optyap_data.check_subgoal_frame)
|
#define GLOBAL_check_sg_fr (GLOBAL_optyap_data.check_subgoal_frame)
|
||||||
#define GLOBAL_root_dep_fr (GLOBAL_optyap_data.root_dependency_frame)
|
#define GLOBAL_root_dep_fr (GLOBAL_optyap_data.root_dependency_frame)
|
||||||
|
#define GLOBAL_th_dep_fr(wid) (GLOBAL_optyap_data.threads_dependency_frame[wid])
|
||||||
#define GLOBAL_table_var_enumerator(index) (GLOBAL_optyap_data.table_var_enumerator[index])
|
#define GLOBAL_table_var_enumerator(index) (GLOBAL_optyap_data.table_var_enumerator[index])
|
||||||
#define GLOBAL_table_var_enumerator_addr(index) (GLOBAL_optyap_data.table_var_enumerator + (index))
|
#define GLOBAL_table_var_enumerator_addr(index) (GLOBAL_optyap_data.table_var_enumerator + (index))
|
||||||
#define GLOBAL_trie_locks(index) (GLOBAL_optyap_data.trie_locks[index])
|
#define GLOBAL_trie_locks(index) (GLOBAL_optyap_data.trie_locks[index])
|
||||||
@ -287,59 +406,16 @@ struct global_optyap_data {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************
|
|
||||||
** Struct local_optyap_signals **
|
|
||||||
******************************************/
|
|
||||||
|
|
||||||
#ifdef YAPOR
|
|
||||||
struct local_optyap_signals{
|
|
||||||
#if defined(YAPOR_COPY) || defined(YAPOR_THREADS)
|
|
||||||
lockvar lock;
|
|
||||||
volatile enum {
|
|
||||||
Q_idle = 0,
|
|
||||||
trail = 1,
|
|
||||||
global = 2,
|
|
||||||
local = 3,
|
|
||||||
P_idle = 4
|
|
||||||
} P_fase, Q_fase;
|
|
||||||
#endif /* YAPOR_COPY || YAPOR_THREADS */
|
|
||||||
volatile enum {
|
|
||||||
no_sharing = 0,
|
|
||||||
sharing = 1,
|
|
||||||
nodes_shared = 2,
|
|
||||||
copy_done = 3,
|
|
||||||
worker_ready = 4
|
|
||||||
} reply_signal;
|
|
||||||
};
|
|
||||||
#endif /* YAPOR */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************
|
|
||||||
** Structs ma_h_inner_struct and ma_hash_entry **
|
|
||||||
**********************************************************/
|
|
||||||
|
|
||||||
#if (defined(TABLING) || !defined(YAPOR_COW)) && defined(MULTI_ASSIGNMENT_VARIABLES)
|
|
||||||
#define MAVARS_HASH_SIZE 512
|
|
||||||
|
|
||||||
typedef struct ma_h_entry {
|
|
||||||
CELL* addr;
|
|
||||||
struct ma_h_entry *next;
|
|
||||||
} ma_h_inner_struct;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
UInt timestmp;
|
|
||||||
struct ma_h_entry val;
|
|
||||||
} ma_hash_entry;
|
|
||||||
#endif /* (TABLING || !YAPOR_COW) && MULTI_ASSIGNMENT_VARIABLES */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************
|
/***************************************
|
||||||
** Struct local_optyap_data **
|
** Struct local_optyap_data **
|
||||||
***************************************/
|
***************************************/
|
||||||
|
|
||||||
struct local_optyap_data {
|
struct local_optyap_data {
|
||||||
|
#if defined(TABLING) && (defined(YAPOR) || defined(THREADS))
|
||||||
|
/* local data related to memory management */
|
||||||
|
struct local_pages pages;
|
||||||
|
#endif /* TABLING && (YAPOR || THREADS) */
|
||||||
|
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
lockvar lock;
|
lockvar lock;
|
||||||
/* local data related to or-parallelism */
|
/* local data related to or-parallelism */
|
||||||
@ -348,13 +424,13 @@ struct local_optyap_data {
|
|||||||
Int top_choice_point_offset;
|
Int top_choice_point_offset;
|
||||||
#else
|
#else
|
||||||
choiceptr top_choice_point;
|
choiceptr top_choice_point;
|
||||||
#endif
|
#endif /* YAPOR_THREADS */
|
||||||
struct or_frame *top_or_frame;
|
struct or_frame *top_or_frame;
|
||||||
#ifdef YAPOR_THREADS
|
#ifdef YAPOR_THREADS
|
||||||
Int prune_request_offset;
|
Int prune_request_offset;
|
||||||
#else
|
#else
|
||||||
choiceptr prune_request;
|
choiceptr prune_request;
|
||||||
#endif
|
#endif /* YAPOR_THREADS */
|
||||||
volatile int share_request;
|
volatile int share_request;
|
||||||
struct local_optyap_signals share_signals;
|
struct local_optyap_signals share_signals;
|
||||||
volatile struct {
|
volatile struct {
|
||||||
@ -365,7 +441,6 @@ struct local_optyap_data {
|
|||||||
|
|
||||||
#ifdef TABLING
|
#ifdef TABLING
|
||||||
/* local data related to tabling */
|
/* local data related to tabling */
|
||||||
struct answer_trie_node *next_free_answer_trie_node;
|
|
||||||
struct subgoal_frame *top_subgoal_frame;
|
struct subgoal_frame *top_subgoal_frame;
|
||||||
struct dependency_frame *top_dependency_frame;
|
struct dependency_frame *top_dependency_frame;
|
||||||
#ifdef TABLING_INNER_CUTS
|
#ifdef TABLING_INNER_CUTS
|
||||||
@ -376,7 +451,7 @@ struct local_optyap_data {
|
|||||||
Int top_choice_point_on_stack_offset;
|
Int top_choice_point_on_stack_offset;
|
||||||
#else
|
#else
|
||||||
choiceptr top_choice_point_on_stack;
|
choiceptr top_choice_point_on_stack;
|
||||||
#endif
|
#endif /* YAPOR_THREADS */
|
||||||
struct or_frame *top_or_frame_with_suspensions;
|
struct or_frame *top_or_frame_with_suspensions;
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
@ -388,6 +463,18 @@ struct local_optyap_data {
|
|||||||
#endif /* (TABLING || !YAPOR_COW) && MULTI_ASSIGNMENT_VARIABLES */
|
#endif /* (TABLING || !YAPOR_COW) && MULTI_ASSIGNMENT_VARIABLES */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define LOCAL_pages_void (LOCAL_optyap_data.pages.void_pages)
|
||||||
|
#define LOCAL_pages_sg_fr (LOCAL_optyap_data.pages.subgoal_frame_pages)
|
||||||
|
#define LOCAL_pages_dep_fr (LOCAL_optyap_data.pages.dependency_frame_pages)
|
||||||
|
#define LOCAL_pages_sg_node (LOCAL_optyap_data.pages.subgoal_trie_node_pages)
|
||||||
|
#define LOCAL_pages_sg_hash (LOCAL_optyap_data.pages.subgoal_trie_hash_pages)
|
||||||
|
#define LOCAL_pages_ans_node (LOCAL_optyap_data.pages.answer_trie_node_pages)
|
||||||
|
#define LOCAL_pages_ans_hash (LOCAL_optyap_data.pages.answer_trie_hash_pages)
|
||||||
|
#define LOCAL_pages_ans_ref_node (LOCAL_optyap_data.pages.answer_ref_node_pages)
|
||||||
|
#define LOCAL_next_free_sg_node (LOCAL_optyap_data.pages.next_free_subgoal_trie_node)
|
||||||
|
#define LOCAL_next_free_sg_hash (LOCAL_optyap_data.pages.next_free_subgoal_trie_hash)
|
||||||
|
#define LOCAL_next_free_ans_node (LOCAL_optyap_data.pages.next_free_answer_trie_node)
|
||||||
|
#define LOCAL_next_free_ans_hash (LOCAL_optyap_data.pages.next_free_answer_trie_hash)
|
||||||
#define LOCAL_lock (LOCAL_optyap_data.lock)
|
#define LOCAL_lock (LOCAL_optyap_data.lock)
|
||||||
#define LOCAL_load (LOCAL_optyap_data.load)
|
#define LOCAL_load (LOCAL_optyap_data.load)
|
||||||
#ifdef YAPOR_THREADS
|
#ifdef YAPOR_THREADS
|
||||||
@ -418,7 +505,6 @@ struct local_optyap_data {
|
|||||||
#define LOCAL_end_local_copy (LOCAL_optyap_data.local_copy.end)
|
#define LOCAL_end_local_copy (LOCAL_optyap_data.local_copy.end)
|
||||||
#define LOCAL_start_trail_copy (LOCAL_optyap_data.trail_copy.start)
|
#define LOCAL_start_trail_copy (LOCAL_optyap_data.trail_copy.start)
|
||||||
#define LOCAL_end_trail_copy (LOCAL_optyap_data.trail_copy.end)
|
#define LOCAL_end_trail_copy (LOCAL_optyap_data.trail_copy.end)
|
||||||
#define LOCAL_next_free_ans_node (LOCAL_optyap_data.next_free_answer_trie_node)
|
|
||||||
#define LOCAL_top_sg_fr (LOCAL_optyap_data.top_subgoal_frame)
|
#define LOCAL_top_sg_fr (LOCAL_optyap_data.top_subgoal_frame)
|
||||||
#define LOCAL_top_dep_fr (LOCAL_optyap_data.top_dependency_frame)
|
#define LOCAL_top_dep_fr (LOCAL_optyap_data.top_dependency_frame)
|
||||||
#define LOCAL_pruning_scope (LOCAL_optyap_data.bottom_pruning_scope)
|
#define LOCAL_pruning_scope (LOCAL_optyap_data.bottom_pruning_scope)
|
||||||
@ -434,8 +520,19 @@ struct local_optyap_data {
|
|||||||
#define LOCAL_ma_timestamp (LOCAL_optyap_data.ma_timestamp)
|
#define LOCAL_ma_timestamp (LOCAL_optyap_data.ma_timestamp)
|
||||||
#define LOCAL_ma_h_top (LOCAL_optyap_data.ma_h_top)
|
#define LOCAL_ma_h_top (LOCAL_optyap_data.ma_h_top)
|
||||||
#define LOCAL_ma_hash_table (LOCAL_optyap_data.ma_hash_table)
|
#define LOCAL_ma_hash_table (LOCAL_optyap_data.ma_hash_table)
|
||||||
|
|
||||||
|
#define REMOTE_pages_void(wid) (REMOTE(wid)->optyap_data_.pages.void_pages)
|
||||||
|
#define REMOTE_pages_sg_fr(wid) (REMOTE(wid)->optyap_data_.pages.subgoal_frame_pages)
|
||||||
|
#define REMOTE_pages_dep_fr(wid) (REMOTE(wid)->optyap_data_.pages.dependency_frame_pages)
|
||||||
|
#define REMOTE_pages_sg_node(wid) (REMOTE(wid)->optyap_data_.pages.subgoal_trie_node_pages)
|
||||||
|
#define REMOTE_pages_sg_hash(wid) (REMOTE(wid)->optyap_data_.pages.subgoal_trie_hash_pages)
|
||||||
|
#define REMOTE_pages_ans_node(wid) (REMOTE(wid)->optyap_data_.pages.answer_trie_node_pages)
|
||||||
|
#define REMOTE_pages_ans_hash(wid) (REMOTE(wid)->optyap_data_.pages.answer_trie_hash_pages)
|
||||||
|
#define REMOTE_pages_ans_ref_node(wid) (REMOTE(wid)->optyap_data_.pages.answer_ref_node_pages)
|
||||||
|
#define REMOTE_next_free_sg_node(wid) (REMOTE(wid)->optyap_data_.pages.next_free_subgoal_trie_node)
|
||||||
|
#define REMOTE_next_free_sg_hash(wid) (REMOTE(wid)->optyap_data_.pages.next_free_subgoal_trie_hash)
|
||||||
|
#define REMOTE_next_free_ans_node(wid) (REMOTE(wid)->optyap_data_.pages.next_free_answer_trie_node)
|
||||||
|
#define REMOTE_next_free_ans_hash(wid) (REMOTE(wid)->optyap_data_.pages.next_free_answer_trie_hash)
|
||||||
#define REMOTE_lock(wid) (REMOTE(wid)->optyap_data_.lock)
|
#define REMOTE_lock(wid) (REMOTE(wid)->optyap_data_.lock)
|
||||||
#define REMOTE_load(wid) (REMOTE(wid)->optyap_data_.load)
|
#define REMOTE_load(wid) (REMOTE(wid)->optyap_data_.load)
|
||||||
#ifdef YAPOR_THREADS
|
#ifdef YAPOR_THREADS
|
||||||
@ -465,7 +562,6 @@ struct local_optyap_data {
|
|||||||
#define REMOTE_end_local_copy(wid) (REMOTE(wid)->optyap_data_.local_copy.end)
|
#define REMOTE_end_local_copy(wid) (REMOTE(wid)->optyap_data_.local_copy.end)
|
||||||
#define REMOTE_start_trail_copy(wid) (REMOTE(wid)->optyap_data_.trail_copy.start)
|
#define REMOTE_start_trail_copy(wid) (REMOTE(wid)->optyap_data_.trail_copy.start)
|
||||||
#define REMOTE_end_trail_copy(wid) (REMOTE(wid)->optyap_data_.trail_copy.end)
|
#define REMOTE_end_trail_copy(wid) (REMOTE(wid)->optyap_data_.trail_copy.end)
|
||||||
#define REMOTE_next_free_ans_node(wid) (REMOTE(wid)->optyap_data_.next_free_answer_trie_node)
|
|
||||||
#define REMOTE_top_sg_fr(wid) (REMOTE(wid)->optyap_data_.top_subgoal_frame)
|
#define REMOTE_top_sg_fr(wid) (REMOTE(wid)->optyap_data_.top_subgoal_frame)
|
||||||
#define REMOTE_top_dep_fr(wid) (REMOTE(wid)->optyap_data_.top_dependency_frame)
|
#define REMOTE_top_dep_fr(wid) (REMOTE(wid)->optyap_data_.top_dependency_frame)
|
||||||
#define REMOTE_pruning_scope(wid) (REMOTE(wid)->optyap_data_.bottom_pruning_scope)
|
#define REMOTE_pruning_scope(wid) (REMOTE(wid)->optyap_data_.bottom_pruning_scope)
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
#ifdef MMAP_MEMORY_MAPPING_SCHEME
|
#ifdef MMAP_MEMORY_MAPPING_SCHEME
|
||||||
#define PATH_MAX 1000
|
#define PATH_MAX 1000
|
||||||
char mapfile_path[PATH_MAX];
|
char mapfile_path[PATH_MAX];
|
||||||
#elif SHM_MEMORY_MAPPING_SCHEME
|
#elif defined(SHM_MEMORY_MAPPING_SCHEME)
|
||||||
int shm_mapid[MAX_WORKERS + 2];
|
int shm_mapid[MAX_WORKERS + 2];
|
||||||
#endif /* MEMORY_MAPPING_SCHEME */
|
#endif /* MEMORY_MAPPING_SCHEME */
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ void Yap_init_yapor_global_local_memory(void) {
|
|||||||
if (close(fd_mapfile) == -1)
|
if (close(fd_mapfile) == -1)
|
||||||
Yap_Error(FATAL_ERROR, TermNil, "close error (Yap_init_yapor_global_local_memory)");
|
Yap_Error(FATAL_ERROR, TermNil, "close error (Yap_init_yapor_global_local_memory)");
|
||||||
}
|
}
|
||||||
#elif SHM_MEMORY_MAPPING_SCHEME
|
#elif defined(SHM_MEMORY_MAPPING_SCHEME)
|
||||||
/* place as segment MAX_WORKERS (0..MAX_WORKERS-1 reserved for worker areas) */
|
/* place as segment MAX_WORKERS (0..MAX_WORKERS-1 reserved for worker areas) */
|
||||||
shm_map_memory(MAX_WORKERS, GLOBAL_LOCAL_STRUCTS_AREA, (void *) Yap_local);
|
shm_map_memory(MAX_WORKERS, GLOBAL_LOCAL_STRUCTS_AREA, (void *) Yap_local);
|
||||||
#endif /* MEMORY_MAPPING_SCHEME */
|
#endif /* MEMORY_MAPPING_SCHEME */
|
||||||
@ -121,7 +121,7 @@ void Yap_init_yapor_stacks_memory(UInt TrailStackArea, UInt HeapStackArea, UInt
|
|||||||
if (close(fd_mapfile) == -1)
|
if (close(fd_mapfile) == -1)
|
||||||
Yap_Error(FATAL_ERROR, TermNil, "close error (Yap_init_yapor_stacks_memory)");
|
Yap_Error(FATAL_ERROR, TermNil, "close error (Yap_init_yapor_stacks_memory)");
|
||||||
}
|
}
|
||||||
#elif SHM_MEMORY_MAPPING_SCHEME
|
#elif defined(SHM_MEMORY_MAPPING_SCHEME)
|
||||||
/* place heap stack segment as MAX_WORKERS+1 */
|
/* place heap stack segment as MAX_WORKERS+1 */
|
||||||
shm_map_memory(MAX_WORKERS + 1, HeapStackArea, (void *) Yap_HeapBase);
|
shm_map_memory(MAX_WORKERS + 1, HeapStackArea, (void *) Yap_HeapBase);
|
||||||
#if defined(YAPOR_COPY) || defined(YAPOR_SBA)
|
#if defined(YAPOR_COPY) || defined(YAPOR_SBA)
|
||||||
@ -225,7 +225,7 @@ void Yap_unmap_yapor_memory (void) {
|
|||||||
INFORMATION_MESSAGE("Removing mapfile \"%s\"", mapfile_path);
|
INFORMATION_MESSAGE("Removing mapfile \"%s\"", mapfile_path);
|
||||||
else
|
else
|
||||||
INFORMATION_MESSAGE("Can't remove mapfile \"%s\"", mapfile_path);
|
INFORMATION_MESSAGE("Can't remove mapfile \"%s\"", mapfile_path);
|
||||||
#elif SHM_MEMORY_MAPPING_SCHEME
|
#elif defined(SHM_MEMORY_MAPPING_SCHEME)
|
||||||
#if defined(YAPOR_COPY) || defined(YAPOR_SBA)
|
#if defined(YAPOR_COPY) || defined(YAPOR_SBA)
|
||||||
shm_unmap_memory(MAX_WORKERS);
|
shm_unmap_memory(MAX_WORKERS);
|
||||||
shm_unmap_memory(MAX_WORKERS + 1);
|
shm_unmap_memory(MAX_WORKERS + 1);
|
||||||
|
@ -60,10 +60,10 @@ static void complete_suspension_branch(susp_fr_ptr susp_fr, choiceptr top_cp, or
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* chain dependency frames to release (using DepFr_next) */
|
/* chain dependency frames to release (using DepFr_next) */
|
||||||
while (IS_UNLOCKED(DepFr_lock(aux_dep_fr)) &&
|
while (IS_UNLOCKED_DEP_FR(aux_dep_fr) &&
|
||||||
YOUNGER_CP(DepFr_cons_cp(aux_dep_fr), top_cp)) {
|
YOUNGER_CP(DepFr_cons_cp(aux_dep_fr), top_cp)) {
|
||||||
dep_fr_ptr next_dep_fr;
|
dep_fr_ptr next_dep_fr;
|
||||||
LOCK(DepFr_lock(aux_dep_fr));
|
LOCK_DEP_FR(aux_dep_fr);
|
||||||
next_dep_fr = DepFr_next(aux_dep_fr);
|
next_dep_fr = DepFr_next(aux_dep_fr);
|
||||||
DepFr_next(aux_dep_fr) = *chain_dep_fr;
|
DepFr_next(aux_dep_fr) = *chain_dep_fr;
|
||||||
*chain_dep_fr = aux_dep_fr;
|
*chain_dep_fr = aux_dep_fr;
|
||||||
@ -192,7 +192,7 @@ void public_completion(void) {
|
|||||||
/* chain dependency frames to release */
|
/* chain dependency frames to release */
|
||||||
chain_dep_fr = NULL;
|
chain_dep_fr = NULL;
|
||||||
while (YOUNGER_CP(DepFr_cons_cp(LOCAL_top_dep_fr), Get_LOCAL_top_cp())) {
|
while (YOUNGER_CP(DepFr_cons_cp(LOCAL_top_dep_fr), Get_LOCAL_top_cp())) {
|
||||||
LOCK(DepFr_lock(LOCAL_top_dep_fr));
|
LOCK_DEP_FR(LOCAL_top_dep_fr);
|
||||||
next_dep_fr = DepFr_next(LOCAL_top_dep_fr);
|
next_dep_fr = DepFr_next(LOCAL_top_dep_fr);
|
||||||
DepFr_next(LOCAL_top_dep_fr) = chain_dep_fr;
|
DepFr_next(LOCAL_top_dep_fr) = chain_dep_fr;
|
||||||
chain_dep_fr = LOCAL_top_dep_fr;
|
chain_dep_fr = LOCAL_top_dep_fr;
|
||||||
|
@ -401,11 +401,11 @@
|
|||||||
YENV2MEM;
|
YENV2MEM;
|
||||||
sg_fr = subgoal_search(PREG, YENV_ADDRESS);
|
sg_fr = subgoal_search(PREG, YENV_ADDRESS);
|
||||||
MEM2YENV;
|
MEM2YENV;
|
||||||
LOCK(SgFr_lock(sg_fr));
|
LOCK_SG_FR(sg_fr);
|
||||||
if (SgFr_state(sg_fr) == ready) {
|
if (SgFr_state(sg_fr) == ready) {
|
||||||
/* subgoal new */
|
/* subgoal new */
|
||||||
init_subgoal_frame(sg_fr);
|
init_subgoal_frame(sg_fr);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
#ifdef DETERMINISTIC_TABLING
|
#ifdef DETERMINISTIC_TABLING
|
||||||
if (IsMode_Batched(TabEnt_mode(tab_ent))) {
|
if (IsMode_Batched(TabEnt_mode(tab_ent))) {
|
||||||
store_deterministic_generator_node(tab_ent, sg_fr);
|
store_deterministic_generator_node(tab_ent, sg_fr);
|
||||||
@ -424,7 +424,7 @@
|
|||||||
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
||||||
CELL *subs_ptr = YENV;
|
CELL *subs_ptr = YENV;
|
||||||
init_subgoal_frame(sg_fr);
|
init_subgoal_frame(sg_fr);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
SgFr_try_answer(sg_fr) = ans_node;
|
SgFr_try_answer(sg_fr) = ans_node;
|
||||||
store_generator_node(tab_ent, sg_fr, PREG->u.Otapl.s, TRY_ANSWER);
|
store_generator_node(tab_ent, sg_fr, PREG->u.Otapl.s, TRY_ANSWER);
|
||||||
PREG = (yamop *) CPREG;
|
PREG = (yamop *) CPREG;
|
||||||
@ -438,7 +438,7 @@
|
|||||||
choiceptr leader_cp;
|
choiceptr leader_cp;
|
||||||
int leader_dep_on_stack;
|
int leader_dep_on_stack;
|
||||||
find_dependency_node(sg_fr, leader_cp, leader_dep_on_stack);
|
find_dependency_node(sg_fr, leader_cp, leader_dep_on_stack);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
find_leader_node(leader_cp, leader_dep_on_stack);
|
find_leader_node(leader_cp, leader_dep_on_stack);
|
||||||
store_consumer_node(tab_ent, sg_fr, leader_cp, leader_dep_on_stack);
|
store_consumer_node(tab_ent, sg_fr, leader_cp, leader_dep_on_stack);
|
||||||
#ifdef DEBUG_OPTYAP
|
#ifdef DEBUG_OPTYAP
|
||||||
@ -460,11 +460,11 @@
|
|||||||
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
||||||
if (ans_node == NULL) {
|
if (ans_node == NULL) {
|
||||||
/* no answers --> fail */
|
/* no answers --> fail */
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
goto fail;
|
goto fail;
|
||||||
} else if (ans_node == SgFr_answer_trie(sg_fr)) {
|
} else if (ans_node == SgFr_answer_trie(sg_fr)) {
|
||||||
/* yes answer --> procceed */
|
/* yes answer --> procceed */
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
PREG = (yamop *) CPREG;
|
PREG = (yamop *) CPREG;
|
||||||
PREFETCH_OP(PREG);
|
PREFETCH_OP(PREG);
|
||||||
YENV = ENV;
|
YENV = ENV;
|
||||||
@ -480,7 +480,7 @@
|
|||||||
#endif /* LIMIT_TABLING */
|
#endif /* LIMIT_TABLING */
|
||||||
if (IsMode_LoadAnswers(TabEnt_mode(tab_ent))) {
|
if (IsMode_LoadAnswers(TabEnt_mode(tab_ent))) {
|
||||||
/* load answers from the trie */
|
/* load answers from the trie */
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
if(TrNode_child(ans_node) != NULL) {
|
if(TrNode_child(ans_node) != NULL) {
|
||||||
store_loader_node(tab_ent, ans_node);
|
store_loader_node(tab_ent, ans_node);
|
||||||
}
|
}
|
||||||
@ -493,7 +493,7 @@
|
|||||||
/* execute compiled code from the trie */
|
/* execute compiled code from the trie */
|
||||||
if (SgFr_state(sg_fr) < compiled)
|
if (SgFr_state(sg_fr) < compiled)
|
||||||
update_answer_trie(sg_fr);
|
update_answer_trie(sg_fr);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
PREG = (yamop *) TrNode_child(SgFr_answer_trie(sg_fr));
|
PREG = (yamop *) TrNode_child(SgFr_answer_trie(sg_fr));
|
||||||
PREFETCH_OP(PREG);
|
PREFETCH_OP(PREG);
|
||||||
*--YENV = 0; /* vars_arity */
|
*--YENV = 0; /* vars_arity */
|
||||||
@ -519,11 +519,11 @@
|
|||||||
YENV2MEM;
|
YENV2MEM;
|
||||||
sg_fr = subgoal_search(PREG, YENV_ADDRESS);
|
sg_fr = subgoal_search(PREG, YENV_ADDRESS);
|
||||||
MEM2YENV;
|
MEM2YENV;
|
||||||
LOCK(SgFr_lock(sg_fr));
|
LOCK_SG_FR(sg_fr);
|
||||||
if (SgFr_state(sg_fr) == ready) {
|
if (SgFr_state(sg_fr) == ready) {
|
||||||
/* subgoal new */
|
/* subgoal new */
|
||||||
init_subgoal_frame(sg_fr);
|
init_subgoal_frame(sg_fr);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
store_generator_node(tab_ent, sg_fr, PREG->u.Otapl.s, PREG->u.Otapl.d);
|
store_generator_node(tab_ent, sg_fr, PREG->u.Otapl.s, PREG->u.Otapl.d);
|
||||||
PREG = NEXTOP(PREG, Otapl);
|
PREG = NEXTOP(PREG, Otapl);
|
||||||
PREFETCH_OP(PREG);
|
PREFETCH_OP(PREG);
|
||||||
@ -535,7 +535,7 @@
|
|||||||
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
||||||
CELL *subs_ptr = YENV;
|
CELL *subs_ptr = YENV;
|
||||||
init_subgoal_frame(sg_fr);
|
init_subgoal_frame(sg_fr);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
SgFr_try_answer(sg_fr) = ans_node;
|
SgFr_try_answer(sg_fr) = ans_node;
|
||||||
store_generator_node(tab_ent, sg_fr, PREG->u.Otapl.s, TRY_ANSWER);
|
store_generator_node(tab_ent, sg_fr, PREG->u.Otapl.s, TRY_ANSWER);
|
||||||
PREG = (yamop *) CPREG;
|
PREG = (yamop *) CPREG;
|
||||||
@ -549,7 +549,7 @@
|
|||||||
choiceptr leader_cp;
|
choiceptr leader_cp;
|
||||||
int leader_dep_on_stack;
|
int leader_dep_on_stack;
|
||||||
find_dependency_node(sg_fr, leader_cp, leader_dep_on_stack);
|
find_dependency_node(sg_fr, leader_cp, leader_dep_on_stack);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
find_leader_node(leader_cp, leader_dep_on_stack);
|
find_leader_node(leader_cp, leader_dep_on_stack);
|
||||||
store_consumer_node(tab_ent, sg_fr, leader_cp, leader_dep_on_stack);
|
store_consumer_node(tab_ent, sg_fr, leader_cp, leader_dep_on_stack);
|
||||||
#ifdef DEBUG_OPTYAP
|
#ifdef DEBUG_OPTYAP
|
||||||
@ -571,11 +571,11 @@
|
|||||||
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
||||||
if (ans_node == NULL) {
|
if (ans_node == NULL) {
|
||||||
/* no answers --> fail */
|
/* no answers --> fail */
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
goto fail;
|
goto fail;
|
||||||
} else if (ans_node == SgFr_answer_trie(sg_fr)) {
|
} else if (ans_node == SgFr_answer_trie(sg_fr)) {
|
||||||
/* yes answer --> procceed */
|
/* yes answer --> procceed */
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
PREG = (yamop *) CPREG;
|
PREG = (yamop *) CPREG;
|
||||||
PREFETCH_OP(PREG);
|
PREFETCH_OP(PREG);
|
||||||
YENV = ENV;
|
YENV = ENV;
|
||||||
@ -591,7 +591,7 @@
|
|||||||
#endif /* LIMIT_TABLING */
|
#endif /* LIMIT_TABLING */
|
||||||
if (IsMode_LoadAnswers(TabEnt_mode(tab_ent))) {
|
if (IsMode_LoadAnswers(TabEnt_mode(tab_ent))) {
|
||||||
/* load answers from the trie */
|
/* load answers from the trie */
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
if(TrNode_child(ans_node) != NULL) {
|
if(TrNode_child(ans_node) != NULL) {
|
||||||
store_loader_node(tab_ent, ans_node);
|
store_loader_node(tab_ent, ans_node);
|
||||||
}
|
}
|
||||||
@ -604,7 +604,7 @@
|
|||||||
/* execute compiled code from the trie */
|
/* execute compiled code from the trie */
|
||||||
if (SgFr_state(sg_fr) < compiled)
|
if (SgFr_state(sg_fr) < compiled)
|
||||||
update_answer_trie(sg_fr);
|
update_answer_trie(sg_fr);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
PREG = (yamop *) TrNode_child(SgFr_answer_trie(sg_fr));
|
PREG = (yamop *) TrNode_child(SgFr_answer_trie(sg_fr));
|
||||||
PREFETCH_OP(PREG);
|
PREFETCH_OP(PREG);
|
||||||
*--YENV = 0; /* vars_arity */
|
*--YENV = 0; /* vars_arity */
|
||||||
@ -630,11 +630,11 @@
|
|||||||
YENV2MEM;
|
YENV2MEM;
|
||||||
sg_fr = subgoal_search(PREG, YENV_ADDRESS);
|
sg_fr = subgoal_search(PREG, YENV_ADDRESS);
|
||||||
MEM2YENV;
|
MEM2YENV;
|
||||||
LOCK(SgFr_lock(sg_fr));
|
LOCK_SG_FR(sg_fr);
|
||||||
if (SgFr_state(sg_fr) == ready) {
|
if (SgFr_state(sg_fr) == ready) {
|
||||||
/* subgoal new */
|
/* subgoal new */
|
||||||
init_subgoal_frame(sg_fr);
|
init_subgoal_frame(sg_fr);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
store_generator_node(tab_ent, sg_fr, PREG->u.Otapl.s, NEXTOP(PREG,Otapl));
|
store_generator_node(tab_ent, sg_fr, PREG->u.Otapl.s, NEXTOP(PREG,Otapl));
|
||||||
PREG = PREG->u.Otapl.d;
|
PREG = PREG->u.Otapl.d;
|
||||||
PREFETCH_OP(PREG);
|
PREFETCH_OP(PREG);
|
||||||
@ -646,7 +646,7 @@
|
|||||||
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
||||||
CELL *subs_ptr = YENV;
|
CELL *subs_ptr = YENV;
|
||||||
init_subgoal_frame(sg_fr);
|
init_subgoal_frame(sg_fr);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
SgFr_try_answer(sg_fr) = ans_node;
|
SgFr_try_answer(sg_fr) = ans_node;
|
||||||
store_generator_node(tab_ent, sg_fr, PREG->u.Otapl.s, TRY_ANSWER);
|
store_generator_node(tab_ent, sg_fr, PREG->u.Otapl.s, TRY_ANSWER);
|
||||||
PREG = (yamop *) CPREG;
|
PREG = (yamop *) CPREG;
|
||||||
@ -660,7 +660,7 @@
|
|||||||
choiceptr leader_cp;
|
choiceptr leader_cp;
|
||||||
int leader_dep_on_stack;
|
int leader_dep_on_stack;
|
||||||
find_dependency_node(sg_fr, leader_cp, leader_dep_on_stack);
|
find_dependency_node(sg_fr, leader_cp, leader_dep_on_stack);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
find_leader_node(leader_cp, leader_dep_on_stack);
|
find_leader_node(leader_cp, leader_dep_on_stack);
|
||||||
store_consumer_node(tab_ent, sg_fr, leader_cp, leader_dep_on_stack);
|
store_consumer_node(tab_ent, sg_fr, leader_cp, leader_dep_on_stack);
|
||||||
#ifdef DEBUG_OPTYAP
|
#ifdef DEBUG_OPTYAP
|
||||||
@ -682,11 +682,11 @@
|
|||||||
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
ans_node_ptr ans_node = SgFr_first_answer(sg_fr);
|
||||||
if (ans_node == NULL) {
|
if (ans_node == NULL) {
|
||||||
/* no answers --> fail */
|
/* no answers --> fail */
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
goto fail;
|
goto fail;
|
||||||
} else if (ans_node == SgFr_answer_trie(sg_fr)) {
|
} else if (ans_node == SgFr_answer_trie(sg_fr)) {
|
||||||
/* yes answer --> procceed */
|
/* yes answer --> procceed */
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
PREG = (yamop *) CPREG;
|
PREG = (yamop *) CPREG;
|
||||||
PREFETCH_OP(PREG);
|
PREFETCH_OP(PREG);
|
||||||
YENV = ENV;
|
YENV = ENV;
|
||||||
@ -702,7 +702,7 @@
|
|||||||
#endif /* LIMIT_TABLING */
|
#endif /* LIMIT_TABLING */
|
||||||
if (IsMode_LoadAnswers(TabEnt_mode(tab_ent))) {
|
if (IsMode_LoadAnswers(TabEnt_mode(tab_ent))) {
|
||||||
/* load answers from the trie */
|
/* load answers from the trie */
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
if(TrNode_child(ans_node) != NULL) {
|
if(TrNode_child(ans_node) != NULL) {
|
||||||
store_loader_node(tab_ent, ans_node);
|
store_loader_node(tab_ent, ans_node);
|
||||||
}
|
}
|
||||||
@ -715,7 +715,7 @@
|
|||||||
/* execute compiled code from the trie */
|
/* execute compiled code from the trie */
|
||||||
if (SgFr_state(sg_fr) < compiled)
|
if (SgFr_state(sg_fr) < compiled)
|
||||||
update_answer_trie(sg_fr);
|
update_answer_trie(sg_fr);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
PREG = (yamop *) TrNode_child(SgFr_answer_trie(sg_fr));
|
PREG = (yamop *) TrNode_child(SgFr_answer_trie(sg_fr));
|
||||||
PREFETCH_OP(PREG);
|
PREFETCH_OP(PREG);
|
||||||
*--YENV = 0; /* vars_arity */
|
*--YENV = 0; /* vars_arity */
|
||||||
@ -999,7 +999,7 @@
|
|||||||
TAG_AS_ANSWER_LEAF_NODE(ans_node);
|
TAG_AS_ANSWER_LEAF_NODE(ans_node);
|
||||||
UNLOCK_ANSWER_NODE(ans_node);
|
UNLOCK_ANSWER_NODE(ans_node);
|
||||||
#ifndef ANSWER_TRIE_LOCK_AT_ENTRY_LEVEL
|
#ifndef ANSWER_TRIE_LOCK_AT_ENTRY_LEVEL
|
||||||
LOCK(SgFr_lock(sg_fr));
|
LOCK_SG_FR(sg_fr);
|
||||||
#endif /* ! ANSWER_TRIE_LOCK_AT_ENTRY_LEVEL */
|
#endif /* ! ANSWER_TRIE_LOCK_AT_ENTRY_LEVEL */
|
||||||
if (SgFr_first_answer(sg_fr) == NULL)
|
if (SgFr_first_answer(sg_fr) == NULL)
|
||||||
SgFr_first_answer(sg_fr) = ans_node;
|
SgFr_first_answer(sg_fr) = ans_node;
|
||||||
@ -1015,7 +1015,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* DEBUG_TABLING */
|
#endif /* DEBUG_TABLING */
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
if (IS_BATCHED_GEN_CP(gcp)) {
|
if (IS_BATCHED_GEN_CP(gcp)) {
|
||||||
#ifdef TABLING_EARLY_COMPLETION
|
#ifdef TABLING_EARLY_COMPLETION
|
||||||
if (gcp == PROTECT_FROZEN_B(B) && (*subs_ptr == 0 || gcp->cp_ap == COMPLETION)) {
|
if (gcp == PROTECT_FROZEN_B(B) && (*subs_ptr == 0 || gcp->cp_ap == COMPLETION)) {
|
||||||
@ -1087,7 +1087,7 @@
|
|||||||
OPTYAP_ERROR_CHECKING(answer_resolution, SCH_top_shared_cp(B) && B->cp_or_fr->alternative != ANSWER_RESOLUTION);
|
OPTYAP_ERROR_CHECKING(answer_resolution, SCH_top_shared_cp(B) && B->cp_or_fr->alternative != ANSWER_RESOLUTION);
|
||||||
OPTYAP_ERROR_CHECKING(answer_resolution, !SCH_top_shared_cp(B) && B->cp_ap != ANSWER_RESOLUTION);
|
OPTYAP_ERROR_CHECKING(answer_resolution, !SCH_top_shared_cp(B) && B->cp_ap != ANSWER_RESOLUTION);
|
||||||
dep_fr = CONS_CP(B)->cp_dep_fr;
|
dep_fr = CONS_CP(B)->cp_dep_fr;
|
||||||
LOCK(DepFr_lock(dep_fr));
|
LOCK_DEP_FR(dep_fr);
|
||||||
ans_node = DepFr_last_answer(dep_fr);
|
ans_node = DepFr_last_answer(dep_fr);
|
||||||
if (TrNode_child(ans_node)) {
|
if (TrNode_child(ans_node)) {
|
||||||
/* unconsumed answers */
|
/* unconsumed answers */
|
||||||
@ -1104,10 +1104,10 @@
|
|||||||
#endif /* MODE_DIRECTED_TABLING */
|
#endif /* MODE_DIRECTED_TABLING */
|
||||||
ans_node = TrNode_child(ans_node);
|
ans_node = TrNode_child(ans_node);
|
||||||
DepFr_last_answer(dep_fr) = ans_node;
|
DepFr_last_answer(dep_fr) = ans_node;
|
||||||
UNLOCK(DepFr_lock(dep_fr));
|
UNLOCK_DEP_FR(dep_fr);
|
||||||
consume_answer_and_procceed(dep_fr, ans_node);
|
consume_answer_and_procceed(dep_fr, ans_node);
|
||||||
}
|
}
|
||||||
UNLOCK(DepFr_lock(dep_fr));
|
UNLOCK_DEP_FR(dep_fr);
|
||||||
|
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
if (B == DepFr_leader_cp(LOCAL_top_dep_fr)) {
|
if (B == DepFr_leader_cp(LOCAL_top_dep_fr)) {
|
||||||
@ -1146,7 +1146,7 @@
|
|||||||
/* check for dependency frames with unconsumed answers */
|
/* check for dependency frames with unconsumed answers */
|
||||||
dep_fr = DepFr_next(dep_fr);
|
dep_fr = DepFr_next(dep_fr);
|
||||||
while (YOUNGER_CP(DepFr_cons_cp(dep_fr), chain_cp)) {
|
while (YOUNGER_CP(DepFr_cons_cp(dep_fr), chain_cp)) {
|
||||||
LOCK(DepFr_lock(dep_fr));
|
LOCK_DEP_FR(dep_fr);
|
||||||
ans_node = DepFr_last_answer(dep_fr);
|
ans_node = DepFr_last_answer(dep_fr);
|
||||||
if (TrNode_child(ans_node)) {
|
if (TrNode_child(ans_node)) {
|
||||||
/* dependency frame with unconsumed answers */
|
/* dependency frame with unconsumed answers */
|
||||||
@ -1167,7 +1167,7 @@
|
|||||||
if (YOUNGER_CP(DepFr_backchain_cp(dep_fr), top_chain_cp))
|
if (YOUNGER_CP(DepFr_backchain_cp(dep_fr), top_chain_cp))
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
DepFr_backchain_cp(dep_fr) = top_chain_cp;
|
DepFr_backchain_cp(dep_fr) = top_chain_cp;
|
||||||
UNLOCK(DepFr_lock(dep_fr));
|
UNLOCK_DEP_FR(dep_fr);
|
||||||
|
|
||||||
chain_cp = DepFr_cons_cp(dep_fr);
|
chain_cp = DepFr_cons_cp(dep_fr);
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
@ -1243,7 +1243,7 @@
|
|||||||
TRAIL_LINK(B->cp_tr);
|
TRAIL_LINK(B->cp_tr);
|
||||||
consume_answer_and_procceed(dep_fr, ans_node);
|
consume_answer_and_procceed(dep_fr, ans_node);
|
||||||
}
|
}
|
||||||
UNLOCK(DepFr_lock(dep_fr));
|
UNLOCK_DEP_FR(dep_fr);
|
||||||
dep_fr = DepFr_next(dep_fr);
|
dep_fr = DepFr_next(dep_fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1400,7 +1400,7 @@
|
|||||||
/* check for dependency frames with unconsumed answers */
|
/* check for dependency frames with unconsumed answers */
|
||||||
dep_fr = LOCAL_top_dep_fr;
|
dep_fr = LOCAL_top_dep_fr;
|
||||||
while (YOUNGER_CP(DepFr_cons_cp(dep_fr), B)) {
|
while (YOUNGER_CP(DepFr_cons_cp(dep_fr), B)) {
|
||||||
LOCK(DepFr_lock(dep_fr));
|
LOCK_DEP_FR(dep_fr);
|
||||||
ans_node = DepFr_last_answer(dep_fr);
|
ans_node = DepFr_last_answer(dep_fr);
|
||||||
if (TrNode_child(ans_node)) {
|
if (TrNode_child(ans_node)) {
|
||||||
/* dependency frame with unconsumed answers */
|
/* dependency frame with unconsumed answers */
|
||||||
@ -1428,7 +1428,7 @@
|
|||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
DepFr_backchain_cp(dep_fr) = B->cp_b;
|
DepFr_backchain_cp(dep_fr) = B->cp_b;
|
||||||
}
|
}
|
||||||
UNLOCK(DepFr_lock(dep_fr));
|
UNLOCK_DEP_FR(dep_fr);
|
||||||
|
|
||||||
#ifdef DEBUG_OPTYAP
|
#ifdef DEBUG_OPTYAP
|
||||||
if (GLOBAL_parallel_mode == PARALLEL_MODE_RUNNING) {
|
if (GLOBAL_parallel_mode == PARALLEL_MODE_RUNNING) {
|
||||||
@ -1479,7 +1479,7 @@
|
|||||||
TRAIL_LINK(B->cp_tr);
|
TRAIL_LINK(B->cp_tr);
|
||||||
consume_answer_and_procceed(dep_fr, ans_node);
|
consume_answer_and_procceed(dep_fr, ans_node);
|
||||||
}
|
}
|
||||||
UNLOCK(DepFr_lock(dep_fr));
|
UNLOCK_DEP_FR(dep_fr);
|
||||||
#ifdef TIMESTAMP_CHECK
|
#ifdef TIMESTAMP_CHECK
|
||||||
DepFr_timestamp(dep_fr) = timestamp;
|
DepFr_timestamp(dep_fr) = timestamp;
|
||||||
#endif /* TIMESTAMP_CHECK */
|
#endif /* TIMESTAMP_CHECK */
|
||||||
@ -1569,7 +1569,7 @@
|
|||||||
TR = B->cp_tr;
|
TR = B->cp_tr;
|
||||||
SET_BB(B);
|
SET_BB(B);
|
||||||
LOCK_OR_FRAME(LOCAL_top_or_fr);
|
LOCK_OR_FRAME(LOCAL_top_or_fr);
|
||||||
LOCK(DepFr_lock(LOCAL_top_dep_fr));
|
LOCK_DEP_FR(LOCAL_top_dep_fr);
|
||||||
ans_node = DepFr_last_answer(LOCAL_top_dep_fr);
|
ans_node = DepFr_last_answer(LOCAL_top_dep_fr);
|
||||||
if (TrNode_child(ans_node)) {
|
if (TrNode_child(ans_node)) {
|
||||||
/* unconsumed answers */
|
/* unconsumed answers */
|
||||||
@ -1587,11 +1587,11 @@
|
|||||||
#endif /* MODE_DIRECTED_TABLING */
|
#endif /* MODE_DIRECTED_TABLING */
|
||||||
ans_node = TrNode_child(ans_node);
|
ans_node = TrNode_child(ans_node);
|
||||||
DepFr_last_answer(LOCAL_top_dep_fr) = ans_node;
|
DepFr_last_answer(LOCAL_top_dep_fr) = ans_node;
|
||||||
UNLOCK(DepFr_lock(LOCAL_top_dep_fr));
|
UNLOCK_DEP_FR(LOCAL_top_dep_fr);
|
||||||
consume_answer_and_procceed(LOCAL_top_dep_fr, ans_node);
|
consume_answer_and_procceed(LOCAL_top_dep_fr, ans_node);
|
||||||
}
|
}
|
||||||
/* no unconsumed answers */
|
/* no unconsumed answers */
|
||||||
UNLOCK(DepFr_lock(LOCAL_top_dep_fr));
|
UNLOCK_DEP_FR(LOCAL_top_dep_fr);
|
||||||
if (OrFr_owners(LOCAL_top_or_fr) > 1) {
|
if (OrFr_owners(LOCAL_top_or_fr) > 1) {
|
||||||
/* more owners -> move up one node */
|
/* more owners -> move up one node */
|
||||||
Set_LOCAL_top_cp_on_stack( GetOrFr_node(OrFr_next_on_stack(LOCAL_top_or_fr)) );
|
Set_LOCAL_top_cp_on_stack( GetOrFr_node(OrFr_next_on_stack(LOCAL_top_or_fr)) );
|
||||||
@ -1679,10 +1679,10 @@
|
|||||||
GONext();
|
GONext();
|
||||||
} else {
|
} else {
|
||||||
/* execute compiled code from the trie */
|
/* execute compiled code from the trie */
|
||||||
LOCK(SgFr_lock(sg_fr));
|
LOCK_SG_FR(sg_fr);
|
||||||
if (SgFr_state(sg_fr) < compiled)
|
if (SgFr_state(sg_fr) < compiled)
|
||||||
update_answer_trie(sg_fr);
|
update_answer_trie(sg_fr);
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
PREG = (yamop *) TrNode_child(SgFr_answer_trie(sg_fr));
|
PREG = (yamop *) TrNode_child(SgFr_answer_trie(sg_fr));
|
||||||
PREFETCH_OP(PREG);
|
PREFETCH_OP(PREG);
|
||||||
*--YENV = 0; /* vars_arity */
|
*--YENV = 0; /* vars_arity */
|
||||||
|
@ -88,6 +88,7 @@ static inline tg_sol_fr_ptr CUT_prune_tg_solution_frames(tg_sol_fr_ptr, int);
|
|||||||
** Tabling defines **
|
** Tabling defines **
|
||||||
******************************/
|
******************************/
|
||||||
|
|
||||||
|
/* traverse macros */
|
||||||
#define SHOW_MODE_STRUCTURE 0
|
#define SHOW_MODE_STRUCTURE 0
|
||||||
#define SHOW_MODE_STATISTICS 1
|
#define SHOW_MODE_STATISTICS 1
|
||||||
#define TRAVERSE_MODE_NORMAL 0
|
#define TRAVERSE_MODE_NORMAL 0
|
||||||
@ -135,6 +136,24 @@ static inline tg_sol_fr_ptr CUT_prune_tg_solution_frames(tg_sol_fr_ptr, int);
|
|||||||
#define CompactPairEndList AbsPair((Term *) (2*(LowTagBits + 1)))
|
#define CompactPairEndList AbsPair((Term *) (2*(LowTagBits + 1)))
|
||||||
#endif /* TRIE_COMPACT_PAIRS */
|
#endif /* TRIE_COMPACT_PAIRS */
|
||||||
|
|
||||||
|
/* threads */
|
||||||
|
#if (_trie_retry_gterm - _trie_do_var + 1) + 1 <= 64 /* 60 (trie instructions) + 1 (ANSWER_TRIE_HASH_MARK) <= 64 */
|
||||||
|
#define ANSWER_LEAF_NODE_INSTR_BITS 6 /* 2^6 = 64 */
|
||||||
|
#define ANSWER_LEAF_NODE_INSTR_MASK 0x3F
|
||||||
|
#endif
|
||||||
|
#if SIZEOF_INT_P == 4
|
||||||
|
#define ANSWER_LEAF_NODE_MAX_THREADS (32 - ANSWER_LEAF_NODE_INSTR_BITS)
|
||||||
|
#elif SIZEOF_INT_P == 8
|
||||||
|
#define ANSWER_LEAF_NODE_MAX_THREADS (64 - ANSWER_LEAF_NODE_INSTR_BITS)
|
||||||
|
#else
|
||||||
|
#define ANSWER_LEAF_NODE_MAX_THREADS OOOOPPS!!! Unknown Pointer Sizeof
|
||||||
|
#endif /* SIZEOF_INT_P */
|
||||||
|
#define ANSWER_LEAF_NODE_INSTR_RELATIVE(NODE) TrNode_instr(NODE) = TrNode_instr(NODE) - _trie_do_var + 1
|
||||||
|
#define ANSWER_LEAF_NODE_INSTR_ABSOLUTE(NODE) TrNode_instr(NODE) = (TrNode_instr(NODE) & ANSWER_LEAF_NODE_INSTR_MASK) + _trie_do_var - 1
|
||||||
|
#define ANSWER_LEAF_NODE_SET_WID(NODE,WID) BITMAP_insert(TrNode_instr(NODE), WID + ANSWER_LEAF_NODE_INSTR_BITS)
|
||||||
|
#define ANSWER_LEAF_NODE_DEL_WID(NODE,WID) BITMAP_delete(TrNode_instr(NODE), WID + ANSWER_LEAF_NODE_INSTR_BITS)
|
||||||
|
#define ANSWER_LEAF_NODE_CHECK_WID(NODE,WID) BITMAP_member(TrNode_instr(NODE), WID + ANSWER_LEAF_NODE_INSTR_BITS)
|
||||||
|
|
||||||
/* choice points */
|
/* choice points */
|
||||||
#define NORM_CP(CP) ((choiceptr)(CP))
|
#define NORM_CP(CP) ((choiceptr)(CP))
|
||||||
#define GEN_CP(CP) ((struct generator_choicept *)(CP))
|
#define GEN_CP(CP) ((struct generator_choicept *)(CP))
|
||||||
@ -235,6 +254,7 @@ static inline tg_sol_fr_ptr CUT_prune_tg_solution_frames(tg_sol_fr_ptr, int);
|
|||||||
SgFr_gen_worker(SG_FR) = worker_id; \
|
SgFr_gen_worker(SG_FR) = worker_id; \
|
||||||
SgFr_gen_top_or_fr(SG_FR) = LOCAL_top_or_fr
|
SgFr_gen_top_or_fr(SG_FR) = LOCAL_top_or_fr
|
||||||
#define DepFr_init_yapor_fields(DEP_FR, DEP_ON_STACK, TOP_OR_FR) \
|
#define DepFr_init_yapor_fields(DEP_FR, DEP_ON_STACK, TOP_OR_FR) \
|
||||||
|
INIT_LOCK_DEP_FR(DEP_FR); \
|
||||||
DepFr_leader_dep_is_on_stack(DEP_FR) = DEP_ON_STACK; \
|
DepFr_leader_dep_is_on_stack(DEP_FR) = DEP_ON_STACK; \
|
||||||
DepFr_top_or_fr(DEP_FR) = TOP_OR_FR; \
|
DepFr_top_or_fr(DEP_FR) = TOP_OR_FR; \
|
||||||
DepFr_init_timestamp_field(DEP_FR)
|
DepFr_init_timestamp_field(DEP_FR)
|
||||||
@ -273,6 +293,28 @@ static inline tg_sol_fr_ptr CUT_prune_tg_solution_frames(tg_sol_fr_ptr, int);
|
|||||||
#define AnsHash_init_previous_field(HASH, SG_FR)
|
#define AnsHash_init_previous_field(HASH, SG_FR)
|
||||||
#endif /* MODE_DIRECTED_TABLING */
|
#endif /* MODE_DIRECTED_TABLING */
|
||||||
|
|
||||||
|
#if defined(YAPOR) || defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
|
#define INIT_LOCK_SG_FR(SG_FR) INIT_LOCK(SgFr_lock(SG_FR))
|
||||||
|
#define LOCK_SG_FR(SG_FR) LOCK(SgFr_lock(SG_FR))
|
||||||
|
#define UNLOCK_SG_FR(SG_FR) UNLOCK(SgFr_lock(SG_FR))
|
||||||
|
#else
|
||||||
|
#define INIT_LOCK_SG_FR(SG_FR)
|
||||||
|
#define LOCK_SG_FR(SG_FR)
|
||||||
|
#define UNLOCK_SG_FR(SG_FR)
|
||||||
|
#endif /* YAPOR || THREADS_FULL_SHARING || THREADS_CONSUMER_SHARING */
|
||||||
|
|
||||||
|
#ifdef YAPOR
|
||||||
|
#define INIT_LOCK_DEP_FR(DEP_FR) INIT_LOCK(DepFr_lock(DEP_FR))
|
||||||
|
#define LOCK_DEP_FR(DEP_FR) LOCK(DepFr_lock(DEP_FR))
|
||||||
|
#define UNLOCK_DEP_FR(DEP_FR) UNLOCK(DepFr_lock(DEP_FR))
|
||||||
|
#define IS_UNLOCKED_DEP_FR(DEP_FR) IS_UNLOCKED(DepFr_lock(DEP_FR))
|
||||||
|
#else
|
||||||
|
#define INIT_LOCK_DEP_FR(DEF_FR)
|
||||||
|
#define LOCK_DEP_FR(DEP_FR)
|
||||||
|
#define UNLOCK_DEP_FR(DEP_FR)
|
||||||
|
#define IS_UNLOCKED_DEP_FR(DEP_FR)
|
||||||
|
#endif /* YAPOR */
|
||||||
|
|
||||||
#ifdef SUBGOAL_TRIE_LOCK_AT_ENTRY_LEVEL
|
#ifdef SUBGOAL_TRIE_LOCK_AT_ENTRY_LEVEL
|
||||||
#define LOCK_SUBGOAL_TRIE(TAB_ENT) LOCK(TabEnt_lock(TAB_ENT))
|
#define LOCK_SUBGOAL_TRIE(TAB_ENT) LOCK(TabEnt_lock(TAB_ENT))
|
||||||
#define UNLOCK_SUBGOAL_TRIE(TAB_ENT) UNLOCK(TabEnt_lock(TAB_ENT))
|
#define UNLOCK_SUBGOAL_TRIE(TAB_ENT) UNLOCK(TabEnt_lock(TAB_ENT))
|
||||||
@ -290,8 +332,8 @@ static inline tg_sol_fr_ptr CUT_prune_tg_solution_frames(tg_sol_fr_ptr, int);
|
|||||||
#endif /* SUBGOAL_TRIE_LOCK_AT_ENTRY_LEVEL */
|
#endif /* SUBGOAL_TRIE_LOCK_AT_ENTRY_LEVEL */
|
||||||
|
|
||||||
#ifdef ANSWER_TRIE_LOCK_AT_ENTRY_LEVEL
|
#ifdef ANSWER_TRIE_LOCK_AT_ENTRY_LEVEL
|
||||||
#define LOCK_ANSWER_TRIE(SG_FR) LOCK(SgFr_lock(SG_FR))
|
#define LOCK_ANSWER_TRIE(SG_FR) LOCK_SG_FR(SG_FR)
|
||||||
#define UNLOCK_ANSWER_TRIE(SG_FR) UNLOCK(SgFr_lock(SG_FR))
|
#define UNLOCK_ANSWER_TRIE(SG_FR) UNLOCK_SG_FR(SG_FR)
|
||||||
#define AnsHash_init_chain_fields(HASH, SG_FR) \
|
#define AnsHash_init_chain_fields(HASH, SG_FR) \
|
||||||
AnsHash_init_previous_field(HASH, SG_FR); \
|
AnsHash_init_previous_field(HASH, SG_FR); \
|
||||||
Hash_next(HASH) = SgFr_hash_chain(SG_FR); \
|
Hash_next(HASH) = SgFr_hash_chain(SG_FR); \
|
||||||
@ -300,18 +342,18 @@ static inline tg_sol_fr_ptr CUT_prune_tg_solution_frames(tg_sol_fr_ptr, int);
|
|||||||
#define LOCK_ANSWER_TRIE(SG_FR)
|
#define LOCK_ANSWER_TRIE(SG_FR)
|
||||||
#define UNLOCK_ANSWER_TRIE(SG_FR)
|
#define UNLOCK_ANSWER_TRIE(SG_FR)
|
||||||
#define AnsHash_init_chain_fields(HASH, SG_FR) \
|
#define AnsHash_init_chain_fields(HASH, SG_FR) \
|
||||||
LOCK(SgFr_lock(SG_FR)); \
|
LOCK_SG_FR(SG_FR); \
|
||||||
AnsHash_init_previous_field(HASH, SG_FR); \
|
AnsHash_init_previous_field(HASH, SG_FR); \
|
||||||
Hash_next(HASH) = SgFr_hash_chain(SG_FR); \
|
Hash_next(HASH) = SgFr_hash_chain(SG_FR); \
|
||||||
SgFr_hash_chain(SG_FR) = HASH; \
|
SgFr_hash_chain(SG_FR) = HASH; \
|
||||||
UNLOCK(SgFr_lock(SG_FR))
|
UNLOCK_SG_FR(SG_FR)
|
||||||
#endif /* ANSWER_TRIE_LOCK_AT_ENTRY_LEVEL */
|
#endif /* ANSWER_TRIE_LOCK_AT_ENTRY_LEVEL */
|
||||||
|
|
||||||
#ifdef SUBGOAL_TRIE_LOCK_USING_NODE_FIELD
|
#ifdef SUBGOAL_TRIE_LOCK_USING_NODE_FIELD
|
||||||
#define LOCK_SUBGOAL_NODE(NODE) LOCK(TrNode_lock(NODE))
|
#define LOCK_SUBGOAL_NODE(NODE) LOCK(TrNode_lock(NODE))
|
||||||
#define UNLOCK_SUBGOAL_NODE(NODE) UNLOCK(TrNode_lock(NODE))
|
#define UNLOCK_SUBGOAL_NODE(NODE) UNLOCK(TrNode_lock(NODE))
|
||||||
#define SgNode_init_lock_field(NODE) INIT_LOCK(TrNode_lock(NODE))
|
#define SgNode_init_lock_field(NODE) INIT_LOCK(TrNode_lock(NODE))
|
||||||
#elif SUBGOAL_TRIE_LOCK_USING_GLOBAL_ARRAY
|
#elif defined(SUBGOAL_TRIE_LOCK_USING_GLOBAL_ARRAY)
|
||||||
#define LOCK_SUBGOAL_NODE(NODE) LOCK(HASH_TRIE_LOCK(NODE))
|
#define LOCK_SUBGOAL_NODE(NODE) LOCK(HASH_TRIE_LOCK(NODE))
|
||||||
#define UNLOCK_SUBGOAL_NODE(NODE) UNLOCK(HASH_TRIE_LOCK(NODE))
|
#define UNLOCK_SUBGOAL_NODE(NODE) UNLOCK(HASH_TRIE_LOCK(NODE))
|
||||||
#define SgNode_init_lock_field(NODE)
|
#define SgNode_init_lock_field(NODE)
|
||||||
@ -325,7 +367,7 @@ static inline tg_sol_fr_ptr CUT_prune_tg_solution_frames(tg_sol_fr_ptr, int);
|
|||||||
#define LOCK_ANSWER_NODE(NODE) LOCK(TrNode_lock(NODE))
|
#define LOCK_ANSWER_NODE(NODE) LOCK(TrNode_lock(NODE))
|
||||||
#define UNLOCK_ANSWER_NODE(NODE) UNLOCK(TrNode_lock(NODE))
|
#define UNLOCK_ANSWER_NODE(NODE) UNLOCK(TrNode_lock(NODE))
|
||||||
#define AnsNode_init_lock_field(NODE) INIT_LOCK(TrNode_lock(NODE))
|
#define AnsNode_init_lock_field(NODE) INIT_LOCK(TrNode_lock(NODE))
|
||||||
#elif ANSWER_TRIE_LOCK_USING_GLOBAL_ARRAY
|
#elif defined(ANSWER_TRIE_LOCK_USING_GLOBAL_ARRAY)
|
||||||
#define LOCK_ANSWER_NODE(NODE) LOCK(HASH_TRIE_LOCK(NODE))
|
#define LOCK_ANSWER_NODE(NODE) LOCK(HASH_TRIE_LOCK(NODE))
|
||||||
#define UNLOCK_ANSWER_NODE(NODE) UNLOCK(HASH_TRIE_LOCK(NODE))
|
#define UNLOCK_ANSWER_NODE(NODE) UNLOCK(HASH_TRIE_LOCK(NODE))
|
||||||
#define AnsNode_init_lock_field(NODE)
|
#define AnsNode_init_lock_field(NODE)
|
||||||
@ -339,7 +381,7 @@ static inline tg_sol_fr_ptr CUT_prune_tg_solution_frames(tg_sol_fr_ptr, int);
|
|||||||
#define LOCK_GLOBAL_NODE(NODE) LOCK(TrNode_lock(NODE))
|
#define LOCK_GLOBAL_NODE(NODE) LOCK(TrNode_lock(NODE))
|
||||||
#define UNLOCK_GLOBAL_NODE(NODE) UNLOCK(TrNode_lock(NODE))
|
#define UNLOCK_GLOBAL_NODE(NODE) UNLOCK(TrNode_lock(NODE))
|
||||||
#define GtNode_init_lock_field(NODE) INIT_LOCK(TrNode_lock(NODE))
|
#define GtNode_init_lock_field(NODE) INIT_LOCK(TrNode_lock(NODE))
|
||||||
#elif GLOBAL_TRIE_LOCK_USING_GLOBAL_ARRAY
|
#elif defined(GLOBAL_TRIE_LOCK_USING_GLOBAL_ARRAY)
|
||||||
#define LOCK_GLOBAL_NODE(NODE) LOCK(HASH_TRIE_LOCK(NODE))
|
#define LOCK_GLOBAL_NODE(NODE) LOCK(HASH_TRIE_LOCK(NODE))
|
||||||
#define UNLOCK_GLOBAL_NODE(NODE) UNLOCK(HASH_TRIE_LOCK(NODE))
|
#define UNLOCK_GLOBAL_NODE(NODE) UNLOCK(HASH_TRIE_LOCK(NODE))
|
||||||
#define GtNode_init_lock_field(NODE)
|
#define GtNode_init_lock_field(NODE)
|
||||||
@ -379,7 +421,7 @@ static inline tg_sol_fr_ptr CUT_prune_tg_solution_frames(tg_sol_fr_ptr, int);
|
|||||||
{ register ans_node_ptr ans_node; \
|
{ register ans_node_ptr ans_node; \
|
||||||
new_answer_trie_node(ans_node, 0, 0, NULL, NULL, NULL); \
|
new_answer_trie_node(ans_node, 0, 0, NULL, NULL, NULL); \
|
||||||
ALLOC_SUBGOAL_FRAME(SG_FR); \
|
ALLOC_SUBGOAL_FRAME(SG_FR); \
|
||||||
INIT_LOCK(SgFr_lock(SG_FR)); \
|
INIT_LOCK_SG_FR(SG_FR); \
|
||||||
SgFr_code(SG_FR) = CODE; \
|
SgFr_code(SG_FR) = CODE; \
|
||||||
SgFr_state(SG_FR) = ready; \
|
SgFr_state(SG_FR) = ready; \
|
||||||
SgFr_hash_chain(SG_FR) = NULL; \
|
SgFr_hash_chain(SG_FR) = NULL; \
|
||||||
@ -398,7 +440,6 @@ static inline tg_sol_fr_ptr CUT_prune_tg_solution_frames(tg_sol_fr_ptr, int);
|
|||||||
|
|
||||||
#define new_dependency_frame(DEP_FR, DEP_ON_STACK, TOP_OR_FR, LEADER_CP, CONS_CP, SG_FR, NEXT) \
|
#define new_dependency_frame(DEP_FR, DEP_ON_STACK, TOP_OR_FR, LEADER_CP, CONS_CP, SG_FR, NEXT) \
|
||||||
ALLOC_DEPENDENCY_FRAME(DEP_FR); \
|
ALLOC_DEPENDENCY_FRAME(DEP_FR); \
|
||||||
INIT_LOCK(DepFr_lock(DEP_FR)); \
|
|
||||||
DepFr_init_yapor_fields(DEP_FR, DEP_ON_STACK, TOP_OR_FR); \
|
DepFr_init_yapor_fields(DEP_FR, DEP_ON_STACK, TOP_OR_FR); \
|
||||||
DepFr_backchain_cp(DEP_FR) = NULL; \
|
DepFr_backchain_cp(DEP_FR) = NULL; \
|
||||||
DepFr_leader_cp(DEP_FR) = NORM_CP(LEADER_CP); \
|
DepFr_leader_cp(DEP_FR) = NORM_CP(LEADER_CP); \
|
||||||
@ -565,9 +606,9 @@ static inline void adjust_freeze_registers(void) {
|
|||||||
|
|
||||||
|
|
||||||
static inline void mark_as_completed(sg_fr_ptr sg_fr) {
|
static inline void mark_as_completed(sg_fr_ptr sg_fr) {
|
||||||
LOCK(SgFr_lock(sg_fr));
|
LOCK_SG_FR(sg_fr);
|
||||||
SgFr_state(sg_fr) = complete;
|
SgFr_state(sg_fr) = complete;
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
#ifdef MODE_DIRECTED_TABLING
|
#ifdef MODE_DIRECTED_TABLING
|
||||||
if (SgFr_invalid_chain(sg_fr)) {
|
if (SgFr_invalid_chain(sg_fr)) {
|
||||||
ans_node_ptr current_node, next_node;
|
ans_node_ptr current_node, next_node;
|
||||||
@ -786,23 +827,23 @@ static inline void abolish_incomplete_subgoals(choiceptr prune_cp) {
|
|||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
sg_fr = LOCAL_top_sg_fr;
|
sg_fr = LOCAL_top_sg_fr;
|
||||||
LOCAL_top_sg_fr = SgFr_next(sg_fr);
|
LOCAL_top_sg_fr = SgFr_next(sg_fr);
|
||||||
LOCK(SgFr_lock(sg_fr));
|
LOCK_SG_FR(sg_fr);
|
||||||
if (SgFr_first_answer(sg_fr) == NULL) {
|
if (SgFr_first_answer(sg_fr) == NULL) {
|
||||||
/* no answers --> ready */
|
/* no answers --> ready */
|
||||||
SgFr_state(sg_fr) = ready;
|
SgFr_state(sg_fr) = ready;
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
} else if (SgFr_first_answer(sg_fr) == SgFr_answer_trie(sg_fr)) {
|
} else if (SgFr_first_answer(sg_fr) == SgFr_answer_trie(sg_fr)) {
|
||||||
/* yes answer --> complete */
|
/* yes answer --> complete */
|
||||||
#ifndef TABLING_EARLY_COMPLETION
|
#ifndef TABLING_EARLY_COMPLETION
|
||||||
/* with early completion, at this point the subgoal should be already completed */
|
/* with early completion, at this point the subgoal should be already completed */
|
||||||
SgFr_state(sg_fr) = complete;
|
SgFr_state(sg_fr) = complete;
|
||||||
#endif /* TABLING_EARLY_COMPLETION */
|
#endif /* TABLING_EARLY_COMPLETION */
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
} else {
|
} else {
|
||||||
/* answers --> incomplete/ready */
|
/* answers --> incomplete/ready */
|
||||||
#ifdef INCOMPLETE_TABLING
|
#ifdef INCOMPLETE_TABLING
|
||||||
SgFr_state(sg_fr) = incomplete;
|
SgFr_state(sg_fr) = incomplete;
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
#ifdef MODE_DIRECTED_TABLING
|
#ifdef MODE_DIRECTED_TABLING
|
||||||
if (SgFr_invalid_chain(sg_fr)) {
|
if (SgFr_invalid_chain(sg_fr)) {
|
||||||
ans_node_ptr current_node, next_node;
|
ans_node_ptr current_node, next_node;
|
||||||
@ -846,7 +887,7 @@ static inline void abolish_incomplete_subgoals(choiceptr prune_cp) {
|
|||||||
SgFr_last_answer(sg_fr) = NULL;
|
SgFr_last_answer(sg_fr) = NULL;
|
||||||
node = TrNode_child(SgFr_answer_trie(sg_fr));
|
node = TrNode_child(SgFr_answer_trie(sg_fr));
|
||||||
TrNode_child(SgFr_answer_trie(sg_fr)) = NULL;
|
TrNode_child(SgFr_answer_trie(sg_fr)) = NULL;
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
free_answer_trie(node, TRAVERSE_MODE_NORMAL, TRAVERSE_POSITION_FIRST);
|
free_answer_trie(node, TRAVERSE_MODE_NORMAL, TRAVERSE_POSITION_FIRST);
|
||||||
#if defined(MODE_DIRECTED_TABLING) && ! defined(YAPOR)
|
#if defined(MODE_DIRECTED_TABLING) && ! defined(YAPOR)
|
||||||
/* free invalid answer nodes */
|
/* free invalid answer nodes */
|
||||||
@ -1079,14 +1120,14 @@ static inline void CUT_validate_tg_answers(tg_sol_fr_ptr valid_solutions) {
|
|||||||
FREE_TG_SOLUTION_FRAME(free_solution);
|
FREE_TG_SOLUTION_FRAME(free_solution);
|
||||||
} while (ltt_valid_solutions);
|
} while (ltt_valid_solutions);
|
||||||
if (first_answer) {
|
if (first_answer) {
|
||||||
LOCK(SgFr_lock(sg_fr));
|
LOCK_SG_FR(sg_fr);
|
||||||
if (SgFr_first_answer(sg_fr) == NULL) {
|
if (SgFr_first_answer(sg_fr) == NULL) {
|
||||||
SgFr_first_answer(sg_fr) = first_answer;
|
SgFr_first_answer(sg_fr) = first_answer;
|
||||||
} else {
|
} else {
|
||||||
TrNode_child(SgFr_last_answer(sg_fr)) = first_answer;
|
TrNode_child(SgFr_last_answer(sg_fr)) = first_answer;
|
||||||
}
|
}
|
||||||
SgFr_last_answer(sg_fr) = last_answer;
|
SgFr_last_answer(sg_fr) = last_answer;
|
||||||
UNLOCK(SgFr_lock(sg_fr));
|
UNLOCK_SG_FR(sg_fr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -30,22 +30,31 @@ typedef struct table_entry {
|
|||||||
short execution_mode; /* combines yap_flags with pred_flags */
|
short execution_mode; /* combines yap_flags with pred_flags */
|
||||||
#ifdef MODE_DIRECTED_TABLING
|
#ifdef MODE_DIRECTED_TABLING
|
||||||
int* mode_directed_array;
|
int* mode_directed_array;
|
||||||
#endif /*MODE_DIRECTED_TABLING*/
|
#endif /* MODE_DIRECTED_TABLING */
|
||||||
|
#ifdef THREADS_NO_SHARING
|
||||||
|
struct subgoal_trie_node *subgoal_trie[THREADS_FIRST_LEVEL_BUCKETS];
|
||||||
|
#else
|
||||||
struct subgoal_trie_node *subgoal_trie;
|
struct subgoal_trie_node *subgoal_trie;
|
||||||
|
#endif /* THREADS_NO_SHARING */
|
||||||
struct subgoal_trie_hash *hash_chain;
|
struct subgoal_trie_hash *hash_chain;
|
||||||
struct table_entry *next;
|
struct table_entry *next;
|
||||||
} *tab_ent_ptr;
|
} *tab_ent_ptr;
|
||||||
|
|
||||||
#define TabEnt_lock(X) ((X)->lock)
|
#define TabEnt_lock(X) ((X)->lock)
|
||||||
#define TabEnt_pe(X) ((X)->pred_entry)
|
#define TabEnt_pe(X) ((X)->pred_entry)
|
||||||
#define TabEnt_atom(X) ((X)->pred_atom)
|
#define TabEnt_atom(X) ((X)->pred_atom)
|
||||||
#define TabEnt_arity(X) ((X)->pred_arity)
|
#define TabEnt_arity(X) ((X)->pred_arity)
|
||||||
#define TabEnt_flags(X) ((X)->pred_flags)
|
#define TabEnt_flags(X) ((X)->pred_flags)
|
||||||
#define TabEnt_mode(X) ((X)->execution_mode)
|
#define TabEnt_mode(X) ((X)->execution_mode)
|
||||||
#define TabEnt_mode_directed(X) ((X)->mode_directed_array)
|
#define TabEnt_mode_directed(X) ((X)->mode_directed_array)
|
||||||
#define TabEnt_subgoal_trie(X) ((X)->subgoal_trie)
|
#ifdef THREADS_NO_SHARING
|
||||||
#define TabEnt_hash_chain(X) ((X)->hash_chain)
|
#define TabEnt_subgoal_trie(X) ((X)->subgoal_trie[worker_id])
|
||||||
#define TabEnt_next(X) ((X)->next)
|
//#define TabEnt_subgoal_trie(X,I) ((X)->subgoal_trie[I])
|
||||||
|
#else
|
||||||
|
#define TabEnt_subgoal_trie(X) ((X)->subgoal_trie)
|
||||||
|
#endif /* THREADS_NO_SHARING */
|
||||||
|
#define TabEnt_hash_chain(X) ((X)->hash_chain)
|
||||||
|
#define TabEnt_next(X) ((X)->next)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -148,6 +157,24 @@ typedef struct global_trie_hash {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************
|
||||||
|
** answer_ref_node **
|
||||||
|
******************************/
|
||||||
|
|
||||||
|
#ifdef THREADS_FULL_SHARING
|
||||||
|
typedef struct answer_ref_node {
|
||||||
|
struct answer_trie_node *ans_node;
|
||||||
|
struct answer_ref_node *next;
|
||||||
|
struct answer_ref_node *previous;
|
||||||
|
} *ans_ref_ptr;
|
||||||
|
#endif /* THREADS_FULL_SHARING */
|
||||||
|
|
||||||
|
#define RefNode_answer(X) ((X)->ans_node)
|
||||||
|
#define RefNode_next(X) ((X)->next)
|
||||||
|
#define RefNode_previous(X) ((X)->previous)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
** Execution Data Structures **
|
** Execution Data Structures **
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
@ -193,29 +220,32 @@ struct loader_choicept {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************
|
||||||
|
** subgoal_state_flag **
|
||||||
|
*********************************/
|
||||||
|
|
||||||
|
typedef enum { /* do not change order !!! */
|
||||||
|
incomplete = 0, /* INCOMPLETE_TABLING */
|
||||||
|
ready_external = 1, /* THREADS_CONSUMER_SHARING */
|
||||||
|
ready = 2,
|
||||||
|
evaluating = 3,
|
||||||
|
complete = 4,
|
||||||
|
complete_in_use = 5, /* LIMIT_TABLING */
|
||||||
|
compiled = 6,
|
||||||
|
compiled_in_use = 7 /* LIMIT_TABLING */
|
||||||
|
} subgoal_state_flag;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/****************************
|
/****************************
|
||||||
** subgoal_frame **
|
** subgoal_entry **
|
||||||
****************************/
|
****************************/
|
||||||
|
|
||||||
typedef struct subgoal_frame {
|
typedef struct subgoal_entry {
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
lockvar lock;
|
lockvar lock;
|
||||||
#endif /* YAPOR || THREADS */
|
#endif /* YAPOR || THREADS_FULL_SHARING || THREADS_CONSUMER_SHARING */
|
||||||
#ifdef YAPOR
|
|
||||||
int generator_worker;
|
|
||||||
struct or_frame *top_or_frame_on_generator_branch;
|
|
||||||
#endif /* YAPOR */
|
|
||||||
yamop *code_of_subgoal;
|
yamop *code_of_subgoal;
|
||||||
enum { /* do not change order !!! */
|
|
||||||
incomplete = 0, /* INCOMPLETE_TABLING */
|
|
||||||
ready = 1,
|
|
||||||
evaluating = 2,
|
|
||||||
complete = 3,
|
|
||||||
complete_in_use = 4, /* LIMIT_TABLING */
|
|
||||||
compiled = 5,
|
|
||||||
compiled_in_use = 6 /* LIMIT_TABLING */
|
|
||||||
} state_flag;
|
|
||||||
choiceptr generator_choice_point;
|
|
||||||
struct answer_trie_hash *hash_chain;
|
struct answer_trie_hash *hash_chain;
|
||||||
struct answer_trie_node *answer_trie;
|
struct answer_trie_node *answer_trie;
|
||||||
struct answer_trie_node *first_answer;
|
struct answer_trie_node *first_answer;
|
||||||
@ -223,61 +253,128 @@ typedef struct subgoal_frame {
|
|||||||
#ifdef MODE_DIRECTED_TABLING
|
#ifdef MODE_DIRECTED_TABLING
|
||||||
int* mode_directed_array;
|
int* mode_directed_array;
|
||||||
struct answer_trie_node *invalid_chain;
|
struct answer_trie_node *invalid_chain;
|
||||||
#endif /*MODE_DIRECTED_TABLING*/
|
#endif /* MODE_DIRECTED_TABLING */
|
||||||
#ifdef INCOMPLETE_TABLING
|
#ifdef INCOMPLETE_TABLING
|
||||||
struct answer_trie_node *try_answer;
|
struct answer_trie_node *try_answer;
|
||||||
#endif /* INCOMPLETE_TABLING */
|
#endif /* INCOMPLETE_TABLING */
|
||||||
#ifdef LIMIT_TABLING
|
#ifdef LIMIT_TABLING
|
||||||
struct subgoal_frame *previous;
|
struct subgoal_frame *previous;
|
||||||
#endif /* LIMIT_TABLING */
|
#endif /* LIMIT_TABLING */
|
||||||
|
#ifdef YAPOR
|
||||||
|
struct or_frame *top_or_frame_on_generator_branch;
|
||||||
|
#endif /* YAPOR */
|
||||||
|
#if defined(YAPOR) || defined(THREADS_CONSUMER_SHARING)
|
||||||
|
int generator_worker;
|
||||||
|
#endif /* YAPOR || THREADS_CONSUMER_SHARING */
|
||||||
|
#if defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
|
subgoal_state_flag state_flag;
|
||||||
|
int active_workers;
|
||||||
|
struct subgoal_frame *subgoal_frame[THREADS_FIRST_LEVEL_BUCKETS];
|
||||||
|
#endif /* THREADS_FULL_SHARING || THREADS_CONSUMER_SHARING */
|
||||||
|
}* sg_ent_ptr;
|
||||||
|
|
||||||
|
#define SgEnt_lock(X) ((X)->lock)
|
||||||
|
#define SgEnt_code(X) ((X)->code_of_subgoal)
|
||||||
|
#define SgEnt_tab_ent(X) (((X)->code_of_subgoal)->u.Otapl.te)
|
||||||
|
#define SgEnt_arity(X) (((X)->code_of_subgoal)->u.Otapl.s)
|
||||||
|
#define SgEnt_hash_chain(X) ((X)->hash_chain)
|
||||||
|
#define SgEnt_answer_trie(X) ((X)->answer_trie)
|
||||||
|
#define SgEnt_first_answer(X) ((X)->first_answer)
|
||||||
|
#define SgEnt_last_answer(X) ((X)->last_answer)
|
||||||
|
#define SgEnt_mode_directed(X) ((X)->mode_directed_array)
|
||||||
|
#define SgEnt_invalid_chain(X) ((X)->invalid_chain)
|
||||||
|
#define SgEnt_try_answer(X) ((X)->try_answer)
|
||||||
|
#define SgEnt_previous(X) ((X)->previous)
|
||||||
|
#define SgEnt_gen_top_or_fr(X) ((X)->top_or_frame_on_generator_branch)
|
||||||
|
#define SgEnt_gen_worker(X) ((X)->generator_worker)
|
||||||
|
#define SgEnt_sg_ent_state(X) ((X)->state_flag)
|
||||||
|
#define SgEnt_active_workers(X) ((X)->active_workers)
|
||||||
|
#define SgEnt_sg_fr(X,I) ((X)->subgoal_frame[I])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/****************************
|
||||||
|
** subgoal_frame **
|
||||||
|
****************************/
|
||||||
|
|
||||||
|
typedef struct subgoal_frame {
|
||||||
|
#if defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
|
struct subgoal_entry *subgoal_entry;
|
||||||
|
#ifdef THREADS_FULL_SHARING
|
||||||
|
struct answer_trie_node *batched_last_answer;
|
||||||
|
struct answer_ref_node *batched_cached_answers;
|
||||||
|
#endif /* THREADS_FULL_SHARING */
|
||||||
|
#else
|
||||||
|
struct subgoal_entry subgoal_entry;
|
||||||
|
#endif /* THREADS_FULL_SHARING || THREADS_CONSUMER_SHARING */
|
||||||
|
subgoal_state_flag state_flag;
|
||||||
|
choiceptr generator_choice_point;
|
||||||
struct subgoal_frame *next;
|
struct subgoal_frame *next;
|
||||||
} *sg_fr_ptr;
|
} *sg_fr_ptr;
|
||||||
|
|
||||||
#define SgFr_lock(X) ((X)->lock)
|
/* subgoal_entry fields */
|
||||||
#define SgFr_gen_worker(X) ((X)->generator_worker)
|
#if defined(THREADS_FULL_SHARING) || defined(THREADS_CONSUMER_SHARING)
|
||||||
#define SgFr_gen_top_or_fr(X) ((X)->top_or_frame_on_generator_branch)
|
#define SUBGOAL_ENTRY(X) SgFr_subgoal_entry(X)->
|
||||||
#define SgFr_code(X) ((X)->code_of_subgoal)
|
#else
|
||||||
#define SgFr_tab_ent(X) (((X)->code_of_subgoal)->u.Otapl.te)
|
#define SUBGOAL_ENTRY(X) (X)->subgoal_entry.
|
||||||
#define SgFr_arity(X) (((X)->code_of_subgoal)->u.Otapl.s)
|
#endif /* THREADS */
|
||||||
#define SgFr_state(X) ((X)->state_flag)
|
#define SgFr_lock(X) (SUBGOAL_ENTRY(X) lock)
|
||||||
#define SgFr_gen_cp(X) ((X)->generator_choice_point)
|
#define SgFr_code(X) (SUBGOAL_ENTRY(X) code_of_subgoal)
|
||||||
#define SgFr_hash_chain(X) ((X)->hash_chain)
|
#define SgFr_tab_ent(X) ((SUBGOAL_ENTRY(X) code_of_subgoal)->u.Otapl.te)
|
||||||
#define SgFr_answer_trie(X) ((X)->answer_trie)
|
#define SgFr_arity(X) ((SUBGOAL_ENTRY(X) code_of_subgoal)->u.Otapl.s)
|
||||||
#define SgFr_first_answer(X) ((X)->first_answer)
|
#define SgFr_hash_chain(X) (SUBGOAL_ENTRY(X) hash_chain)
|
||||||
#define SgFr_last_answer(X) ((X)->last_answer)
|
#define SgFr_answer_trie(X) (SUBGOAL_ENTRY(X) answer_trie)
|
||||||
#define SgFr_mode_directed(X) ((X)->mode_directed_array)
|
#define SgFr_first_answer(X) (SUBGOAL_ENTRY(X) first_answer)
|
||||||
#define SgFr_invalid_chain(X) ((X)->invalid_chain)
|
#define SgFr_last_answer(X) (SUBGOAL_ENTRY(X) last_answer)
|
||||||
#define SgFr_try_answer(X) ((X)->try_answer)
|
#define SgFr_mode_directed(X) (SUBGOAL_ENTRY(X) mode_directed_array)
|
||||||
#define SgFr_previous(X) ((X)->previous)
|
#define SgFr_invalid_chain(X) (SUBGOAL_ENTRY(X) invalid_chain)
|
||||||
#define SgFr_next(X) ((X)->next)
|
#define SgFr_try_answer(X) (SUBGOAL_ENTRY(X) try_answer)
|
||||||
|
#define SgFr_previous(X) (SUBGOAL_ENTRY(X) previous)
|
||||||
|
#define SgFr_gen_top_or_fr(X) (SUBGOAL_ENTRY(X) top_or_frame_on_generator_branch)
|
||||||
|
#define SgFr_gen_worker(X) (SUBGOAL_ENTRY(X) generator_worker)
|
||||||
|
#define SgFr_sg_ent_state(X) (SUBGOAL_ENTRY(X) state_flag)
|
||||||
|
#define SgFr_active_workers(X) (SUBGOAL_ENTRY(X) active_workers)
|
||||||
|
/* subgoal_frame fields */
|
||||||
|
#define SgFr_subgoal_entry(X) ((X)->subgoal_entry)
|
||||||
|
#define SgFr_batched_last_answer(X) ((X)->batched_last_answer)
|
||||||
|
#define SgFr_batched_cached_answers(X) ((X)->batched_cached_answers)
|
||||||
|
#define SgFr_state(X) ((X)->state_flag)
|
||||||
|
#define SgFr_gen_cp(X) ((X)->generator_choice_point)
|
||||||
|
#define SgFr_next(X) ((X)->next)
|
||||||
|
|
||||||
/**************************************************************************************************
|
/**********************************************************************************************************
|
||||||
|
|
||||||
SgFr_lock: spin-lock to modify the frame fields.
|
SgFr_lock: spin-lock to modify the frame fields.
|
||||||
SgFr_gen_worker: the id of the worker that had allocated the frame.
|
SgFr_code initial instruction of the subgoal's compiled code.
|
||||||
SgFr_gen_top_or_fr: a pointer to the top or-frame in the generator choice point branch.
|
SgFr_tab_ent a pointer to the corresponding table entry.
|
||||||
When the generator choice point is shared the pointer is updated
|
SgFr_arity the arity of the subgoal.
|
||||||
to its or-frame. It is used to find the direct dependency node for
|
SgFr_hash_chain: a pointer to the first answer_trie_hash struct.
|
||||||
consumer nodes in other workers branches.
|
SgFr_answer_trie: a pointer to the top answer trie node.
|
||||||
SgFr_code initial instruction of the subgoal's compiled code.
|
SgFr_first_answer: a pointer to the leaf answer trie node of the first answer.
|
||||||
SgFr_tab_ent a pointer to the correspondent table entry.
|
SgFr_last_answer: a pointer to the leaf answer trie node of the last answer.
|
||||||
SgFr_arity the arity of the subgoal.
|
SgFr_mode_directed: a pointer to the mode directed array.
|
||||||
SgFr_state: a flag that indicates the subgoal state.
|
SgFr_invalid_chain: a pointer to the first invalid leaf node when using mode directed tabling.
|
||||||
SgFr_gen_cp: a pointer to the correspondent generator choice point.
|
SgFr_try_answer: a pointer to the leaf answer trie node of the last tried answer.
|
||||||
SgFr_hash_chain: a pointer to the first answer_trie_hash struct for the subgoal in hand.
|
It is used when a subgoal was not completed during the previous evaluation.
|
||||||
SgFr_answer_trie: a pointer to the top answer trie node.
|
Not completed subgoals start by trying the answers already found.
|
||||||
It is used to check for/insert new answers.
|
SgFr_previous: a pointer to the previous subgoal frame on the chain.
|
||||||
SgFr_first_answer: a pointer to the bottom answer trie node of the first available answer.
|
SgFr_gen_top_or_fr: a pointer to the top or-frame in the generator choice point branch.
|
||||||
SgFr_last_answer: a pointer to the bottom answer trie node of the last available answer.
|
When the generator choice point is shared the pointer is updated
|
||||||
SgFr_mode_directed: a pointer to the mode directed array.
|
to its or-frame. It is used to find the direct dependency node for
|
||||||
SgFr_invalid_chain: a pointer to the first invalid leaf node when using mode directed tabling.
|
consumer nodes in other workers branches.
|
||||||
SgFr_try_answer: a pointer to the bottom answer trie node of the last tried answer.
|
SgFr_gen_worker: the id of the worker that had allocated the frame.
|
||||||
It is used when a subgoal was not completed during the previous evaluation.
|
SgFr_sg_ent_state: a flag that indicates the subgoal entry state.
|
||||||
Not completed subgoals start by trying the answers already found.
|
SgFr_active_workers: the number of workers evaluating the subgoal.
|
||||||
SgFr_previous: a pointer to the previous subgoal frame on the chain.
|
SgFr_subgoal_entry: a pointer to the corresponding subgoal entry.
|
||||||
SgFr_next: a pointer to the next subgoal frame on the chain.
|
SgFr_batched_last_answer: a pointer to the leaf answer trie node of the last checked answer
|
||||||
|
when using batched scheduling.
|
||||||
|
SgFr_batched_cached_answers: a pointer to the chain of answers already inserted in the trie, but not
|
||||||
|
yet found when using batched scheduling.
|
||||||
|
SgFr_state: a flag that indicates the subgoal frame state.
|
||||||
|
SgFr_gen_cp: a pointer to the correspondent generator choice point.
|
||||||
|
SgFr_next: a pointer to the next subgoal frame on the chain.
|
||||||
|
|
||||||
**************************************************************************************************/
|
**********************************************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -286,10 +383,8 @@ typedef struct subgoal_frame {
|
|||||||
*******************************/
|
*******************************/
|
||||||
|
|
||||||
typedef struct dependency_frame {
|
typedef struct dependency_frame {
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
|
||||||
lockvar lock;
|
|
||||||
#endif /* YAPOR || THREADS */
|
|
||||||
#ifdef YAPOR
|
#ifdef YAPOR
|
||||||
|
lockvar lock;
|
||||||
int leader_dependency_is_on_stack;
|
int leader_dependency_is_on_stack;
|
||||||
struct or_frame *top_or_frame;
|
struct or_frame *top_or_frame;
|
||||||
#ifdef TIMESTAMP_CHECK
|
#ifdef TIMESTAMP_CHECK
|
||||||
@ -300,6 +395,9 @@ typedef struct dependency_frame {
|
|||||||
choiceptr leader_choice_point;
|
choiceptr leader_choice_point;
|
||||||
choiceptr consumer_choice_point;
|
choiceptr consumer_choice_point;
|
||||||
struct answer_trie_node *last_consumed_answer;
|
struct answer_trie_node *last_consumed_answer;
|
||||||
|
#ifdef THREADS_CONSUMER_SHARING
|
||||||
|
int generator_is_external;
|
||||||
|
#endif /* THREADS_CONSUMER_SHARING */
|
||||||
struct dependency_frame *next;
|
struct dependency_frame *next;
|
||||||
} *dep_fr_ptr;
|
} *dep_fr_ptr;
|
||||||
|
|
||||||
@ -311,9 +409,10 @@ typedef struct dependency_frame {
|
|||||||
#define DepFr_leader_cp(X) ((X)->leader_choice_point)
|
#define DepFr_leader_cp(X) ((X)->leader_choice_point)
|
||||||
#define DepFr_cons_cp(X) ((X)->consumer_choice_point)
|
#define DepFr_cons_cp(X) ((X)->consumer_choice_point)
|
||||||
#define DepFr_last_answer(X) ((X)->last_consumed_answer)
|
#define DepFr_last_answer(X) ((X)->last_consumed_answer)
|
||||||
|
#define DepFr_external(X) ((X)->generator_is_external)
|
||||||
#define DepFr_next(X) ((X)->next)
|
#define DepFr_next(X) ((X)->next)
|
||||||
|
|
||||||
/*******************************************************************************************************
|
/*********************************************************************************************************
|
||||||
|
|
||||||
DepFr_lock: lock variable to modify the frame fields.
|
DepFr_lock: lock variable to modify the frame fields.
|
||||||
DepFr_leader_dep_is_on_stack: the generator choice point for the correspondent consumer choice point
|
DepFr_leader_dep_is_on_stack: the generator choice point for the correspondent consumer choice point
|
||||||
@ -330,9 +429,10 @@ typedef struct dependency_frame {
|
|||||||
DepFr_leader_cp: a pointer to the leader choice point.
|
DepFr_leader_cp: a pointer to the leader choice point.
|
||||||
DepFr_cons_cp: a pointer to the correspondent consumer choice point.
|
DepFr_cons_cp: a pointer to the correspondent consumer choice point.
|
||||||
DepFr_last_answer: a pointer to the last consumed answer.
|
DepFr_last_answer: a pointer to the last consumed answer.
|
||||||
|
DepFr_external: the generator choice point is external to the current thread (FALSE/TRUE).
|
||||||
DepFr_next: a pointer to the next dependency frame on the chain.
|
DepFr_next: a pointer to the next dependency frame on the chain.
|
||||||
|
|
||||||
*******************************************************************************************************/
|
*********************************************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1246,6 +1246,8 @@ void update_answer_trie(sg_fr_ptr sg_fr) {
|
|||||||
|
|
||||||
|
|
||||||
void free_subgoal_trie(sg_node_ptr current_node, int mode, int position) {
|
void free_subgoal_trie(sg_node_ptr current_node, int mode, int position) {
|
||||||
|
CACHE_REGS
|
||||||
|
|
||||||
if (! IS_SUBGOAL_LEAF_NODE(current_node)) {
|
if (! IS_SUBGOAL_LEAF_NODE(current_node)) {
|
||||||
int child_mode;
|
int child_mode;
|
||||||
if (mode == TRAVERSE_MODE_NORMAL) {
|
if (mode == TRAVERSE_MODE_NORMAL) {
|
||||||
@ -1315,6 +1317,8 @@ void free_subgoal_trie(sg_node_ptr current_node, int mode, int position) {
|
|||||||
|
|
||||||
|
|
||||||
void free_answer_trie(ans_node_ptr current_node, int mode, int position) {
|
void free_answer_trie(ans_node_ptr current_node, int mode, int position) {
|
||||||
|
CACHE_REGS
|
||||||
|
|
||||||
#ifdef TABLING_INNER_CUTS
|
#ifdef TABLING_INNER_CUTS
|
||||||
if (! IS_ANSWER_LEAF_NODE(current_node) && TrNode_child(current_node)) {
|
if (! IS_ANSWER_LEAF_NODE(current_node) && TrNode_child(current_node)) {
|
||||||
#else
|
#else
|
||||||
@ -1363,6 +1367,8 @@ void free_answer_trie(ans_node_ptr current_node, int mode, int position) {
|
|||||||
|
|
||||||
|
|
||||||
void free_subgoal_hash_chain(sg_hash_ptr hash) {
|
void free_subgoal_hash_chain(sg_hash_ptr hash) {
|
||||||
|
CACHE_REGS
|
||||||
|
|
||||||
while (hash) {
|
while (hash) {
|
||||||
sg_node_ptr chain_node, *bucket, *last_bucket;
|
sg_node_ptr chain_node, *bucket, *last_bucket;
|
||||||
sg_hash_ptr next_hash;
|
sg_hash_ptr next_hash;
|
||||||
@ -1391,6 +1397,8 @@ void free_subgoal_hash_chain(sg_hash_ptr hash) {
|
|||||||
|
|
||||||
|
|
||||||
void free_answer_hash_chain(ans_hash_ptr hash) {
|
void free_answer_hash_chain(ans_hash_ptr hash) {
|
||||||
|
CACHE_REGS
|
||||||
|
|
||||||
while (hash) {
|
while (hash) {
|
||||||
ans_node_ptr chain_node, *bucket, *last_bucket;
|
ans_node_ptr chain_node, *bucket, *last_bucket;
|
||||||
ans_hash_ptr next_hash;
|
ans_hash_ptr next_hash;
|
||||||
@ -1419,6 +1427,7 @@ void free_answer_hash_chain(ans_hash_ptr hash) {
|
|||||||
|
|
||||||
|
|
||||||
void show_table(tab_ent_ptr tab_ent, int show_mode, IOSTREAM *out) {
|
void show_table(tab_ent_ptr tab_ent, int show_mode, IOSTREAM *out) {
|
||||||
|
CACHE_REGS
|
||||||
sg_node_ptr sg_node;
|
sg_node_ptr sg_node;
|
||||||
|
|
||||||
TrStat_out = out;
|
TrStat_out = out;
|
||||||
|
@ -64,6 +64,7 @@ static inline sg_node_ptr subgoal_trie_check_insert_gt_entry(tab_ent_ptr tab_ent
|
|||||||
#else
|
#else
|
||||||
static inline sg_node_ptr subgoal_trie_check_insert_entry(tab_ent_ptr tab_ent, sg_node_ptr parent_node, Term t) {
|
static inline sg_node_ptr subgoal_trie_check_insert_entry(tab_ent_ptr tab_ent, sg_node_ptr parent_node, Term t) {
|
||||||
#endif /* MODE_GLOBAL_TRIE_ENTRY */
|
#endif /* MODE_GLOBAL_TRIE_ENTRY */
|
||||||
|
CACHE_REGS
|
||||||
sg_node_ptr child_node;
|
sg_node_ptr child_node;
|
||||||
|
|
||||||
LOCK_SUBGOAL_NODE(parent_node);
|
LOCK_SUBGOAL_NODE(parent_node);
|
||||||
@ -358,6 +359,7 @@ static inline ans_node_ptr answer_trie_check_insert_gt_entry(sg_fr_ptr sg_fr, an
|
|||||||
#else
|
#else
|
||||||
static inline ans_node_ptr answer_trie_check_insert_entry(sg_fr_ptr sg_fr, ans_node_ptr parent_node, Term t, int instr) {
|
static inline ans_node_ptr answer_trie_check_insert_entry(sg_fr_ptr sg_fr, ans_node_ptr parent_node, Term t, int instr) {
|
||||||
#endif /* MODE_GLOBAL_TRIE_ENTRY */
|
#endif /* MODE_GLOBAL_TRIE_ENTRY */
|
||||||
|
CACHE_REGS
|
||||||
ans_node_ptr child_node;
|
ans_node_ptr child_node;
|
||||||
|
|
||||||
TABLING_ERROR_CHECKING(answer_trie_check_insert_(gt)_entry, IS_ANSWER_LEAF_NODE(parent_node));
|
TABLING_ERROR_CHECKING(answer_trie_check_insert_(gt)_entry, IS_ANSWER_LEAF_NODE(parent_node));
|
||||||
|
158
configure
vendored
158
configure
vendored
@ -705,7 +705,8 @@ LN_S
|
|||||||
DefTrailSpace
|
DefTrailSpace
|
||||||
DefStackSpace
|
DefStackSpace
|
||||||
DefHeapSpace
|
DefHeapSpace
|
||||||
PYTHON
|
GECODE_EXTRALIBS
|
||||||
|
GECODE_VERSION
|
||||||
EGREP
|
EGREP
|
||||||
GREP
|
GREP
|
||||||
CPP
|
CPP
|
||||||
@ -4293,58 +4294,6 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
use_gecode_default=no
|
|
||||||
|
|
||||||
if test "$have_gecode" = yes; then
|
|
||||||
for ac_prog in python2.78 python
|
|
||||||
do
|
|
||||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
|
||||||
set dummy $ac_prog; ac_word=$2
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
|
||||||
if ${ac_cv_prog_PYTHON+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
if test -n "$PYTHON"; then
|
|
||||||
ac_cv_prog_PYTHON="$PYTHON" # Let the user override the test.
|
|
||||||
else
|
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
||||||
for as_dir in $PATH
|
|
||||||
do
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
test -z "$as_dir" && as_dir=.
|
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
|
||||||
ac_cv_prog_PYTHON="$ac_prog"
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
PYTHON=$ac_cv_prog_PYTHON
|
|
||||||
if test -n "$PYTHON"; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
|
|
||||||
$as_echo "$PYTHON" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
test -n "$PYTHON" && break
|
|
||||||
done
|
|
||||||
test -n "$PYTHON" || PYTHON="none"
|
|
||||||
|
|
||||||
if test "$PYTHON" != none; then
|
|
||||||
use_gecode_default=yes
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
PYTHON=none
|
|
||||||
fi
|
|
||||||
# Check whether --enable-gecode was given.
|
# Check whether --enable-gecode was given.
|
||||||
if test "${enable_gecode+set}" = set; then :
|
if test "${enable_gecode+set}" = set; then :
|
||||||
enableval=$enable_gecode; use_gecode="$enableval"
|
enableval=$enable_gecode; use_gecode="$enableval"
|
||||||
@ -4352,12 +4301,9 @@ if test "${enable_gecode+set}" = set; then :
|
|||||||
if test "$have_gecode" = no; then
|
if test "$have_gecode" = no; then
|
||||||
as_fn_error $? "cannot enable gecode: gecode library not found" "$LINENO" 5
|
as_fn_error $? "cannot enable gecode: gecode library not found" "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
if test "$PYTHON" = none; then
|
|
||||||
as_fn_error $? "cannot enable gecode: python not found" "$LINENO" 5
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
use_gecode=$use_gecode_default
|
use_gecode=$have_gecode
|
||||||
fi
|
fi
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if dynamic arrays are supported" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if dynamic arrays are supported" >&5
|
||||||
@ -4390,6 +4336,97 @@ $as_echo "no" >&6; }
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
GECODE_VERSION=unknown-gecode-version
|
||||||
|
GECODE_EXTRALIBS="-lgecodesupport -lgecodekernel -lgecodeint -lgecodeset -lgecodesearch"
|
||||||
|
|
||||||
|
|
||||||
|
if test "$use_gecode" = yes; then
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking gecode version" >&5
|
||||||
|
$as_echo_n "checking gecode version... " >&6; }
|
||||||
|
if test "$cross_compiling" = yes; then :
|
||||||
|
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||||
|
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||||
|
as_fn_error $? "cannot run test program while cross compiling
|
||||||
|
See \`config.log' for more details" "$LINENO" 5; }
|
||||||
|
else
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
#include "gecode/support/config.hpp"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
FILE* out = fopen("conftest.out","w");
|
||||||
|
fprintf(out,"%s\n",GECODE_VERSION);
|
||||||
|
fclose(out);
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_run "$LINENO"; then :
|
||||||
|
GECODE_VERSION=$(cat conftest.out)
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GECODE_VERSION" >&5
|
||||||
|
$as_echo "$GECODE_VERSION" >&6; }
|
||||||
|
else
|
||||||
|
as_fn_error $? "cannot determine gecode version" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||||
|
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$target_os" in
|
||||||
|
*darwin*)
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -framework gecode is required" >&5
|
||||||
|
$as_echo_n "checking if -framework gecode is required... " >&6; }
|
||||||
|
ac_ext=cpp
|
||||||
|
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
|
||||||
|
saved_CXXFLAGS="$CXXFLAGS"
|
||||||
|
CXXFLAGS="$CXXFLAGS -framework gecode"
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
#include "gecode/int.hh"
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
Gecode::Exception e("","");
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"; then :
|
||||||
|
GECODE_EXTRALIBS="-framework gecode"
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||||
|
$as_echo "yes" >&6; }
|
||||||
|
else
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
ac_ext=c
|
||||||
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
CXXFLAGS="$saved_CXXFLAGS"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
# Check whether --enable-tabling was given.
|
# Check whether --enable-tabling was given.
|
||||||
if test "${enable_tabling+set}" = set; then :
|
if test "${enable_tabling+set}" = set; then :
|
||||||
@ -4909,7 +4946,7 @@ _ACEOF
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test "$or-parallelism" = no
|
if test "$orparallelism" = no
|
||||||
then
|
then
|
||||||
$as_echo "#define MAX_WORKERS 1" >>confdefs.h
|
$as_echo "#define MAX_WORKERS 1" >>confdefs.h
|
||||||
|
|
||||||
@ -4918,6 +4955,11 @@ else
|
|||||||
#define MAX_WORKERS $yap_cv_max_workers
|
#define MAX_WORKERS $yap_cv_max_workers
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
|
if test "$orparallelism" = copy
|
||||||
|
then
|
||||||
|
use_malloc="no"
|
||||||
|
fi
|
||||||
|
tabling="no"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$threads" = no
|
if test "$threads" = no
|
||||||
|
58
configure.in
58
configure.in
@ -80,16 +80,6 @@ case "$target_cpu" in
|
|||||||
dnl Gecode support
|
dnl Gecode support
|
||||||
AC_CHECK_HEADER(gecode/support/config.hpp,
|
AC_CHECK_HEADER(gecode/support/config.hpp,
|
||||||
have_gecode=yes, have_gecode=no)
|
have_gecode=yes, have_gecode=no)
|
||||||
use_gecode_default=no
|
|
||||||
AC_SUBST(PYTHON)
|
|
||||||
if test "$have_gecode" = yes; then
|
|
||||||
AC_CHECK_PROGS(PYTHON, [python2.78 python], [none])
|
|
||||||
if test "$PYTHON" != none; then
|
|
||||||
use_gecode_default=yes
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
PYTHON=none
|
|
||||||
fi
|
|
||||||
AC_ARG_ENABLE(gecode,
|
AC_ARG_ENABLE(gecode,
|
||||||
[ --enable-gecode install gecode library],
|
[ --enable-gecode install gecode library],
|
||||||
[use_gecode="$enableval"
|
[use_gecode="$enableval"
|
||||||
@ -97,10 +87,7 @@ AC_ARG_ENABLE(gecode,
|
|||||||
if test "$have_gecode" = no; then
|
if test "$have_gecode" = no; then
|
||||||
AC_MSG_ERROR([cannot enable gecode: gecode library not found])
|
AC_MSG_ERROR([cannot enable gecode: gecode library not found])
|
||||||
fi
|
fi
|
||||||
if test "$PYTHON" = none; then
|
fi], use_gecode=$have_gecode)
|
||||||
AC_MSG_ERROR([cannot enable gecode: python not found])
|
|
||||||
fi
|
|
||||||
fi], use_gecode=$use_gecode_default)
|
|
||||||
AC_MSG_CHECKING([if dynamic arrays are supported])
|
AC_MSG_CHECKING([if dynamic arrays are supported])
|
||||||
AC_COMPILE_IFELSE([
|
AC_COMPILE_IFELSE([
|
||||||
AC_LANG_PROGRAM([[void foo(int n) { int a[n]; a[1]=0; }]],[[foo(3);]])
|
AC_LANG_PROGRAM([[void foo(int n) { int a[n]; a[1]=0; }]],[[foo(3);]])
|
||||||
@ -110,6 +97,42 @@ AC_COMPILE_IFELSE([
|
|||||||
],[
|
],[
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
])
|
])
|
||||||
|
GECODE_VERSION=unknown-gecode-version
|
||||||
|
GECODE_EXTRALIBS="-lgecodesupport -lgecodekernel -lgecodeint -lgecodeset -lgecodesearch"
|
||||||
|
AC_SUBST(GECODE_VERSION)
|
||||||
|
AC_SUBST(GECODE_EXTRALIBS)
|
||||||
|
if test "$use_gecode" = yes; then
|
||||||
|
AC_MSG_CHECKING([gecode version])
|
||||||
|
AC_RUN_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#include "gecode/support/config.hpp"
|
||||||
|
#include <stdio.h>
|
||||||
|
]],[[
|
||||||
|
FILE* out = fopen("conftest.out","w");
|
||||||
|
fprintf(out,"%s\n",GECODE_VERSION);
|
||||||
|
fclose(out);
|
||||||
|
return 0;
|
||||||
|
]])],[GECODE_VERSION=$(cat conftest.out)
|
||||||
|
AC_MSG_RESULT([$GECODE_VERSION])],
|
||||||
|
[AC_MSG_ERROR([cannot determine gecode version])])
|
||||||
|
case "$target_os" in
|
||||||
|
*darwin*)
|
||||||
|
AC_MSG_CHECKING([if -framework gecode is required])
|
||||||
|
AC_LANG_PUSH([C++])
|
||||||
|
saved_CXXFLAGS="$CXXFLAGS"
|
||||||
|
CXXFLAGS="$CXXFLAGS -framework gecode"
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#include "gecode/int.hh"
|
||||||
|
]],[[
|
||||||
|
Gecode::Exception e("","");
|
||||||
|
return 0;
|
||||||
|
]])],[GECODE_EXTRALIBS="-framework gecode"
|
||||||
|
AC_MSG_RESULT([yes])],
|
||||||
|
[AC_MSG_RESULT([no])])
|
||||||
|
AC_LANG_POP()
|
||||||
|
CXXFLAGS="$saved_CXXFLAGS"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
AC_ARG_ENABLE(tabling,
|
AC_ARG_ENABLE(tabling,
|
||||||
[ --enable-tabling support tabling ],
|
[ --enable-tabling support tabling ],
|
||||||
@ -441,11 +464,16 @@ AC_SUBST(DefHeapSpace)
|
|||||||
AC_SUBST(DefStackSpace)
|
AC_SUBST(DefStackSpace)
|
||||||
AC_SUBST(DefTrailSpace)
|
AC_SUBST(DefTrailSpace)
|
||||||
|
|
||||||
if test "$or-parallelism" = no
|
if test "$orparallelism" = no
|
||||||
then
|
then
|
||||||
AC_DEFINE(MAX_WORKERS,1)
|
AC_DEFINE(MAX_WORKERS,1)
|
||||||
else
|
else
|
||||||
AC_DEFINE_UNQUOTED(MAX_WORKERS,$yap_cv_max_workers)
|
AC_DEFINE_UNQUOTED(MAX_WORKERS,$yap_cv_max_workers)
|
||||||
|
if test "$orparallelism" = copy
|
||||||
|
then
|
||||||
|
use_malloc="no"
|
||||||
|
fi
|
||||||
|
tabling="no"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$threads" = no
|
if test "$threads" = no
|
||||||
|
@ -2,6 +2,15 @@
|
|||||||
|
|
||||||
#define YAP_REGS_H 1
|
#define YAP_REGS_H 1
|
||||||
|
|
||||||
|
#ifdef THREADS
|
||||||
|
#if USE_PTHREAD_LOCKING
|
||||||
|
#ifndef _XOPEN_SOURCE
|
||||||
|
#define _XOPEN_SOURCE 600
|
||||||
|
#endif /* !_XOPEN_SOURCE */
|
||||||
|
#endif /* USE_PTHREAD_LOCKING */
|
||||||
|
#include <pthread.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(TABLING) || defined(YAPOR_SBA)
|
#if defined(TABLING) || defined(YAPOR_SBA)
|
||||||
typedef struct trail_frame {
|
typedef struct trail_frame {
|
||||||
Term term;
|
Term term;
|
||||||
@ -12,7 +21,7 @@ typedef struct trail_frame {
|
|||||||
#else
|
#else
|
||||||
typedef Term *tr_fr_ptr;
|
typedef Term *tr_fr_ptr;
|
||||||
|
|
||||||
#define TrailTerm(X) ((X)->term)
|
#define TrailTerm(X) (*(CELL*)(X))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef void *choiceptr;
|
typedef void *choiceptr;
|
||||||
|
@ -118,6 +118,11 @@ bp_get_arity(TERM t)
|
|||||||
// TERM bp_insert_pred(char *name, int arity, int (*func)())
|
// TERM bp_insert_pred(char *name, int arity, int (*func)())
|
||||||
#define bp_insert_pred(name, arity, func) YAP_UserCPredicate(name, func, arity)
|
#define bp_insert_pred(name, arity, func) YAP_UserCPredicate(name, func, arity)
|
||||||
|
|
||||||
|
extern inline int bp_call_string(const char *goal);
|
||||||
|
extern inline int bp_call_term(TERM t);
|
||||||
|
extern inline int bp_next_solution(void);
|
||||||
|
extern inline int bp_mount_query_term(TERM goal);
|
||||||
|
|
||||||
// int bp_call_string(char *goal)
|
// int bp_call_string(char *goal)
|
||||||
extern inline int
|
extern inline int
|
||||||
bp_call_string(const char *goal) {
|
bp_call_string(const char *goal) {
|
||||||
|
1
library/gecode/3.6.0/gecode-version.txt
Normal file
1
library/gecode/3.6.0/gecode-version.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
3.6.0
|
2836
library/gecode/3.6.0/gecode_yap_auto_generated.yap
Normal file
2836
library/gecode/3.6.0/gecode_yap_auto_generated.yap
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,31 @@
|
|||||||
|
// -*- c++ -*-
|
||||||
|
//=============================================================================
|
||||||
|
// Copyright (C) 2011 by Denys Duchier
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify it
|
||||||
|
// under the terms of the GNU Lesser General Public License as published by the
|
||||||
|
// Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
// option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
// more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
static IntRelType gecode_IntRelType_from_term(YAP_Term);
|
||||||
|
static BoolOpType gecode_BoolOpType_from_term(YAP_Term);
|
||||||
|
static IntConLevel gecode_IntConLevel_from_term(YAP_Term);
|
||||||
|
static TaskType gecode_TaskType_from_term(YAP_Term);
|
||||||
|
static ExtensionalPropKind gecode_ExtensionalPropKind_from_term(YAP_Term);
|
||||||
|
static IntVarBranch gecode_IntVarBranch_from_term(YAP_Term);
|
||||||
|
static IntValBranch gecode_IntValBranch_from_term(YAP_Term);
|
||||||
|
static IntAssign gecode_IntAssign_from_term(YAP_Term);
|
||||||
|
static SetRelType gecode_SetRelType_from_term(YAP_Term);
|
||||||
|
static SetOpType gecode_SetOpType_from_term(YAP_Term);
|
||||||
|
static SetVarBranch gecode_SetVarBranch_from_term(YAP_Term);
|
||||||
|
static SetValBranch gecode_SetValBranch_from_term(YAP_Term);
|
||||||
|
static SetAssign gecode_SetAssign_from_term(YAP_Term);
|
4051
library/gecode/3.6.0/gecode_yap_cc_impl_auto_generated.icc
Normal file
4051
library/gecode/3.6.0/gecode_yap_cc_impl_auto_generated.icc
Normal file
File diff suppressed because it is too large
Load Diff
662
library/gecode/3.6.0/gecode_yap_cc_init_auto_generated.icc
Normal file
662
library/gecode/3.6.0/gecode_yap_cc_init_auto_generated.icc
Normal file
@ -0,0 +1,662 @@
|
|||||||
|
// -*- c++ -*-
|
||||||
|
//=============================================================================
|
||||||
|
// Copyright (C) 2011 by Denys Duchier
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify it
|
||||||
|
// under the terms of the GNU Lesser General Public License as published by the
|
||||||
|
// Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
// option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
// more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_EQ");
|
||||||
|
gecode_IRT_EQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_NQ");
|
||||||
|
gecode_IRT_NQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_LQ");
|
||||||
|
gecode_IRT_LQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_LE");
|
||||||
|
gecode_IRT_LE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_GQ");
|
||||||
|
gecode_IRT_GQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_GR");
|
||||||
|
gecode_IRT_GR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_AND");
|
||||||
|
gecode_BOT_AND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_OR");
|
||||||
|
gecode_BOT_OR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_IMP");
|
||||||
|
gecode_BOT_IMP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_EQV");
|
||||||
|
gecode_BOT_EQV = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_XOR");
|
||||||
|
gecode_BOT_XOR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_VAL");
|
||||||
|
gecode_ICL_VAL = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_BND");
|
||||||
|
gecode_ICL_BND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_DOM");
|
||||||
|
gecode_ICL_DOM = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_DEF");
|
||||||
|
gecode_ICL_DEF = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXP");
|
||||||
|
gecode_TT_FIXP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXS");
|
||||||
|
gecode_TT_FIXS = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXE");
|
||||||
|
gecode_TT_FIXE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_DEF");
|
||||||
|
gecode_EPK_DEF = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_SPEED");
|
||||||
|
gecode_EPK_SPEED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_MEMORY");
|
||||||
|
gecode_EPK_MEMORY = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_NONE");
|
||||||
|
gecode_INT_VAR_NONE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_RND");
|
||||||
|
gecode_INT_VAR_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_DEGREE_MIN");
|
||||||
|
gecode_INT_VAR_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_DEGREE_MAX");
|
||||||
|
gecode_INT_VAR_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_AFC_MIN");
|
||||||
|
gecode_INT_VAR_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_AFC_MAX");
|
||||||
|
gecode_INT_VAR_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MIN_MIN");
|
||||||
|
gecode_INT_VAR_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MIN_MAX");
|
||||||
|
gecode_INT_VAR_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MAX_MIN");
|
||||||
|
gecode_INT_VAR_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MAX_MAX");
|
||||||
|
gecode_INT_VAR_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_DEGREE_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_DEGREE_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_AFC_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_AFC_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MIN_MIN");
|
||||||
|
gecode_INT_VAR_REGRET_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MIN_MAX");
|
||||||
|
gecode_INT_VAR_REGRET_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MAX_MIN");
|
||||||
|
gecode_INT_VAR_REGRET_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MAX_MAX");
|
||||||
|
gecode_INT_VAR_REGRET_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MIN");
|
||||||
|
gecode_INT_VAL_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MED");
|
||||||
|
gecode_INT_VAL_MED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MAX");
|
||||||
|
gecode_INT_VAL_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RND");
|
||||||
|
gecode_INT_VAL_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_SPLIT_MIN");
|
||||||
|
gecode_INT_VAL_SPLIT_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_SPLIT_MAX");
|
||||||
|
gecode_INT_VAL_SPLIT_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RANGE_MIN");
|
||||||
|
gecode_INT_VAL_RANGE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RANGE_MAX");
|
||||||
|
gecode_INT_VAL_RANGE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VALUES_MIN");
|
||||||
|
gecode_INT_VALUES_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VALUES_MAX");
|
||||||
|
gecode_INT_VALUES_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MIN");
|
||||||
|
gecode_INT_ASSIGN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MED");
|
||||||
|
gecode_INT_ASSIGN_MED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MAX");
|
||||||
|
gecode_INT_ASSIGN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_RND");
|
||||||
|
gecode_INT_ASSIGN_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_EQ");
|
||||||
|
gecode_SRT_EQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_NQ");
|
||||||
|
gecode_SRT_NQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_SUB");
|
||||||
|
gecode_SRT_SUB = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_SUP");
|
||||||
|
gecode_SRT_SUP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_DISJ");
|
||||||
|
gecode_SRT_DISJ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_CMPL");
|
||||||
|
gecode_SRT_CMPL = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_UNION");
|
||||||
|
gecode_SOT_UNION = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_DUNION");
|
||||||
|
gecode_SOT_DUNION = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_INTER");
|
||||||
|
gecode_SOT_INTER = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_MINUS");
|
||||||
|
gecode_SOT_MINUS = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_NONE");
|
||||||
|
gecode_SET_VAR_NONE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_RND");
|
||||||
|
gecode_SET_VAR_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_DEGREE_MIN");
|
||||||
|
gecode_SET_VAR_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_DEGREE_MAX");
|
||||||
|
gecode_SET_VAR_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_AFC_MIN");
|
||||||
|
gecode_SET_VAR_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_AFC_MAX");
|
||||||
|
gecode_SET_VAR_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MIN_MIN");
|
||||||
|
gecode_SET_VAR_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MIN_MAX");
|
||||||
|
gecode_SET_VAR_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MAX_MIN");
|
||||||
|
gecode_SET_VAR_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MAX_MAX");
|
||||||
|
gecode_SET_VAR_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_DEGREE_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_DEGREE_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_AFC_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_AFC_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MIN_INC");
|
||||||
|
gecode_SET_VAL_MIN_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MIN_EXC");
|
||||||
|
gecode_SET_VAL_MIN_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MED_INC");
|
||||||
|
gecode_SET_VAL_MED_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MED_EXC");
|
||||||
|
gecode_SET_VAL_MED_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MAX_INC");
|
||||||
|
gecode_SET_VAL_MAX_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MAX_EXC");
|
||||||
|
gecode_SET_VAL_MAX_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_RND_INC");
|
||||||
|
gecode_SET_VAL_RND_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_RND_EXC");
|
||||||
|
gecode_SET_VAL_RND_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MIN_INC");
|
||||||
|
gecode_SET_ASSIGN_MIN_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MIN_EXC");
|
||||||
|
gecode_SET_ASSIGN_MIN_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MED_INC");
|
||||||
|
gecode_SET_ASSIGN_MED_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MED_EXC");
|
||||||
|
gecode_SET_ASSIGN_MED_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MAX_INC");
|
||||||
|
gecode_SET_ASSIGN_MAX_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MAX_EXC");
|
||||||
|
gecode_SET_ASSIGN_MAX_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_RND_INC");
|
||||||
|
gecode_SET_ASSIGN_RND_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_RND_EXC");
|
||||||
|
gecode_SET_ASSIGN_RND_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_333", gecode_constraint_unary_333, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_329", gecode_constraint_unary_329, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqr_321", gecode_constraint_sqr_321, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_135", gecode_constraint_dom_135, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_145", gecode_constraint_dom_145, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_convex_51", gecode_constraint_convex_51, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_226", gecode_constraint_nooverlap_226, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_4", gecode_constraint_assign_4, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_3", gecode_constraint_assign_3, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_5", gecode_constraint_assign_5, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_7", gecode_constraint_assign_7, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_6", gecode_constraint_assign_6, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_8", gecode_constraint_assign_8, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_154", gecode_constraint_element_154, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_158", gecode_constraint_element_158, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_148", gecode_constraint_element_148, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_146", gecode_constraint_element_146, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_153", gecode_constraint_element_153, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_161", gecode_constraint_element_161, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_164", gecode_constraint_element_164, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_170", gecode_constraint_element_170, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_162", gecode_constraint_element_162, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_314", gecode_constraint_sequence_314, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_notMax_232", gecode_constraint_notMax_232, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_326", gecode_constraint_unary_326, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_45", gecode_constraint_circuit_45, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_36", gecode_constraint_circuit_36, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_134", gecode_constraint_dom_134, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_139", gecode_constraint_dom_139, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_133", gecode_constraint_dom_133, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_129", gecode_constraint_dom_129, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_127", gecode_constraint_dom_127, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_144", gecode_constraint_dom_144, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_143", gecode_constraint_dom_143, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_141", gecode_constraint_dom_141, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_32", gecode_constraint_channel_32, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_27", gecode_constraint_channel_27, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_23", gecode_constraint_channel_23, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_21", gecode_constraint_channel_21, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_228", gecode_constraint_nooverlap_228, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_231", gecode_constraint_nooverlap_231, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_156", gecode_constraint_element_156, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_150", gecode_constraint_element_150, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_152", gecode_constraint_element_152, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_160", gecode_constraint_element_160, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_168", gecode_constraint_element_168, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_166", gecode_constraint_element_166, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_208", gecode_constraint_max_208, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_212", gecode_constraint_max_212, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_338", gecode_constraint_unshare_338, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_336", gecode_constraint_unshare_336, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_244", gecode_constraint_path_244, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_243", gecode_constraint_path_243, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mult_222", gecode_constraint_mult_222, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_49", gecode_constraint_clause_49, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_47", gecode_constraint_clause_47, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_249", gecode_constraint_precede_249, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_116", gecode_constraint_distinct_116, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mod_221", gecode_constraint_mod_221, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cardinality_18", gecode_constraint_cardinality_18, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_atmostOne_9", gecode_constraint_atmostOne_9, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channelSorted_33", gecode_constraint_channelSorted_33, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_202", gecode_constraint_linear_202, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_206", gecode_constraint_linear_206, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_178", gecode_constraint_linear_178, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_182", gecode_constraint_linear_182, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_42", gecode_constraint_circuit_42, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_264", gecode_constraint_rel_264, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_267", gecode_constraint_rel_267, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_260", gecode_constraint_rel_260, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_263", gecode_constraint_rel_263, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_258", gecode_constraint_rel_258, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_256", gecode_constraint_rel_256, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_275", gecode_constraint_rel_275, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_271", gecode_constraint_rel_271, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_269", gecode_constraint_rel_269, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_299", gecode_constraint_rel_299, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_297", gecode_constraint_rel_297, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_283", gecode_constraint_rel_283, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_285", gecode_constraint_rel_285, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_279", gecode_constraint_rel_279, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_286", gecode_constraint_rel_286, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_289", gecode_constraint_rel_289, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_290", gecode_constraint_rel_290, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_293", gecode_constraint_rel_293, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_296", gecode_constraint_rel_296, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_307", gecode_constraint_rel_307, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_309", gecode_constraint_rel_309, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_255", gecode_constraint_rel_255, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_253", gecode_constraint_rel_253, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_216", gecode_constraint_min_216, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_215", gecode_constraint_min_215, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_219", gecode_constraint_min_219, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cardinality_19", gecode_constraint_cardinality_19, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_65", gecode_constraint_count_65, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_62", gecode_constraint_count_62, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_60", gecode_constraint_count_60, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_59", gecode_constraint_count_59, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_56", gecode_constraint_count_56, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqrt_322", gecode_constraint_sqrt_322, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_113", gecode_constraint_cumulatives_113, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_111", gecode_constraint_cumulatives_111, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_109", gecode_constraint_cumulatives_109, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_107", gecode_constraint_cumulatives_107, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_105", gecode_constraint_cumulatives_105, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_103", gecode_constraint_cumulatives_103, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_101", gecode_constraint_cumulatives_101, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_99", gecode_constraint_cumulatives_99, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_binpacking_10", gecode_constraint_binpacking_10, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_193", gecode_constraint_linear_193, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_197", gecode_constraint_linear_197, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_185", gecode_constraint_linear_185, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_189", gecode_constraint_linear_189, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_abs_2", gecode_constraint_abs_2, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_convex_50", gecode_constraint_convex_50, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_div_118", gecode_constraint_div_118, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_287", gecode_constraint_rel_287, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_291", gecode_constraint_rel_291, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_276", gecode_constraint_rel_276, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_277", gecode_constraint_rel_277, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_265", gecode_constraint_rel_265, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_261", gecode_constraint_rel_261, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_259", gecode_constraint_rel_259, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_257", gecode_constraint_rel_257, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_302", gecode_constraint_rel_302, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_303", gecode_constraint_rel_303, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_304", gecode_constraint_rel_304, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_305", gecode_constraint_rel_305, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_weights_340", gecode_constraint_weights_340, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_211", gecode_constraint_max_211, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_239", gecode_constraint_path_239, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_334", gecode_constraint_unary_334, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_330", gecode_constraint_unary_330, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_324", gecode_constraint_unary_324, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_327", gecode_constraint_unary_327, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_317", gecode_constraint_sorted_317, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_40", gecode_constraint_circuit_40, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_37", gecode_constraint_circuit_37, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_34", gecode_constraint_circuit_34, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_138", gecode_constraint_dom_138, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_132", gecode_constraint_dom_132, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_137", gecode_constraint_dom_137, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_128", gecode_constraint_dom_128, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_131", gecode_constraint_dom_131, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_126", gecode_constraint_dom_126, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_125", gecode_constraint_dom_125, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_123", gecode_constraint_dom_123, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_142", gecode_constraint_dom_142, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_140", gecode_constraint_dom_140, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_abs_1", gecode_constraint_abs_1, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_29", gecode_constraint_channel_29, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_24", gecode_constraint_channel_24, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_280", gecode_constraint_rel_280, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_272", gecode_constraint_rel_272, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_242", gecode_constraint_path_242, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_14", gecode_constraint_branch_14, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_13", gecode_constraint_branch_13, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_15", gecode_constraint_branch_15, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mult_223", gecode_constraint_mult_223, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_41", gecode_constraint_circuit_41, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_38", gecode_constraint_circuit_38, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_35", gecode_constraint_circuit_35, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_48", gecode_constraint_clause_48, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_46", gecode_constraint_clause_46, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_251", gecode_constraint_precede_251, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_248", gecode_constraint_precede_248, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_247", gecode_constraint_precede_247, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_30", gecode_constraint_channel_30, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_82", gecode_constraint_cumulative_82, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_85", gecode_constraint_cumulative_85, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_78", gecode_constraint_cumulative_78, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_81", gecode_constraint_cumulative_81, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_75", gecode_constraint_cumulative_75, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_94", gecode_constraint_cumulative_94, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_97", gecode_constraint_cumulative_97, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_90", gecode_constraint_cumulative_90, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_93", gecode_constraint_cumulative_93, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_87", gecode_constraint_cumulative_87, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_117", gecode_constraint_distinct_117, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_114", gecode_constraint_distinct_114, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mod_220", gecode_constraint_mod_220, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqr_320", gecode_constraint_sqr_320, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_313", gecode_constraint_sequence_313, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_311", gecode_constraint_sequence_311, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_240", gecode_constraint_path_240, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_237", gecode_constraint_path_237, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_234", gecode_constraint_path_234, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_divmod_121", gecode_constraint_divmod_121, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_318", gecode_constraint_sorted_318, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_44", gecode_constraint_circuit_44, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_43", gecode_constraint_circuit_43, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_31", gecode_constraint_channel_31, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_28", gecode_constraint_channel_28, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_26", gecode_constraint_channel_26, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_22", gecode_constraint_channel_22, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_25", gecode_constraint_channel_25, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_20", gecode_constraint_channel_20, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_52", gecode_constraint_count_52, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_54", gecode_constraint_count_54, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_66", gecode_constraint_count_66, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_68", gecode_constraint_count_68, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_61", gecode_constraint_count_61, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_57", gecode_constraint_count_57, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_63", gecode_constraint_count_63, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_70", gecode_constraint_count_70, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_72", gecode_constraint_count_72, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_112", gecode_constraint_cumulatives_112, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_110", gecode_constraint_cumulatives_110, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_108", gecode_constraint_cumulatives_108, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_106", gecode_constraint_cumulatives_106, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_104", gecode_constraint_cumulatives_104, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_102", gecode_constraint_cumulatives_102, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_100", gecode_constraint_cumulatives_100, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_98", gecode_constraint_cumulatives_98, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_binpacking_11", gecode_constraint_binpacking_11, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_201", gecode_constraint_linear_201, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_205", gecode_constraint_linear_205, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_177", gecode_constraint_linear_177, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_181", gecode_constraint_linear_181, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_192", gecode_constraint_linear_192, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_195", gecode_constraint_linear_195, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_196", gecode_constraint_linear_196, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_199", gecode_constraint_linear_199, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_184", gecode_constraint_linear_184, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_187", gecode_constraint_linear_187, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_188", gecode_constraint_linear_188, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_191", gecode_constraint_linear_191, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_230", gecode_constraint_nooverlap_230, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_225", gecode_constraint_nooverlap_225, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_div_119", gecode_constraint_div_119, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_210", gecode_constraint_max_210, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_209", gecode_constraint_max_209, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_213", gecode_constraint_max_213, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_241", gecode_constraint_path_241, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_238", gecode_constraint_path_238, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_235", gecode_constraint_path_235, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_332", gecode_constraint_unary_332, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_335", gecode_constraint_unary_335, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_328", gecode_constraint_unary_328, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_331", gecode_constraint_unary_331, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_325", gecode_constraint_unary_325, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_316", gecode_constraint_sorted_316, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_319", gecode_constraint_sorted_319, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_157", gecode_constraint_element_157, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_151", gecode_constraint_element_151, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_169", gecode_constraint_element_169, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_167", gecode_constraint_element_167, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_155", gecode_constraint_element_155, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_159", gecode_constraint_element_159, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_149", gecode_constraint_element_149, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_147", gecode_constraint_element_147, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_174", gecode_constraint_element_174, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_172", gecode_constraint_element_172, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_165", gecode_constraint_element_165, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_171", gecode_constraint_element_171, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_163", gecode_constraint_element_163, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_315", gecode_constraint_sequence_315, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_39", gecode_constraint_circuit_39, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_250", gecode_constraint_precede_250, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_246", gecode_constraint_precede_246, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_84", gecode_constraint_cumulative_84, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_80", gecode_constraint_cumulative_80, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_74", gecode_constraint_cumulative_74, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_77", gecode_constraint_cumulative_77, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_96", gecode_constraint_cumulative_96, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_92", gecode_constraint_cumulative_92, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_86", gecode_constraint_cumulative_86, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_89", gecode_constraint_cumulative_89, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_115", gecode_constraint_distinct_115, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_214", gecode_constraint_min_214, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_218", gecode_constraint_min_218, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqrt_323", gecode_constraint_sqrt_323, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_312", gecode_constraint_sequence_312, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_310", gecode_constraint_sequence_310, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_339", gecode_constraint_unshare_339, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_337", gecode_constraint_unshare_337, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_245", gecode_constraint_path_245, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_236", gecode_constraint_path_236, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_divmod_120", gecode_constraint_divmod_120, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_229", gecode_constraint_nooverlap_229, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_76", gecode_constraint_cumulative_76, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_88", gecode_constraint_cumulative_88, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_67", gecode_constraint_count_67, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_69", gecode_constraint_count_69, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_71", gecode_constraint_count_71, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_73", gecode_constraint_count_73, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_53", gecode_constraint_count_53, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_55", gecode_constraint_count_55, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_notMin_233", gecode_constraint_notMin_233, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_83", gecode_constraint_cumulative_83, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_79", gecode_constraint_cumulative_79, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_95", gecode_constraint_cumulative_95, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_91", gecode_constraint_cumulative_91, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_16", gecode_constraint_branch_16, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_12", gecode_constraint_branch_12, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_17", gecode_constraint_branch_17, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_136", gecode_constraint_dom_136, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_130", gecode_constraint_dom_130, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_124", gecode_constraint_dom_124, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_122", gecode_constraint_dom_122, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_200", gecode_constraint_linear_200, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_203", gecode_constraint_linear_203, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_204", gecode_constraint_linear_204, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_207", gecode_constraint_linear_207, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_176", gecode_constraint_linear_176, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_179", gecode_constraint_linear_179, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_180", gecode_constraint_linear_180, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_183", gecode_constraint_linear_183, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_194", gecode_constraint_linear_194, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_198", gecode_constraint_linear_198, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_186", gecode_constraint_linear_186, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_190", gecode_constraint_linear_190, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_224", gecode_constraint_nooverlap_224, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_227", gecode_constraint_nooverlap_227, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_175", gecode_constraint_element_175, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_173", gecode_constraint_element_173, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_266", gecode_constraint_rel_266, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_262", gecode_constraint_rel_262, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_274", gecode_constraint_rel_274, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_270", gecode_constraint_rel_270, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_268", gecode_constraint_rel_268, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_273", gecode_constraint_rel_273, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_300", gecode_constraint_rel_300, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_298", gecode_constraint_rel_298, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_282", gecode_constraint_rel_282, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_284", gecode_constraint_rel_284, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_278", gecode_constraint_rel_278, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_281", gecode_constraint_rel_281, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_288", gecode_constraint_rel_288, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_292", gecode_constraint_rel_292, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_294", gecode_constraint_rel_294, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_295", gecode_constraint_rel_295, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_301", gecode_constraint_rel_301, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_306", gecode_constraint_rel_306, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_308", gecode_constraint_rel_308, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_254", gecode_constraint_rel_254, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_252", gecode_constraint_rel_252, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_217", gecode_constraint_min_217, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_64", gecode_constraint_count_64, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_58", gecode_constraint_count_58, 3);
|
1
library/gecode/3.7.0/gecode-version.txt
Normal file
1
library/gecode/3.7.0/gecode-version.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
3.7.0
|
2995
library/gecode/3.7.0/gecode_yap_auto_generated.yap
Normal file
2995
library/gecode/3.7.0/gecode_yap_auto_generated.yap
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,31 @@
|
|||||||
|
// -*- c++ -*-
|
||||||
|
//=============================================================================
|
||||||
|
// Copyright (C) 2011 by Denys Duchier
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify it
|
||||||
|
// under the terms of the GNU Lesser General Public License as published by the
|
||||||
|
// Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
// option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
// more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
static IntRelType gecode_IntRelType_from_term(YAP_Term);
|
||||||
|
static BoolOpType gecode_BoolOpType_from_term(YAP_Term);
|
||||||
|
static IntConLevel gecode_IntConLevel_from_term(YAP_Term);
|
||||||
|
static TaskType gecode_TaskType_from_term(YAP_Term);
|
||||||
|
static ExtensionalPropKind gecode_ExtensionalPropKind_from_term(YAP_Term);
|
||||||
|
static IntVarBranch gecode_IntVarBranch_from_term(YAP_Term);
|
||||||
|
static IntValBranch gecode_IntValBranch_from_term(YAP_Term);
|
||||||
|
static IntAssign gecode_IntAssign_from_term(YAP_Term);
|
||||||
|
static SetRelType gecode_SetRelType_from_term(YAP_Term);
|
||||||
|
static SetOpType gecode_SetOpType_from_term(YAP_Term);
|
||||||
|
static SetVarBranch gecode_SetVarBranch_from_term(YAP_Term);
|
||||||
|
static SetValBranch gecode_SetValBranch_from_term(YAP_Term);
|
||||||
|
static SetAssign gecode_SetAssign_from_term(YAP_Term);
|
4315
library/gecode/3.7.0/gecode_yap_cc_impl_auto_generated.icc
Normal file
4315
library/gecode/3.7.0/gecode_yap_cc_impl_auto_generated.icc
Normal file
File diff suppressed because it is too large
Load Diff
698
library/gecode/3.7.0/gecode_yap_cc_init_auto_generated.icc
Normal file
698
library/gecode/3.7.0/gecode_yap_cc_init_auto_generated.icc
Normal file
@ -0,0 +1,698 @@
|
|||||||
|
// -*- c++ -*-
|
||||||
|
//=============================================================================
|
||||||
|
// Copyright (C) 2011 by Denys Duchier
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify it
|
||||||
|
// under the terms of the GNU Lesser General Public License as published by the
|
||||||
|
// Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
// option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
// more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_EQ");
|
||||||
|
gecode_IRT_EQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_NQ");
|
||||||
|
gecode_IRT_NQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_LQ");
|
||||||
|
gecode_IRT_LQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_LE");
|
||||||
|
gecode_IRT_LE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_GQ");
|
||||||
|
gecode_IRT_GQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_GR");
|
||||||
|
gecode_IRT_GR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_AND");
|
||||||
|
gecode_BOT_AND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_OR");
|
||||||
|
gecode_BOT_OR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_IMP");
|
||||||
|
gecode_BOT_IMP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_EQV");
|
||||||
|
gecode_BOT_EQV = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_XOR");
|
||||||
|
gecode_BOT_XOR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_VAL");
|
||||||
|
gecode_ICL_VAL = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_BND");
|
||||||
|
gecode_ICL_BND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_DOM");
|
||||||
|
gecode_ICL_DOM = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_DEF");
|
||||||
|
gecode_ICL_DEF = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXP");
|
||||||
|
gecode_TT_FIXP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXS");
|
||||||
|
gecode_TT_FIXS = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXE");
|
||||||
|
gecode_TT_FIXE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_DEF");
|
||||||
|
gecode_EPK_DEF = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_SPEED");
|
||||||
|
gecode_EPK_SPEED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_MEMORY");
|
||||||
|
gecode_EPK_MEMORY = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_NONE");
|
||||||
|
gecode_INT_VAR_NONE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_RND");
|
||||||
|
gecode_INT_VAR_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_DEGREE_MIN");
|
||||||
|
gecode_INT_VAR_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_DEGREE_MAX");
|
||||||
|
gecode_INT_VAR_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_AFC_MIN");
|
||||||
|
gecode_INT_VAR_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_AFC_MAX");
|
||||||
|
gecode_INT_VAR_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MIN_MIN");
|
||||||
|
gecode_INT_VAR_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MIN_MAX");
|
||||||
|
gecode_INT_VAR_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MAX_MIN");
|
||||||
|
gecode_INT_VAR_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MAX_MAX");
|
||||||
|
gecode_INT_VAR_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_DEGREE_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_DEGREE_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_AFC_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_AFC_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MIN_MIN");
|
||||||
|
gecode_INT_VAR_REGRET_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MIN_MAX");
|
||||||
|
gecode_INT_VAR_REGRET_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MAX_MIN");
|
||||||
|
gecode_INT_VAR_REGRET_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MAX_MAX");
|
||||||
|
gecode_INT_VAR_REGRET_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MIN");
|
||||||
|
gecode_INT_VAL_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MED");
|
||||||
|
gecode_INT_VAL_MED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MAX");
|
||||||
|
gecode_INT_VAL_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RND");
|
||||||
|
gecode_INT_VAL_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_SPLIT_MIN");
|
||||||
|
gecode_INT_VAL_SPLIT_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_SPLIT_MAX");
|
||||||
|
gecode_INT_VAL_SPLIT_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RANGE_MIN");
|
||||||
|
gecode_INT_VAL_RANGE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RANGE_MAX");
|
||||||
|
gecode_INT_VAL_RANGE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VALUES_MIN");
|
||||||
|
gecode_INT_VALUES_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VALUES_MAX");
|
||||||
|
gecode_INT_VALUES_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MIN");
|
||||||
|
gecode_INT_ASSIGN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MED");
|
||||||
|
gecode_INT_ASSIGN_MED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MAX");
|
||||||
|
gecode_INT_ASSIGN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_RND");
|
||||||
|
gecode_INT_ASSIGN_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_EQ");
|
||||||
|
gecode_SRT_EQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_NQ");
|
||||||
|
gecode_SRT_NQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_SUB");
|
||||||
|
gecode_SRT_SUB = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_SUP");
|
||||||
|
gecode_SRT_SUP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_DISJ");
|
||||||
|
gecode_SRT_DISJ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_CMPL");
|
||||||
|
gecode_SRT_CMPL = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_LQ");
|
||||||
|
gecode_SRT_LQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_LE");
|
||||||
|
gecode_SRT_LE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_GQ");
|
||||||
|
gecode_SRT_GQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_GR");
|
||||||
|
gecode_SRT_GR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_UNION");
|
||||||
|
gecode_SOT_UNION = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_DUNION");
|
||||||
|
gecode_SOT_DUNION = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_INTER");
|
||||||
|
gecode_SOT_INTER = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_MINUS");
|
||||||
|
gecode_SOT_MINUS = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_NONE");
|
||||||
|
gecode_SET_VAR_NONE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_RND");
|
||||||
|
gecode_SET_VAR_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_DEGREE_MIN");
|
||||||
|
gecode_SET_VAR_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_DEGREE_MAX");
|
||||||
|
gecode_SET_VAR_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_AFC_MIN");
|
||||||
|
gecode_SET_VAR_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_AFC_MAX");
|
||||||
|
gecode_SET_VAR_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MIN_MIN");
|
||||||
|
gecode_SET_VAR_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MIN_MAX");
|
||||||
|
gecode_SET_VAR_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MAX_MIN");
|
||||||
|
gecode_SET_VAR_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MAX_MAX");
|
||||||
|
gecode_SET_VAR_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_DEGREE_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_DEGREE_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_AFC_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_AFC_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MIN_INC");
|
||||||
|
gecode_SET_VAL_MIN_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MIN_EXC");
|
||||||
|
gecode_SET_VAL_MIN_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MED_INC");
|
||||||
|
gecode_SET_VAL_MED_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MED_EXC");
|
||||||
|
gecode_SET_VAL_MED_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MAX_INC");
|
||||||
|
gecode_SET_VAL_MAX_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MAX_EXC");
|
||||||
|
gecode_SET_VAL_MAX_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_RND_INC");
|
||||||
|
gecode_SET_VAL_RND_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_RND_EXC");
|
||||||
|
gecode_SET_VAL_RND_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MIN_INC");
|
||||||
|
gecode_SET_ASSIGN_MIN_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MIN_EXC");
|
||||||
|
gecode_SET_ASSIGN_MIN_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MED_INC");
|
||||||
|
gecode_SET_ASSIGN_MED_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MED_EXC");
|
||||||
|
gecode_SET_ASSIGN_MED_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MAX_INC");
|
||||||
|
gecode_SET_ASSIGN_MAX_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MAX_EXC");
|
||||||
|
gecode_SET_ASSIGN_MAX_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_RND_INC");
|
||||||
|
gecode_SET_ASSIGN_RND_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_RND_EXC");
|
||||||
|
gecode_SET_ASSIGN_RND_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_357", gecode_constraint_unary_357, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_353", gecode_constraint_unary_353, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_255", gecode_constraint_nvalues_255, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_257", gecode_constraint_nvalues_257, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_251", gecode_constraint_nvalues_251, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_253", gecode_constraint_nvalues_253, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_218", gecode_constraint_max_218, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_217", gecode_constraint_max_217, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_221", gecode_constraint_max_221, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_139", gecode_constraint_dom_139, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_149", gecode_constraint_dom_149, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_convex_51", gecode_constraint_convex_51, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_242", gecode_constraint_nooverlap_242, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_4", gecode_constraint_assign_4, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_3", gecode_constraint_assign_3, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_5", gecode_constraint_assign_5, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_7", gecode_constraint_assign_7, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_6", gecode_constraint_assign_6, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_8", gecode_constraint_assign_8, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_158", gecode_constraint_element_158, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_162", gecode_constraint_element_162, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_152", gecode_constraint_element_152, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_150", gecode_constraint_element_150, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_157", gecode_constraint_element_157, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_165", gecode_constraint_element_165, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_168", gecode_constraint_element_168, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_174", gecode_constraint_element_174, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_166", gecode_constraint_element_166, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_338", gecode_constraint_sequence_338, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_notMax_248", gecode_constraint_notMax_248, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_350", gecode_constraint_unary_350, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_45", gecode_constraint_circuit_45, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_36", gecode_constraint_circuit_36, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_138", gecode_constraint_dom_138, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_143", gecode_constraint_dom_143, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_137", gecode_constraint_dom_137, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_133", gecode_constraint_dom_133, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_131", gecode_constraint_dom_131, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_148", gecode_constraint_dom_148, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_147", gecode_constraint_dom_147, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_145", gecode_constraint_dom_145, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_32", gecode_constraint_channel_32, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_27", gecode_constraint_channel_27, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_23", gecode_constraint_channel_23, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_21", gecode_constraint_channel_21, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_244", gecode_constraint_nooverlap_244, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_247", gecode_constraint_nooverlap_247, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_160", gecode_constraint_element_160, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_154", gecode_constraint_element_154, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_156", gecode_constraint_element_156, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_164", gecode_constraint_element_164, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_172", gecode_constraint_element_172, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_170", gecode_constraint_element_170, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_216", gecode_constraint_max_216, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_220", gecode_constraint_max_220, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_362", gecode_constraint_unshare_362, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_360", gecode_constraint_unshare_360, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_268", gecode_constraint_path_268, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_267", gecode_constraint_path_267, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mult_238", gecode_constraint_mult_238, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_49", gecode_constraint_clause_49, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_47", gecode_constraint_clause_47, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_273", gecode_constraint_precede_273, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_120", gecode_constraint_distinct_120, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_226", gecode_constraint_member_226, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_229", gecode_constraint_member_229, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_222", gecode_constraint_member_222, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_225", gecode_constraint_member_225, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mod_237", gecode_constraint_mod_237, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cardinality_18", gecode_constraint_cardinality_18, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_atmostOne_9", gecode_constraint_atmostOne_9, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channelSorted_33", gecode_constraint_channelSorted_33, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_210", gecode_constraint_linear_210, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_214", gecode_constraint_linear_214, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_186", gecode_constraint_linear_186, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_190", gecode_constraint_linear_190, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_42", gecode_constraint_circuit_42, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_288", gecode_constraint_rel_288, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_291", gecode_constraint_rel_291, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_284", gecode_constraint_rel_284, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_287", gecode_constraint_rel_287, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_282", gecode_constraint_rel_282, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_280", gecode_constraint_rel_280, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_299", gecode_constraint_rel_299, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_295", gecode_constraint_rel_295, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_293", gecode_constraint_rel_293, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_323", gecode_constraint_rel_323, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_321", gecode_constraint_rel_321, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_307", gecode_constraint_rel_307, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_309", gecode_constraint_rel_309, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_303", gecode_constraint_rel_303, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_310", gecode_constraint_rel_310, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_313", gecode_constraint_rel_313, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_314", gecode_constraint_rel_314, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_317", gecode_constraint_rel_317, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_320", gecode_constraint_rel_320, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_331", gecode_constraint_rel_331, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_333", gecode_constraint_rel_333, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_279", gecode_constraint_rel_279, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_277", gecode_constraint_rel_277, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_232", gecode_constraint_min_232, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_231", gecode_constraint_min_231, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_235", gecode_constraint_min_235, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cardinality_19", gecode_constraint_cardinality_19, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_69", gecode_constraint_count_69, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_66", gecode_constraint_count_66, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_60", gecode_constraint_count_60, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_59", gecode_constraint_count_59, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_56", gecode_constraint_count_56, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqrt_346", gecode_constraint_sqrt_346, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_117", gecode_constraint_cumulatives_117, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_115", gecode_constraint_cumulatives_115, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_113", gecode_constraint_cumulatives_113, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_111", gecode_constraint_cumulatives_111, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_109", gecode_constraint_cumulatives_109, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_107", gecode_constraint_cumulatives_107, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_105", gecode_constraint_cumulatives_105, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_103", gecode_constraint_cumulatives_103, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_254", gecode_constraint_nvalues_254, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_256", gecode_constraint_nvalues_256, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_250", gecode_constraint_nvalues_250, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_252", gecode_constraint_nvalues_252, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_binpacking_10", gecode_constraint_binpacking_10, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_201", gecode_constraint_linear_201, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_205", gecode_constraint_linear_205, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_193", gecode_constraint_linear_193, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_197", gecode_constraint_linear_197, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_abs_2", gecode_constraint_abs_2, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_convex_50", gecode_constraint_convex_50, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_div_122", gecode_constraint_div_122, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_311", gecode_constraint_rel_311, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_315", gecode_constraint_rel_315, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_300", gecode_constraint_rel_300, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_301", gecode_constraint_rel_301, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_289", gecode_constraint_rel_289, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_285", gecode_constraint_rel_285, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_283", gecode_constraint_rel_283, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_281", gecode_constraint_rel_281, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_326", gecode_constraint_rel_326, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_327", gecode_constraint_rel_327, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_328", gecode_constraint_rel_328, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_329", gecode_constraint_rel_329, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_weights_364", gecode_constraint_weights_364, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_219", gecode_constraint_max_219, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_263", gecode_constraint_path_263, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_358", gecode_constraint_unary_358, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_354", gecode_constraint_unary_354, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_348", gecode_constraint_unary_348, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_351", gecode_constraint_unary_351, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_341", gecode_constraint_sorted_341, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_40", gecode_constraint_circuit_40, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_37", gecode_constraint_circuit_37, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_34", gecode_constraint_circuit_34, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_142", gecode_constraint_dom_142, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_136", gecode_constraint_dom_136, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_141", gecode_constraint_dom_141, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_132", gecode_constraint_dom_132, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_135", gecode_constraint_dom_135, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_130", gecode_constraint_dom_130, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_129", gecode_constraint_dom_129, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_127", gecode_constraint_dom_127, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_146", gecode_constraint_dom_146, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_144", gecode_constraint_dom_144, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_abs_1", gecode_constraint_abs_1, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_29", gecode_constraint_channel_29, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_24", gecode_constraint_channel_24, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_304", gecode_constraint_rel_304, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_296", gecode_constraint_rel_296, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_266", gecode_constraint_path_266, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_14", gecode_constraint_branch_14, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_13", gecode_constraint_branch_13, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_15", gecode_constraint_branch_15, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mult_239", gecode_constraint_mult_239, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_41", gecode_constraint_circuit_41, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_38", gecode_constraint_circuit_38, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_35", gecode_constraint_circuit_35, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_48", gecode_constraint_clause_48, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_46", gecode_constraint_clause_46, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_275", gecode_constraint_precede_275, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_272", gecode_constraint_precede_272, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_271", gecode_constraint_precede_271, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_30", gecode_constraint_channel_30, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_86", gecode_constraint_cumulative_86, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_89", gecode_constraint_cumulative_89, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_82", gecode_constraint_cumulative_82, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_85", gecode_constraint_cumulative_85, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_79", gecode_constraint_cumulative_79, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_98", gecode_constraint_cumulative_98, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_101", gecode_constraint_cumulative_101, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_94", gecode_constraint_cumulative_94, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_97", gecode_constraint_cumulative_97, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_91", gecode_constraint_cumulative_91, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_121", gecode_constraint_distinct_121, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_118", gecode_constraint_distinct_118, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_227", gecode_constraint_member_227, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_223", gecode_constraint_member_223, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mod_236", gecode_constraint_mod_236, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqr_344", gecode_constraint_sqr_344, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_337", gecode_constraint_sequence_337, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_335", gecode_constraint_sequence_335, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_264", gecode_constraint_path_264, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_261", gecode_constraint_path_261, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_258", gecode_constraint_path_258, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_divmod_125", gecode_constraint_divmod_125, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_342", gecode_constraint_sorted_342, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_44", gecode_constraint_circuit_44, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_43", gecode_constraint_circuit_43, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_31", gecode_constraint_channel_31, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_28", gecode_constraint_channel_28, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_26", gecode_constraint_channel_26, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_22", gecode_constraint_channel_22, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_25", gecode_constraint_channel_25, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_20", gecode_constraint_channel_20, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_52", gecode_constraint_count_52, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_54", gecode_constraint_count_54, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_70", gecode_constraint_count_70, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_72", gecode_constraint_count_72, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_62", gecode_constraint_count_62, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_64", gecode_constraint_count_64, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_61", gecode_constraint_count_61, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_57", gecode_constraint_count_57, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_67", gecode_constraint_count_67, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_74", gecode_constraint_count_74, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_76", gecode_constraint_count_76, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_116", gecode_constraint_cumulatives_116, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_114", gecode_constraint_cumulatives_114, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_112", gecode_constraint_cumulatives_112, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_110", gecode_constraint_cumulatives_110, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_108", gecode_constraint_cumulatives_108, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_106", gecode_constraint_cumulatives_106, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_104", gecode_constraint_cumulatives_104, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_102", gecode_constraint_cumulatives_102, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_binpacking_11", gecode_constraint_binpacking_11, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_209", gecode_constraint_linear_209, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_213", gecode_constraint_linear_213, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_185", gecode_constraint_linear_185, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_189", gecode_constraint_linear_189, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_200", gecode_constraint_linear_200, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_203", gecode_constraint_linear_203, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_204", gecode_constraint_linear_204, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_207", gecode_constraint_linear_207, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_192", gecode_constraint_linear_192, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_195", gecode_constraint_linear_195, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_196", gecode_constraint_linear_196, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_199", gecode_constraint_linear_199, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_246", gecode_constraint_nooverlap_246, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_241", gecode_constraint_nooverlap_241, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_div_123", gecode_constraint_div_123, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqr_345", gecode_constraint_sqr_345, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_265", gecode_constraint_path_265, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_262", gecode_constraint_path_262, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_259", gecode_constraint_path_259, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_356", gecode_constraint_unary_356, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_359", gecode_constraint_unary_359, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_352", gecode_constraint_unary_352, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_355", gecode_constraint_unary_355, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_349", gecode_constraint_unary_349, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_340", gecode_constraint_sorted_340, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_343", gecode_constraint_sorted_343, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_161", gecode_constraint_element_161, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_155", gecode_constraint_element_155, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_173", gecode_constraint_element_173, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_171", gecode_constraint_element_171, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_159", gecode_constraint_element_159, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_163", gecode_constraint_element_163, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_153", gecode_constraint_element_153, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_151", gecode_constraint_element_151, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_182", gecode_constraint_element_182, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_180", gecode_constraint_element_180, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_178", gecode_constraint_element_178, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_176", gecode_constraint_element_176, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_169", gecode_constraint_element_169, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_175", gecode_constraint_element_175, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_167", gecode_constraint_element_167, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_339", gecode_constraint_sequence_339, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_39", gecode_constraint_circuit_39, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_274", gecode_constraint_precede_274, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_270", gecode_constraint_precede_270, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_88", gecode_constraint_cumulative_88, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_84", gecode_constraint_cumulative_84, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_78", gecode_constraint_cumulative_78, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_81", gecode_constraint_cumulative_81, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_100", gecode_constraint_cumulative_100, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_96", gecode_constraint_cumulative_96, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_90", gecode_constraint_cumulative_90, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_93", gecode_constraint_cumulative_93, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_119", gecode_constraint_distinct_119, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_230", gecode_constraint_min_230, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_234", gecode_constraint_min_234, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqrt_347", gecode_constraint_sqrt_347, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_336", gecode_constraint_sequence_336, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_334", gecode_constraint_sequence_334, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_363", gecode_constraint_unshare_363, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_361", gecode_constraint_unshare_361, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_269", gecode_constraint_path_269, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_260", gecode_constraint_path_260, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_divmod_124", gecode_constraint_divmod_124, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_245", gecode_constraint_nooverlap_245, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_80", gecode_constraint_cumulative_80, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_92", gecode_constraint_cumulative_92, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_228", gecode_constraint_member_228, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_224", gecode_constraint_member_224, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_71", gecode_constraint_count_71, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_73", gecode_constraint_count_73, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_75", gecode_constraint_count_75, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_77", gecode_constraint_count_77, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_63", gecode_constraint_count_63, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_65", gecode_constraint_count_65, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_53", gecode_constraint_count_53, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_55", gecode_constraint_count_55, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_notMin_249", gecode_constraint_notMin_249, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_87", gecode_constraint_cumulative_87, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_83", gecode_constraint_cumulative_83, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_99", gecode_constraint_cumulative_99, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_95", gecode_constraint_cumulative_95, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_16", gecode_constraint_branch_16, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_12", gecode_constraint_branch_12, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_17", gecode_constraint_branch_17, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_140", gecode_constraint_dom_140, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_134", gecode_constraint_dom_134, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_128", gecode_constraint_dom_128, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_126", gecode_constraint_dom_126, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_208", gecode_constraint_linear_208, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_211", gecode_constraint_linear_211, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_212", gecode_constraint_linear_212, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_215", gecode_constraint_linear_215, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_184", gecode_constraint_linear_184, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_187", gecode_constraint_linear_187, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_188", gecode_constraint_linear_188, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_191", gecode_constraint_linear_191, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_202", gecode_constraint_linear_202, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_206", gecode_constraint_linear_206, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_194", gecode_constraint_linear_194, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_198", gecode_constraint_linear_198, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_240", gecode_constraint_nooverlap_240, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_243", gecode_constraint_nooverlap_243, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_183", gecode_constraint_element_183, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_181", gecode_constraint_element_181, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_179", gecode_constraint_element_179, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_177", gecode_constraint_element_177, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_290", gecode_constraint_rel_290, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_286", gecode_constraint_rel_286, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_298", gecode_constraint_rel_298, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_294", gecode_constraint_rel_294, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_292", gecode_constraint_rel_292, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_297", gecode_constraint_rel_297, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_324", gecode_constraint_rel_324, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_322", gecode_constraint_rel_322, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_306", gecode_constraint_rel_306, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_308", gecode_constraint_rel_308, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_302", gecode_constraint_rel_302, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_305", gecode_constraint_rel_305, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_312", gecode_constraint_rel_312, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_316", gecode_constraint_rel_316, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_318", gecode_constraint_rel_318, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_319", gecode_constraint_rel_319, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_325", gecode_constraint_rel_325, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_330", gecode_constraint_rel_330, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_332", gecode_constraint_rel_332, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_278", gecode_constraint_rel_278, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_276", gecode_constraint_rel_276, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_233", gecode_constraint_min_233, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_68", gecode_constraint_count_68, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_58", gecode_constraint_count_58, 3);
|
1
library/gecode/3.7.1/gecode-version.txt
Normal file
1
library/gecode/3.7.1/gecode-version.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
3.7.1
|
2995
library/gecode/3.7.1/gecode_yap_auto_generated.yap
Normal file
2995
library/gecode/3.7.1/gecode_yap_auto_generated.yap
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,31 @@
|
|||||||
|
// -*- c++ -*-
|
||||||
|
//=============================================================================
|
||||||
|
// Copyright (C) 2011 by Denys Duchier
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify it
|
||||||
|
// under the terms of the GNU Lesser General Public License as published by the
|
||||||
|
// Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
// option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
// more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
static IntRelType gecode_IntRelType_from_term(YAP_Term);
|
||||||
|
static BoolOpType gecode_BoolOpType_from_term(YAP_Term);
|
||||||
|
static IntConLevel gecode_IntConLevel_from_term(YAP_Term);
|
||||||
|
static TaskType gecode_TaskType_from_term(YAP_Term);
|
||||||
|
static ExtensionalPropKind gecode_ExtensionalPropKind_from_term(YAP_Term);
|
||||||
|
static IntVarBranch gecode_IntVarBranch_from_term(YAP_Term);
|
||||||
|
static IntValBranch gecode_IntValBranch_from_term(YAP_Term);
|
||||||
|
static IntAssign gecode_IntAssign_from_term(YAP_Term);
|
||||||
|
static SetRelType gecode_SetRelType_from_term(YAP_Term);
|
||||||
|
static SetOpType gecode_SetOpType_from_term(YAP_Term);
|
||||||
|
static SetVarBranch gecode_SetVarBranch_from_term(YAP_Term);
|
||||||
|
static SetValBranch gecode_SetValBranch_from_term(YAP_Term);
|
||||||
|
static SetAssign gecode_SetAssign_from_term(YAP_Term);
|
4315
library/gecode/3.7.1/gecode_yap_cc_impl_auto_generated.icc
Normal file
4315
library/gecode/3.7.1/gecode_yap_cc_impl_auto_generated.icc
Normal file
File diff suppressed because it is too large
Load Diff
698
library/gecode/3.7.1/gecode_yap_cc_init_auto_generated.icc
Normal file
698
library/gecode/3.7.1/gecode_yap_cc_init_auto_generated.icc
Normal file
@ -0,0 +1,698 @@
|
|||||||
|
// -*- c++ -*-
|
||||||
|
//=============================================================================
|
||||||
|
// Copyright (C) 2011 by Denys Duchier
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify it
|
||||||
|
// under the terms of the GNU Lesser General Public License as published by the
|
||||||
|
// Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
// option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
// more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_EQ");
|
||||||
|
gecode_IRT_EQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_NQ");
|
||||||
|
gecode_IRT_NQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_LQ");
|
||||||
|
gecode_IRT_LQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_LE");
|
||||||
|
gecode_IRT_LE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_GQ");
|
||||||
|
gecode_IRT_GQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_GR");
|
||||||
|
gecode_IRT_GR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_AND");
|
||||||
|
gecode_BOT_AND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_OR");
|
||||||
|
gecode_BOT_OR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_IMP");
|
||||||
|
gecode_BOT_IMP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_EQV");
|
||||||
|
gecode_BOT_EQV = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_XOR");
|
||||||
|
gecode_BOT_XOR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_VAL");
|
||||||
|
gecode_ICL_VAL = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_BND");
|
||||||
|
gecode_ICL_BND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_DOM");
|
||||||
|
gecode_ICL_DOM = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_DEF");
|
||||||
|
gecode_ICL_DEF = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXP");
|
||||||
|
gecode_TT_FIXP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXS");
|
||||||
|
gecode_TT_FIXS = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXE");
|
||||||
|
gecode_TT_FIXE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_DEF");
|
||||||
|
gecode_EPK_DEF = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_SPEED");
|
||||||
|
gecode_EPK_SPEED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_MEMORY");
|
||||||
|
gecode_EPK_MEMORY = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_NONE");
|
||||||
|
gecode_INT_VAR_NONE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_RND");
|
||||||
|
gecode_INT_VAR_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_DEGREE_MIN");
|
||||||
|
gecode_INT_VAR_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_DEGREE_MAX");
|
||||||
|
gecode_INT_VAR_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_AFC_MIN");
|
||||||
|
gecode_INT_VAR_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_AFC_MAX");
|
||||||
|
gecode_INT_VAR_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MIN_MIN");
|
||||||
|
gecode_INT_VAR_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MIN_MAX");
|
||||||
|
gecode_INT_VAR_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MAX_MIN");
|
||||||
|
gecode_INT_VAR_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MAX_MAX");
|
||||||
|
gecode_INT_VAR_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_DEGREE_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_DEGREE_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_AFC_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_AFC_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MIN_MIN");
|
||||||
|
gecode_INT_VAR_REGRET_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MIN_MAX");
|
||||||
|
gecode_INT_VAR_REGRET_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MAX_MIN");
|
||||||
|
gecode_INT_VAR_REGRET_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MAX_MAX");
|
||||||
|
gecode_INT_VAR_REGRET_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MIN");
|
||||||
|
gecode_INT_VAL_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MED");
|
||||||
|
gecode_INT_VAL_MED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MAX");
|
||||||
|
gecode_INT_VAL_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RND");
|
||||||
|
gecode_INT_VAL_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_SPLIT_MIN");
|
||||||
|
gecode_INT_VAL_SPLIT_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_SPLIT_MAX");
|
||||||
|
gecode_INT_VAL_SPLIT_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RANGE_MIN");
|
||||||
|
gecode_INT_VAL_RANGE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RANGE_MAX");
|
||||||
|
gecode_INT_VAL_RANGE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VALUES_MIN");
|
||||||
|
gecode_INT_VALUES_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VALUES_MAX");
|
||||||
|
gecode_INT_VALUES_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MIN");
|
||||||
|
gecode_INT_ASSIGN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MED");
|
||||||
|
gecode_INT_ASSIGN_MED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MAX");
|
||||||
|
gecode_INT_ASSIGN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_RND");
|
||||||
|
gecode_INT_ASSIGN_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_EQ");
|
||||||
|
gecode_SRT_EQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_NQ");
|
||||||
|
gecode_SRT_NQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_SUB");
|
||||||
|
gecode_SRT_SUB = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_SUP");
|
||||||
|
gecode_SRT_SUP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_DISJ");
|
||||||
|
gecode_SRT_DISJ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_CMPL");
|
||||||
|
gecode_SRT_CMPL = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_LQ");
|
||||||
|
gecode_SRT_LQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_LE");
|
||||||
|
gecode_SRT_LE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_GQ");
|
||||||
|
gecode_SRT_GQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_GR");
|
||||||
|
gecode_SRT_GR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_UNION");
|
||||||
|
gecode_SOT_UNION = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_DUNION");
|
||||||
|
gecode_SOT_DUNION = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_INTER");
|
||||||
|
gecode_SOT_INTER = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_MINUS");
|
||||||
|
gecode_SOT_MINUS = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_NONE");
|
||||||
|
gecode_SET_VAR_NONE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_RND");
|
||||||
|
gecode_SET_VAR_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_DEGREE_MIN");
|
||||||
|
gecode_SET_VAR_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_DEGREE_MAX");
|
||||||
|
gecode_SET_VAR_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_AFC_MIN");
|
||||||
|
gecode_SET_VAR_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_AFC_MAX");
|
||||||
|
gecode_SET_VAR_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MIN_MIN");
|
||||||
|
gecode_SET_VAR_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MIN_MAX");
|
||||||
|
gecode_SET_VAR_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MAX_MIN");
|
||||||
|
gecode_SET_VAR_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MAX_MAX");
|
||||||
|
gecode_SET_VAR_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_DEGREE_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_DEGREE_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_AFC_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_AFC_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MIN_INC");
|
||||||
|
gecode_SET_VAL_MIN_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MIN_EXC");
|
||||||
|
gecode_SET_VAL_MIN_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MED_INC");
|
||||||
|
gecode_SET_VAL_MED_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MED_EXC");
|
||||||
|
gecode_SET_VAL_MED_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MAX_INC");
|
||||||
|
gecode_SET_VAL_MAX_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MAX_EXC");
|
||||||
|
gecode_SET_VAL_MAX_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_RND_INC");
|
||||||
|
gecode_SET_VAL_RND_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_RND_EXC");
|
||||||
|
gecode_SET_VAL_RND_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MIN_INC");
|
||||||
|
gecode_SET_ASSIGN_MIN_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MIN_EXC");
|
||||||
|
gecode_SET_ASSIGN_MIN_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MED_INC");
|
||||||
|
gecode_SET_ASSIGN_MED_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MED_EXC");
|
||||||
|
gecode_SET_ASSIGN_MED_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MAX_INC");
|
||||||
|
gecode_SET_ASSIGN_MAX_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MAX_EXC");
|
||||||
|
gecode_SET_ASSIGN_MAX_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_RND_INC");
|
||||||
|
gecode_SET_ASSIGN_RND_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_RND_EXC");
|
||||||
|
gecode_SET_ASSIGN_RND_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_357", gecode_constraint_unary_357, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_353", gecode_constraint_unary_353, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_255", gecode_constraint_nvalues_255, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_257", gecode_constraint_nvalues_257, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_251", gecode_constraint_nvalues_251, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_253", gecode_constraint_nvalues_253, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_218", gecode_constraint_max_218, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_217", gecode_constraint_max_217, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_221", gecode_constraint_max_221, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_139", gecode_constraint_dom_139, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_149", gecode_constraint_dom_149, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_convex_51", gecode_constraint_convex_51, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_242", gecode_constraint_nooverlap_242, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_4", gecode_constraint_assign_4, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_3", gecode_constraint_assign_3, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_5", gecode_constraint_assign_5, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_7", gecode_constraint_assign_7, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_6", gecode_constraint_assign_6, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_8", gecode_constraint_assign_8, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_158", gecode_constraint_element_158, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_162", gecode_constraint_element_162, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_152", gecode_constraint_element_152, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_150", gecode_constraint_element_150, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_157", gecode_constraint_element_157, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_165", gecode_constraint_element_165, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_168", gecode_constraint_element_168, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_174", gecode_constraint_element_174, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_166", gecode_constraint_element_166, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_338", gecode_constraint_sequence_338, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_notMax_248", gecode_constraint_notMax_248, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_350", gecode_constraint_unary_350, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_45", gecode_constraint_circuit_45, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_36", gecode_constraint_circuit_36, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_138", gecode_constraint_dom_138, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_143", gecode_constraint_dom_143, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_137", gecode_constraint_dom_137, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_133", gecode_constraint_dom_133, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_131", gecode_constraint_dom_131, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_148", gecode_constraint_dom_148, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_147", gecode_constraint_dom_147, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_145", gecode_constraint_dom_145, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_32", gecode_constraint_channel_32, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_27", gecode_constraint_channel_27, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_23", gecode_constraint_channel_23, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_21", gecode_constraint_channel_21, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_244", gecode_constraint_nooverlap_244, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_247", gecode_constraint_nooverlap_247, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_160", gecode_constraint_element_160, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_154", gecode_constraint_element_154, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_156", gecode_constraint_element_156, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_164", gecode_constraint_element_164, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_172", gecode_constraint_element_172, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_170", gecode_constraint_element_170, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_216", gecode_constraint_max_216, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_220", gecode_constraint_max_220, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_362", gecode_constraint_unshare_362, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_360", gecode_constraint_unshare_360, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_268", gecode_constraint_path_268, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_267", gecode_constraint_path_267, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mult_238", gecode_constraint_mult_238, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_49", gecode_constraint_clause_49, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_47", gecode_constraint_clause_47, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_273", gecode_constraint_precede_273, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_120", gecode_constraint_distinct_120, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_226", gecode_constraint_member_226, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_229", gecode_constraint_member_229, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_222", gecode_constraint_member_222, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_225", gecode_constraint_member_225, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mod_237", gecode_constraint_mod_237, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cardinality_18", gecode_constraint_cardinality_18, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_atmostOne_9", gecode_constraint_atmostOne_9, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channelSorted_33", gecode_constraint_channelSorted_33, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_210", gecode_constraint_linear_210, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_214", gecode_constraint_linear_214, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_186", gecode_constraint_linear_186, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_190", gecode_constraint_linear_190, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_42", gecode_constraint_circuit_42, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_288", gecode_constraint_rel_288, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_291", gecode_constraint_rel_291, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_284", gecode_constraint_rel_284, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_287", gecode_constraint_rel_287, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_282", gecode_constraint_rel_282, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_280", gecode_constraint_rel_280, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_299", gecode_constraint_rel_299, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_295", gecode_constraint_rel_295, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_293", gecode_constraint_rel_293, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_323", gecode_constraint_rel_323, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_321", gecode_constraint_rel_321, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_307", gecode_constraint_rel_307, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_309", gecode_constraint_rel_309, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_303", gecode_constraint_rel_303, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_310", gecode_constraint_rel_310, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_313", gecode_constraint_rel_313, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_314", gecode_constraint_rel_314, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_317", gecode_constraint_rel_317, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_320", gecode_constraint_rel_320, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_331", gecode_constraint_rel_331, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_333", gecode_constraint_rel_333, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_279", gecode_constraint_rel_279, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_277", gecode_constraint_rel_277, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_232", gecode_constraint_min_232, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_231", gecode_constraint_min_231, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_235", gecode_constraint_min_235, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cardinality_19", gecode_constraint_cardinality_19, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_69", gecode_constraint_count_69, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_66", gecode_constraint_count_66, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_60", gecode_constraint_count_60, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_59", gecode_constraint_count_59, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_56", gecode_constraint_count_56, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqrt_346", gecode_constraint_sqrt_346, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_117", gecode_constraint_cumulatives_117, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_115", gecode_constraint_cumulatives_115, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_113", gecode_constraint_cumulatives_113, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_111", gecode_constraint_cumulatives_111, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_109", gecode_constraint_cumulatives_109, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_107", gecode_constraint_cumulatives_107, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_105", gecode_constraint_cumulatives_105, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_103", gecode_constraint_cumulatives_103, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_254", gecode_constraint_nvalues_254, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_256", gecode_constraint_nvalues_256, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_250", gecode_constraint_nvalues_250, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_252", gecode_constraint_nvalues_252, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_binpacking_10", gecode_constraint_binpacking_10, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_201", gecode_constraint_linear_201, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_205", gecode_constraint_linear_205, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_193", gecode_constraint_linear_193, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_197", gecode_constraint_linear_197, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_abs_2", gecode_constraint_abs_2, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_convex_50", gecode_constraint_convex_50, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_div_122", gecode_constraint_div_122, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_311", gecode_constraint_rel_311, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_315", gecode_constraint_rel_315, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_300", gecode_constraint_rel_300, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_301", gecode_constraint_rel_301, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_289", gecode_constraint_rel_289, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_285", gecode_constraint_rel_285, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_283", gecode_constraint_rel_283, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_281", gecode_constraint_rel_281, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_326", gecode_constraint_rel_326, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_327", gecode_constraint_rel_327, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_328", gecode_constraint_rel_328, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_329", gecode_constraint_rel_329, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_weights_364", gecode_constraint_weights_364, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_219", gecode_constraint_max_219, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_263", gecode_constraint_path_263, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_358", gecode_constraint_unary_358, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_354", gecode_constraint_unary_354, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_348", gecode_constraint_unary_348, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_351", gecode_constraint_unary_351, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_341", gecode_constraint_sorted_341, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_40", gecode_constraint_circuit_40, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_37", gecode_constraint_circuit_37, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_34", gecode_constraint_circuit_34, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_142", gecode_constraint_dom_142, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_136", gecode_constraint_dom_136, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_141", gecode_constraint_dom_141, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_132", gecode_constraint_dom_132, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_135", gecode_constraint_dom_135, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_130", gecode_constraint_dom_130, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_129", gecode_constraint_dom_129, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_127", gecode_constraint_dom_127, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_146", gecode_constraint_dom_146, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_144", gecode_constraint_dom_144, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_abs_1", gecode_constraint_abs_1, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_29", gecode_constraint_channel_29, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_24", gecode_constraint_channel_24, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_304", gecode_constraint_rel_304, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_296", gecode_constraint_rel_296, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_266", gecode_constraint_path_266, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_14", gecode_constraint_branch_14, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_13", gecode_constraint_branch_13, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_15", gecode_constraint_branch_15, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mult_239", gecode_constraint_mult_239, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_41", gecode_constraint_circuit_41, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_38", gecode_constraint_circuit_38, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_35", gecode_constraint_circuit_35, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_48", gecode_constraint_clause_48, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_46", gecode_constraint_clause_46, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_275", gecode_constraint_precede_275, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_272", gecode_constraint_precede_272, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_271", gecode_constraint_precede_271, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_30", gecode_constraint_channel_30, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_86", gecode_constraint_cumulative_86, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_89", gecode_constraint_cumulative_89, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_82", gecode_constraint_cumulative_82, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_85", gecode_constraint_cumulative_85, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_79", gecode_constraint_cumulative_79, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_98", gecode_constraint_cumulative_98, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_101", gecode_constraint_cumulative_101, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_94", gecode_constraint_cumulative_94, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_97", gecode_constraint_cumulative_97, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_91", gecode_constraint_cumulative_91, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_121", gecode_constraint_distinct_121, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_118", gecode_constraint_distinct_118, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_227", gecode_constraint_member_227, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_223", gecode_constraint_member_223, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mod_236", gecode_constraint_mod_236, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqr_344", gecode_constraint_sqr_344, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_337", gecode_constraint_sequence_337, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_335", gecode_constraint_sequence_335, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_264", gecode_constraint_path_264, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_261", gecode_constraint_path_261, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_258", gecode_constraint_path_258, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_divmod_125", gecode_constraint_divmod_125, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_342", gecode_constraint_sorted_342, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_44", gecode_constraint_circuit_44, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_43", gecode_constraint_circuit_43, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_31", gecode_constraint_channel_31, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_28", gecode_constraint_channel_28, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_26", gecode_constraint_channel_26, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_22", gecode_constraint_channel_22, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_25", gecode_constraint_channel_25, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_20", gecode_constraint_channel_20, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_52", gecode_constraint_count_52, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_54", gecode_constraint_count_54, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_70", gecode_constraint_count_70, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_72", gecode_constraint_count_72, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_62", gecode_constraint_count_62, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_64", gecode_constraint_count_64, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_61", gecode_constraint_count_61, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_57", gecode_constraint_count_57, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_67", gecode_constraint_count_67, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_74", gecode_constraint_count_74, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_76", gecode_constraint_count_76, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_116", gecode_constraint_cumulatives_116, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_114", gecode_constraint_cumulatives_114, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_112", gecode_constraint_cumulatives_112, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_110", gecode_constraint_cumulatives_110, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_108", gecode_constraint_cumulatives_108, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_106", gecode_constraint_cumulatives_106, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_104", gecode_constraint_cumulatives_104, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_102", gecode_constraint_cumulatives_102, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_binpacking_11", gecode_constraint_binpacking_11, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_209", gecode_constraint_linear_209, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_213", gecode_constraint_linear_213, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_185", gecode_constraint_linear_185, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_189", gecode_constraint_linear_189, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_200", gecode_constraint_linear_200, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_203", gecode_constraint_linear_203, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_204", gecode_constraint_linear_204, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_207", gecode_constraint_linear_207, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_192", gecode_constraint_linear_192, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_195", gecode_constraint_linear_195, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_196", gecode_constraint_linear_196, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_199", gecode_constraint_linear_199, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_246", gecode_constraint_nooverlap_246, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_241", gecode_constraint_nooverlap_241, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_div_123", gecode_constraint_div_123, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqr_345", gecode_constraint_sqr_345, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_265", gecode_constraint_path_265, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_262", gecode_constraint_path_262, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_259", gecode_constraint_path_259, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_356", gecode_constraint_unary_356, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_359", gecode_constraint_unary_359, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_352", gecode_constraint_unary_352, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_355", gecode_constraint_unary_355, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_349", gecode_constraint_unary_349, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_340", gecode_constraint_sorted_340, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_343", gecode_constraint_sorted_343, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_161", gecode_constraint_element_161, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_155", gecode_constraint_element_155, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_173", gecode_constraint_element_173, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_171", gecode_constraint_element_171, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_159", gecode_constraint_element_159, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_163", gecode_constraint_element_163, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_153", gecode_constraint_element_153, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_151", gecode_constraint_element_151, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_182", gecode_constraint_element_182, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_180", gecode_constraint_element_180, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_178", gecode_constraint_element_178, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_176", gecode_constraint_element_176, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_169", gecode_constraint_element_169, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_175", gecode_constraint_element_175, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_167", gecode_constraint_element_167, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_339", gecode_constraint_sequence_339, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_39", gecode_constraint_circuit_39, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_274", gecode_constraint_precede_274, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_270", gecode_constraint_precede_270, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_88", gecode_constraint_cumulative_88, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_84", gecode_constraint_cumulative_84, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_78", gecode_constraint_cumulative_78, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_81", gecode_constraint_cumulative_81, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_100", gecode_constraint_cumulative_100, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_96", gecode_constraint_cumulative_96, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_90", gecode_constraint_cumulative_90, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_93", gecode_constraint_cumulative_93, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_119", gecode_constraint_distinct_119, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_230", gecode_constraint_min_230, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_234", gecode_constraint_min_234, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqrt_347", gecode_constraint_sqrt_347, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_336", gecode_constraint_sequence_336, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_334", gecode_constraint_sequence_334, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_363", gecode_constraint_unshare_363, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_361", gecode_constraint_unshare_361, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_269", gecode_constraint_path_269, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_260", gecode_constraint_path_260, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_divmod_124", gecode_constraint_divmod_124, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_245", gecode_constraint_nooverlap_245, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_80", gecode_constraint_cumulative_80, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_92", gecode_constraint_cumulative_92, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_228", gecode_constraint_member_228, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_224", gecode_constraint_member_224, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_71", gecode_constraint_count_71, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_73", gecode_constraint_count_73, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_75", gecode_constraint_count_75, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_77", gecode_constraint_count_77, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_63", gecode_constraint_count_63, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_65", gecode_constraint_count_65, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_53", gecode_constraint_count_53, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_55", gecode_constraint_count_55, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_notMin_249", gecode_constraint_notMin_249, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_87", gecode_constraint_cumulative_87, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_83", gecode_constraint_cumulative_83, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_99", gecode_constraint_cumulative_99, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_95", gecode_constraint_cumulative_95, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_16", gecode_constraint_branch_16, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_12", gecode_constraint_branch_12, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_17", gecode_constraint_branch_17, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_140", gecode_constraint_dom_140, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_134", gecode_constraint_dom_134, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_128", gecode_constraint_dom_128, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_126", gecode_constraint_dom_126, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_208", gecode_constraint_linear_208, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_211", gecode_constraint_linear_211, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_212", gecode_constraint_linear_212, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_215", gecode_constraint_linear_215, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_184", gecode_constraint_linear_184, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_187", gecode_constraint_linear_187, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_188", gecode_constraint_linear_188, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_191", gecode_constraint_linear_191, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_202", gecode_constraint_linear_202, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_206", gecode_constraint_linear_206, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_194", gecode_constraint_linear_194, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_198", gecode_constraint_linear_198, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_240", gecode_constraint_nooverlap_240, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_243", gecode_constraint_nooverlap_243, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_183", gecode_constraint_element_183, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_181", gecode_constraint_element_181, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_179", gecode_constraint_element_179, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_177", gecode_constraint_element_177, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_290", gecode_constraint_rel_290, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_286", gecode_constraint_rel_286, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_298", gecode_constraint_rel_298, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_294", gecode_constraint_rel_294, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_292", gecode_constraint_rel_292, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_297", gecode_constraint_rel_297, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_324", gecode_constraint_rel_324, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_322", gecode_constraint_rel_322, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_306", gecode_constraint_rel_306, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_308", gecode_constraint_rel_308, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_302", gecode_constraint_rel_302, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_305", gecode_constraint_rel_305, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_312", gecode_constraint_rel_312, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_316", gecode_constraint_rel_316, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_318", gecode_constraint_rel_318, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_319", gecode_constraint_rel_319, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_325", gecode_constraint_rel_325, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_330", gecode_constraint_rel_330, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_332", gecode_constraint_rel_332, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_278", gecode_constraint_rel_278, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_276", gecode_constraint_rel_276, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_233", gecode_constraint_min_233, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_68", gecode_constraint_count_68, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_58", gecode_constraint_count_58, 3);
|
1
library/gecode/4.0.0/gecode-version.txt
Normal file
1
library/gecode/4.0.0/gecode-version.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
4.0.0
|
3010
library/gecode/4.0.0/gecode_yap_auto_generated.yap
Normal file
3010
library/gecode/4.0.0/gecode_yap_auto_generated.yap
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,32 @@
|
|||||||
|
// -*- c++ -*-
|
||||||
|
//=============================================================================
|
||||||
|
// Copyright (C) 2011 by Denys Duchier
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify it
|
||||||
|
// under the terms of the GNU Lesser General Public License as published by the
|
||||||
|
// Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
// option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
// more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
static ReifyMode gecode_ReifyMode_from_term(YAP_Term);
|
||||||
|
static IntRelType gecode_IntRelType_from_term(YAP_Term);
|
||||||
|
static BoolOpType gecode_BoolOpType_from_term(YAP_Term);
|
||||||
|
static IntConLevel gecode_IntConLevel_from_term(YAP_Term);
|
||||||
|
static TaskType gecode_TaskType_from_term(YAP_Term);
|
||||||
|
static ExtensionalPropKind gecode_ExtensionalPropKind_from_term(YAP_Term);
|
||||||
|
static IntVarBranch gecode_IntVarBranch_from_term(YAP_Term);
|
||||||
|
static IntValBranch gecode_IntValBranch_from_term(YAP_Term);
|
||||||
|
static IntAssign gecode_IntAssign_from_term(YAP_Term);
|
||||||
|
static SetRelType gecode_SetRelType_from_term(YAP_Term);
|
||||||
|
static SetOpType gecode_SetOpType_from_term(YAP_Term);
|
||||||
|
static SetVarBranch gecode_SetVarBranch_from_term(YAP_Term);
|
||||||
|
static SetValBranch gecode_SetValBranch_from_term(YAP_Term);
|
||||||
|
static SetAssign gecode_SetAssign_from_term(YAP_Term);
|
4336
library/gecode/4.0.0/gecode_yap_cc_impl_auto_generated.icc
Normal file
4336
library/gecode/4.0.0/gecode_yap_cc_impl_auto_generated.icc
Normal file
File diff suppressed because it is too large
Load Diff
709
library/gecode/4.0.0/gecode_yap_cc_init_auto_generated.icc
Normal file
709
library/gecode/4.0.0/gecode_yap_cc_init_auto_generated.icc
Normal file
@ -0,0 +1,709 @@
|
|||||||
|
// -*- c++ -*-
|
||||||
|
//=============================================================================
|
||||||
|
// Copyright (C) 2011 by Denys Duchier
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify it
|
||||||
|
// under the terms of the GNU Lesser General Public License as published by the
|
||||||
|
// Free Software Foundation, either version 3 of the License, or (at your
|
||||||
|
// option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
// more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Lesser General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("RM_EQV");
|
||||||
|
gecode_RM_EQV = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("RM_IMP");
|
||||||
|
gecode_RM_IMP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("RM_PMI");
|
||||||
|
gecode_RM_PMI = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_EQ");
|
||||||
|
gecode_IRT_EQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_NQ");
|
||||||
|
gecode_IRT_NQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_LQ");
|
||||||
|
gecode_IRT_LQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_LE");
|
||||||
|
gecode_IRT_LE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_GQ");
|
||||||
|
gecode_IRT_GQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("IRT_GR");
|
||||||
|
gecode_IRT_GR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_AND");
|
||||||
|
gecode_BOT_AND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_OR");
|
||||||
|
gecode_BOT_OR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_IMP");
|
||||||
|
gecode_BOT_IMP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_EQV");
|
||||||
|
gecode_BOT_EQV = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("BOT_XOR");
|
||||||
|
gecode_BOT_XOR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_VAL");
|
||||||
|
gecode_ICL_VAL = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_BND");
|
||||||
|
gecode_ICL_BND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_DOM");
|
||||||
|
gecode_ICL_DOM = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("ICL_DEF");
|
||||||
|
gecode_ICL_DEF = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXP");
|
||||||
|
gecode_TT_FIXP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXS");
|
||||||
|
gecode_TT_FIXS = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("TT_FIXE");
|
||||||
|
gecode_TT_FIXE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_DEF");
|
||||||
|
gecode_EPK_DEF = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_SPEED");
|
||||||
|
gecode_EPK_SPEED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("EPK_MEMORY");
|
||||||
|
gecode_EPK_MEMORY = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_NONE");
|
||||||
|
gecode_INT_VAR_NONE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_RND");
|
||||||
|
gecode_INT_VAR_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_DEGREE_MIN");
|
||||||
|
gecode_INT_VAR_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_DEGREE_MAX");
|
||||||
|
gecode_INT_VAR_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_AFC_MIN");
|
||||||
|
gecode_INT_VAR_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_AFC_MAX");
|
||||||
|
gecode_INT_VAR_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MIN_MIN");
|
||||||
|
gecode_INT_VAR_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MIN_MAX");
|
||||||
|
gecode_INT_VAR_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MAX_MIN");
|
||||||
|
gecode_INT_VAR_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_MAX_MAX");
|
||||||
|
gecode_INT_VAR_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_DEGREE_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_DEGREE_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_AFC_MIN");
|
||||||
|
gecode_INT_VAR_SIZE_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_SIZE_AFC_MAX");
|
||||||
|
gecode_INT_VAR_SIZE_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MIN_MIN");
|
||||||
|
gecode_INT_VAR_REGRET_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MIN_MAX");
|
||||||
|
gecode_INT_VAR_REGRET_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MAX_MIN");
|
||||||
|
gecode_INT_VAR_REGRET_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAR_REGRET_MAX_MAX");
|
||||||
|
gecode_INT_VAR_REGRET_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MIN");
|
||||||
|
gecode_INT_VAL_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MED");
|
||||||
|
gecode_INT_VAL_MED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_MAX");
|
||||||
|
gecode_INT_VAL_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RND");
|
||||||
|
gecode_INT_VAL_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_SPLIT_MIN");
|
||||||
|
gecode_INT_VAL_SPLIT_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_SPLIT_MAX");
|
||||||
|
gecode_INT_VAL_SPLIT_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RANGE_MIN");
|
||||||
|
gecode_INT_VAL_RANGE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VAL_RANGE_MAX");
|
||||||
|
gecode_INT_VAL_RANGE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VALUES_MIN");
|
||||||
|
gecode_INT_VALUES_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_VALUES_MAX");
|
||||||
|
gecode_INT_VALUES_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MIN");
|
||||||
|
gecode_INT_ASSIGN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MED");
|
||||||
|
gecode_INT_ASSIGN_MED = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_MAX");
|
||||||
|
gecode_INT_ASSIGN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("INT_ASSIGN_RND");
|
||||||
|
gecode_INT_ASSIGN_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_EQ");
|
||||||
|
gecode_SRT_EQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_NQ");
|
||||||
|
gecode_SRT_NQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_SUB");
|
||||||
|
gecode_SRT_SUB = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_SUP");
|
||||||
|
gecode_SRT_SUP = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_DISJ");
|
||||||
|
gecode_SRT_DISJ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_CMPL");
|
||||||
|
gecode_SRT_CMPL = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_LQ");
|
||||||
|
gecode_SRT_LQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_LE");
|
||||||
|
gecode_SRT_LE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_GQ");
|
||||||
|
gecode_SRT_GQ = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SRT_GR");
|
||||||
|
gecode_SRT_GR = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_UNION");
|
||||||
|
gecode_SOT_UNION = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_DUNION");
|
||||||
|
gecode_SOT_DUNION = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_INTER");
|
||||||
|
gecode_SOT_INTER = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SOT_MINUS");
|
||||||
|
gecode_SOT_MINUS = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_NONE");
|
||||||
|
gecode_SET_VAR_NONE = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_RND");
|
||||||
|
gecode_SET_VAR_RND = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_DEGREE_MIN");
|
||||||
|
gecode_SET_VAR_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_DEGREE_MAX");
|
||||||
|
gecode_SET_VAR_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_AFC_MIN");
|
||||||
|
gecode_SET_VAR_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_AFC_MAX");
|
||||||
|
gecode_SET_VAR_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MIN_MIN");
|
||||||
|
gecode_SET_VAR_MIN_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MIN_MAX");
|
||||||
|
gecode_SET_VAR_MIN_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MAX_MIN");
|
||||||
|
gecode_SET_VAR_MAX_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_MAX_MAX");
|
||||||
|
gecode_SET_VAR_MAX_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_DEGREE_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_DEGREE_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_DEGREE_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_DEGREE_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_AFC_MIN");
|
||||||
|
gecode_SET_VAR_SIZE_AFC_MIN = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAR_SIZE_AFC_MAX");
|
||||||
|
gecode_SET_VAR_SIZE_AFC_MAX = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MIN_INC");
|
||||||
|
gecode_SET_VAL_MIN_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MIN_EXC");
|
||||||
|
gecode_SET_VAL_MIN_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MED_INC");
|
||||||
|
gecode_SET_VAL_MED_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MED_EXC");
|
||||||
|
gecode_SET_VAL_MED_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MAX_INC");
|
||||||
|
gecode_SET_VAL_MAX_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_MAX_EXC");
|
||||||
|
gecode_SET_VAL_MAX_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_RND_INC");
|
||||||
|
gecode_SET_VAL_RND_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_VAL_RND_EXC");
|
||||||
|
gecode_SET_VAL_RND_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MIN_INC");
|
||||||
|
gecode_SET_ASSIGN_MIN_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MIN_EXC");
|
||||||
|
gecode_SET_ASSIGN_MIN_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MED_INC");
|
||||||
|
gecode_SET_ASSIGN_MED_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MED_EXC");
|
||||||
|
gecode_SET_ASSIGN_MED_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MAX_INC");
|
||||||
|
gecode_SET_ASSIGN_MAX_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_MAX_EXC");
|
||||||
|
gecode_SET_ASSIGN_MAX_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_RND_INC");
|
||||||
|
gecode_SET_ASSIGN_RND_INC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
{ YAP_Atom X= YAP_LookupAtom("SET_ASSIGN_RND_EXC");
|
||||||
|
gecode_SET_ASSIGN_RND_EXC = YAP_MkAtomTerm(X);
|
||||||
|
YAP_AtomGetHold(X); }
|
||||||
|
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_358", gecode_constraint_unary_358, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_354", gecode_constraint_unary_354, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_256", gecode_constraint_nvalues_256, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_258", gecode_constraint_nvalues_258, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_252", gecode_constraint_nvalues_252, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_254", gecode_constraint_nvalues_254, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_219", gecode_constraint_max_219, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_218", gecode_constraint_max_218, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_222", gecode_constraint_max_222, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_142", gecode_constraint_dom_142, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_150", gecode_constraint_dom_150, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_convex_52", gecode_constraint_convex_52, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_243", gecode_constraint_nooverlap_243, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_4", gecode_constraint_assign_4, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_3", gecode_constraint_assign_3, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_5", gecode_constraint_assign_5, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_7", gecode_constraint_assign_7, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_6", gecode_constraint_assign_6, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_assign_8", gecode_constraint_assign_8, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_159", gecode_constraint_element_159, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_163", gecode_constraint_element_163, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_153", gecode_constraint_element_153, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_151", gecode_constraint_element_151, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_158", gecode_constraint_element_158, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_166", gecode_constraint_element_166, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_169", gecode_constraint_element_169, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_175", gecode_constraint_element_175, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_167", gecode_constraint_element_167, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_339", gecode_constraint_sequence_339, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_notMax_249", gecode_constraint_notMax_249, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_351", gecode_constraint_unary_351, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_46", gecode_constraint_circuit_46, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_37", gecode_constraint_circuit_37, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_141", gecode_constraint_dom_141, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_140", gecode_constraint_dom_140, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_144", gecode_constraint_dom_144, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_136", gecode_constraint_dom_136, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_132", gecode_constraint_dom_132, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_149", gecode_constraint_dom_149, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_148", gecode_constraint_dom_148, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_146", gecode_constraint_dom_146, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_33", gecode_constraint_channel_33, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_27", gecode_constraint_channel_27, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_23", gecode_constraint_channel_23, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_21", gecode_constraint_channel_21, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_245", gecode_constraint_nooverlap_245, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_248", gecode_constraint_nooverlap_248, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_161", gecode_constraint_element_161, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_155", gecode_constraint_element_155, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_157", gecode_constraint_element_157, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_165", gecode_constraint_element_165, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_173", gecode_constraint_element_173, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_171", gecode_constraint_element_171, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_217", gecode_constraint_max_217, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_221", gecode_constraint_max_221, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_363", gecode_constraint_unshare_363, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_361", gecode_constraint_unshare_361, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_269", gecode_constraint_path_269, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_268", gecode_constraint_path_268, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mult_239", gecode_constraint_mult_239, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_50", gecode_constraint_clause_50, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_48", gecode_constraint_clause_48, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_274", gecode_constraint_precede_274, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_121", gecode_constraint_distinct_121, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_229", gecode_constraint_member_229, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_228", gecode_constraint_member_228, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_225", gecode_constraint_member_225, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_224", gecode_constraint_member_224, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mod_238", gecode_constraint_mod_238, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cardinality_18", gecode_constraint_cardinality_18, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_atmostOne_9", gecode_constraint_atmostOne_9, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channelSorted_34", gecode_constraint_channelSorted_34, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_209", gecode_constraint_linear_209, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_213", gecode_constraint_linear_213, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_185", gecode_constraint_linear_185, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_189", gecode_constraint_linear_189, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_43", gecode_constraint_circuit_43, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_291", gecode_constraint_rel_291, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_290", gecode_constraint_rel_290, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_287", gecode_constraint_rel_287, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_286", gecode_constraint_rel_286, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_283", gecode_constraint_rel_283, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_281", gecode_constraint_rel_281, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_300", gecode_constraint_rel_300, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_296", gecode_constraint_rel_296, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_294", gecode_constraint_rel_294, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_324", gecode_constraint_rel_324, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_322", gecode_constraint_rel_322, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_308", gecode_constraint_rel_308, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_310", gecode_constraint_rel_310, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_304", gecode_constraint_rel_304, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_313", gecode_constraint_rel_313, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_312", gecode_constraint_rel_312, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_317", gecode_constraint_rel_317, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_316", gecode_constraint_rel_316, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_321", gecode_constraint_rel_321, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_332", gecode_constraint_rel_332, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_334", gecode_constraint_rel_334, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_280", gecode_constraint_rel_280, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_278", gecode_constraint_rel_278, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_233", gecode_constraint_min_233, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_232", gecode_constraint_min_232, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_236", gecode_constraint_min_236, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cardinality_19", gecode_constraint_cardinality_19, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_70", gecode_constraint_count_70, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_67", gecode_constraint_count_67, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_61", gecode_constraint_count_61, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_60", gecode_constraint_count_60, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_57", gecode_constraint_count_57, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqrt_347", gecode_constraint_sqrt_347, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_118", gecode_constraint_cumulatives_118, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_116", gecode_constraint_cumulatives_116, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_114", gecode_constraint_cumulatives_114, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_112", gecode_constraint_cumulatives_112, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_110", gecode_constraint_cumulatives_110, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_108", gecode_constraint_cumulatives_108, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_106", gecode_constraint_cumulatives_106, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_104", gecode_constraint_cumulatives_104, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_255", gecode_constraint_nvalues_255, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_257", gecode_constraint_nvalues_257, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_251", gecode_constraint_nvalues_251, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nvalues_253", gecode_constraint_nvalues_253, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_binpacking_10", gecode_constraint_binpacking_10, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_204", gecode_constraint_linear_204, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_208", gecode_constraint_linear_208, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_196", gecode_constraint_linear_196, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_200", gecode_constraint_linear_200, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_abs_2", gecode_constraint_abs_2, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_convex_51", gecode_constraint_convex_51, 2);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_div_123", gecode_constraint_div_123, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_314", gecode_constraint_rel_314, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_318", gecode_constraint_rel_318, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_301", gecode_constraint_rel_301, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_302", gecode_constraint_rel_302, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_292", gecode_constraint_rel_292, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_288", gecode_constraint_rel_288, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_284", gecode_constraint_rel_284, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_282", gecode_constraint_rel_282, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_327", gecode_constraint_rel_327, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_328", gecode_constraint_rel_328, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_329", gecode_constraint_rel_329, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_330", gecode_constraint_rel_330, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_weights_365", gecode_constraint_weights_365, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_max_220", gecode_constraint_max_220, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_264", gecode_constraint_path_264, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_359", gecode_constraint_unary_359, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_355", gecode_constraint_unary_355, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_349", gecode_constraint_unary_349, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_352", gecode_constraint_unary_352, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_342", gecode_constraint_sorted_342, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_41", gecode_constraint_circuit_41, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_38", gecode_constraint_circuit_38, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_35", gecode_constraint_circuit_35, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_139", gecode_constraint_dom_139, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_143", gecode_constraint_dom_143, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_138", gecode_constraint_dom_138, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_135", gecode_constraint_dom_135, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_134", gecode_constraint_dom_134, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_131", gecode_constraint_dom_131, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_130", gecode_constraint_dom_130, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_128", gecode_constraint_dom_128, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_147", gecode_constraint_dom_147, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_145", gecode_constraint_dom_145, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_abs_1", gecode_constraint_abs_1, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_29", gecode_constraint_channel_29, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_24", gecode_constraint_channel_24, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_305", gecode_constraint_rel_305, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_297", gecode_constraint_rel_297, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_267", gecode_constraint_path_267, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_14", gecode_constraint_branch_14, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_13", gecode_constraint_branch_13, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_15", gecode_constraint_branch_15, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mult_240", gecode_constraint_mult_240, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_42", gecode_constraint_circuit_42, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_39", gecode_constraint_circuit_39, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_36", gecode_constraint_circuit_36, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_49", gecode_constraint_clause_49, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_clause_47", gecode_constraint_clause_47, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_276", gecode_constraint_precede_276, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_273", gecode_constraint_precede_273, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_272", gecode_constraint_precede_272, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_30", gecode_constraint_channel_30, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_87", gecode_constraint_cumulative_87, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_90", gecode_constraint_cumulative_90, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_83", gecode_constraint_cumulative_83, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_86", gecode_constraint_cumulative_86, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_80", gecode_constraint_cumulative_80, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_99", gecode_constraint_cumulative_99, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_102", gecode_constraint_cumulative_102, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_95", gecode_constraint_cumulative_95, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_98", gecode_constraint_cumulative_98, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_92", gecode_constraint_cumulative_92, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_122", gecode_constraint_distinct_122, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_119", gecode_constraint_distinct_119, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_230", gecode_constraint_member_230, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_226", gecode_constraint_member_226, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_mod_237", gecode_constraint_mod_237, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqr_345", gecode_constraint_sqr_345, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_338", gecode_constraint_sequence_338, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_336", gecode_constraint_sequence_336, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_265", gecode_constraint_path_265, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_262", gecode_constraint_path_262, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_259", gecode_constraint_path_259, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_divmod_126", gecode_constraint_divmod_126, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_343", gecode_constraint_sorted_343, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_45", gecode_constraint_circuit_45, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_44", gecode_constraint_circuit_44, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_32", gecode_constraint_channel_32, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_28", gecode_constraint_channel_28, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_26", gecode_constraint_channel_26, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_22", gecode_constraint_channel_22, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_25", gecode_constraint_channel_25, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_20", gecode_constraint_channel_20, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_channel_31", gecode_constraint_channel_31, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_53", gecode_constraint_count_53, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_55", gecode_constraint_count_55, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_71", gecode_constraint_count_71, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_73", gecode_constraint_count_73, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_63", gecode_constraint_count_63, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_65", gecode_constraint_count_65, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_62", gecode_constraint_count_62, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_58", gecode_constraint_count_58, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_68", gecode_constraint_count_68, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_75", gecode_constraint_count_75, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_77", gecode_constraint_count_77, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_117", gecode_constraint_cumulatives_117, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_115", gecode_constraint_cumulatives_115, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_113", gecode_constraint_cumulatives_113, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_111", gecode_constraint_cumulatives_111, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_109", gecode_constraint_cumulatives_109, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_107", gecode_constraint_cumulatives_107, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_105", gecode_constraint_cumulatives_105, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulatives_103", gecode_constraint_cumulatives_103, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_binpacking_11", gecode_constraint_binpacking_11, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_212", gecode_constraint_linear_212, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_216", gecode_constraint_linear_216, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_188", gecode_constraint_linear_188, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_192", gecode_constraint_linear_192, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_203", gecode_constraint_linear_203, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_202", gecode_constraint_linear_202, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_207", gecode_constraint_linear_207, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_206", gecode_constraint_linear_206, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_195", gecode_constraint_linear_195, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_194", gecode_constraint_linear_194, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_199", gecode_constraint_linear_199, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_198", gecode_constraint_linear_198, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_247", gecode_constraint_nooverlap_247, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_242", gecode_constraint_nooverlap_242, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_div_124", gecode_constraint_div_124, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqr_346", gecode_constraint_sqr_346, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_266", gecode_constraint_path_266, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_263", gecode_constraint_path_263, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_260", gecode_constraint_path_260, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_357", gecode_constraint_unary_357, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_360", gecode_constraint_unary_360, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_353", gecode_constraint_unary_353, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_356", gecode_constraint_unary_356, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unary_350", gecode_constraint_unary_350, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_341", gecode_constraint_sorted_341, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sorted_344", gecode_constraint_sorted_344, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_162", gecode_constraint_element_162, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_156", gecode_constraint_element_156, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_174", gecode_constraint_element_174, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_172", gecode_constraint_element_172, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_160", gecode_constraint_element_160, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_164", gecode_constraint_element_164, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_154", gecode_constraint_element_154, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_152", gecode_constraint_element_152, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_183", gecode_constraint_element_183, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_181", gecode_constraint_element_181, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_179", gecode_constraint_element_179, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_177", gecode_constraint_element_177, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_170", gecode_constraint_element_170, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_176", gecode_constraint_element_176, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_168", gecode_constraint_element_168, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_340", gecode_constraint_sequence_340, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_circuit_40", gecode_constraint_circuit_40, 7);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_275", gecode_constraint_precede_275, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_precede_271", gecode_constraint_precede_271, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_89", gecode_constraint_cumulative_89, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_85", gecode_constraint_cumulative_85, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_79", gecode_constraint_cumulative_79, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_82", gecode_constraint_cumulative_82, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_101", gecode_constraint_cumulative_101, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_97", gecode_constraint_cumulative_97, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_91", gecode_constraint_cumulative_91, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_94", gecode_constraint_cumulative_94, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_distinct_120", gecode_constraint_distinct_120, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_231", gecode_constraint_min_231, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_235", gecode_constraint_min_235, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sqrt_348", gecode_constraint_sqrt_348, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_337", gecode_constraint_sequence_337, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_sequence_335", gecode_constraint_sequence_335, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_364", gecode_constraint_unshare_364, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_unshare_362", gecode_constraint_unshare_362, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_270", gecode_constraint_path_270, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_path_261", gecode_constraint_path_261, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_divmod_125", gecode_constraint_divmod_125, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_246", gecode_constraint_nooverlap_246, 9);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_81", gecode_constraint_cumulative_81, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_93", gecode_constraint_cumulative_93, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_227", gecode_constraint_member_227, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_member_223", gecode_constraint_member_223, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_72", gecode_constraint_count_72, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_74", gecode_constraint_count_74, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_76", gecode_constraint_count_76, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_78", gecode_constraint_count_78, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_64", gecode_constraint_count_64, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_66", gecode_constraint_count_66, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_54", gecode_constraint_count_54, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_56", gecode_constraint_count_56, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_notMin_250", gecode_constraint_notMin_250, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_88", gecode_constraint_cumulative_88, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_84", gecode_constraint_cumulative_84, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_100", gecode_constraint_cumulative_100, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_cumulative_96", gecode_constraint_cumulative_96, 8);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_16", gecode_constraint_branch_16, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_12", gecode_constraint_branch_12, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_branch_17", gecode_constraint_branch_17, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_137", gecode_constraint_dom_137, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_133", gecode_constraint_dom_133, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_129", gecode_constraint_dom_129, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_dom_127", gecode_constraint_dom_127, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_211", gecode_constraint_linear_211, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_210", gecode_constraint_linear_210, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_215", gecode_constraint_linear_215, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_214", gecode_constraint_linear_214, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_187", gecode_constraint_linear_187, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_186", gecode_constraint_linear_186, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_191", gecode_constraint_linear_191, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_190", gecode_constraint_linear_190, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_201", gecode_constraint_linear_201, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_205", gecode_constraint_linear_205, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_193", gecode_constraint_linear_193, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_linear_197", gecode_constraint_linear_197, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_241", gecode_constraint_nooverlap_241, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_nooverlap_244", gecode_constraint_nooverlap_244, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_184", gecode_constraint_element_184, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_182", gecode_constraint_element_182, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_180", gecode_constraint_element_180, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_element_178", gecode_constraint_element_178, 6);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_289", gecode_constraint_rel_289, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_285", gecode_constraint_rel_285, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_299", gecode_constraint_rel_299, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_295", gecode_constraint_rel_295, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_293", gecode_constraint_rel_293, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_298", gecode_constraint_rel_298, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_325", gecode_constraint_rel_325, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_323", gecode_constraint_rel_323, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_307", gecode_constraint_rel_307, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_309", gecode_constraint_rel_309, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_303", gecode_constraint_rel_303, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_306", gecode_constraint_rel_306, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_311", gecode_constraint_rel_311, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_315", gecode_constraint_rel_315, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_319", gecode_constraint_rel_319, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_320", gecode_constraint_rel_320, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_326", gecode_constraint_rel_326, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_331", gecode_constraint_rel_331, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_333", gecode_constraint_rel_333, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_279", gecode_constraint_rel_279, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_rel_277", gecode_constraint_rel_277, 4);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_min_234", gecode_constraint_min_234, 5);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_69", gecode_constraint_count_69, 3);
|
||||||
|
YAP_UserCPredicate("gecode_constraint_count_59", gecode_constraint_count_59, 3);
|
@ -38,6 +38,16 @@ for an interval of themselves). It might be tempting to simply represent an
|
|||||||
IntSet as a list of specs, but this would be ambiguous with IntArgs which,
|
IntSet as a list of specs, but this would be ambiguous with IntArgs which,
|
||||||
here, are represented as lists of ints.
|
here, are represented as lists of ints.
|
||||||
|
|
||||||
|
Space += keep(Var)
|
||||||
|
Space += keep(Vars)
|
||||||
|
|
||||||
|
Variables can be marked as "kept". In this case, only such variables will be
|
||||||
|
explicitly copied during search. This could bring substantial benefits in
|
||||||
|
memory usage. Of course, in a solution, you can then only look at variables
|
||||||
|
that have been "kept". If no variable is marked as "kept", then they are all
|
||||||
|
kept. Thus marking variables as "kept" is purely an optimization.
|
||||||
|
|
||||||
|
|
||||||
CONSTRAINTS AND BRANCHINGS
|
CONSTRAINTS AND BRANCHINGS
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
@ -60,10 +70,24 @@ represented by atoms with the same name as the Gecode constant
|
|||||||
SEARCHING FOR SOLUTIONS
|
SEARCHING FOR SOLUTIONS
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
SolSpace := search(Space)
|
SolSpace := search(Space)
|
||||||
|
|
||||||
This is a backtrackable predicate that enumerates all solution spaces
|
This is a backtrackable predicate that enumerates all solution spaces
|
||||||
(SolSpace).
|
(SolSpace). It may also take options:
|
||||||
|
|
||||||
|
SolSpace := search(Space,Options)
|
||||||
|
|
||||||
|
Options is a list whose elements maybe:
|
||||||
|
|
||||||
|
restart
|
||||||
|
to select the Restart search engine
|
||||||
|
threads=N
|
||||||
|
to activate the parallel search engine and control the number of
|
||||||
|
workers (see Gecode doc)
|
||||||
|
c_d=N
|
||||||
|
to set the commit distance for recomputation
|
||||||
|
a_d=N
|
||||||
|
to set the adaptive distance for recomputation
|
||||||
|
|
||||||
EXTRACTING INFO FROM A SOLUTION
|
EXTRACTING INFO FROM A SOLUTION
|
||||||
===============================
|
===============================
|
||||||
|
@ -42,45 +42,32 @@ CWD=$(PWD)
|
|||||||
OBJS=gecode_yap.o
|
OBJS=gecode_yap.o
|
||||||
SOBJS=gecode_yap.@SO@
|
SOBJS=gecode_yap.@SO@
|
||||||
|
|
||||||
CODEGEN=$(srcdir)/code-generator.py
|
GECODE_VERSION = @GECODE_VERSION@
|
||||||
DISJUNCTOR = -DDISJUNCTOR
|
DISJUNCTOR = -DDISJUNCTOR
|
||||||
PYTHON = @PYTHON@ -B
|
GECODE_LIBS = @GECODE_EXTRALIBS@
|
||||||
export PYTHONPATH:=$(srcdir):$(PYTHONPATH)
|
|
||||||
|
|
||||||
all: $(SOBJS) gecode.yap
|
all: $(SOBJS) gecode.yap
|
||||||
|
|
||||||
gecode_yap.o: \
|
gecode_yap.o: \
|
||||||
$(srcdir)/gecode_yap.cc \
|
$(srcdir)/gecode_yap.cc \
|
||||||
$(srcdir)/gecode-common.icc \
|
$(srcdir)/gecode-common.icc \
|
||||||
gecode_yap_cc_impl_auto_generated.icc \
|
$(srcdir)/$(GECODE_VERSION)/gecode_yap_cc_impl_auto_generated.icc \
|
||||||
gecode_yap_cc_init_auto_generated.icc \
|
$(srcdir)/$(GECODE_VERSION)/gecode_yap_cc_init_auto_generated.icc \
|
||||||
gecode_yap_cc_forward_auto_generated.icc \
|
$(srcdir)/$(GECODE_VERSION)/gecode_yap_cc_forward_auto_generated.icc \
|
||||||
$(srcdir)/disjunctor.icc \
|
$(srcdir)/disjunctor.icc \
|
||||||
$(srcdir)/disjunctor.hh
|
$(srcdir)/disjunctor.hh
|
||||||
$(CXX) -c $(CXXFLAGS) $(DISJUNCTOR) -o $@ $<
|
$(CXX) -c -I$(srcdir)/$(GECODE_VERSION) $(CXXFLAGS) $(DISJUNCTOR) -o $@ $<
|
||||||
|
|
||||||
@DO_SECOND_LD@gecode_yap.@SO@: gecode_yap.o
|
@DO_SECOND_LD@gecode_yap.@SO@: gecode_yap.o
|
||||||
@DO_SECOND_LD@ @SHLIB_LD@ -o gecode_yap.@SO@ gecode_yap.o $(LDFLAGS) -lgecodeint -lgecodeset -lgecodesearch @EXTRA_LIBS_FOR_DLLS@
|
@DO_SECOND_LD@ @SHLIB_CXX_LD@ -o gecode_yap.@SO@ gecode_yap.o $(LDFLAGS) $(GECODE_LIBS) @EXTRA_LIBS_FOR_DLLS@
|
||||||
|
|
||||||
gecode_yap_cc_init_auto_generated.icc: $(CODEGEN)
|
gecode.yap: $(srcdir)/gecode_yap_hand_written.yap $(srcdir)/$(GECODE_VERSION)/gecode_yap_auto_generated.yap
|
||||||
$(PYTHON) $< -t yap-cc-init -s $(srcdir) > $@
|
|
||||||
|
|
||||||
gecode_yap_cc_impl_auto_generated.icc: $(CODEGEN)
|
|
||||||
$(PYTHON) $< -t yap-cc-impl -s $(srcdir) > $@
|
|
||||||
|
|
||||||
gecode_yap_cc_forward_auto_generated.icc: $(CODEGEN)
|
|
||||||
$(PYTHON) $< -t yap-cc-forward -s $(srcdir) > $@
|
|
||||||
|
|
||||||
gecode_yap_auto_generated.yap: $(CODEGEN)
|
|
||||||
$(PYTHON) $< -t yap-prolog -s $(srcdir) > $@
|
|
||||||
|
|
||||||
gecode.yap: $(srcdir)/gecode_yap_hand_written.yap gecode_yap_auto_generated.yap
|
|
||||||
cat $^ > $@
|
cat $^ > $@
|
||||||
|
|
||||||
.PHONY: all clean install
|
.PHONY: all clean install
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm -f *.o *.so *~ *_auto_generated* gecode.yap *.pyc
|
-rm -f *.o *.so *~ gecode.yap
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
mkdir -p $(DESTDIR)$(YAPLIBDIR)
|
mkdir -p $(DESTDIR)$(YAPLIBDIR)
|
||||||
|
5
library/gecode/dev/Makefile
Normal file
5
library/gecode/dev/Makefile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
all:
|
||||||
|
python code-generator.py
|
||||||
|
|
||||||
|
clean:
|
||||||
|
-rm -f *~ *.pyc
|
@ -13,7 +13,7 @@
|
|||||||
# details.
|
# details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License along with
|
# You should have received a copy of the GNU General Public License along with
|
||||||
# this program. If not, see <http:##www.gnu.org/licenses/>.
|
# this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#==============================================================================
|
#==============================================================================
|
||||||
|
|
||||||
import re
|
import re
|
||||||
@ -515,16 +515,13 @@ ENUM_CLASSES_AVOID = ('ScriptMode','ViewSelStatus','ExecStatus',
|
|||||||
|
|
||||||
def enum_classes():
|
def enum_classes():
|
||||||
global ENUM_CLASSES
|
global ENUM_CLASSES
|
||||||
filename = "gecode-enums-%s.py" % gecode_version()
|
|
||||||
if SRCDIR is not None:
|
|
||||||
import os.path
|
|
||||||
filename = os.path.join(SRCDIR,filename)
|
|
||||||
if ENUM_CLASSES is None:
|
if ENUM_CLASSES is None:
|
||||||
|
filename = "gecode-enums-%s.py" % gecode_version()
|
||||||
import imp
|
import imp
|
||||||
ENUM_CLASSES = imp.load_source(
|
ENUM_CLASSES = imp.load_source(
|
||||||
"gecode_enums",
|
"gecode_enums",
|
||||||
filename).ENUM_CLASSES
|
filename).ENUM_CLASSES
|
||||||
ENUM_CLASSES = (x for x in ENUM_CLASSES if x.TYPE not in ENUM_CLASSES_AVOID)
|
ENUM_CLASSES = tuple(x for x in ENUM_CLASSES if x.TYPE not in ENUM_CLASSES_AVOID)
|
||||||
return ENUM_CLASSES
|
return ENUM_CLASSES
|
||||||
|
|
||||||
class YAPEnumImpl(object):
|
class YAPEnumImpl(object):
|
||||||
@ -668,42 +665,40 @@ def gecode_version():
|
|||||||
GECODE_VERSION = version
|
GECODE_VERSION = version
|
||||||
return version
|
return version
|
||||||
|
|
||||||
SRCDIR = None
|
def generate_files():
|
||||||
|
DIR = "../%s" % gecode_version()
|
||||||
if __name__ == '__main__':
|
import os, os.path
|
||||||
import argparse
|
DIR = os.path.abspath(DIR)
|
||||||
parser = argparse.ArgumentParser(
|
if not os.path.exists(DIR):
|
||||||
description="code generator for gecode bindings")
|
os.mkdir(DIR)
|
||||||
parser.add_argument(
|
|
||||||
"-t", "--target", choices=("yap-prolog","yap-cc-impl","yap-cc-init",
|
|
||||||
"yap-cc-forward"),
|
|
||||||
default=None, metavar="TARGET", required=True,
|
|
||||||
help="type of code to generate")
|
|
||||||
parser.add_argument(
|
|
||||||
"-s", "--srcdir", metavar="DIR", default=None,
|
|
||||||
help="source directory")
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
if args.srcdir is not None:
|
|
||||||
import os.path
|
|
||||||
SRCDIR = os.path.abspath(args.srcdir)
|
|
||||||
filename = "gecode-prototypes-%s.hh" % gecode_version()
|
filename = "gecode-prototypes-%s.hh" % gecode_version()
|
||||||
if SRCDIR is not None:
|
import sys
|
||||||
filename = os.path.join(SRCDIR,filename)
|
stdout = sys.stdout
|
||||||
if args.target == "yap-prolog":
|
try:
|
||||||
|
sys.stdout = file(os.path.join(DIR,"gecode-version.txt"),"w")
|
||||||
|
print gecode_version()
|
||||||
|
sys.stdout.close()
|
||||||
|
sys.stdout = file(os.path.join(DIR,"gecode_yap_auto_generated.yap"),"w")
|
||||||
prolog_print_notice()
|
prolog_print_notice()
|
||||||
YAPEnumPrologGenerator().generate()
|
YAPEnumPrologGenerator().generate()
|
||||||
YAPConstraintPrologGenerator(filename).generate()
|
YAPConstraintPrologGenerator(filename).generate()
|
||||||
elif args.target == "yap-cc-impl":
|
sys.stdout.close()
|
||||||
|
sys.stdout = file(os.path.join(DIR,"gecode_yap_cc_impl_auto_generated.icc"),"w")
|
||||||
cc_print_notice()
|
cc_print_notice()
|
||||||
YAPEnumImplGenerator().generate()
|
YAPEnumImplGenerator().generate()
|
||||||
YAPConstraintCCGenerator(filename).generate_impl()
|
YAPConstraintCCGenerator(filename).generate_impl()
|
||||||
elif args.target == "yap-cc-init":
|
sys.stdout.close()
|
||||||
|
sys.stdout = file(os.path.join(DIR,"gecode_yap_cc_init_auto_generated.icc"),"w")
|
||||||
cc_print_notice()
|
cc_print_notice()
|
||||||
YAPEnumInitGenerator().generate()
|
YAPEnumInitGenerator().generate()
|
||||||
YAPConstraintCCGenerator(filename).generate_init()
|
YAPConstraintCCGenerator(filename).generate_init()
|
||||||
elif args.target == "yap-cc-forward":
|
sys.stdout.close()
|
||||||
|
sys.stdout = file(os.path.join(DIR,"gecode_yap_cc_forward_auto_generated.icc"),"w")
|
||||||
cc_print_notice()
|
cc_print_notice()
|
||||||
YAPEnumForwardGenerator().generate()
|
YAPEnumForwardGenerator().generate()
|
||||||
else:
|
sys.stdout.close()
|
||||||
raise NotImplementedError("target not yet suported: %s" % args.target)
|
finally:
|
||||||
|
sys.stdout = stdout
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
generate_files()
|
@ -1,8 +1,8 @@
|
|||||||
GECODEDIR := $(shell g++ -q $(CPPFLAGS) $(CXXFLAGS) -H -E gecodedir.hh 2>&1 >/dev/null | grep gecode/kernel.hh | awk '{print $$2}' | sed 's|/kernel.hh||')
|
GECODEDIR := $(shell g++ -q $(CPPFLAGS) $(CXXFLAGS) -H -E gecodedir.hh 2>&1 >/dev/null | grep gecode/kernel.hh | awk '{print $$2}' | sed 's|/kernel.hh||')
|
||||||
GECODECONFIG := $(GECODEDIR)/support/config.hpp
|
GECODECONFIG := $(GECODEDIR)/support/config.hpp
|
||||||
GECODEVERSION := $(shell cat $(GECODECONFIG) | egrep GECODE_VERSION | awk '{print $$3}' | sed 's/"//g')
|
GECODEVERSION := $(shell cat $(GECODECONFIG) | egrep '\<GECODE_VERSION\>' | awk '{print $$3}' | sed 's/"//g')
|
||||||
PROTOTYPES = gecode-prototypes-$(GECODEVERSION).hh
|
PROTOTYPES = ../gecode-prototypes-$(GECODEVERSION).hh
|
||||||
ENUMS = gecode-enums-$(GECODEVERSION).py
|
ENUMS = ../gecode-enums-$(GECODEVERSION).py
|
||||||
|
|
||||||
all: $(PROTOTYPES) $(ENUMS)
|
all: $(PROTOTYPES) $(ENUMS)
|
||||||
|
|
113
library/gecode/dev/gecode-enums-3.7.1.py
Normal file
113
library/gecode/dev/gecode-enums-3.7.1.py
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
# This file was automatically extracted from Gecode source files.
|
||||||
|
# It is subject to the same Copyright as the source files from which
|
||||||
|
# it is derived, and is distributed under the same Licensing conditions.
|
||||||
|
ENUM_CLASSES = []
|
||||||
|
|
||||||
|
class ScriptMode(object):
|
||||||
|
TYPE = 'ScriptMode'
|
||||||
|
ENUM = ['SM_SOLUTION','SM_TIME','SM_STAT','SM_GIST']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(ScriptMode)
|
||||||
|
|
||||||
|
class IntRelType(object):
|
||||||
|
TYPE = 'IntRelType'
|
||||||
|
ENUM = ['IRT_EQ','IRT_NQ','IRT_LQ','IRT_LE','IRT_GQ','IRT_GR']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(IntRelType)
|
||||||
|
|
||||||
|
class BoolOpType(object):
|
||||||
|
TYPE = 'BoolOpType'
|
||||||
|
ENUM = ['BOT_AND','BOT_OR','BOT_IMP','BOT_EQV','BOT_XOR']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(BoolOpType)
|
||||||
|
|
||||||
|
class IntConLevel(object):
|
||||||
|
TYPE = 'IntConLevel'
|
||||||
|
ENUM = ['ICL_VAL','ICL_BND','ICL_DOM','ICL_DEF']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(IntConLevel)
|
||||||
|
|
||||||
|
class TaskType(object):
|
||||||
|
TYPE = 'TaskType'
|
||||||
|
ENUM = ['TT_FIXP','TT_FIXS','TT_FIXE']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(TaskType)
|
||||||
|
|
||||||
|
class ExtensionalPropKind(object):
|
||||||
|
TYPE = 'ExtensionalPropKind'
|
||||||
|
ENUM = ['EPK_DEF','EPK_SPEED','EPK_MEMORY']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(ExtensionalPropKind)
|
||||||
|
|
||||||
|
class IntVarBranch(object):
|
||||||
|
TYPE = 'IntVarBranch'
|
||||||
|
ENUM = ['INT_VAR_NONE','INT_VAR_RND','INT_VAR_DEGREE_MIN','INT_VAR_DEGREE_MAX','INT_VAR_AFC_MIN','INT_VAR_AFC_MAX','INT_VAR_MIN_MIN','INT_VAR_MIN_MAX','INT_VAR_MAX_MIN','INT_VAR_MAX_MAX','INT_VAR_SIZE_MIN','INT_VAR_SIZE_MAX','INT_VAR_SIZE_DEGREE_MIN','INT_VAR_SIZE_DEGREE_MAX','INT_VAR_SIZE_AFC_MIN','INT_VAR_SIZE_AFC_MAX','INT_VAR_REGRET_MIN_MIN','INT_VAR_REGRET_MIN_MAX','INT_VAR_REGRET_MAX_MIN','INT_VAR_REGRET_MAX_MAX']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(IntVarBranch)
|
||||||
|
|
||||||
|
class IntValBranch(object):
|
||||||
|
TYPE = 'IntValBranch'
|
||||||
|
ENUM = ['INT_VAL_MIN','INT_VAL_MED','INT_VAL_MAX','INT_VAL_RND','INT_VAL_SPLIT_MIN','INT_VAL_SPLIT_MAX','INT_VAL_RANGE_MIN','INT_VAL_RANGE_MAX','INT_VALUES_MIN','INT_VALUES_MAX']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(IntValBranch)
|
||||||
|
|
||||||
|
class IntAssign(object):
|
||||||
|
TYPE = 'IntAssign'
|
||||||
|
ENUM = ['INT_ASSIGN_MIN','INT_ASSIGN_MED','INT_ASSIGN_MAX','INT_ASSIGN_RND']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(IntAssign)
|
||||||
|
|
||||||
|
class ViewSelStatus(object):
|
||||||
|
TYPE = 'ViewSelStatus'
|
||||||
|
ENUM = ['VSS_BEST','VSS_BETTER','VSS_TIE','VSS_WORSE']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(ViewSelStatus)
|
||||||
|
|
||||||
|
class ExecStatus(object):
|
||||||
|
TYPE = 'ExecStatus'
|
||||||
|
ENUM = ['__ES_SUBSUMED','ES_FAILED','ES_NOFIX','ES_OK','ES_FIX','ES_NOFIX_FORCE','__ES_PARTIAL']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(ExecStatus)
|
||||||
|
|
||||||
|
class ActorProperty(object):
|
||||||
|
TYPE = 'ActorProperty'
|
||||||
|
ENUM = ['AP_DISPOSE','AP_WEAKLY']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(ActorProperty)
|
||||||
|
|
||||||
|
class SpaceStatus(object):
|
||||||
|
TYPE = 'SpaceStatus'
|
||||||
|
ENUM = ['SS_FAILED','SS_SOLVED','SS_BRANCH']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SpaceStatus)
|
||||||
|
|
||||||
|
class SetRelType(object):
|
||||||
|
TYPE = 'SetRelType'
|
||||||
|
ENUM = ['SRT_EQ','SRT_NQ','SRT_SUB','SRT_SUP','SRT_DISJ','SRT_CMPL','SRT_LQ','SRT_LE','SRT_GQ','SRT_GR']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SetRelType)
|
||||||
|
|
||||||
|
class SetOpType(object):
|
||||||
|
TYPE = 'SetOpType'
|
||||||
|
ENUM = ['SOT_UNION','SOT_DUNION','SOT_INTER','SOT_MINUS']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SetOpType)
|
||||||
|
|
||||||
|
class SetVarBranch(object):
|
||||||
|
TYPE = 'SetVarBranch'
|
||||||
|
ENUM = ['SET_VAR_NONE','SET_VAR_RND','SET_VAR_DEGREE_MIN','SET_VAR_DEGREE_MAX','SET_VAR_AFC_MIN','SET_VAR_AFC_MAX','SET_VAR_MIN_MIN','SET_VAR_MIN_MAX','SET_VAR_MAX_MIN','SET_VAR_MAX_MAX','SET_VAR_SIZE_MIN','SET_VAR_SIZE_MAX','SET_VAR_SIZE_DEGREE_MIN','SET_VAR_SIZE_DEGREE_MAX','SET_VAR_SIZE_AFC_MIN','SET_VAR_SIZE_AFC_MAX']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SetVarBranch)
|
||||||
|
|
||||||
|
class SetValBranch(object):
|
||||||
|
TYPE = 'SetValBranch'
|
||||||
|
ENUM = ['SET_VAL_MIN_INC','SET_VAL_MIN_EXC','SET_VAL_MED_INC','SET_VAL_MED_EXC','SET_VAL_MAX_INC','SET_VAL_MAX_EXC','SET_VAL_RND_INC','SET_VAL_RND_EXC']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SetValBranch)
|
||||||
|
|
||||||
|
class SetAssign(object):
|
||||||
|
TYPE = 'SetAssign'
|
||||||
|
ENUM = ['SET_ASSIGN_MIN_INC','SET_ASSIGN_MIN_EXC','SET_ASSIGN_MED_INC','SET_ASSIGN_MED_EXC','SET_ASSIGN_MAX_INC','SET_ASSIGN_MAX_EXC','SET_ASSIGN_RND_INC','SET_ASSIGN_RND_EXC']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SetAssign)
|
||||||
|
|
119
library/gecode/dev/gecode-enums-4.0.0.py
Normal file
119
library/gecode/dev/gecode-enums-4.0.0.py
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
# This file was automatically extracted from Gecode source files.
|
||||||
|
# It is subject to the same Copyright as the source files from which
|
||||||
|
# it is derived, and is distributed under the same Licensing conditions.
|
||||||
|
ENUM_CLASSES = []
|
||||||
|
|
||||||
|
class ScriptMode(object):
|
||||||
|
TYPE = 'ScriptMode'
|
||||||
|
ENUM = ['SM_SOLUTION','SM_TIME','SM_STAT','SM_GIST']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(ScriptMode)
|
||||||
|
|
||||||
|
class ReifyMode(object):
|
||||||
|
TYPE = 'ReifyMode'
|
||||||
|
ENUM = ['RM_EQV','RM_IMP','RM_PMI']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(ReifyMode)
|
||||||
|
|
||||||
|
class IntRelType(object):
|
||||||
|
TYPE = 'IntRelType'
|
||||||
|
ENUM = ['IRT_EQ','IRT_NQ','IRT_LQ','IRT_LE','IRT_GQ','IRT_GR']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(IntRelType)
|
||||||
|
|
||||||
|
class BoolOpType(object):
|
||||||
|
TYPE = 'BoolOpType'
|
||||||
|
ENUM = ['BOT_AND','BOT_OR','BOT_IMP','BOT_EQV','BOT_XOR']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(BoolOpType)
|
||||||
|
|
||||||
|
class IntConLevel(object):
|
||||||
|
TYPE = 'IntConLevel'
|
||||||
|
ENUM = ['ICL_VAL','ICL_BND','ICL_DOM','ICL_DEF']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(IntConLevel)
|
||||||
|
|
||||||
|
class TaskType(object):
|
||||||
|
TYPE = 'TaskType'
|
||||||
|
ENUM = ['TT_FIXP','TT_FIXS','TT_FIXE']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(TaskType)
|
||||||
|
|
||||||
|
class ExtensionalPropKind(object):
|
||||||
|
TYPE = 'ExtensionalPropKind'
|
||||||
|
ENUM = ['EPK_DEF','EPK_SPEED','EPK_MEMORY']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(ExtensionalPropKind)
|
||||||
|
|
||||||
|
class IntVarBranch(object):
|
||||||
|
TYPE = 'IntVarBranch'
|
||||||
|
ENUM = ['INT_VAR_NONE','INT_VAR_RND','INT_VAR_DEGREE_MIN','INT_VAR_DEGREE_MAX','INT_VAR_AFC_MIN','INT_VAR_AFC_MAX','INT_VAR_MIN_MIN','INT_VAR_MIN_MAX','INT_VAR_MAX_MIN','INT_VAR_MAX_MAX','INT_VAR_SIZE_MIN','INT_VAR_SIZE_MAX','INT_VAR_SIZE_DEGREE_MIN','INT_VAR_SIZE_DEGREE_MAX','INT_VAR_SIZE_AFC_MIN','INT_VAR_SIZE_AFC_MAX','INT_VAR_REGRET_MIN_MIN','INT_VAR_REGRET_MIN_MAX','INT_VAR_REGRET_MAX_MIN','INT_VAR_REGRET_MAX_MAX']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(IntVarBranch)
|
||||||
|
|
||||||
|
class IntValBranch(object):
|
||||||
|
TYPE = 'IntValBranch'
|
||||||
|
ENUM = ['INT_VAL_MIN','INT_VAL_MED','INT_VAL_MAX','INT_VAL_RND','INT_VAL_SPLIT_MIN','INT_VAL_SPLIT_MAX','INT_VAL_RANGE_MIN','INT_VAL_RANGE_MAX','INT_VALUES_MIN','INT_VALUES_MAX']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(IntValBranch)
|
||||||
|
|
||||||
|
class IntAssign(object):
|
||||||
|
TYPE = 'IntAssign'
|
||||||
|
ENUM = ['INT_ASSIGN_MIN','INT_ASSIGN_MED','INT_ASSIGN_MAX','INT_ASSIGN_RND']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(IntAssign)
|
||||||
|
|
||||||
|
class ViewSelStatus(object):
|
||||||
|
TYPE = 'ViewSelStatus'
|
||||||
|
ENUM = ['VSS_BEST','VSS_BETTER','VSS_TIE','VSS_WORSE']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(ViewSelStatus)
|
||||||
|
|
||||||
|
class ExecStatus(object):
|
||||||
|
TYPE = 'ExecStatus'
|
||||||
|
ENUM = ['__ES_SUBSUMED','ES_FAILED','ES_NOFIX','ES_OK','ES_FIX','ES_NOFIX_FORCE','__ES_PARTIAL']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(ExecStatus)
|
||||||
|
|
||||||
|
class ActorProperty(object):
|
||||||
|
TYPE = 'ActorProperty'
|
||||||
|
ENUM = ['AP_DISPOSE','AP_WEAKLY']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(ActorProperty)
|
||||||
|
|
||||||
|
class SpaceStatus(object):
|
||||||
|
TYPE = 'SpaceStatus'
|
||||||
|
ENUM = ['SS_FAILED','SS_SOLVED','SS_BRANCH']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SpaceStatus)
|
||||||
|
|
||||||
|
class SetRelType(object):
|
||||||
|
TYPE = 'SetRelType'
|
||||||
|
ENUM = ['SRT_EQ','SRT_NQ','SRT_SUB','SRT_SUP','SRT_DISJ','SRT_CMPL','SRT_LQ','SRT_LE','SRT_GQ','SRT_GR']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SetRelType)
|
||||||
|
|
||||||
|
class SetOpType(object):
|
||||||
|
TYPE = 'SetOpType'
|
||||||
|
ENUM = ['SOT_UNION','SOT_DUNION','SOT_INTER','SOT_MINUS']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SetOpType)
|
||||||
|
|
||||||
|
class SetVarBranch(object):
|
||||||
|
TYPE = 'SetVarBranch'
|
||||||
|
ENUM = ['SET_VAR_NONE','SET_VAR_RND','SET_VAR_DEGREE_MIN','SET_VAR_DEGREE_MAX','SET_VAR_AFC_MIN','SET_VAR_AFC_MAX','SET_VAR_MIN_MIN','SET_VAR_MIN_MAX','SET_VAR_MAX_MIN','SET_VAR_MAX_MAX','SET_VAR_SIZE_MIN','SET_VAR_SIZE_MAX','SET_VAR_SIZE_DEGREE_MIN','SET_VAR_SIZE_DEGREE_MAX','SET_VAR_SIZE_AFC_MIN','SET_VAR_SIZE_AFC_MAX']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SetVarBranch)
|
||||||
|
|
||||||
|
class SetValBranch(object):
|
||||||
|
TYPE = 'SetValBranch'
|
||||||
|
ENUM = ['SET_VAL_MIN_INC','SET_VAL_MIN_EXC','SET_VAL_MED_INC','SET_VAL_MED_EXC','SET_VAL_MAX_INC','SET_VAL_MAX_EXC','SET_VAL_RND_INC','SET_VAL_RND_EXC']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SetValBranch)
|
||||||
|
|
||||||
|
class SetAssign(object):
|
||||||
|
TYPE = 'SetAssign'
|
||||||
|
ENUM = ['SET_ASSIGN_MIN_INC','SET_ASSIGN_MIN_EXC','SET_ASSIGN_MED_INC','SET_ASSIGN_MED_EXC','SET_ASSIGN_MAX_INC','SET_ASSIGN_MAX_EXC','SET_ASSIGN_RND_INC','SET_ASSIGN_RND_EXC']
|
||||||
|
|
||||||
|
ENUM_CLASSES.append(SetAssign)
|
||||||
|
|
221
library/gecode/dev/gecode-prototypes-3.7.1.hh
Normal file
221
library/gecode/dev/gecode-prototypes-3.7.1.hh
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
// This file was automatically extracted from Gecode source files.
|
||||||
|
// It is subject to the same Copyright as the source files from which
|
||||||
|
// it is derived, and is distributed under the same Licensing conditions.
|
||||||
|
void abs(Home,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void assign(Home,BoolVar,IntAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void assign(Home,const BoolVarArgs&,IntAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void assign(Home,const IntVarArgs&,IntAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void assign(Home,const SetVarArgs&,SetAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void assign(Home,IntVar,IntAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void assign(Home,SetVar,SetAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void atmostOne(Home,const SetVarArgs&,unsigned int);
|
||||||
|
void binpacking(Home,const IntVarArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void branch(Home,BoolVar,IntValBranch,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const BoolVarArgs&,const TieBreakVarBranch<IntVarBranch>&,IntValBranch,const TieBreakVarBranchOptions&=TieBreakVarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const BoolVarArgs&,IntVarBranch,IntValBranch,const VarBranchOptions&=VarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const IntVarArgs&,const TieBreakVarBranch<IntVarBranch>&,IntValBranch,const TieBreakVarBranchOptions&=TieBreakVarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const IntVarArgs&,IntVarBranch,IntValBranch,const VarBranchOptions&=VarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const SetVarArgs&,const TieBreakVarBranch<SetVarBranch>&,SetValBranch,const TieBreakVarBranchOptions&=TieBreakVarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const SetVarArgs&,SetVarBranch,SetValBranch,const VarBranchOptions&=VarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,IntVar,IntValBranch,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,SetVar,SetValBranch,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void cardinality(Home,SetVar,IntVar);
|
||||||
|
void cardinality(Home,SetVar,unsigned int,unsigned int);
|
||||||
|
void channel(Home,BoolVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void channel(Home,const BoolVarArgs&,IntVar,int=0,IntConLevel=ICL_DEF);
|
||||||
|
void channel(Home,const BoolVarArgs&,SetVar);
|
||||||
|
void channel(Home,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void channel(Home,const IntVarArgs&,const SetVarArgs&);
|
||||||
|
void channel(Home,const IntVarArgs&,int,const IntVarArgs&,int,IntConLevel=ICL_DEF);
|
||||||
|
void channel(Home,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void channelSorted(Home,const IntVarArgs&,SetVar);
|
||||||
|
void circuit(Home,const IntArgs&,const IntVarArgs&,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void circuit(Home,const IntArgs&,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void circuit(Home,const IntArgs&,int,const IntVarArgs&,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void circuit(Home,const IntArgs&,int,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void circuit(Home,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void circuit(Home,int,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void clause(Home,BoolOpType,const BoolVarArgs&,const BoolVarArgs&,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void clause(Home,BoolOpType,const BoolVarArgs&,const BoolVarArgs&,int,IntConLevel=ICL_DEF);
|
||||||
|
void convex(Home,SetVar);
|
||||||
|
void convex(Home,SetVar,SetVar);
|
||||||
|
void count(Home,const IntVarArgs&,const IntArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntSetArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntSetArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntSet&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntSet&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntSet&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,int,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,int,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,IntVar,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,IntVar,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const IntVarArgs&,const IntArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const IntVarArgs&,const IntArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const IntVarArgs&,const IntArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const IntVarArgs&,const IntArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntArgs&,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntArgs&,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void distinct(Home,const IntArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void distinct(Home,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void div(Home,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void divmod(Home,IntVar,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,const IntVarArgs&,const IntSet&,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,const IntVarArgs&,int,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,const IntVarArgs&,int,int,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,const IntSet&,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,const IntSet&,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,int,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,int,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,int,int,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,SetVar,SetRelType,const IntSet&);
|
||||||
|
void dom(Home,SetVar,SetRelType,const IntSet&,BoolVar);
|
||||||
|
void dom(Home,SetVar,SetRelType,int);
|
||||||
|
void dom(Home,SetVar,SetRelType,int,BoolVar);
|
||||||
|
void dom(Home,SetVar,SetRelType,int,int);
|
||||||
|
void dom(Home,SetVar,SetRelType,int,int,BoolVar);
|
||||||
|
void element(Home,const BoolVarArgs&,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const BoolVarArgs&,IntVar,int,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const BoolVarArgs&,IntVar,int,IntVar,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const IntSetArgs&,IntVar,int,IntVar,int,SetVar);
|
||||||
|
void element(Home,const IntSetArgs&,IntVar,SetVar);
|
||||||
|
void element(Home,const IntVarArgs&,IntVar,int,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const IntVarArgs&,IntVar,int,IntVar,int,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const IntVarArgs&,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const SetVarArgs&,IntVar,int,IntVar,int,SetVar);
|
||||||
|
void element(Home,const SetVarArgs&,IntVar,SetVar);
|
||||||
|
void element(Home,IntSharedArray,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,IntSharedArray,IntVar,int,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,IntSharedArray,IntVar,int,IntVar,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,IntSharedArray,IntVar,int,IntVar,int,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,IntSharedArray,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,SetOpType,const IntArgs&,SetVar,SetVar,const IntSet&=IntSet(Set::Limits::min,Set::Limits::max));
|
||||||
|
void element(Home,SetOpType,const IntSetArgs&,SetVar,SetVar,const IntSet&=IntSet(Set::Limits::min,Set::Limits::max));
|
||||||
|
void element(Home,SetOpType,const IntVarArgs&,SetVar,SetVar,const IntSet&=IntSet(Set::Limits::min,Set::Limits::max));
|
||||||
|
void element(Home,SetOpType,const SetVarArgs&,SetVar,SetVar,const IntSet&=IntSet(Set::Limits::min,Set::Limits::max));
|
||||||
|
void extensional(Home,const BoolVarArgs&,const TupleSet&,ExtensionalPropKind=EPK_DEF,IntConLevel=ICL_DEF);
|
||||||
|
void extensional(Home,const BoolVarArgs&,DFA,IntConLevel=ICL_DEF);
|
||||||
|
void extensional(Home,const IntVarArgs&,const TupleSet&,ExtensionalPropKind=EPK_DEF,IntConLevel=ICL_DEF);
|
||||||
|
void extensional(Home,const IntVarArgs&,DFA,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const BoolVarArgs&,IntRelType,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const BoolVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const BoolVarArgs&,IntRelType,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const BoolVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const BoolVarArgs&,IntRelType,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const BoolVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const BoolVarArgs&,IntRelType,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const BoolVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const IntVarArgs&,IntRelType,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const IntVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const IntVarArgs&,IntRelType,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const IntVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntVarArgs&,IntRelType,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntVarArgs&,IntRelType,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void max(Home,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void max(Home,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void max(Home,SetVar,IntVar);
|
||||||
|
void max(Home,SetVar,IntVar,BoolVar);
|
||||||
|
void member(Home,const BoolVarArgs&,BoolVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void member(Home,const BoolVarArgs&,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void member(Home,const IntVarArgs&,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void member(Home,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void min(Home,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void min(Home,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void min(Home,SetVar,IntVar);
|
||||||
|
void min(Home,SetVar,IntVar,BoolVar);
|
||||||
|
void mod(Home,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void mult(Home,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void nooverlap(Home,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void nooverlap(Home,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void nooverlap(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void nooverlap(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void notMax(Home,SetVar,IntVar);
|
||||||
|
void notMin(Home,SetVar,IntVar);
|
||||||
|
void nvalues(Home,const BoolVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void nvalues(Home,const BoolVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void nvalues(Home,const IntVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void nvalues(Home,const IntVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,const IntArgs&,const IntVarArgs&,IntVar,IntVar,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,const IntArgs&,const IntVarArgs&,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,const IntArgs&,int,const IntVarArgs&,IntVar,IntVar,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,const IntArgs&,int,const IntVarArgs&,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,const IntVarArgs&,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,int,const IntVarArgs&,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void precede(Home,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void precede(Home,const IntVarArgs&,int,int,IntConLevel=ICL_DEF);
|
||||||
|
void precede(Home,const SetVarArgs&,const IntArgs&);
|
||||||
|
void precede(Home,const SetVarArgs&,int,int);
|
||||||
|
void rel(Home,BoolOpType,const BoolVarArgs&,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolOpType,const BoolVarArgs&,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,BoolOpType,BoolVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,BoolOpType,BoolVar,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,IntRelType,BoolVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,IntRelType,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,IntRelType,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const BoolVarArgs&,IntRelType,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const BoolVarArgs&,IntRelType,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const BoolVarArgs&,IntRelType,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const BoolVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const IntSet&,SetOpType,SetVar,SetRelType,const IntSet&);
|
||||||
|
void rel(Home,const IntSet&,SetOpType,SetVar,SetRelType,SetVar);
|
||||||
|
void rel(Home,const IntVarArgs&,IntRelType,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const IntVarArgs&,IntRelType,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const IntVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const IntVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,IntVar,IntRelType,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,IntVar,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,IntVar,IntRelType,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,IntVar,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,IntVar,IntRelType,SetVar);
|
||||||
|
void rel(Home,IntVar,SetRelType,SetVar);
|
||||||
|
void rel(Home,IntVar,SetRelType,SetVar,BoolVar);
|
||||||
|
void rel(Home,SetOpType,const IntVarArgs&,const IntSet&,SetVar);
|
||||||
|
void rel(Home,SetOpType,const IntVarArgs&,SetVar);
|
||||||
|
void rel(Home,SetOpType,const SetVarArgs&,const IntSet&,SetVar);
|
||||||
|
void rel(Home,SetOpType,const SetVarArgs&,SetVar);
|
||||||
|
void rel(Home,SetVar,IntRelType,IntVar);
|
||||||
|
void rel(Home,SetVar,SetOpType,const IntSet&,SetRelType,const IntSet&);
|
||||||
|
void rel(Home,SetVar,SetOpType,const IntSet&,SetRelType,SetVar);
|
||||||
|
void rel(Home,SetVar,SetOpType,SetVar,SetRelType,const IntSet&);
|
||||||
|
void rel(Home,SetVar,SetOpType,SetVar,SetRelType,SetVar);
|
||||||
|
void rel(Home,SetVar,SetRelType,IntVar);
|
||||||
|
void rel(Home,SetVar,SetRelType,IntVar,BoolVar);
|
||||||
|
void rel(Home,SetVar,SetRelType,SetVar);
|
||||||
|
void rel(Home,SetVar,SetRelType,SetVar,BoolVar);
|
||||||
|
void sequence(Home,const BoolVarArgs&,const IntSet&,int,int,int,IntConLevel=ICL_DEF);
|
||||||
|
void sequence(Home,const IntVarArgs&,const IntSet&,int,int,int,IntConLevel=ICL_DEF);
|
||||||
|
void sequence(Home,const SetVarArgs&);
|
||||||
|
void sequence(Home,const SetVarArgs&,SetVar);
|
||||||
|
void sorted(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void sorted(Home,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void sqr(Home,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void sqrt(Home,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const IntVarArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unshare(Home,BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unshare(Home,IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void weights(Home,IntSharedArray,IntSharedArray,SetVar,IntVar);
|
222
library/gecode/dev/gecode-prototypes-4.0.0.hh
Normal file
222
library/gecode/dev/gecode-prototypes-4.0.0.hh
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
// This file was automatically extracted from Gecode source files.
|
||||||
|
// It is subject to the same Copyright as the source files from which
|
||||||
|
// it is derived, and is distributed under the same Licensing conditions.
|
||||||
|
void abs(Home,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void assign(Home,BoolVar,IntAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void assign(Home,const BoolVarArgs&,IntAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void assign(Home,const IntVarArgs&,IntAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void assign(Home,const SetVarArgs&,SetAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void assign(Home,IntVar,IntAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void assign(Home,SetVar,SetAssign,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void atmostOne(Home,const SetVarArgs&,unsigned int);
|
||||||
|
void binpacking(Home,const IntVarArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void branch(Home,BoolVar,IntValBranch,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const BoolVarArgs&,const TieBreakVarBranch<IntVarBranch>&,IntValBranch,const TieBreakVarBranchOptions&=TieBreakVarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const BoolVarArgs&,IntVarBranch,IntValBranch,const VarBranchOptions&=VarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const IntVarArgs&,const TieBreakVarBranch<IntVarBranch>&,IntValBranch,const TieBreakVarBranchOptions&=TieBreakVarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const IntVarArgs&,IntVarBranch,IntValBranch,const VarBranchOptions&=VarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const SetVarArgs&,const TieBreakVarBranch<SetVarBranch>&,SetValBranch,const TieBreakVarBranchOptions&=TieBreakVarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,const SetVarArgs&,SetVarBranch,SetValBranch,const VarBranchOptions&=VarBranchOptions::def,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,IntVar,IntValBranch,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void branch(Home,SetVar,SetValBranch,const ValBranchOptions&=ValBranchOptions::def);
|
||||||
|
void cardinality(Home,SetVar,IntVar);
|
||||||
|
void cardinality(Home,SetVar,unsigned int,unsigned int);
|
||||||
|
void channel(Home,BoolVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void channel(Home,const BoolVarArgs&,IntVar,int=0,IntConLevel=ICL_DEF);
|
||||||
|
void channel(Home,const BoolVarArgs&,SetVar);
|
||||||
|
void channel(Home,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void channel(Home,const IntVarArgs&,const SetVarArgs&);
|
||||||
|
void channel(Home,const IntVarArgs&,int,const IntVarArgs&,int,IntConLevel=ICL_DEF);
|
||||||
|
void channel(Home,const SetVarArgs&,const SetVarArgs&);
|
||||||
|
void channel(Home,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void channelSorted(Home,const IntVarArgs&,SetVar);
|
||||||
|
void circuit(Home,const IntArgs&,const IntVarArgs&,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void circuit(Home,const IntArgs&,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void circuit(Home,const IntArgs&,int,const IntVarArgs&,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void circuit(Home,const IntArgs&,int,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void circuit(Home,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void circuit(Home,int,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void clause(Home,BoolOpType,const BoolVarArgs&,const BoolVarArgs&,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void clause(Home,BoolOpType,const BoolVarArgs&,const BoolVarArgs&,int,IntConLevel=ICL_DEF);
|
||||||
|
void convex(Home,SetVar);
|
||||||
|
void convex(Home,SetVar,SetVar);
|
||||||
|
void count(Home,const IntVarArgs&,const IntArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntSetArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntSetArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntSet&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntSet&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntSet&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,int,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,int,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,IntVar,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void count(Home,const IntVarArgs&,IntVar,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const IntVarArgs&,const IntArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const IntVarArgs&,const IntArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,int,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const IntVarArgs&,const IntArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const IntVarArgs&,const IntArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulative(Home,IntVar,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntArgs&,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntArgs&,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void cumulatives(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntArgs&,bool,IntConLevel=ICL_DEF);
|
||||||
|
void distinct(Home,const IntArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void distinct(Home,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void div(Home,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void divmod(Home,IntVar,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,const IntVarArgs&,const IntSet&,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,const IntVarArgs&,int,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,const IntVarArgs&,int,int,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,const IntSet&,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,const IntSet&,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,int,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,int,int,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,int,int,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,IntVar,int,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void dom(Home,SetVar,SetRelType,const IntSet&);
|
||||||
|
void dom(Home,SetVar,SetRelType,const IntSet&,BoolVar);
|
||||||
|
void dom(Home,SetVar,SetRelType,int);
|
||||||
|
void dom(Home,SetVar,SetRelType,int,BoolVar);
|
||||||
|
void dom(Home,SetVar,SetRelType,int,int);
|
||||||
|
void dom(Home,SetVar,SetRelType,int,int,BoolVar);
|
||||||
|
void element(Home,const BoolVarArgs&,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const BoolVarArgs&,IntVar,int,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const BoolVarArgs&,IntVar,int,IntVar,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const IntSetArgs&,IntVar,int,IntVar,int,SetVar);
|
||||||
|
void element(Home,const IntSetArgs&,IntVar,SetVar);
|
||||||
|
void element(Home,const IntVarArgs&,IntVar,int,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const IntVarArgs&,IntVar,int,IntVar,int,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const IntVarArgs&,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,const SetVarArgs&,IntVar,int,IntVar,int,SetVar);
|
||||||
|
void element(Home,const SetVarArgs&,IntVar,SetVar);
|
||||||
|
void element(Home,IntSharedArray,IntVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,IntSharedArray,IntVar,int,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,IntSharedArray,IntVar,int,IntVar,int,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,IntSharedArray,IntVar,int,IntVar,int,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,IntSharedArray,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void element(Home,SetOpType,const IntArgs&,SetVar,SetVar,const IntSet&=IntSet(Set::Limits::min,Set::Limits::max));
|
||||||
|
void element(Home,SetOpType,const IntSetArgs&,SetVar,SetVar,const IntSet&=IntSet(Set::Limits::min,Set::Limits::max));
|
||||||
|
void element(Home,SetOpType,const IntVarArgs&,SetVar,SetVar,const IntSet&=IntSet(Set::Limits::min,Set::Limits::max));
|
||||||
|
void element(Home,SetOpType,const SetVarArgs&,SetVar,SetVar,const IntSet&=IntSet(Set::Limits::min,Set::Limits::max));
|
||||||
|
void extensional(Home,const BoolVarArgs&,const TupleSet&,ExtensionalPropKind=EPK_DEF,IntConLevel=ICL_DEF);
|
||||||
|
void extensional(Home,const BoolVarArgs&,DFA,IntConLevel=ICL_DEF);
|
||||||
|
void extensional(Home,const IntVarArgs&,const TupleSet&,ExtensionalPropKind=EPK_DEF,IntConLevel=ICL_DEF);
|
||||||
|
void extensional(Home,const IntVarArgs&,DFA,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const BoolVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const BoolVarArgs&,IntRelType,int,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const BoolVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const BoolVarArgs&,IntRelType,IntVar,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const BoolVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const BoolVarArgs&,IntRelType,int,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const BoolVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const BoolVarArgs&,IntRelType,IntVar,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const IntVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const IntVarArgs&,IntRelType,int,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const IntVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntArgs&,const IntVarArgs&,IntRelType,IntVar,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntVarArgs&,IntRelType,int,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void linear(Home,const IntVarArgs&,IntRelType,IntVar,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void max(Home,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void max(Home,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void max(Home,SetVar,IntVar);
|
||||||
|
void max(Home,SetVar,IntVar,BoolVar);
|
||||||
|
void member(Home,const BoolVarArgs&,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void member(Home,const BoolVarArgs&,BoolVar,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void member(Home,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void member(Home,const IntVarArgs&,IntVar,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void min(Home,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void min(Home,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void min(Home,SetVar,IntVar);
|
||||||
|
void min(Home,SetVar,IntVar,BoolVar);
|
||||||
|
void mod(Home,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void mult(Home,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void nooverlap(Home,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void nooverlap(Home,const IntVarArgs&,const IntArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void nooverlap(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void nooverlap(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void notMax(Home,SetVar,IntVar);
|
||||||
|
void notMin(Home,SetVar,IntVar);
|
||||||
|
void nvalues(Home,const BoolVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void nvalues(Home,const BoolVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void nvalues(Home,const IntVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void nvalues(Home,const IntVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,const IntArgs&,const IntVarArgs&,IntVar,IntVar,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,const IntArgs&,const IntVarArgs&,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,const IntArgs&,int,const IntVarArgs&,IntVar,IntVar,const IntVarArgs&,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,const IntArgs&,int,const IntVarArgs&,IntVar,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,const IntVarArgs&,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void path(Home,int,const IntVarArgs&,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void precede(Home,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void precede(Home,const IntVarArgs&,int,int,IntConLevel=ICL_DEF);
|
||||||
|
void precede(Home,const SetVarArgs&,const IntArgs&);
|
||||||
|
void precede(Home,const SetVarArgs&,int,int);
|
||||||
|
void rel(Home,BoolOpType,const BoolVarArgs&,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolOpType,const BoolVarArgs&,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,BoolOpType,BoolVar,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,BoolOpType,BoolVar,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,IntRelType,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,IntRelType,BoolVar,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,BoolVar,IntRelType,int,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const BoolVarArgs&,IntRelType,BoolVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const BoolVarArgs&,IntRelType,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const BoolVarArgs&,IntRelType,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const BoolVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const IntSet&,SetOpType,SetVar,SetRelType,const IntSet&);
|
||||||
|
void rel(Home,const IntSet&,SetOpType,SetVar,SetRelType,SetVar);
|
||||||
|
void rel(Home,const IntVarArgs&,IntRelType,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const IntVarArgs&,IntRelType,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const IntVarArgs&,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,const IntVarArgs&,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,IntVar,IntRelType,int,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,IntVar,IntRelType,int,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,IntVar,IntRelType,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,IntVar,IntRelType,IntVar,Reify,IntConLevel=ICL_DEF);
|
||||||
|
void rel(Home,IntVar,IntRelType,SetVar);
|
||||||
|
void rel(Home,IntVar,SetRelType,SetVar);
|
||||||
|
void rel(Home,IntVar,SetRelType,SetVar,BoolVar);
|
||||||
|
void rel(Home,SetOpType,const IntVarArgs&,const IntSet&,SetVar);
|
||||||
|
void rel(Home,SetOpType,const IntVarArgs&,SetVar);
|
||||||
|
void rel(Home,SetOpType,const SetVarArgs&,const IntSet&,SetVar);
|
||||||
|
void rel(Home,SetOpType,const SetVarArgs&,SetVar);
|
||||||
|
void rel(Home,SetVar,IntRelType,IntVar);
|
||||||
|
void rel(Home,SetVar,SetOpType,const IntSet&,SetRelType,const IntSet&);
|
||||||
|
void rel(Home,SetVar,SetOpType,const IntSet&,SetRelType,SetVar);
|
||||||
|
void rel(Home,SetVar,SetOpType,SetVar,SetRelType,const IntSet&);
|
||||||
|
void rel(Home,SetVar,SetOpType,SetVar,SetRelType,SetVar);
|
||||||
|
void rel(Home,SetVar,SetRelType,IntVar);
|
||||||
|
void rel(Home,SetVar,SetRelType,IntVar,BoolVar);
|
||||||
|
void rel(Home,SetVar,SetRelType,SetVar);
|
||||||
|
void rel(Home,SetVar,SetRelType,SetVar,BoolVar);
|
||||||
|
void sequence(Home,const BoolVarArgs&,const IntSet&,int,int,int,IntConLevel=ICL_DEF);
|
||||||
|
void sequence(Home,const IntVarArgs&,const IntSet&,int,int,int,IntConLevel=ICL_DEF);
|
||||||
|
void sequence(Home,const SetVarArgs&);
|
||||||
|
void sequence(Home,const SetVarArgs&,SetVar);
|
||||||
|
void sorted(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void sorted(Home,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void sqr(Home,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void sqrt(Home,IntVar,IntVar,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const IntVarArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const IntVarArgs&,const IntVarArgs&,const IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,const BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unary(Home,const TaskTypeArgs&,const IntVarArgs&,const IntArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unshare(Home,BoolVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void unshare(Home,IntVarArgs&,IntConLevel=ICL_DEF);
|
||||||
|
void weights(Home,IntSharedArray,IntSharedArray,SetVar,IntVar);
|
@ -41,14 +41,17 @@ namespace generic_gecode
|
|||||||
Optimizing(): num(-1), den(-1), what(OPT_NONE), how(OPT_MAX) {}
|
Optimizing(): num(-1), den(-1), what(OPT_NONE), how(OPT_MAX) {}
|
||||||
Optimizing(Optimizing& o)
|
Optimizing(Optimizing& o)
|
||||||
: num(o.num), den(o.den), what(o.what), how(o.how) {}
|
: num(o.num), den(o.den), what(o.what), how(o.how) {}
|
||||||
|
void check_ok() const
|
||||||
|
{ if (what!=OPT_NONE)
|
||||||
|
throw Exception("gecode-python","too many optimization criteria"); }
|
||||||
void maximize(int i)
|
void maximize(int i)
|
||||||
{ what = OPT_INT; how = OPT_MAX; num = i; };
|
{ check_ok(); what = OPT_INT; how = OPT_MAX; num = i; };
|
||||||
void maximize(int i,int j)
|
void maximize(int i,int j)
|
||||||
{ what = OPT_RATIO; how = OPT_MAX; num = i; den = j; };
|
{ check_ok(); what = OPT_RATIO; how = OPT_MAX; num = i; den = j; };
|
||||||
void minimize(int i)
|
void minimize(int i)
|
||||||
{ what = OPT_INT; how = OPT_MIN; num = i; };
|
{ check_ok(); what = OPT_INT; how = OPT_MIN; num = i; };
|
||||||
void minimize(int i,int j)
|
void minimize(int i,int j)
|
||||||
{ what = OPT_RATIO; how = OPT_MIN; num = i; den = j; };
|
{ check_ok(); what = OPT_RATIO; how = OPT_MIN; num = i; den = j; };
|
||||||
};
|
};
|
||||||
|
|
||||||
struct GenericSpace;
|
struct GenericSpace;
|
||||||
@ -62,32 +65,124 @@ namespace generic_gecode
|
|||||||
struct GenericDFS: GenericEngine
|
struct GenericDFS: GenericEngine
|
||||||
{
|
{
|
||||||
DFS<GenericSpace> engine;
|
DFS<GenericSpace> engine;
|
||||||
GenericDFS(GenericSpace* s) : engine(s) {}
|
GenericDFS(GenericSpace* s,Search::Options& opt) : engine(s,opt) {}
|
||||||
virtual GenericSpace* next(void) { return engine.next(); }
|
virtual GenericSpace* next(void) { return engine.next(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct GenericBAB: GenericEngine
|
struct GenericBAB: GenericEngine
|
||||||
{
|
{
|
||||||
BAB<GenericSpace> engine;
|
BAB<GenericSpace> engine;
|
||||||
GenericBAB(GenericSpace* s) : engine(s) {}
|
GenericBAB(GenericSpace* s,Search::Options& opt) : engine(s,opt) {}
|
||||||
virtual GenericSpace* next(void) { return engine.next(); }
|
virtual GenericSpace* next(void) { return engine.next(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct GenericRestart: GenericEngine
|
||||||
|
{
|
||||||
|
Restart<GenericSpace> engine;
|
||||||
|
GenericRestart(GenericSpace* s,Search::Options& opt): engine(s,opt) {}
|
||||||
|
virtual GenericSpace* next(void) { return engine.next(); }
|
||||||
|
};
|
||||||
|
|
||||||
|
struct LoadingDock
|
||||||
|
{
|
||||||
|
vector<IntVar> ivars;
|
||||||
|
vector<BoolVar> bvars;
|
||||||
|
vector<SetVar> svars;
|
||||||
|
vector<int> ikeep;
|
||||||
|
vector<int> bkeep;
|
||||||
|
vector<int> skeep;
|
||||||
|
|
||||||
|
bool keeping_some() const
|
||||||
|
{
|
||||||
|
return (ikeep.size() != 0)
|
||||||
|
|| (bkeep.size() != 0)
|
||||||
|
|| (skeep.size() != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
IntVar get_ivar(int i) const { return ivars[i]; }
|
||||||
|
BoolVar get_bvar(int i) const { return bvars[i]; }
|
||||||
|
SetVar get_svar(int i) const { return svars[i]; }
|
||||||
|
|
||||||
|
int enter_ivar(const IntVar& v)
|
||||||
|
{ ivars.push_back(v); return static_cast<int>(ivars.size()-1); }
|
||||||
|
|
||||||
|
int enter_bvar(const BoolVar& v)
|
||||||
|
{ bvars.push_back(v); return static_cast<int>(bvars.size()-1); }
|
||||||
|
|
||||||
|
int enter_svar(const SetVar& v)
|
||||||
|
{ svars.push_back(v); return static_cast<int>(svars.size()-1); }
|
||||||
|
|
||||||
|
int keep_ivar(int i) { ikeep.push_back(i); return static_cast<int>(ikeep.size()-1); }
|
||||||
|
int keep_bvar(int i) { bkeep.push_back(i); return static_cast<int>(bkeep.size()-1); }
|
||||||
|
int keep_svar(int i) { skeep.push_back(i); return static_cast<int>(skeep.size()-1); }
|
||||||
|
|
||||||
|
void freeze(Space& home,
|
||||||
|
IntVarArray& iarr, BoolVarArray& barr, SetVarArray& sarr,
|
||||||
|
int& num, int& den)
|
||||||
|
{
|
||||||
|
if (keeping_some())
|
||||||
|
{
|
||||||
|
// make sure that optimization vars (if any) are kept
|
||||||
|
if (num != -1)
|
||||||
|
{
|
||||||
|
const int _num(num);
|
||||||
|
const int _den(den);
|
||||||
|
int n = static_cast<int>(ikeep.size());
|
||||||
|
bool num_found(false);
|
||||||
|
bool den_found(false);
|
||||||
|
for (;n--;)
|
||||||
|
{
|
||||||
|
const int idx(ikeep[n]);
|
||||||
|
if (idx==_num)
|
||||||
|
{ num_found=true; if (den_found) break; }
|
||||||
|
if (idx==_den)
|
||||||
|
{ den_found=true; if (num_found) break; }
|
||||||
|
}
|
||||||
|
if (!num_found)
|
||||||
|
{ ikeep.push_back(_num);
|
||||||
|
num=static_cast<int>(ikeep.size()-1); }
|
||||||
|
if (_den != -1 && !den_found)
|
||||||
|
{ ikeep.push_back(_den);
|
||||||
|
den=static_cast<int>(ikeep.size()-1); }
|
||||||
|
}
|
||||||
|
{ int n = static_cast<int>(ikeep.size());
|
||||||
|
iarr = IntVarArray(home, n);
|
||||||
|
for (;n--;) iarr[n]=ivars[ikeep[n]]; }
|
||||||
|
{ int n = static_cast<int>(bkeep.size());
|
||||||
|
barr = BoolVarArray(home, n);
|
||||||
|
for (;n--;) barr[n]=bvars[bkeep[n]]; }
|
||||||
|
{ int n = static_cast<int>(skeep.size());
|
||||||
|
sarr = SetVarArray(home, n);
|
||||||
|
for (;n--;) sarr[n]=svars[skeep[n]]; }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
{ int n = static_cast<int>(ivars.size());
|
||||||
|
iarr = IntVarArray(home, n);
|
||||||
|
for (;n--;) iarr[n]=ivars[n]; }
|
||||||
|
{ int n = static_cast<int>(bvars.size());
|
||||||
|
barr = BoolVarArray(home, n);
|
||||||
|
for (;n--;) barr[n]=bvars[n]; }
|
||||||
|
{ int n = static_cast<int>(svars.size());
|
||||||
|
sarr = SetVarArray(home, n);
|
||||||
|
for (;n--;) sarr[n]=svars[n]; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
struct GenericSpace: Space
|
struct GenericSpace: Space
|
||||||
{
|
{
|
||||||
Optimizing optim;
|
Optimizing optim;
|
||||||
IntVarArray ivars;
|
IntVarArray ivars;
|
||||||
BoolVarArray bvars;
|
BoolVarArray bvars;
|
||||||
SetVarArray svars;
|
SetVarArray svars;
|
||||||
vector<IntVar>* _ivars;
|
LoadingDock* dock;
|
||||||
vector<BoolVar>* _bvars;
|
bool keeping_some; // iff only SOME of the vars are kept
|
||||||
vector<SetVar>* _svars;
|
|
||||||
|
|
||||||
Space* space() { return this; }
|
Space* space() { return this; }
|
||||||
|
|
||||||
GenericSpace(bool share, GenericSpace& s)
|
GenericSpace(bool share, GenericSpace& s)
|
||||||
: Space(share, s), optim(s.optim),
|
: Space(share, s), optim(s.optim), dock(NULL), keeping_some(s.keeping_some)
|
||||||
_ivars(NULL), _bvars(NULL), _svars(NULL)
|
|
||||||
{
|
{
|
||||||
ivars.update(*this, share, s.ivars);
|
ivars.update(*this, share, s.ivars);
|
||||||
bvars.update(*this, share, s.bvars);
|
bvars.update(*this, share, s.bvars);
|
||||||
@ -97,60 +192,68 @@ namespace generic_gecode
|
|||||||
Space* copy(bool share)
|
Space* copy(bool share)
|
||||||
{ freeze(); return new GenericSpace(share, *this); }
|
{ freeze(); return new GenericSpace(share, *this); }
|
||||||
|
|
||||||
GenericSpace() : _ivars(NULL), _bvars(NULL), _svars(NULL) {}
|
GenericSpace() : dock(new LoadingDock()), keeping_some(false) {}
|
||||||
|
~GenericSpace() { delete dock; }
|
||||||
|
|
||||||
|
// throw some C++ exception on behalf of glue code
|
||||||
|
void kaboom(const char* s)
|
||||||
|
{ throw Exception("gecode-python", s); }
|
||||||
|
int ikaboom(const char* s)
|
||||||
|
{ kaboom(s); return 0; }
|
||||||
|
|
||||||
// freeze the space before handing it off to a search engine
|
// freeze the space before handing it off to a search engine
|
||||||
void freeze()
|
void freeze()
|
||||||
{
|
{
|
||||||
if (_ivars)
|
if (dock)
|
||||||
{
|
{
|
||||||
int n = _ivars->size();
|
keeping_some = dock->keeping_some();
|
||||||
ivars = IntVarArray(*this, n);
|
dock->freeze(*this, ivars, bvars, svars, optim.num, optim.den);
|
||||||
vector<IntVar>& v(*_ivars);
|
delete dock;
|
||||||
for (; n--;) ivars[n] = v[n];
|
dock = NULL;
|
||||||
delete _ivars;
|
|
||||||
_ivars = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_bvars)
|
|
||||||
{
|
|
||||||
int n = _bvars->size();
|
|
||||||
bvars = BoolVarArray(*this, n);
|
|
||||||
vector<BoolVar>& v(*_bvars);
|
|
||||||
for (; n--;) bvars[n] = v[n];
|
|
||||||
delete _bvars;
|
|
||||||
_bvars = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_svars)
|
|
||||||
{
|
|
||||||
int n = _svars->size();
|
|
||||||
svars = SetVarArray(*this, n);
|
|
||||||
vector<SetVar>& v(*_svars);
|
|
||||||
for (; n--;) svars[n] = v[n];
|
|
||||||
delete _svars;
|
|
||||||
_svars = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IntVar get_ivar(int i) const { return (_ivars) ? (*_ivars)[i] : ivars[i]; }
|
IntVar get_ivar(int i) const { return (dock)?dock->get_ivar(i):ivars[i]; }
|
||||||
BoolVar get_bvar(int i) const { return (_bvars) ? (*_bvars)[i] : bvars[i]; }
|
BoolVar get_bvar(int i) const { return (dock)?dock->get_bvar(i):bvars[i]; }
|
||||||
SetVar get_svar(int i) const { return (_svars) ? (*_svars)[i] : svars[i]; }
|
SetVar get_svar(int i) const { return (dock)?dock->get_svar(i):svars[i]; }
|
||||||
|
|
||||||
GenericEngine* new_engine()
|
int keep_ivar(int i)
|
||||||
|
{
|
||||||
|
if (dock) return dock->keep_ivar(i);
|
||||||
|
else return ikaboom("too late to keep");
|
||||||
|
}
|
||||||
|
|
||||||
|
int keep_bvar(int i)
|
||||||
|
{
|
||||||
|
if (dock) return dock->keep_bvar(i);
|
||||||
|
else return ikaboom("too late to keep");
|
||||||
|
}
|
||||||
|
|
||||||
|
int keep_svar(int i)
|
||||||
|
{
|
||||||
|
if (dock) return dock->keep_svar(i);
|
||||||
|
else return ikaboom("too late to keep");
|
||||||
|
}
|
||||||
|
|
||||||
|
bool frozen() const { return dock==NULL; }
|
||||||
|
bool has_keepers() const { return keeping_some; }
|
||||||
|
// when frozen and has_keepers: which is just has_keepers actually
|
||||||
|
bool use_keep_index() const { return has_keepers(); }
|
||||||
|
|
||||||
|
GenericEngine* new_engine(bool restart, Search::Options& opt)
|
||||||
{
|
{
|
||||||
freeze();
|
freeze();
|
||||||
return (optim.what == Optimizing::OPT_NONE)
|
return (optim.what == Optimizing::OPT_NONE)
|
||||||
? static_cast<GenericEngine*>(new GenericDFS(this))
|
? static_cast<GenericEngine*>(new GenericDFS(this,opt))
|
||||||
: static_cast<GenericEngine*>(new GenericBAB(this));
|
: (restart
|
||||||
|
? static_cast<GenericEngine*>(new GenericRestart(this,opt))
|
||||||
|
: static_cast<GenericEngine*>(new GenericBAB(this,opt)));
|
||||||
}
|
}
|
||||||
|
|
||||||
int _new_ivar(IntVar& v)
|
int _new_ivar(IntVar& v)
|
||||||
{
|
{
|
||||||
if (!_ivars) _ivars = new vector<IntVar>;
|
if (dock) return dock->enter_ivar(v);
|
||||||
int i = _ivars->size();
|
else return ikaboom("too late to create vars");
|
||||||
_ivars->push_back(v);
|
|
||||||
return i;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int new_ivar(int lo, int hi)
|
int new_ivar(int lo, int hi)
|
||||||
@ -167,10 +270,8 @@ namespace generic_gecode
|
|||||||
|
|
||||||
int _new_bvar(BoolVar& v)
|
int _new_bvar(BoolVar& v)
|
||||||
{
|
{
|
||||||
if (!_bvars) _bvars = new vector<BoolVar>;
|
if (dock) return dock->enter_bvar(v);
|
||||||
int i = _bvars->size();
|
else return ikaboom("too late to create vars");
|
||||||
_bvars->push_back(v);
|
|
||||||
return i;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int new_bvar()
|
int new_bvar()
|
||||||
@ -181,10 +282,8 @@ namespace generic_gecode
|
|||||||
|
|
||||||
int _new_svar(SetVar& v)
|
int _new_svar(SetVar& v)
|
||||||
{
|
{
|
||||||
if (!_svars) _svars = new vector<SetVar>;
|
if (dock) return dock->enter_svar(v);
|
||||||
int i = _svars->size();
|
else return ikaboom("too late to create vars");
|
||||||
_svars->push_back(v);
|
|
||||||
return i;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int new_svar(int glbMin, int glbMax, int lubMin, int lubMax,
|
int new_svar(int glbMin, int glbMax, int lubMin, int lubMax,
|
||||||
|
@ -156,8 +156,17 @@ extern "C"
|
|||||||
{
|
{
|
||||||
YAP_Term arg1 = YAP_ARG1;
|
YAP_Term arg1 = YAP_ARG1;
|
||||||
YAP_Term arg2 = YAP_ARG2;
|
YAP_Term arg2 = YAP_ARG2;
|
||||||
|
YAP_Term arg3 = YAP_ARG3;
|
||||||
|
bool restart = YAP_IntOfTerm(YAP_ArgOfTerm(1, arg3));
|
||||||
|
double threads = YAP_FloatOfTerm(YAP_ArgOfTerm(2, arg3));
|
||||||
|
unsigned int c_d = YAP_IntOfTerm(YAP_ArgOfTerm(3, arg3));
|
||||||
|
unsigned int a_d = YAP_IntOfTerm(YAP_ArgOfTerm(4, arg3));
|
||||||
|
Search::Options opt;
|
||||||
|
opt.threads = threads;
|
||||||
|
opt.c_d = c_d;
|
||||||
|
opt.a_d = a_d;
|
||||||
GenericSpace* space = gecode_Space_from_term(arg1);
|
GenericSpace* space = gecode_Space_from_term(arg1);
|
||||||
GenericEngine* engine = space->new_engine();
|
GenericEngine* engine = space->new_engine(restart,opt);
|
||||||
YAP_Term y_engine =
|
YAP_Term y_engine =
|
||||||
YAP_NewOpaqueObject(gecode_engine_tag, sizeof(GenericEngine*));
|
YAP_NewOpaqueObject(gecode_engine_tag, sizeof(GenericEngine*));
|
||||||
GenericEngine** ptr =
|
GenericEngine** ptr =
|
||||||
@ -642,6 +651,48 @@ extern "C"
|
|||||||
cerr << "this should never happen" << endl; exit(1);
|
cerr << "this should never happen" << endl; exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int gecode_space_use_keep_index(void)
|
||||||
|
{
|
||||||
|
YAP_Term arg1 = YAP_ARG1;
|
||||||
|
YAP_Term arg2 = YAP_ARG2;
|
||||||
|
GenericSpace* space = gecode_Space_from_term(arg1);
|
||||||
|
return YAP_Unify(arg2,(space->use_keep_index()
|
||||||
|
?gecode_TRUE:gecode_FALSE));
|
||||||
|
}
|
||||||
|
|
||||||
|
static int gecode_intvar_keep(void)
|
||||||
|
{
|
||||||
|
YAP_Term arg1 = YAP_ARG1;
|
||||||
|
YAP_Term arg2 = YAP_ARG2;
|
||||||
|
YAP_Term arg3 = YAP_ARG3;
|
||||||
|
GenericSpace* space = gecode_Space_from_term(arg1);
|
||||||
|
int idx = YAP_IntOfTerm(arg2);
|
||||||
|
int kidx = space->keep_ivar(idx);
|
||||||
|
return YAP_Unify(arg3,YAP_MkIntTerm(kidx));
|
||||||
|
}
|
||||||
|
|
||||||
|
static int gecode_boolvar_keep(void)
|
||||||
|
{
|
||||||
|
YAP_Term arg1 = YAP_ARG1;
|
||||||
|
YAP_Term arg2 = YAP_ARG2;
|
||||||
|
YAP_Term arg3 = YAP_ARG3;
|
||||||
|
GenericSpace* space = gecode_Space_from_term(arg1);
|
||||||
|
int idx = YAP_IntOfTerm(arg2);
|
||||||
|
int kidx = space->keep_bvar(idx);
|
||||||
|
return YAP_Unify(arg3,YAP_MkIntTerm(kidx));
|
||||||
|
}
|
||||||
|
|
||||||
|
static int gecode_setvar_keep(void)
|
||||||
|
{
|
||||||
|
YAP_Term arg1 = YAP_ARG1;
|
||||||
|
YAP_Term arg2 = YAP_ARG2;
|
||||||
|
YAP_Term arg3 = YAP_ARG3;
|
||||||
|
GenericSpace* space = gecode_Space_from_term(arg1);
|
||||||
|
int idx = YAP_IntOfTerm(arg2);
|
||||||
|
int kidx = space->keep_svar(idx);
|
||||||
|
return YAP_Unify(arg3,YAP_MkIntTerm(kidx));
|
||||||
|
}
|
||||||
|
|
||||||
// INFO ON INTVARS
|
// INFO ON INTVARS
|
||||||
static int gecode_intvar_assigned(void)
|
static int gecode_intvar_assigned(void)
|
||||||
{
|
{
|
||||||
@ -1045,7 +1096,7 @@ extern "C"
|
|||||||
gecode_engine_handler.fail_handler = gecode_engine_fail_handler;
|
gecode_engine_handler.fail_handler = gecode_engine_fail_handler;
|
||||||
gecode_engine_handler.write_handler = gecode_engine_write_handler;
|
gecode_engine_handler.write_handler = gecode_engine_write_handler;
|
||||||
gecode_engine_tag = YAP_NewOpaqueType(&gecode_engine_handler);
|
gecode_engine_tag = YAP_NewOpaqueType(&gecode_engine_handler);
|
||||||
YAP_UserCPredicate("gecode_new_engine", gecode_new_engine, 2);
|
YAP_UserCPredicate("gecode_new_engine", gecode_new_engine, 3);
|
||||||
#ifdef DISJUNCTOR
|
#ifdef DISJUNCTOR
|
||||||
// opaque disjunctors and clauses
|
// opaque disjunctors and clauses
|
||||||
gecode_disjunctor_handler.write_handler = gecode_disjunctor_write_handler;
|
gecode_disjunctor_handler.write_handler = gecode_disjunctor_write_handler;
|
||||||
@ -1124,5 +1175,9 @@ extern "C"
|
|||||||
YAP_UserCPredicate("gecode_setvar_glb_values", gecode_setvar_glb_values, 3);
|
YAP_UserCPredicate("gecode_setvar_glb_values", gecode_setvar_glb_values, 3);
|
||||||
YAP_UserCPredicate("gecode_setvar_lub_values", gecode_setvar_lub_values, 3);
|
YAP_UserCPredicate("gecode_setvar_lub_values", gecode_setvar_lub_values, 3);
|
||||||
YAP_UserCPredicate("gecode_setvar_unknown_values", gecode_setvar_unknown_values, 3);
|
YAP_UserCPredicate("gecode_setvar_unknown_values", gecode_setvar_unknown_values, 3);
|
||||||
|
YAP_UserCPredicate("gecode_space_use_keep_index", gecode_space_use_keep_index, 2);
|
||||||
|
YAP_UserCPredicate("gecode_intvar_keep", gecode_intvar_keep, 3);
|
||||||
|
YAP_UserCPredicate("gecode_boolvar_keep", gecode_boolvar_keep, 3);
|
||||||
|
YAP_UserCPredicate("gecode_setvar_keep", gecode_setvar_keep, 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,9 +31,21 @@ is_bool_(false,false).
|
|||||||
is_bool(X,Y) :- nonvar(X), Y=X.
|
is_bool(X,Y) :- nonvar(X), Y=X.
|
||||||
is_bool(X) :- is_bool(X,_).
|
is_bool(X) :- is_bool(X,_).
|
||||||
|
|
||||||
is_IntVar_('IntVar'(I),I) :- integer(I).
|
is_IntVar_('IntVar'(I,K),N) :-
|
||||||
is_BoolVar_('BoolVar'(I),I) :- integer(I).
|
integer(I),
|
||||||
is_SetVar_('SetVar'(I),I) :- integer(I).
|
integer(K),
|
||||||
|
nb_getval(gecode_space_use_keep_index,B),
|
||||||
|
(B=true -> N=K ; N=I).
|
||||||
|
is_BoolVar_('BoolVar'(I,K),N) :-
|
||||||
|
integer(I),
|
||||||
|
integer(K),
|
||||||
|
nb_getval(gecode_space_use_keep_index,B),
|
||||||
|
(B=true -> N=K ; N=I).
|
||||||
|
is_SetVar_('SetVar'(I,K),N) :-
|
||||||
|
integer(I),
|
||||||
|
integer(K),
|
||||||
|
nb_getval(gecode_space_use_keep_index,B),
|
||||||
|
(B=true -> N=K ; N=I).
|
||||||
|
|
||||||
is_IntVar(X,I) :- nonvar(X), is_IntVar_(X,I).
|
is_IntVar(X,I) :- nonvar(X), is_IntVar_(X,I).
|
||||||
is_BoolVar(X,I) :- nonvar(X), is_BoolVar_(X,I).
|
is_BoolVar(X,I) :- nonvar(X), is_BoolVar_(X,I).
|
||||||
@ -142,7 +154,18 @@ new_space(Space) :-
|
|||||||
gecode_new_space(Space_),
|
gecode_new_space(Space_),
|
||||||
Space='Space'(Space_).
|
Space='Space'(Space_).
|
||||||
|
|
||||||
is_Space_('Space'(X),X).
|
%% checking that an argument is a space sets a global variable
|
||||||
|
%% indicating whether variables need to be translated to their
|
||||||
|
%% original index or to their "keep" index.
|
||||||
|
%%
|
||||||
|
%% these bindings are going to take advantage of the fact that,
|
||||||
|
%% when a space is involved, it is checked first, thus setting
|
||||||
|
%% this global variable. subsequent accesses to variables are
|
||||||
|
%% then correctly translated.
|
||||||
|
|
||||||
|
is_Space_('Space'(X),X) :-
|
||||||
|
gecode_space_use_keep_index(X,B),
|
||||||
|
nb_setval(gecode_space_use_keep_index,B).
|
||||||
is_Space(X,Y) :- nonvar(X), is_Space_(X,Y).
|
is_Space(X,Y) :- nonvar(X), is_Space_(X,Y).
|
||||||
is_Space(X) :- is_Space(X,_).
|
is_Space(X) :- is_Space(X,_).
|
||||||
|
|
||||||
@ -198,19 +221,19 @@ new_intvar(IVar, Space, Lo, Hi) :- !,
|
|||||||
assert_integer(Lo),
|
assert_integer(Lo),
|
||||||
assert_integer(Hi),
|
assert_integer(Hi),
|
||||||
gecode_new_intvar_from_bounds(Idx,Space_,Lo,Hi),
|
gecode_new_intvar_from_bounds(Idx,Space_,Lo,Hi),
|
||||||
IVar='IntVar'(Idx).
|
IVar='IntVar'(Idx,-1).
|
||||||
new_intvar(IVar, Space, IntSet) :- !,
|
new_intvar(IVar, Space, IntSet) :- !,
|
||||||
assert_var(IVar),
|
assert_var(IVar),
|
||||||
assert_is_Space_or_Clause(Space,Space_),
|
assert_is_Space_or_Clause(Space,Space_),
|
||||||
assert_is_IntSet(IntSet, L),
|
assert_is_IntSet(IntSet, L),
|
||||||
gecode_new_intvar_from_intset(Idx,Space_,L),
|
gecode_new_intvar_from_intset(Idx,Space_,L),
|
||||||
IVar='IntVar'(Idx).
|
IVar='IntVar'(Idx,-1).
|
||||||
|
|
||||||
new_boolvar(BVar, Space) :- !,
|
new_boolvar(BVar, Space) :- !,
|
||||||
assert_var(BVar),
|
assert_var(BVar),
|
||||||
assert_is_Space_or_Clause(Space,Space_),
|
assert_is_Space_or_Clause(Space,Space_),
|
||||||
gecode_new_boolvar(Idx,Space_),
|
gecode_new_boolvar(Idx,Space_),
|
||||||
BVar='BoolVar'(Idx).
|
BVar='BoolVar'(Idx,-1).
|
||||||
|
|
||||||
%% (GlbMin,GlbMax,LubMin,LubMax,CardMin,CardMax) 6 new_setvar_1
|
%% (GlbMin,GlbMax,LubMin,LubMax,CardMin,CardMax) 6 new_setvar_1
|
||||||
%% (GlbMin,GlbMax,LubMin,LubMax,CardMin) 5 new_setvar_2
|
%% (GlbMin,GlbMax,LubMin,LubMax,CardMin) 5 new_setvar_2
|
||||||
@ -237,7 +260,7 @@ new_setvar(SVar, Space, GlbMin, GlbMax, LubMin, LubMax, CardMin, CardMax) :-
|
|||||||
assert_integer(CardMin),
|
assert_integer(CardMin),
|
||||||
assert_integer(CardMax),
|
assert_integer(CardMax),
|
||||||
gecode_new_setvar(Idx, Space_, GlbMin, GlbMax, LubMib, LubMax, CardMin, CardMax),
|
gecode_new_setvar(Idx, Space_, GlbMin, GlbMax, LubMib, LubMax, CardMin, CardMax),
|
||||||
SVar='SetVar'(Idx).
|
SVar='SetVar'(Idx,-1).
|
||||||
|
|
||||||
%% 5 arguments
|
%% 5 arguments
|
||||||
%% (GlbMin,GlbMax,LubMin,LubMax,CardMin) 5 new_setvar_2
|
%% (GlbMin,GlbMax,LubMin,LubMax,CardMin) 5 new_setvar_2
|
||||||
@ -344,13 +367,55 @@ maximize(Space,IVar1,IVar2) :-
|
|||||||
assert_is_IntVar(IVar2,IVar2_),
|
assert_is_IntVar(IVar2,IVar2_),
|
||||||
gecode_space_maximize_ratio(Space_,IVar1_,IVar2_).
|
gecode_space_maximize_ratio(Space_,IVar1_,IVar2_).
|
||||||
|
|
||||||
|
gecode_search_options_init(search_options(0,1.0,8,2)).
|
||||||
|
gecode_search_options_offset(restart,1).
|
||||||
|
gecode_search_options_offset(threads,2).
|
||||||
|
gecode_search_options_offset(c_d ,3).
|
||||||
|
gecode_search_options_offset(a_d ,4).
|
||||||
|
|
||||||
|
gecode_search_option_set(O,V,R) :-
|
||||||
|
gecode_search_options_offset(O,I),
|
||||||
|
setarg(I,R,V).
|
||||||
|
|
||||||
|
gecode_search_options_from_alist(L,R) :-
|
||||||
|
gecode_search_options_init(R),
|
||||||
|
gecode_search_options_process_alist(L,R).
|
||||||
|
|
||||||
|
gecode_search_options_process_alist([],R).
|
||||||
|
gecode_search_options_process_alist([H|T],R) :- !,
|
||||||
|
gecode_search_options_process1(H,R),
|
||||||
|
gecode_search_options_process_alist(T,R).
|
||||||
|
|
||||||
|
gecode_search_options_process1(restart,R) :- !,
|
||||||
|
gecode_search_option_set(restart,1,R).
|
||||||
|
gecode_search_options_process1(threads=N,R) :- !,
|
||||||
|
(integer(N) -> V is float(N)
|
||||||
|
; (float(N) -> V=N
|
||||||
|
; throw(bad_search_option_value(threads=N)))),
|
||||||
|
gecode_search_option_set(threads,V,R).
|
||||||
|
gecode_search_options_process1(c_d=N,R) :- !,
|
||||||
|
(integer(N) -> V=N
|
||||||
|
; throw(bad_search_option_value(c_d=N))),
|
||||||
|
gecode_search_option_set(c_d,V,R).
|
||||||
|
gecode_search_options_process1(a_d=N,R) :- !,
|
||||||
|
(integer(N) -> V=N
|
||||||
|
; throw(bad_search_option_value(a_d=N))),
|
||||||
|
gecode_search_option_set(a_d,V,R).
|
||||||
|
gecode_search_options_process1(O,_) :-
|
||||||
|
throw(gecode_error(unrecognized_search_option(O))).
|
||||||
|
|
||||||
search(Space, Solution) :-
|
search(Space, Solution) :-
|
||||||
|
search(Space, Solution, []).
|
||||||
|
|
||||||
|
search(Space, Solution, Alist) :-
|
||||||
assert_is_Space(Space,Space_),
|
assert_is_Space(Space,Space_),
|
||||||
assert_var(Solution),
|
assert_var(Solution),
|
||||||
gecode_new_engine(Space_,Engine_),
|
gecode_search_options_from_alist(Alist,O),
|
||||||
|
gecode_new_engine(Space_,Engine_,O),
|
||||||
gecode_engine_search(Engine_,Solution_),
|
gecode_engine_search(Engine_,Solution_),
|
||||||
Solution='Space'(Solution_).
|
Solution='Space'(Solution_).
|
||||||
|
|
||||||
|
|
||||||
%% INSPECTING VARIABLES
|
%% INSPECTING VARIABLES
|
||||||
|
|
||||||
get_for_vars([],Space,[],F).
|
get_for_vars([],Space,[],F).
|
||||||
@ -551,7 +616,9 @@ new_clause(X, Disj) :-
|
|||||||
gecode_new_clause(C, Disj_),
|
gecode_new_clause(C, Disj_),
|
||||||
X='Clause'(C).
|
X='Clause'(C).
|
||||||
|
|
||||||
is_Clause_('Clause'(C),C).
|
is_Clause_('Clause'(C),C) :-
|
||||||
|
gecode_space_use_keep_index(C,B),
|
||||||
|
nb_setval(gecode_space_use_keep_index,B).
|
||||||
is_Clause(X,Y) :- nonvar(X), is_Clause_(X,Y).
|
is_Clause(X,Y) :- nonvar(X), is_Clause_(X,Y).
|
||||||
is_Clause(X) :- is_Clause(X,_).
|
is_Clause(X) :- is_Clause(X,_).
|
||||||
|
|
||||||
@ -594,6 +661,24 @@ new_setvars_(L,Space,N,X1,X2,X3,X4) :- length(L,N), new_setvars(L,Space,X1,X2,X3
|
|||||||
new_setvars_(L,Space,N,X1,X2,X3) :- length(L,N), new_setvars(L,Space,X1,X2,X3).
|
new_setvars_(L,Space,N,X1,X2,X3) :- length(L,N), new_setvars(L,Space,X1,X2,X3).
|
||||||
new_setvars_(L,Space,N,X1,X2) :- length(L,N), new_setvars(L,Space,X1,X2).
|
new_setvars_(L,Space,N,X1,X2) :- length(L,N), new_setvars(L,Space,X1,X2).
|
||||||
|
|
||||||
|
keep_(Space, Var) :-
|
||||||
|
(Var = 'IntVar'(I,J)
|
||||||
|
-> (J = -1 -> (gecode_intvar_keep(Space,I,K),setarg(2,Var,K))
|
||||||
|
; throw(gecode_error(variable_already_kept(Var))))
|
||||||
|
; (Var = 'BoolVar'(I,J)
|
||||||
|
-> (J = -1 -> (gecode_boolvar_keep(Space,I,K),setarg(2,Var,K))
|
||||||
|
; throw(gecode_error(variable_already_kept(Var))))
|
||||||
|
; (Var = 'SetVar'(I,J)
|
||||||
|
-> (J = -1 -> (gecode_setvar_keep(Space,I,K),setarg(2,Var,K))
|
||||||
|
; throw(gecode_error(variable_already_kept(Var))))
|
||||||
|
; keep_list_(Space,Var)))).
|
||||||
|
|
||||||
|
keep_list_(Space, []) :- !.
|
||||||
|
keep_list_(Space, [H|T]) :- !,
|
||||||
|
keep_(Space,H), keep_list_(Space,T).
|
||||||
|
keep_list_(_, X) :-
|
||||||
|
throw(gecode_error(not_a_variable(X))).
|
||||||
|
|
||||||
%% more concise interface:
|
%% more concise interface:
|
||||||
(X := Y) :- var(Y), !, throw(gecode_error((X := Y))).
|
(X := Y) :- var(Y), !, throw(gecode_error((X := Y))).
|
||||||
(X := intset(I,J)) :- !, new_intset(X,I,J).
|
(X := intset(I,J)) :- !, new_intset(X,I,J).
|
||||||
@ -647,6 +732,7 @@ new_setvars_(L,Space,N,X1,X2) :- length(L,N), new_setvars(L,Space,X1,X2).
|
|||||||
(X := clause(Disj)) :- !, new_clause(X,Disj).
|
(X := clause(Disj)) :- !, new_clause(X,Disj).
|
||||||
|
|
||||||
(X := search(Y)) :- !, search(Y,X).
|
(X := search(Y)) :- !, search(Y,X).
|
||||||
|
(X := search(Y,L)) :- !, search(Y,X,L).
|
||||||
|
|
||||||
% these should be autogenerated:
|
% these should be autogenerated:
|
||||||
(C += forward(X,Y)) :- !, new_forward(C,X,Y).
|
(C += forward(X,Y)) :- !, new_forward(C,X,Y).
|
||||||
@ -758,3 +844,5 @@ new_setvars_(L,Space,N,X1,X2) :- length(L,N), new_setvars(L,Space,X1,X2).
|
|||||||
(Space += maximize(X)) :- !, maximize(Space,X).
|
(Space += maximize(X)) :- !, maximize(Space,X).
|
||||||
(Space += minimize(X,Y)) :- !, minimize(Space,X,Y).
|
(Space += minimize(X,Y)) :- !, minimize(Space,X,Y).
|
||||||
(Space += maximize(X,Y)) :- !, maximize(Space,X,Y).
|
(Space += maximize(X,Y)) :- !, maximize(Space,X,Y).
|
||||||
|
|
||||||
|
(Space += keep(X)) :- !, keep_(Space,X).
|
||||||
|
@ -30,6 +30,8 @@ PL_get_chars_ex(term_t t, char **s, unsigned int flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#undef PL_get_atom_ex
|
||||||
|
|
||||||
int
|
int
|
||||||
PL_get_atom_ex__LD(term_t t, atom_t *a ARG_LD)
|
PL_get_atom_ex__LD(term_t t, atom_t *a ARG_LD)
|
||||||
{ if ( PL_get_atom(t, a) )
|
{ if ( PL_get_atom(t, a) )
|
||||||
@ -38,6 +40,14 @@ PL_get_atom_ex__LD(term_t t, atom_t *a ARG_LD)
|
|||||||
return PL_error(NULL, 0, NULL, ERR_TYPE, ATOM_atom, t);
|
return PL_error(NULL, 0, NULL, ERR_TYPE, ATOM_atom, t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
PL_get_atom_ex(term_t t, atom_t *a)
|
||||||
|
{ if ( PL_get_atom(t, a) )
|
||||||
|
succeed;
|
||||||
|
|
||||||
|
return PL_error(NULL, 0, NULL, ERR_TYPE, ATOM_atom, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
PL_get_integer_ex(term_t t, int *i)
|
PL_get_integer_ex(term_t t, int *i)
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
clpbn_init_solver/5,
|
clpbn_init_solver/5,
|
||||||
clpbn_run_solver/4,
|
clpbn_run_solver/4,
|
||||||
clpbn_init_graph/1,
|
clpbn_init_graph/1,
|
||||||
|
probability/2,
|
||||||
|
conditional_probability/3,
|
||||||
op( 500, xfy, with)]).
|
op( 500, xfy, with)]).
|
||||||
|
|
||||||
:- use_module(library(atts)).
|
:- use_module(library(atts)).
|
||||||
@ -113,6 +115,8 @@
|
|||||||
solver(ve).
|
solver(ve).
|
||||||
em_solver(ve).
|
em_solver(ve).
|
||||||
|
|
||||||
|
:- meta_predicate probability(:,-), conditional_probability(:,:,-).
|
||||||
|
|
||||||
%output(xbif(user_error)).
|
%output(xbif(user_error)).
|
||||||
%output(gviz(user_error)).
|
%output(gviz(user_error)).
|
||||||
output(no).
|
output(no).
|
||||||
@ -468,3 +472,49 @@ clpbn_finalize_solver(State) :-
|
|||||||
arg(Last, State, Info),
|
arg(Last, State, Info),
|
||||||
finalize_bp_solver(Info).
|
finalize_bp_solver(Info).
|
||||||
clpbn_finalize_solver(_State).
|
clpbn_finalize_solver(_State).
|
||||||
|
|
||||||
|
probability(Goal, Prob) :-
|
||||||
|
findall(Prob, do_probability(Goal, [], Prob), [Prob]).
|
||||||
|
|
||||||
|
conditional_probability(Goal, ListOfGoals, Prob) :-
|
||||||
|
\+ ground(ListOfGoals), !,
|
||||||
|
throw(error(ground(ListOfGoals),conditional_probability(Goal, ListOfGoals, Prob))).
|
||||||
|
conditional_probability(Goal, ListOfGoals, Prob) :-
|
||||||
|
findall(Prob, do_probability(Goal, ListOfGoals, Prob), [Prob]).
|
||||||
|
|
||||||
|
do_probability(Goal, ListOfGoals, Prob) :-
|
||||||
|
evidence_to_var(Goal, C, NGoal, V),
|
||||||
|
call_residue(run( ListOfGoals, NGoal), Vars), !,
|
||||||
|
match_probability(Vars, C, V, Prob).
|
||||||
|
|
||||||
|
run(ListOfGoals,Goal) :-
|
||||||
|
do(ListOfGoals),
|
||||||
|
call(Goal).
|
||||||
|
|
||||||
|
do(M:ListOfGoals) :-
|
||||||
|
do(ListOfGoals, M).
|
||||||
|
do([]).
|
||||||
|
|
||||||
|
do([], _M).
|
||||||
|
do(G.ListOfGoals, M) :-
|
||||||
|
M:G,
|
||||||
|
do(ListOfGoals, M).
|
||||||
|
|
||||||
|
evidence_to_var(M:Goal, C, M:VItem, V) :- !,
|
||||||
|
evidence_to_var(Goal, C, VItem, V).
|
||||||
|
evidence_to_var(Goal, C, VItem, V) :-
|
||||||
|
Goal =.. [L|Args],
|
||||||
|
variabilise_last(Args, C, NArgs, V),
|
||||||
|
VItem =.. [L|NArgs].
|
||||||
|
|
||||||
|
variabilise_last([Arg], Arg, [V], V).
|
||||||
|
variabilise_last([Arg1,Arg2|Args], Arg, Arg1.NArgs, V) :-
|
||||||
|
variabilise_last(Arg2.Args, Arg, NArgs, V).
|
||||||
|
|
||||||
|
match_probability([p(V0=C)=Prob|_], C, V, Prob) :-
|
||||||
|
V0 == V,
|
||||||
|
!.
|
||||||
|
match_probability([_|Probs], C, V, Prob) :-
|
||||||
|
match_probability(Probs, C, V, Prob).
|
||||||
|
|
||||||
|
|
||||||
|
@ -58,8 +58,7 @@ init_bp_solver(_, AllVars, _, (BayesNet, DistIds)) :-
|
|||||||
sort(DistIds0, DistIds),
|
sort(DistIds0, DistIds),
|
||||||
%(num_bayes_nets(0) -> writeln(vars:VarsInfo) ; true),
|
%(num_bayes_nets(0) -> writeln(vars:VarsInfo) ; true),
|
||||||
%(num_bayes_nets(0) -> writeln(dists:DistsInfo) ; true),
|
%(num_bayes_nets(0) -> writeln(dists:DistsInfo) ; true),
|
||||||
create_network(VarsInfo, BayesNet),
|
create_network(VarsInfo, BayesNet).
|
||||||
get_extra_vars_info(AllVars, ExtraVarsInfo).
|
|
||||||
%set_extra_vars_info(BayesNet, ExtraVarsInfo).
|
%set_extra_vars_info(BayesNet, ExtraVarsInfo).
|
||||||
|
|
||||||
|
|
||||||
@ -99,17 +98,10 @@ get_evidence(_V, -1). % no evidence !!!
|
|||||||
get_extra_vars_info([], []).
|
get_extra_vars_info([], []).
|
||||||
get_extra_vars_info([V|Vs], [v(VarId, Label, Domain)|VarsInfo]) :-
|
get_extra_vars_info([V|Vs], [v(VarId, Label, Domain)|VarsInfo]) :-
|
||||||
get_atts(V, [id(VarId)]), !,
|
get_atts(V, [id(VarId)]), !,
|
||||||
writeln(k:V),
|
|
||||||
clpbn:get_atts(V, [key(Key),dist(DistId, _)]),
|
clpbn:get_atts(V, [key(Key),dist(DistId, _)]),
|
||||||
writeln(j:Key),
|
|
||||||
term_to_atom(Key, Label),
|
term_to_atom(Key, Label),
|
||||||
writeln(i:Label),
|
|
||||||
get_dist_domain(DistId, Domain0),
|
get_dist_domain(DistId, Domain0),
|
||||||
writeln(a:Domain0),
|
|
||||||
numbers2atoms(Domain0, Domain),
|
numbers2atoms(Domain0, Domain),
|
||||||
writeln(b:Domain),
|
|
||||||
get_extra_vars_info(Vs, VarsInfo).
|
|
||||||
get_extra_vars_info([_|Vs], VarsInfo) :-
|
|
||||||
get_extra_vars_info(Vs, VarsInfo).
|
get_extra_vars_info(Vs, VarsInfo).
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
clpbn_tableallargs/1,
|
clpbn_tableallargs/1,
|
||||||
clpbn_table_nondet/1,
|
clpbn_table_nondet/1,
|
||||||
clpbn_tabled_clause/2,
|
clpbn_tabled_clause/2,
|
||||||
|
clpbn_tabled_clause_ref/3,
|
||||||
|
clpbn_tabled_retract/2,
|
||||||
clpbn_tabled_abolish/1,
|
clpbn_tabled_abolish/1,
|
||||||
clpbn_tabled_asserta/1,
|
clpbn_tabled_asserta/1,
|
||||||
clpbn_tabled_assertz/1,
|
clpbn_tabled_assertz/1,
|
||||||
@ -31,6 +33,8 @@
|
|||||||
|
|
||||||
:- meta_predicate clpbn_table(:),
|
:- meta_predicate clpbn_table(:),
|
||||||
clpbn_tabled_clause(:.?),
|
clpbn_tabled_clause(:.?),
|
||||||
|
clpbn_tabled_clause_ref(:.?,?),
|
||||||
|
clpbn_tabled_retract(:),
|
||||||
clpbn_tabled_abolish(:),
|
clpbn_tabled_abolish(:),
|
||||||
clpbn_tabled_asserta(:),
|
clpbn_tabled_asserta(:),
|
||||||
clpbn_tabled_assertz(:),
|
clpbn_tabled_assertz(:),
|
||||||
@ -121,6 +125,9 @@ clpbn_table(F/N,M) :-
|
|||||||
% enter evidence after binding.
|
% enter evidence after binding.
|
||||||
( var(A0) -> A0 = V2 ; put_evidence(A0, V2) )
|
( var(A0) -> A0 = V2 ; put_evidence(A0, V2) )
|
||||||
;
|
;
|
||||||
|
clpbn:clpbn_flag(solver,none) ->
|
||||||
|
true
|
||||||
|
;
|
||||||
throw(error(tabled_clpbn_predicate_should_never_fail,S))
|
throw(error(tabled_clpbn_predicate_should_never_fail,S))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -179,7 +186,7 @@ clpbn_table_nondet(F/N,M) :-
|
|||||||
NKey =.. [NF|Args],
|
NKey =.. [NF|Args],
|
||||||
asserta(clpbn_table(Key, M, NKey)),
|
asserta(clpbn_table(Key, M, NKey)),
|
||||||
assert(
|
assert(
|
||||||
(M:Key :- writeln(in:Key),
|
(M:Key :- % writeln(in:Key),
|
||||||
b_getval(clpbn_tables, Tab),
|
b_getval(clpbn_tables, Tab),
|
||||||
( b_hash_lookup(Key, Out, Tab) ->
|
( b_hash_lookup(Key, Out, Tab) ->
|
||||||
fail
|
fail
|
||||||
@ -217,6 +224,31 @@ clpbn_tabled_clause(Head, M, Body) :-
|
|||||||
clpbn_table(Head, M, THead),
|
clpbn_table(Head, M, THead),
|
||||||
clause(M:THead, Body).
|
clause(M:THead, Body).
|
||||||
|
|
||||||
|
clpbn_tabled_clause_ref(M:Head, Body, Ref) :- !,
|
||||||
|
clpbn_tabled_clause_ref(Head, M, Body, Ref).
|
||||||
|
clpbn_tabled_clause_ref(Head, Body, Ref) :-
|
||||||
|
prolog_load_context(module, M),
|
||||||
|
clpbn_tabled_clause_ref(Head, M, Body, Ref).
|
||||||
|
|
||||||
|
clpbn_tabled_clause_ref(M:Head, _, Body, Ref) :- !,
|
||||||
|
clpbn_tabled_clause_ref(Head, M, Body, Ref).
|
||||||
|
clpbn_tabled_clause_ref(Head, M, Body, Ref) :-
|
||||||
|
clpbn_table(Head, M, THead),
|
||||||
|
clause(M:THead, Body, Ref).
|
||||||
|
|
||||||
|
|
||||||
|
clpbn_tabled_retract(M:Head) :- !,
|
||||||
|
clpbn_tabled_retract(Head, M).
|
||||||
|
clpbn_tabled_retract(Head) :-
|
||||||
|
prolog_load_context(module, M),
|
||||||
|
clpbn_tabled_retract(Head, M).
|
||||||
|
|
||||||
|
clpbn_tabled_retract(M:Head, _) :- !,
|
||||||
|
clpbn_tabled_retract(Head, M).
|
||||||
|
clpbn_tabled_retract(Head, M) :-
|
||||||
|
clpbn_table(Head, M, THead),
|
||||||
|
retract(M:THead).
|
||||||
|
|
||||||
|
|
||||||
clpbn_tabled_assertz(M:Clause) :- !,
|
clpbn_tabled_assertz(M:Clause) :- !,
|
||||||
clpbn_tabled_assertz2(Clause, M).
|
clpbn_tabled_assertz2(Clause, M).
|
||||||
|
@ -103,6 +103,7 @@ solve_ve([LVs|_], [NVs0|_], Ps) :-
|
|||||||
sort(LV0, LV),
|
sort(LV0, LV),
|
||||||
% construct the graph
|
% construct the graph
|
||||||
find_all_table_deps(Tables0, LV),
|
find_all_table_deps(Tables0, LV),
|
||||||
|
%writeln((Li: LVs: LV)),
|
||||||
process(LVi, LVs, tab(Dist,_,_)),
|
process(LVi, LVs, tab(Dist,_,_)),
|
||||||
%writeln(m:Dist),matrix:matrix_to_list(Dist,LD),writeln(LD),
|
%writeln(m:Dist),matrix:matrix_to_list(Dist,LD),writeln(LD),
|
||||||
%exps(LD,LDE),writeln(LDE),
|
%exps(LD,LDE),writeln(LDE),
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
%
|
%
|
||||||
% Interface the Aleph ILP system to CLP(BN)
|
% Interface the Aleph ILP system to CLP(BN)
|
||||||
%
|
%
|
||||||
% Relies on the Aleph cost function.
|
% Aleph was written by Ashwin Srinivasan
|
||||||
% It assumes Aleph work as usual, but some variables are of type random.
|
%
|
||||||
|
% this code relies on hacked version of Aleph, contact
|
||||||
|
% vsc@dcc.fc.up.pt
|
||||||
|
%
|
||||||
|
% Aleph generates clauses as usual,
|
||||||
|
% but some variables are of special type random.
|
||||||
%
|
%
|
||||||
:- module(clpbn_aleph,
|
:- module(clpbn_aleph,
|
||||||
[init_clpbn_cost/0,
|
[init_clpbn_cost/0,
|
||||||
@ -33,6 +38,7 @@
|
|||||||
clpbn_tabled_asserta/2,
|
clpbn_tabled_asserta/2,
|
||||||
clpbn_tabled_assertz/1,
|
clpbn_tabled_assertz/1,
|
||||||
clpbn_tabled_clause/2,
|
clpbn_tabled_clause/2,
|
||||||
|
clpbn_tabled_clause_ref/3,
|
||||||
clpbn_tabled_number_of_clauses/2,
|
clpbn_tabled_number_of_clauses/2,
|
||||||
clpbn_is_tabled/1,
|
clpbn_is_tabled/1,
|
||||||
clpbn_reset_tables/0,
|
clpbn_reset_tables/0,
|
||||||
@ -42,7 +48,7 @@
|
|||||||
% Tell Aleph not to use default solver during saturation
|
% Tell Aleph not to use default solver during saturation
|
||||||
%
|
%
|
||||||
% all work will be done by EM
|
% all work will be done by EM
|
||||||
:- set_clpbn_flag(solver,none).
|
%:- set_clpbn_flag(solver,none).
|
||||||
|
|
||||||
%
|
%
|
||||||
% This is the Aleph interface
|
% This is the Aleph interface
|
||||||
@ -58,85 +64,50 @@
|
|||||||
:- user:set(skolem_examples, false).
|
:- user:set(skolem_examples, false).
|
||||||
|
|
||||||
% avoid doing CLP(BN) stuff except at start
|
% avoid doing CLP(BN) stuff except at start
|
||||||
:- user:set(sat_start_hook, clpbn_aleph:disable_solver).
|
:- user:set(sat_begin_hook, clpbn_aleph:disable_solver).
|
||||||
:- user:set(sat_stop_hook, clpbn_aleph:enable_solver).
|
:- user:set(sat_end_hook, clpbn_aleph:enable_solver).
|
||||||
|
|
||||||
:- user:set(reduce_start_hook, clpbn_aleph:disable_solver).
|
:- user:set(reduce_begin_hook, clpbn_aleph:disable_solver).
|
||||||
:- user:set(reduce_stop_hook, clpbn_aleph:enable_solver).
|
:- user:set(reduce_end_hook, clpbn_aleph:enable_solver).
|
||||||
|
|
||||||
:- user:set(record_testclause_hook, clpbn_aleph:do_nothing).
|
:- user:set(best_clause_hook, clpbn_aleph:add_new_clause).
|
||||||
|
|
||||||
:- user:set(newbest_hook, clpbn_aleph:store_theory).
|
|
||||||
|
|
||||||
disable_solver(_) :-
|
|
||||||
clpbn_flag(solver, Old, none),
|
|
||||||
nb_setval(old_clpbn_solver, Old).
|
|
||||||
disable_solver(_,_) :-
|
disable_solver(_,_) :-
|
||||||
|
disable_solver.
|
||||||
|
disable_solver(_) :-
|
||||||
|
disable_solver.
|
||||||
|
|
||||||
|
disable_solver :-
|
||||||
clpbn_flag(solver, Old, none),
|
clpbn_flag(solver, Old, none),
|
||||||
nb_setval(old_clpbn_solver, Old).
|
nb_setval(old_clpbn_solver, Old).
|
||||||
|
|
||||||
|
enable_solver(_) :-
|
||||||
|
enable_solver.
|
||||||
|
enable_solver(_,_) :-
|
||||||
|
enable_solver.
|
||||||
|
|
||||||
enable_solver :-
|
enable_solver :-
|
||||||
nb_getval(old_clpbn_solver, Old),
|
nb_getval(old_clpbn_solver, Old),
|
||||||
set_clpbn_flag(solver, Old).
|
set_clpbn_flag(solver, Old).
|
||||||
enable_solver(_,_) :-
|
|
||||||
nb_getval(old_clpbn_solver, Old),
|
|
||||||
set_clpbn_flag(solver, Old).
|
|
||||||
|
|
||||||
do_nothing(_).
|
% step 1: update distributions to better values.
|
||||||
|
add_new_clause(_,(H :- _),_,_) :-
|
||||||
% backup current best theory in DB.
|
(
|
||||||
store_theory(_,_,_) :-
|
clpbn_is_tabled(user:H)
|
||||||
eraseall(best_theory),
|
->
|
||||||
|
update_tabled_theory(H)
|
||||||
|
;
|
||||||
|
update_theory(H)
|
||||||
|
),
|
||||||
fail.
|
fail.
|
||||||
store_theory(_,(H:-_),_) :-
|
% step 2: add clause
|
||||||
clpbn_is_tabled(user:H), !,
|
|
||||||
store_tabled_theory(H).
|
|
||||||
store_theory(_,(H:-_),_) :- !,
|
|
||||||
store_theory(H).
|
|
||||||
store_theory(_,H,_) :-
|
|
||||||
store_theory(H).
|
|
||||||
|
|
||||||
store_tabled_theory(H) :-
|
|
||||||
clpbn_tabled_clause(user:H,B),
|
|
||||||
add_correct_cpt(B,NB),
|
|
||||||
store_cl((H:-NB)),
|
|
||||||
fail.
|
|
||||||
store_tabled_theory(_).
|
|
||||||
|
|
||||||
store_theory(H) :-
|
|
||||||
clause(user:H,B),
|
|
||||||
add_correct_cpt(B,NB),
|
|
||||||
store_cl((H:-NB)),
|
|
||||||
fail.
|
|
||||||
store_theory(_).
|
|
||||||
|
|
||||||
add_correct_cpt((G,B),(G,NB)) :- !,
|
|
||||||
add_correct_cpt(B,NB).
|
|
||||||
add_correct_cpt((clpbn:{V = K with Tab }), ({V = K with NTab})) :-
|
|
||||||
correct_tab(Tab,K,NTab).
|
|
||||||
add_correct_cpt(({V = K with Tab }), ({V = K with NTab})) :-
|
|
||||||
correct_tab(Tab,K,NTab).
|
|
||||||
|
|
||||||
correct_tab(p(Vs,_),K,p(Vs,TDist)) :-
|
|
||||||
get_dist_key(Id, K),
|
|
||||||
get_dist_params(Id, TDist).
|
|
||||||
correct_tab(p(Vs,_,Ps),K,p(Vs,TDist,Ps)) :-
|
|
||||||
get_dist_key(Id, K),
|
|
||||||
get_dist_params(Id, TDist).
|
|
||||||
|
|
||||||
store_cl(Cl) :-
|
|
||||||
recordz(best_theory, Cl, _).
|
|
||||||
|
|
||||||
:- user:set(best_clause_hook, clpbn_aleph:add_new_clause).
|
|
||||||
|
|
||||||
add_new_clause(_,(_ :- true),_,_) :- !.
|
add_new_clause(_,(_ :- true),_,_) :- !.
|
||||||
add_new_clause(_,(H :- B),_,_) :-
|
add_new_clause(_,(H :- B),_,_) :-
|
||||||
%trace,
|
%trace,
|
||||||
% user:db_usage,
|
% user:db_usage,
|
||||||
% user:db_dynamic,
|
% user:db_dynamic,
|
||||||
domain(H, K, V, D),
|
domain(H, K, V, D),
|
||||||
user:cost((H :- B), _, Cost),
|
user:cost((H :- B), _, _Cost),
|
||||||
format(user_error,'Current Cost: ~w.~n', [Cost]),
|
|
||||||
rewrite_body(B, IB, Vs, _, ( !, { V = K with p(D, CPTList, Vs) })),
|
rewrite_body(B, IB, Vs, _, ( !, { V = K with p(D, CPTList, Vs) })),
|
||||||
% need to remember which CPT we want
|
% need to remember which CPT we want
|
||||||
get_dist_key(Id, K),
|
get_dist_key(Id, K),
|
||||||
@ -157,8 +128,38 @@ add_new_clause(_,(H :- B),_,_) :-
|
|||||||
).
|
).
|
||||||
|
|
||||||
|
|
||||||
|
update_tabled_theory(H) :-
|
||||||
|
clpbn_tabled_clause_ref(user:H,B,Ref),
|
||||||
|
add_correct_cpt(B,NB),
|
||||||
|
erase(Ref),
|
||||||
|
clpbn_tabled_assertz((user:(H:-NB))),
|
||||||
|
fail.
|
||||||
|
update_tabled_theory(_).
|
||||||
|
|
||||||
|
update_theory(H) :-
|
||||||
|
clause(user:H,B,Ref),
|
||||||
|
add_correct_cpt(B,NB),
|
||||||
|
erase(Ref),
|
||||||
|
assert((user:H:-NB)),
|
||||||
|
fail.
|
||||||
|
update_theory(_).
|
||||||
|
|
||||||
|
add_correct_cpt((G,B),(G,NB)) :-
|
||||||
|
add_correct_cpt(B,NB).
|
||||||
|
add_correct_cpt((clpbn:{V = K with Tab }), ({V = K with NTab})) :-
|
||||||
|
correct_tab(Tab,K,NTab).
|
||||||
|
add_correct_cpt(({V = K with Tab }), ({V = K with NTab})) :-
|
||||||
|
correct_tab(Tab,K,NTab).
|
||||||
|
|
||||||
|
correct_tab(p(Vs,_),K,p(Vs,TDist)) :-
|
||||||
|
get_dist_key(Id, K),
|
||||||
|
get_dist_params(Id, TDist).
|
||||||
|
correct_tab(p(Vs,_,Ps),K,p(Vs,TDist,Ps)) :-
|
||||||
|
get_dist_key(Id, K),
|
||||||
|
get_dist_params(Id, TDist).
|
||||||
|
|
||||||
% user-defined cost function, Aleph knows about this (and only about this).
|
% user-defined cost function, Aleph knows about this (and only about this).
|
||||||
user:cost((H :- B),Inf,Score) :- !,
|
user:cost((H :- B),Inf,Score) :-
|
||||||
domain(H, K, V, D),
|
domain(H, K, V, D),
|
||||||
check_info(Inf),
|
check_info(Inf),
|
||||||
rewrite_body(B, IB, Vs, Ds, ( !, { V = K with p(D, CPTList, Vs) })),
|
rewrite_body(B, IB, Vs, Ds, ( !, { V = K with p(D, CPTList, Vs) })),
|
||||||
|
@ -5,13 +5,15 @@
|
|||||||
:- module(clpbn_em, [em/5]).
|
:- module(clpbn_em, [em/5]).
|
||||||
|
|
||||||
:- use_module(library(lists),
|
:- use_module(library(lists),
|
||||||
[append/3]).
|
[append/3,
|
||||||
|
delete/3]).
|
||||||
|
|
||||||
:- use_module(library(clpbn),
|
:- use_module(library(clpbn),
|
||||||
[clpbn_init_graph/1,
|
[clpbn_init_graph/1,
|
||||||
clpbn_init_solver/5,
|
clpbn_init_solver/5,
|
||||||
clpbn_run_solver/4,
|
clpbn_run_solver/4,
|
||||||
clpbn_finalize_solver/1,
|
clpbn_finalize_solver/1,
|
||||||
|
conditional_probability/3,
|
||||||
clpbn_flag/2]).
|
clpbn_flag/2]).
|
||||||
|
|
||||||
:- use_module(library('clpbn/dists'),
|
:- use_module(library('clpbn/dists'),
|
||||||
@ -203,8 +205,7 @@ compute_parameters([], [], _, Lik, Lik, _).
|
|||||||
compute_parameters([Id-Samples|Dists], [Id-NewTable|Tables], MDistTable, Lik0, Lik, LPs:MargVars) :-
|
compute_parameters([Id-Samples|Dists], [Id-NewTable|Tables], MDistTable, Lik0, Lik, LPs:MargVars) :-
|
||||||
empty_dist(Id, Table0),
|
empty_dist(Id, Table0),
|
||||||
add_samples(Samples, Table0, MDistTable),
|
add_samples(Samples, Table0, MDistTable),
|
||||||
%matrix_to_list(Table0,Mat),
|
%matrix_to_list(Table0,Mat), lists:sumlist(Mat, Sum), format(user_error, 'FINAL ~d ~w ~w~n', [Id,Sum,Mat]),
|
||||||
%format(user_error, 'FINAL ~d ~w~n', [Id,Mat]),
|
|
||||||
soften_sample(Table0, SoftenedTable),
|
soften_sample(Table0, SoftenedTable),
|
||||||
% matrix:matrix_sum(Table0,TotM),
|
% matrix:matrix_sum(Table0,TotM),
|
||||||
normalise_counts(SoftenedTable, NewTable),
|
normalise_counts(SoftenedTable, NewTable),
|
||||||
@ -240,3 +241,4 @@ backtrack_run_all([Item|_], Mod) :-
|
|||||||
backtrack_run_all([_|Items], Mod) :-
|
backtrack_run_all([_|Items], Mod) :-
|
||||||
backtrack_run_all(Items, Mod).
|
backtrack_run_all(Items, Mod).
|
||||||
backtrack_run_all([], _).
|
backtrack_run_all([], _).
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ CFLAGS=$(COFLAGS) $(CWFLAGS) $(CMFLAGS) $(CIFLAGS) $(PKGCFLAGS) @DEFS@
|
|||||||
LDSOFLAGS=@LDFLAGS@ @EXTRA_LIBS_FOR_SWIDLLS@
|
LDSOFLAGS=@LDFLAGS@ @EXTRA_LIBS_FOR_SWIDLLS@
|
||||||
LDFLAGS=$(PKGLDFLAGS)
|
LDFLAGS=$(PKGLDFLAGS)
|
||||||
|
|
||||||
MKINDEX=$(PL) -f none -g make -t halt
|
MKINDEX=(cd $(srcdir) ; $(PL) -f none -g make -t halt)
|
||||||
|
|
||||||
.txt.tex:
|
.txt.tex:
|
||||||
swipl -f script.pl -g "doc_latex('$*.txt','$*.tex',[stand_alone(false)]),halt" -t "halt(1)"
|
swipl -f script.pl -g "doc_latex('$*.txt','$*.tex',[stand_alone(false)]),halt" -t "halt(1)"
|
||||||
|
@ -2099,6 +2099,398 @@ problog_low(_, _, LP, Status) :-
|
|||||||
(problog_flag(retain_tables, true) -> retain_tabling; true),
|
(problog_flag(retain_tables, true) -> retain_tabling; true),
|
||||||
clear_tabling.
|
clear_tabling.
|
||||||
|
|
||||||
|
:- ensure_loaded(library(tries)).
|
||||||
|
:- ensure_loaded(library(rbtrees)).
|
||||||
|
:- ensure_loaded(library(readutil)).
|
||||||
|
:- ensure_loaded(library(lineutils)).
|
||||||
|
problog_cnf(Goal, _) :-
|
||||||
|
init_problog_low(0.0),
|
||||||
|
problog_control(off, up),
|
||||||
|
timer_start(sld_time),
|
||||||
|
problog_call(Goal),
|
||||||
|
add_solution,
|
||||||
|
fail.
|
||||||
|
problog_cnf(_,Prob) :-
|
||||||
|
timer_stop(sld_time,SLD_Time),
|
||||||
|
problog_var_set(sld_time, SLD_Time),
|
||||||
|
nb_getval(problog_completed_proofs, Trie_Completed_Proofs),
|
||||||
|
trie_to_cnf(Trie_Completed_Proofs, CNF, RB),
|
||||||
|
% randomize_cnf_varids(CNF, RandomVNameCNF),
|
||||||
|
% invert_cnf_varids(CNF, RandomVNameCNF),
|
||||||
|
CNF = RandomVNameCNF,
|
||||||
|
cnf_to_dimacs(RandomVNameCNF, _File),
|
||||||
|
% should generate a tmp file.
|
||||||
|
unix(system('./c2d_linux -in dimacs')),
|
||||||
|
nnf_to_probability(_NNFFile, RB, CompProb),
|
||||||
|
Prob is 1-CompProb,
|
||||||
|
delete_ptree(Trie_Completed_Proofs),
|
||||||
|
(problog_flag(retain_tables, true) -> retain_tabling; true),
|
||||||
|
clear_tabling.
|
||||||
|
|
||||||
|
problog_wcnf(Goal, _) :-
|
||||||
|
init_problog_low(0.0),
|
||||||
|
problog_control(off, up),
|
||||||
|
timer_start(sld_time),
|
||||||
|
problog_call(Goal),
|
||||||
|
add_solution,
|
||||||
|
fail.
|
||||||
|
problog_wcnf(_,Prob) :-
|
||||||
|
timer_stop(sld_time,SLD_Time),
|
||||||
|
problog_var_set(sld_time, SLD_Time),
|
||||||
|
nb_getval(problog_completed_proofs, Trie_Completed_Proofs),
|
||||||
|
trie_to_cnf(Trie_Completed_Proofs, CNF, RB),
|
||||||
|
% randomize_cnf_varids(CNF, RandomVNameCNF),
|
||||||
|
% invert_cnf_varids(CNF, RandomVNameCNF),
|
||||||
|
CNF = RandomVNameCNF,
|
||||||
|
cnf_to_wdimacs(RandomVNameCNF, RB, _File),
|
||||||
|
% should generate a tmp file.
|
||||||
|
unix(system('./c2d_linux -in dimacs')),
|
||||||
|
nnf_to_probability(_NNFFile, RB, CompProb),
|
||||||
|
Prob is 1-CompProb,
|
||||||
|
delete_ptree(Trie_Completed_Proofs),
|
||||||
|
(problog_flag(retain_tables, true) -> retain_tabling; true),
|
||||||
|
clear_tabling.
|
||||||
|
|
||||||
|
trie_to_cnf(Trie, CNF, RB) :-
|
||||||
|
trie_traverse_first(Trie, RefFirst),
|
||||||
|
rb_new(RB0),
|
||||||
|
nb_setval(cnf_nodes, 0),
|
||||||
|
trie_to_list_of_numbers(Trie, RB0, RefFirst, CNF, RB).
|
||||||
|
|
||||||
|
trie_to_list_of_numbers(Trie, RB0, CurrentRef, Proof.Proofs, RB) :-
|
||||||
|
trie_get_entry(CurrentRef, Entry),
|
||||||
|
convert_trie_entry_to_numbers(Entry, RB0, Proof, RBI),
|
||||||
|
continue_processing_trie(Trie, RBI, CurrentRef, Proofs, RB).
|
||||||
|
|
||||||
|
continue_processing_trie(Trie, RB0, CurrentRef, Proofs, RB) :-
|
||||||
|
trie_traverse_next(CurrentRef, NextRef), !,
|
||||||
|
trie_to_list_of_numbers(Trie, RB0, NextRef, Proofs, RB).
|
||||||
|
continue_processing_trie(_, RB, _CurrentRef, [], RB).
|
||||||
|
|
||||||
|
convert_trie_entry_to_numbers([], RB, [], RB).
|
||||||
|
convert_trie_entry_to_numbers(not(Val).Entry, RB0, Numb.Proof, RB) :- !,
|
||||||
|
convert_goal_to_number(Val, RB0, Numb, RBI),
|
||||||
|
convert_trie_entry_to_numbers(Entry, RBI, Proof, RB).
|
||||||
|
convert_trie_entry_to_numbers(Val.Entry, RB0, NegNumb.Proof, RB) :- !,
|
||||||
|
convert_goal_to_number(Val, RB0, Numb, RBI),
|
||||||
|
NegNumb is -Numb,
|
||||||
|
convert_trie_entry_to_numbers(Entry, RBI, Proof, RB).
|
||||||
|
|
||||||
|
convert_goal_to_number(Val, RB0, Numb, RBI) :-
|
||||||
|
rb_lookup(Val, Numb, RB0), !,
|
||||||
|
RB0 = RBI.
|
||||||
|
convert_goal_to_number(Val, RB0, I, RBI) :-
|
||||||
|
nb_getval(cnf_nodes, I0),
|
||||||
|
I is I0+1,
|
||||||
|
nb_setval(cnf_nodes, I),
|
||||||
|
rb_insert(RB0, Val, I, RBI).
|
||||||
|
|
||||||
|
invert_cnf_varids(CNF, InvVNameCNF) :-
|
||||||
|
nb_getval(cnf_nodes,Nodes),
|
||||||
|
invert_cnf_varids(CNF, Nodes, InvVNameCNF, []).
|
||||||
|
|
||||||
|
invert_cnf_varids([], _) --> [].
|
||||||
|
invert_cnf_varids(C.CNF, Nodes) --> [NC],
|
||||||
|
{ invert_c_varids(C, Nodes, NC, []) },
|
||||||
|
invert_cnf_varids(CNF, Nodes).
|
||||||
|
|
||||||
|
invert_c_varids([], _Nodes) --> [].
|
||||||
|
invert_c_varids(N.CNF, Nodes) -->
|
||||||
|
[NN],
|
||||||
|
{ inv_node(N,Nodes,NN) },
|
||||||
|
invert_c_varids(CNF, Nodes).
|
||||||
|
|
||||||
|
inv_node(N,Nodes,NN) :-
|
||||||
|
( N > 0 -> NN is (Nodes-N)+1 ; NN is -(Nodes+N+1) ).
|
||||||
|
|
||||||
|
randomize_cnf_varids(CNF, RandomVNameCNF) :-
|
||||||
|
nb_getval(cnf_nodes,Nodes),
|
||||||
|
generate_numbers(Nodes, Numbers),
|
||||||
|
randomize_list(Numbers, RandomNumbers).
|
||||||
|
|
||||||
|
cnf_to_wdimacs(CNF, RB, File) :-
|
||||||
|
File = dimacs,
|
||||||
|
open(dimacs,write,Stream),
|
||||||
|
length(CNF,M),
|
||||||
|
nb_getval(cnf_nodes,N),
|
||||||
|
format(Stream,'p cnf ~d ~d~n',[N,M]),
|
||||||
|
output_probs(Stream, RB),
|
||||||
|
cnf_lines_to_dimacs(CNF, Stream),
|
||||||
|
close(Stream).
|
||||||
|
|
||||||
|
output_probs(Stream, RB) :-
|
||||||
|
rb_in(K, V, RB),
|
||||||
|
dump_weight(Stream, K, V),
|
||||||
|
fail.
|
||||||
|
output_probs(_Stream, _RB).
|
||||||
|
|
||||||
|
dump_weight(Stream, K, V) :-
|
||||||
|
get_fact_probability(K,ProbFact),
|
||||||
|
format(Stream,'w ~d ~f~n',[V,ProbFact]).
|
||||||
|
|
||||||
|
cnf_to_dimacs(CNF, File) :-
|
||||||
|
File = dimacs,
|
||||||
|
open(dimacs,write,Stream),
|
||||||
|
length(CNF,M),
|
||||||
|
nb_getval(cnf_nodes,N),
|
||||||
|
format(Stream,'p cnf ~d ~d~n',[N,M]),
|
||||||
|
cnf_lines_to_dimacs(CNF, Stream),
|
||||||
|
close(Stream).
|
||||||
|
|
||||||
|
cnf_lines_to_dimacs([], _Stream).
|
||||||
|
cnf_lines_to_dimacs([Line|CNF], Stream) :-
|
||||||
|
cnf_line_to_dimacs(Line,Stream),
|
||||||
|
cnf_lines_to_dimacs(CNF, Stream).
|
||||||
|
|
||||||
|
cnf_line_to_dimacs([],Stream) :-
|
||||||
|
format(Stream,'0~n',[]).
|
||||||
|
cnf_line_to_dimacs([L|Line],Stream) :-
|
||||||
|
format(Stream,'~w ',[L]),
|
||||||
|
cnf_line_to_dimacs(Line,Stream).
|
||||||
|
|
||||||
|
nnf_to_probability(File, RBTree, Result) :-
|
||||||
|
File = 'dimacs.nnf',
|
||||||
|
open(File, read, Stream),
|
||||||
|
process_nnf(Stream, RBTree, Result),
|
||||||
|
close(Stream).
|
||||||
|
|
||||||
|
process_nnf(Stream, RevRBTree, Result) :-
|
||||||
|
rb_visit(RevRBTree, ListOfPairs),
|
||||||
|
swap_key_values(ListOfPairs, SwappedList),
|
||||||
|
list_to_rbtree(SwappedList, RBTree),
|
||||||
|
read_line_to_codes(Stream, Header),
|
||||||
|
split(Header, ["nnf",VS,_ES,_NS]),
|
||||||
|
number_codes(V, VS),
|
||||||
|
%trace,
|
||||||
|
call(functor(TempResults, nnf, V)),
|
||||||
|
process_nnf_lines(Stream, RBTree, 1, TempResults),
|
||||||
|
arg(V, TempResults, Result).
|
||||||
|
|
||||||
|
swap_key_values([], []).
|
||||||
|
swap_key_values((K-V).ListOfPairs, (V-K).SwappedList) :-
|
||||||
|
swap_key_values(ListOfPairs, SwappedList).
|
||||||
|
|
||||||
|
|
||||||
|
process_nnf_lines(Stream, RBTree, LineNumber, TempResults) :-
|
||||||
|
read_line_to_codes(Stream, Codes),
|
||||||
|
( Codes = end_of_file -> true ;
|
||||||
|
% (LineNumber > 1 -> N is LineNumber-1, arg(N,TempResults,P), format("~w ",[P]);true),
|
||||||
|
% format("~s~n",[Codes]),
|
||||||
|
process_nnf_line(RBTree, LineNumber, TempResults, Codes, []),
|
||||||
|
NewLine is LineNumber+1,
|
||||||
|
process_nnf_lines(Stream, RBTree, NewLine, TempResults)
|
||||||
|
).
|
||||||
|
|
||||||
|
process_nnf_line(RBTree, Line, TempResults) --> "L ",
|
||||||
|
nnf_leaf(RBTree, Line, TempResults).
|
||||||
|
process_nnf_line(_RBTree, Line, TempResults) --> "A ",
|
||||||
|
nnf_and_node(Line, TempResults).
|
||||||
|
process_nnf_line(_RBTree, Line, TempResults) --> "O ",
|
||||||
|
nnf_or_node(Line, TempResults).
|
||||||
|
|
||||||
|
nnf_leaf(RBTree, LineNumber, TempResults, Codes, []) :-
|
||||||
|
number_codes(Number, Codes),
|
||||||
|
Abs is abs(Number),
|
||||||
|
rb_lookup(Abs, Node, RBTree),
|
||||||
|
% get_fact_probability(Node, ProbFact),
|
||||||
|
% (Number < 0 -> Prob is 1-ProbFact ; Prob = ProbFact),
|
||||||
|
(get_fact_probability(Node,ProbFact) -> (Number < 0 -> Prob is 1-ProbFact ; Prob = ProbFact) ; Prob = special),
|
||||||
|
arg(LineNumber, TempResults, Prob).
|
||||||
|
|
||||||
|
nnf_and_node(LineNumber, TempResults, Codes, []) :-
|
||||||
|
split(Codes, [_|NumberAsStrings]),
|
||||||
|
multiply_nodes(NumberAsStrings, 1.0, TempResults, Product),
|
||||||
|
arg(LineNumber, TempResults, Product).
|
||||||
|
|
||||||
|
multiply_nodes([], Product, _, Product).
|
||||||
|
multiply_nodes(NumberAsString.NumberAsStrings, Product0, TempResults, Product) :-
|
||||||
|
number_codes(Pos, NumberAsString),
|
||||||
|
Pos1 is Pos+1,
|
||||||
|
arg(Pos1, TempResults, P),
|
||||||
|
( P == special -> ProductI=Product0; ProductI is P*Product0 ),
|
||||||
|
multiply_nodes(NumberAsStrings, ProductI, TempResults, Product).
|
||||||
|
|
||||||
|
nnf_or_node(LineNumber, TempResults, Codes, []) :-
|
||||||
|
split(Codes, [_,_|NumberAsStrings]),
|
||||||
|
add_nodes(NumberAsStrings, 0.0, TempResults, Product),
|
||||||
|
arg(LineNumber, TempResults, Product).
|
||||||
|
|
||||||
|
add_nodes([], Product, _, Product).
|
||||||
|
add_nodes(NumberAsString.NumberAsStrings, Product0, TempResults, Product) :-
|
||||||
|
number_codes(Pos, NumberAsString),
|
||||||
|
Pos1 is Pos+1,
|
||||||
|
arg(Pos1, TempResults, P),
|
||||||
|
( P == special -> ProductI=Product0; ProductI is P+Product0 ),
|
||||||
|
add_nodes(NumberAsStrings, ProductI, TempResults, Product).
|
||||||
|
|
||||||
|
problog_cnf_positive(Goal, _) :-
|
||||||
|
init_problog_low(0.0),
|
||||||
|
problog_control(off, up),
|
||||||
|
timer_start(sld_time),
|
||||||
|
problog_call(Goal),
|
||||||
|
add_solution,
|
||||||
|
fail.
|
||||||
|
problog_cnf_positive(_,Prob) :-
|
||||||
|
timer_stop(sld_time,SLD_Time),
|
||||||
|
problog_var_set(sld_time, SLD_Time),
|
||||||
|
nb_getval(problog_completed_proofs, Trie_Completed_Proofs),
|
||||||
|
% trie_to_cnf(Trie_Completed_Proofs, CNF, RB),
|
||||||
|
% cnf_to_dimacs(CNF, _File),
|
||||||
|
trie_to_dimacs(Trie_Completed_Proofs, RB, _File),
|
||||||
|
unix(system('./c2d_linux -in dimacs')),
|
||||||
|
% execute c2d at this point, but we're lazy
|
||||||
|
nnf_to_probability(_NNFFile, RB, Prob),
|
||||||
|
delete_ptree(Trie_Completed_Proofs),
|
||||||
|
(problog_flag(retain_tables, true) -> retain_tabling; true),
|
||||||
|
clear_tabling.
|
||||||
|
|
||||||
|
trie_to_dimacs(Trie_Completed_Proofs, RB, File) :-
|
||||||
|
problog_flag(db_trie_opt_lvl, OptimizationLevel),
|
||||||
|
trie_to_depth_breadth_trie(Trie_Completed_Proofs, DBTrie, LL, OptimizationLevel),
|
||||||
|
dbtrie_to_cnf(DBTrie, LL, RB, CNF),
|
||||||
|
File = dimacs,
|
||||||
|
open(dimacs,write,Stream),
|
||||||
|
length(CNF,M),
|
||||||
|
nb_getval(cnf_nodes,N),
|
||||||
|
format(Stream,'p cnf ~d ~d~n',[N,M]),
|
||||||
|
cnf_lines_to_dimacs(CNF, Stream),
|
||||||
|
close(Stream).
|
||||||
|
|
||||||
|
|
||||||
|
dbtrie_to_cnf(DBTrie, LL, RB, CNF) :-
|
||||||
|
% tricky way to find the number of intermediate nodes.
|
||||||
|
(atomic_concat('L', _InterStep, LL) ->
|
||||||
|
% cleanup
|
||||||
|
retractall(deref(_,_)),
|
||||||
|
(problog_flag(deref_terms, true) ->
|
||||||
|
asserta(deref(LL,no)),
|
||||||
|
mark_for_deref(DBTrie),
|
||||||
|
V = 3
|
||||||
|
;
|
||||||
|
V = 1
|
||||||
|
),
|
||||||
|
% do the real work
|
||||||
|
bdd_defs_to_cnf(DBTrie, CNF, LL, RB)
|
||||||
|
;
|
||||||
|
% cases true, false, single literal
|
||||||
|
( LL == true -> CNF = [[1,-1]]
|
||||||
|
;
|
||||||
|
LL == false -> CNF = [[1],[-1]]
|
||||||
|
;
|
||||||
|
convert_goal_to_number(LL, RB, NN, _RBI),
|
||||||
|
CNF = [[NN]]
|
||||||
|
)
|
||||||
|
).
|
||||||
|
|
||||||
|
bdd_defs_to_cnf(DBTrie, [[NN]|CNF], LL, RB) :- fail,
|
||||||
|
findall(Node, in_trie(DBTrie, Node), Nodes0),
|
||||||
|
% reverse(Nodes0, Nodes),
|
||||||
|
% depth_first(Nodes0, LL, Nodes),
|
||||||
|
Nodes0 = Nodes,
|
||||||
|
rb_new(RB0),
|
||||||
|
nb_setval(cnf_nodes, 0),
|
||||||
|
convert_goal_to_number(LL, RB0, NN, RB1),
|
||||||
|
xnodes_to_cnf(Nodes, RB1, RB, CNF, []).
|
||||||
|
bdd_defs_to_cnf(Trie, [[NN]|CNF], LL, RB) :-
|
||||||
|
trie_traverse_first(Trie, RefFirst),
|
||||||
|
rb_new(RB0),
|
||||||
|
nb_setval(cnf_nodes, 0),
|
||||||
|
convert_goal_to_number(LL, RB0, NN, RB1),
|
||||||
|
bdd_defs_to_list_of_numbers(Trie, RB1, RefFirst, [], CNF, RB).
|
||||||
|
|
||||||
|
|
||||||
|
depth_first(Nodes0, LL, Nodes) :-
|
||||||
|
rb_new(RB0),
|
||||||
|
insert_all(Nodes0, RB0, RB),
|
||||||
|
pick_nodes(LL, RB, _, Nodes, []).
|
||||||
|
|
||||||
|
insert_all([], RB, RB).
|
||||||
|
insert_all(Node.Nodes0, RB0, RB) :-
|
||||||
|
arg(2, Node, Key),
|
||||||
|
rb_insert(RB0, Key, Node, RBI),
|
||||||
|
insert_all(Nodes0, RBI, RB).
|
||||||
|
|
||||||
|
pick_nodes(Key, RB0, RBF) -->
|
||||||
|
{ rb_delete(RB0, Key, Node, RBI) },
|
||||||
|
!,
|
||||||
|
[Node],
|
||||||
|
{ arg(1, Node, Children) },
|
||||||
|
pick_recursively(Children, RBI, RBF).
|
||||||
|
pick_nodes(_, RB, RB) --> [].
|
||||||
|
|
||||||
|
pick_recursively([], RB, RB) --> [].
|
||||||
|
pick_recursively(Key.Keys, RB0, RBF) -->
|
||||||
|
pick_nodes(Key, RB0, RBI),
|
||||||
|
pick_recursively(Keys, RBI, RBF).
|
||||||
|
|
||||||
|
in_trie(Trie, Entry) :-
|
||||||
|
trie_traverse(Trie, Ref),
|
||||||
|
trie_get_entry(Ref, Entry).
|
||||||
|
|
||||||
|
xnodes_to_cnf([], RB, RB) --> [].
|
||||||
|
xnodes_to_cnf(Node.Nodes, RB0, RB) -->
|
||||||
|
xnode_to_cnf(Node, RB0, RBI),
|
||||||
|
xnodes_to_cnf(Nodes, RBI, RB).
|
||||||
|
|
||||||
|
xnode_to_cnf(Node, RB0, RBI, CNF, PartialCNF) :-
|
||||||
|
convert_dbtrie_entry_to_numbers(Node, RB0, PartialCNF, CNF, RBI).
|
||||||
|
|
||||||
|
bdd_defs_to_list_of_numbers(Trie, RB0, CurrentRef, PartialCNF, FinalCNF, RB) :-
|
||||||
|
trie_get_entry(CurrentRef, Entry),
|
||||||
|
writeln(Entry),
|
||||||
|
convert_dbtrie_entry_to_numbers(Entry, RB0, PartialCNF, NextCNF, RBI),
|
||||||
|
continue_processing_dbtrie(Trie, RBI, CurrentRef, NextCNF, FinalCNF, RB).
|
||||||
|
|
||||||
|
continue_processing_dbtrie(Trie, RB0, CurrentRef, PartialCNF, FinalCNF, RB) :-
|
||||||
|
trie_traverse_next(CurrentRef, NextRef), !,
|
||||||
|
bdd_defs_to_list_of_numbers(Trie, RB0, NextRef, PartialCNF, FinalCNF, RB).
|
||||||
|
continue_processing_dbtrie(_, RB, _CurrentRef, CNF, CNF, RB).
|
||||||
|
|
||||||
|
convert_dbtrie_entry_to_numbers(depth(List,Name), RB0, PartialCNF, CNF, RBI) :-
|
||||||
|
convert_trie_entry_to_numbers_positive(List, RB0, NumList, NextRB),
|
||||||
|
convert_goal_to_number(Name, NextRB, NumName, RBI),
|
||||||
|
add_conjunction_to_cnf(NumList, NumName, PartialCNF, CNF).%,format(user_error,'conj ~q gives ~q~n',[NumList-NumName, CNF]).
|
||||||
|
convert_dbtrie_entry_to_numbers(breadth(List,Name), RB0, PartialCNF, CNF, RBI) :-
|
||||||
|
convert_trie_entry_to_numbers_positive(List, RB0, NumList, NextRB),
|
||||||
|
convert_goal_to_number(Name, NextRB, NumName, RBI),
|
||||||
|
add_disjunction_to_cnf(NumList, NumName, PartialCNF, CNF).%,format(user_error,'disj ~q gives ~q~n',[NumList-NumName, CNF]).
|
||||||
|
|
||||||
|
convert_trie_entry_to_numbers_positive([], RB, [], RB).
|
||||||
|
convert_trie_entry_to_numbers_positive(not(Val).Entry, RB0, (-Numb).Proof, RB) :- !,
|
||||||
|
convert_goal_to_number(Val, RB0, Numb, RBI),
|
||||||
|
convert_trie_entry_to_numbers_positive(Entry, RBI, Proof, RB).
|
||||||
|
convert_trie_entry_to_numbers_positive(Val.Entry, RB0, Numb.Proof, RB) :- !,
|
||||||
|
convert_goal_to_number(Val, RB0, Numb, RBI),
|
||||||
|
convert_trie_entry_to_numbers_positive(Entry, RBI, Proof, RB).
|
||||||
|
|
||||||
|
add_conjunction_to_cnf(NumList, NumName, PartialCNF, CNF) :-
|
||||||
|
neg_numbers(NumList,NegList),
|
||||||
|
add_conj_to_cnf(NumList, NumName, [[NumName|NegList]|PartialCNF], CNF).
|
||||||
|
|
||||||
|
add_conj_to_cnf([],_,CNF,CNF).
|
||||||
|
add_conj_to_cnf([Num|List],NumName,CNF0,CNF) :-
|
||||||
|
NegNumName is -NumName,
|
||||||
|
add_conj_to_cnf(List,NumName,[[NegNumName,Num]|CNF0],CNF).
|
||||||
|
|
||||||
|
add_disjunction_to_cnf(NumList, NumName, PartialCNF, CNF) :-
|
||||||
|
NegNumName is -NumName,
|
||||||
|
add_disj_to_cnf(NumList, NumName, [[NegNumName|NumList]|PartialCNF], CNF).
|
||||||
|
|
||||||
|
add_disj_to_cnf([],_,CNF,CNF).
|
||||||
|
add_disj_to_cnf([Num|List],NumName,CNF0,CNF) :-
|
||||||
|
neg_num(Num,NegNum),
|
||||||
|
add_disj_to_cnf(List,NumName,[[NumName,NegNum]|CNF0],CNF).
|
||||||
|
|
||||||
|
neg_num(Y,X) :- X is -Y.
|
||||||
|
|
||||||
|
neg_numbers([],[]).
|
||||||
|
neg_numbers([Y|List],[X|ListN]) :-
|
||||||
|
neg_num(Y,X),
|
||||||
|
neg_numbers(List,ListN).
|
||||||
|
|
||||||
|
|
||||||
|
%%%%
|
||||||
|
|
||||||
init_problog_low(Threshold) :-
|
init_problog_low(Threshold) :-
|
||||||
init_ptree(Trie_Completed_Proofs),
|
init_ptree(Trie_Completed_Proofs),
|
||||||
nb_setval(problog_completed_proofs, Trie_Completed_Proofs),
|
nb_setval(problog_completed_proofs, Trie_Completed_Proofs),
|
||||||
|
@ -239,6 +239,8 @@
|
|||||||
:- dynamic(query_all_scripts/2).
|
:- dynamic(query_all_scripts/2).
|
||||||
:- dynamic(last_llh/1).
|
:- dynamic(last_llh/1).
|
||||||
|
|
||||||
|
:- dynamic(user:myclause/2).
|
||||||
|
|
||||||
:- discontiguous(user:myclause/1).
|
:- discontiguous(user:myclause/1).
|
||||||
:- discontiguous(user:myclause/2).
|
:- discontiguous(user:myclause/2).
|
||||||
:- discontiguous(user:known/3).
|
:- discontiguous(user:known/3).
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit f218eaacc9ef3922829ff4a8c5cd64cca9c19dc7
|
Subproject commit 27b398187116aaa5c6b687d1abe79b0a270381bb
|
@ -1 +1 @@
|
|||||||
Subproject commit f0e208de69f5303648fe1d035e2bfa164411d42d
|
Subproject commit e6b682d909a4d63ee876af70c738d900449625fb
|
@ -127,10 +127,12 @@ bool bpx_is_identical(TERM t1, TERM t2)
|
|||||||
|
|
||||||
TERM bpx_get_call_arg(BPLONG i, BPLONG arity)
|
TERM bpx_get_call_arg(BPLONG i, BPLONG arity)
|
||||||
{
|
{
|
||||||
if (i < 1 || i > arity) {
|
CACHE_REGS
|
||||||
bpx_raise("index out of range");
|
|
||||||
}
|
if (i < 1 || i > arity) {
|
||||||
return ARG(i, arity);
|
bpx_raise("index out of range");
|
||||||
|
}
|
||||||
|
return ARG(i, arity);
|
||||||
}
|
}
|
||||||
|
|
||||||
BPLONG bpx_get_integer(TERM t)
|
BPLONG bpx_get_integer(TERM t)
|
||||||
@ -245,6 +247,7 @@ TERM bpx_get_cdr(TERM t)
|
|||||||
|
|
||||||
TERM bpx_build_var(void)
|
TERM bpx_build_var(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM term;
|
TERM term;
|
||||||
|
|
||||||
REQUIRE_HEAP(1);
|
REQUIRE_HEAP(1);
|
||||||
@ -260,6 +263,7 @@ TERM bpx_build_integer(BPLONG n)
|
|||||||
|
|
||||||
TERM bpx_build_float(double x)
|
TERM bpx_build_float(double x)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
REQUIRE_HEAP(4);
|
REQUIRE_HEAP(4);
|
||||||
return encodefloat1(x);
|
return encodefloat1(x);
|
||||||
}
|
}
|
||||||
@ -274,6 +278,7 @@ TERM bpx_build_atom(const char *name)
|
|||||||
|
|
||||||
TERM bpx_build_list(void)
|
TERM bpx_build_list(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM term;
|
TERM term;
|
||||||
|
|
||||||
REQUIRE_HEAP(2);
|
REQUIRE_HEAP(2);
|
||||||
@ -290,6 +295,7 @@ TERM bpx_build_nil(void)
|
|||||||
|
|
||||||
TERM bpx_build_structure(const char *name, BPLONG arity)
|
TERM bpx_build_structure(const char *name, BPLONG arity)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
SYM_REC_PTR sym;
|
SYM_REC_PTR sym;
|
||||||
TERM term;
|
TERM term;
|
||||||
|
|
||||||
@ -314,6 +320,7 @@ bool bpx_unify(TERM t1, TERM t2)
|
|||||||
|
|
||||||
TERM bpx_string_2_term(const char *s)
|
TERM bpx_string_2_term(const char *s)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM term, vars;
|
TERM term, vars;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
@ -80,6 +80,27 @@ long int XTAG(TERM t)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern inline TERM ADDTAG(void * t,int tag);
|
||||||
|
extern inline int is_UNIFIABLE(TERM t1, TERM t2);
|
||||||
|
extern inline int is_IDENTICAL(TERM t1, TERM t2);
|
||||||
|
extern inline char *bp_term_2_string(TERM t);
|
||||||
|
extern inline int bp_string_2_term(const char *s, TERM to, TERM tv);
|
||||||
|
extern inline SYM_REC_PTR insert(const char *name, int size, int arity);
|
||||||
|
extern inline int compare(TERM t1, TERM t2);
|
||||||
|
extern inline void write_term(TERM t);
|
||||||
|
extern inline void numberVarTermOpt(TERM t);
|
||||||
|
extern inline TERM unnumberVarTerm(TERM t, BPLONG_PTR pt1, BPLONG_PTR pt2);
|
||||||
|
extern inline int unifyNumberedTerms(TERM t1, TERM t2);
|
||||||
|
|
||||||
|
int bpx_call_term(TERM t);
|
||||||
|
int bpx_call_string(const char *s);
|
||||||
|
int bpx_call_string(const char *s);
|
||||||
|
int bpx_mount_query_string(const char *s);
|
||||||
|
int bpx_next_solution(void);
|
||||||
|
void bpx_write(TERM t);
|
||||||
|
int bpx_printf(const char *fmt, ...);
|
||||||
|
|
||||||
|
|
||||||
extern inline TERM ADDTAG(void * t,int tag) {
|
extern inline TERM ADDTAG(void * t,int tag) {
|
||||||
if (tag == ATM)
|
if (tag == ATM)
|
||||||
return MkAtomTerm((Atom)t);
|
return MkAtomTerm((Atom)t);
|
||||||
@ -210,13 +231,13 @@ list_length(BPLONG t1, BPLONG t2)
|
|||||||
|
|
||||||
#define PRE_NUMBER_VAR(X)
|
#define PRE_NUMBER_VAR(X)
|
||||||
|
|
||||||
static inline void
|
extern inline void
|
||||||
numberVarTermOpt(TERM t)
|
numberVarTermOpt(TERM t)
|
||||||
{
|
{
|
||||||
YAP_NumberVars(t, 0);
|
YAP_NumberVars(t, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline TERM
|
extern inline TERM
|
||||||
unnumberVarTerm(TERM t, BPLONG_PTR pt1, BPLONG_PTR pt2)
|
unnumberVarTerm(TERM t, BPLONG_PTR pt1, BPLONG_PTR pt2)
|
||||||
{
|
{
|
||||||
return YAP_UnNumberVars(t);
|
return YAP_UnNumberVars(t);
|
||||||
|
@ -170,6 +170,7 @@ int id_table_count(const ID_TABLE *this)
|
|||||||
|
|
||||||
TERM unnumber_var_term(TERM term)
|
TERM unnumber_var_term(TERM term)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
BPLONG mvn = -1;
|
BPLONG mvn = -1;
|
||||||
return unnumberVarTerm(term, local_top, &mvn);
|
return unnumberVarTerm(term, local_top, &mvn);
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,38 @@ char * bp_term_2_string(TERM);
|
|||||||
/* unify.c */
|
/* unify.c */
|
||||||
int unify(TERM, TERM);
|
int unify(TERM, TERM);
|
||||||
|
|
||||||
|
int prism_goal_id_register(TERM term);
|
||||||
|
int prism_sw_id_register(TERM term);
|
||||||
|
int prism_sw_ins_id_register(TERM term);
|
||||||
|
int prism_goal_id_get(TERM term);
|
||||||
|
int prism_sw_id_get(TERM term);
|
||||||
|
int prism_sw_ins_id_get(TERM term);
|
||||||
|
int prism_goal_count(void);
|
||||||
|
int prism_sw_count(void);
|
||||||
|
int prism_sw_ins_count(void);
|
||||||
|
TERM prism_goal_term(IDNUM i);
|
||||||
|
TERM prism_sw_term(IDNUM i);
|
||||||
|
TERM prism_sw_ins_term(IDNUM i);
|
||||||
|
char * prism_goal_string(IDNUM i);
|
||||||
|
char * prism_sw_string(IDNUM i);
|
||||||
|
char * prism_sw_ins_string(IDNUM i);
|
||||||
|
char * copy_prism_goal_string(IDNUM i);
|
||||||
|
char * copy_prism_sw_string(IDNUM i);
|
||||||
|
char * copy_prism_sw_ins_string(IDNUM i);
|
||||||
|
int pc_prism_id_table_init_0(void);
|
||||||
|
int pc_prism_goal_id_register_2(void);
|
||||||
|
int pc_prism_sw_id_register_2(void);
|
||||||
|
int pc_prism_sw_ins_id_register_2(void);
|
||||||
|
int pc_prism_goal_id_get_2(void);
|
||||||
|
int pc_prism_sw_id_get_2(void);
|
||||||
|
int pc_prism_sw_ins_id_get_2(void);
|
||||||
|
int pc_prism_goal_count_1(void);
|
||||||
|
int pc_prism_sw_count_1(void);
|
||||||
|
int pc_prism_sw_ins_count_1(void);
|
||||||
|
int pc_prism_goal_term_2(void);
|
||||||
|
int pc_prism_sw_term_2(void);
|
||||||
|
int pc_prism_sw_ins_term_2(void);
|
||||||
|
|
||||||
/*--------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------*/
|
||||||
|
|
||||||
int prism_goal_id_register(TERM term)
|
int prism_goal_id_register(TERM term)
|
||||||
@ -125,6 +157,7 @@ int pc_prism_id_table_init_0(void)
|
|||||||
|
|
||||||
int pc_prism_goal_id_register_2(void)
|
int pc_prism_goal_id_register_2(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM term;
|
TERM term;
|
||||||
IDNUM id;
|
IDNUM id;
|
||||||
|
|
||||||
@ -137,6 +170,7 @@ int pc_prism_goal_id_register_2(void)
|
|||||||
|
|
||||||
int pc_prism_sw_id_register_2(void)
|
int pc_prism_sw_id_register_2(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM term;
|
TERM term;
|
||||||
IDNUM id;
|
IDNUM id;
|
||||||
|
|
||||||
@ -149,6 +183,7 @@ int pc_prism_sw_id_register_2(void)
|
|||||||
|
|
||||||
int pc_prism_sw_ins_id_register_2(void)
|
int pc_prism_sw_ins_id_register_2(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM term;
|
TERM term;
|
||||||
IDNUM id;
|
IDNUM id;
|
||||||
|
|
||||||
@ -161,6 +196,7 @@ int pc_prism_sw_ins_id_register_2(void)
|
|||||||
|
|
||||||
int pc_prism_goal_id_get_2(void)
|
int pc_prism_goal_id_get_2(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM term;
|
TERM term;
|
||||||
IDNUM id;
|
IDNUM id;
|
||||||
|
|
||||||
@ -175,6 +211,7 @@ int pc_prism_goal_id_get_2(void)
|
|||||||
|
|
||||||
int pc_prism_sw_id_get_2(void)
|
int pc_prism_sw_id_get_2(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM term;
|
TERM term;
|
||||||
IDNUM id;
|
IDNUM id;
|
||||||
|
|
||||||
@ -188,6 +225,7 @@ int pc_prism_sw_id_get_2(void)
|
|||||||
|
|
||||||
int pc_prism_sw_ins_id_get_2(void)
|
int pc_prism_sw_ins_id_get_2(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM term;
|
TERM term;
|
||||||
IDNUM id;
|
IDNUM id;
|
||||||
|
|
||||||
@ -201,21 +239,25 @@ int pc_prism_sw_ins_id_get_2(void)
|
|||||||
|
|
||||||
int pc_prism_goal_count_1(void)
|
int pc_prism_goal_count_1(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
return unify(MAKEINT(prism_goal_count()), ARG(1,1));
|
return unify(MAKEINT(prism_goal_count()), ARG(1,1));
|
||||||
}
|
}
|
||||||
|
|
||||||
int pc_prism_sw_count_1(void)
|
int pc_prism_sw_count_1(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
return unify(MAKEINT(prism_sw_count()), ARG(1,1));
|
return unify(MAKEINT(prism_sw_count()), ARG(1,1));
|
||||||
}
|
}
|
||||||
|
|
||||||
int pc_prism_sw_ins_count_1(void)
|
int pc_prism_sw_ins_count_1(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
return unify(MAKEINT(prism_sw_ins_count()), ARG(1,1));
|
return unify(MAKEINT(prism_sw_ins_count()), ARG(1,1));
|
||||||
}
|
}
|
||||||
|
|
||||||
int pc_prism_goal_term_2(void)
|
int pc_prism_goal_term_2(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM id, term;
|
TERM id, term;
|
||||||
|
|
||||||
id = ARG(1,2);
|
id = ARG(1,2);
|
||||||
@ -227,6 +269,7 @@ int pc_prism_goal_term_2(void)
|
|||||||
|
|
||||||
int pc_prism_sw_term_2(void)
|
int pc_prism_sw_term_2(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM id, term;
|
TERM id, term;
|
||||||
|
|
||||||
id = ARG(1,2);
|
id = ARG(1,2);
|
||||||
@ -239,6 +282,7 @@ int pc_prism_sw_term_2(void)
|
|||||||
|
|
||||||
int pc_prism_sw_ins_term_2(void)
|
int pc_prism_sw_ins_term_2(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM id, term;
|
TERM id, term;
|
||||||
|
|
||||||
id = ARG(1,2);
|
id = ARG(1,2);
|
||||||
|
@ -247,18 +247,21 @@ double random_gaussian(void)
|
|||||||
|
|
||||||
int pc_random_auto_seed_1(void)
|
int pc_random_auto_seed_1(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
BPLONG seed = (BPLONG)(time(NULL));
|
BPLONG seed = (BPLONG)(time(NULL));
|
||||||
return bpx_unify(ARG(1,1), bpx_build_integer(seed));
|
return bpx_unify(ARG(1,1), bpx_build_integer(seed));
|
||||||
}
|
}
|
||||||
|
|
||||||
int pc_random_init_by_seed_1(void)
|
int pc_random_init_by_seed_1(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
init_genrand((unsigned long)(bpx_get_integer(ARG(1,1))));
|
init_genrand((unsigned long)(bpx_get_integer(ARG(1,1))));
|
||||||
return BP_TRUE;
|
return BP_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int pc_random_init_by_list_1(void)
|
int pc_random_init_by_list_1(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
unsigned long *seed;
|
unsigned long *seed;
|
||||||
TERM t, u;
|
TERM t, u;
|
||||||
|
|
||||||
@ -278,16 +281,19 @@ int pc_random_init_by_list_1(void)
|
|||||||
|
|
||||||
int pc_random_float_1(void)
|
int pc_random_float_1(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
return bpx_unify(ARG(1,1), bpx_build_float(random_float()));
|
return bpx_unify(ARG(1,1), bpx_build_float(random_float()));
|
||||||
}
|
}
|
||||||
|
|
||||||
int pc_random_gaussian_1(void)
|
int pc_random_gaussian_1(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
return bpx_unify(ARG(1,1), bpx_build_float(random_gaussian(0.0,1.0)));
|
return bpx_unify(ARG(1,1), bpx_build_float(random_gaussian(0.0,1.0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
int pc_random_int_2(void)
|
int pc_random_int_2(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
int n_max = bpx_get_integer(ARG(1,2));
|
int n_max = bpx_get_integer(ARG(1,2));
|
||||||
int n_out = random_int(n_max);
|
int n_out = random_int(n_max);
|
||||||
return bpx_unify(ARG(2,2), bpx_build_integer((BPLONG)(n_out)));
|
return bpx_unify(ARG(2,2), bpx_build_integer((BPLONG)(n_out)));
|
||||||
@ -295,6 +301,7 @@ int pc_random_int_2(void)
|
|||||||
|
|
||||||
int pc_random_int_3(void)
|
int pc_random_int_3(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
int n_min = bpx_get_integer(ARG(1,3));
|
int n_min = bpx_get_integer(ARG(1,3));
|
||||||
int n_max = bpx_get_integer(ARG(2,3));
|
int n_max = bpx_get_integer(ARG(2,3));
|
||||||
int n_out = random_int(n_max - n_min + 1) + n_min;
|
int n_out = random_int(n_max - n_min + 1) + n_min;
|
||||||
@ -305,6 +312,7 @@ int pc_random_int_3(void)
|
|||||||
|
|
||||||
int pc_random_get_state_1(void)
|
int pc_random_get_state_1(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
int i, j;
|
int i, j;
|
||||||
TERM t, u;
|
TERM t, u;
|
||||||
unsigned long temp;
|
unsigned long temp;
|
||||||
@ -333,6 +341,7 @@ int pc_random_get_state_1(void)
|
|||||||
|
|
||||||
int pc_random_set_state_1(void)
|
int pc_random_set_state_1(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
int i, j;
|
int i, j;
|
||||||
TERM term;
|
TERM term;
|
||||||
unsigned long temp;
|
unsigned long temp;
|
||||||
|
@ -62,6 +62,7 @@ static ptrdiff_t trail_pos0 = 0;
|
|||||||
|
|
||||||
static void number_vars(TERM term)
|
static void number_vars(TERM term)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
assert(trail_pos0 == 0);
|
assert(trail_pos0 == 0);
|
||||||
|
|
||||||
trail_pos0 = trail_up_addr - trail_top;
|
trail_pos0 = trail_up_addr - trail_top;
|
||||||
@ -75,6 +76,7 @@ static void number_vars(TERM term)
|
|||||||
|
|
||||||
static void revert_vars(void)
|
static void revert_vars(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
BPLONG_PTR trail_top0;
|
BPLONG_PTR trail_top0;
|
||||||
|
|
||||||
assert(trail_pos0 != 0);
|
assert(trail_pos0 != 0);
|
||||||
@ -90,6 +92,7 @@ static void revert_vars(void)
|
|||||||
*/
|
*/
|
||||||
static BPULONG prism_hash_value(TERM term)
|
static BPULONG prism_hash_value(TERM term)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM t, *rest;
|
TERM t, *rest;
|
||||||
BPLONG i, n;
|
BPLONG i, n;
|
||||||
SYM_REC_PTR sym;
|
SYM_REC_PTR sym;
|
||||||
|
@ -770,6 +770,7 @@ int pc_get_snode_expectation_2(void)
|
|||||||
|
|
||||||
int pc_import_occ_switches_3(void)
|
int pc_import_occ_switches_3(void)
|
||||||
{
|
{
|
||||||
|
CACHE_REGS
|
||||||
TERM p_sw_list,p_sw_list0,p_sw_list1;
|
TERM p_sw_list,p_sw_list0,p_sw_list1;
|
||||||
TERM p_sw_ins_list0,p_sw_ins_list1,sw,sw_ins;
|
TERM p_sw_ins_list0,p_sw_ins_list1,sw,sw_ins;
|
||||||
TERM p_num_sw, p_num_sw_ins;
|
TERM p_num_sw, p_num_sw_ins;
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 1028ec347935a5f61925541d7adcf6b08aca820c
|
Subproject commit 2a859fd75795cc428e911b59abf8404c87b530f4
|
@ -83,6 +83,10 @@ tabling_statistics(global_trie_nodes,[BytesInUse,StructsInUse]) :-
|
|||||||
'$c_get_optyap_statistics'(10,BytesInUse,StructsInUse).
|
'$c_get_optyap_statistics'(10,BytesInUse,StructsInUse).
|
||||||
tabling_statistics(global_trie_hashes,[BytesInUse,StructsInUse]) :-
|
tabling_statistics(global_trie_hashes,[BytesInUse,StructsInUse]) :-
|
||||||
'$c_get_optyap_statistics'(11,BytesInUse,StructsInUse).
|
'$c_get_optyap_statistics'(11,BytesInUse,StructsInUse).
|
||||||
|
tabling_statistics(subgoal_entries,[BytesInUse,StructsInUse]) :-
|
||||||
|
'$c_get_optyap_statistics'(16,BytesInUse,StructsInUse).
|
||||||
|
tabling_statistics(answer_ref_nodes,[BytesInUse,StructsInUse]) :-
|
||||||
|
'$c_get_optyap_statistics'(17,BytesInUse,StructsInUse).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -86,6 +86,10 @@ opt_statistics(table_subgoal_solution_frames,[BytesInUse,StructsInUse]) :-
|
|||||||
'$c_get_optyap_statistics'(14,BytesInUse,StructsInUse).
|
'$c_get_optyap_statistics'(14,BytesInUse,StructsInUse).
|
||||||
opt_statistics(table_subgoal_answer_frames,[BytesInUse,StructsInUse]) :-
|
opt_statistics(table_subgoal_answer_frames,[BytesInUse,StructsInUse]) :-
|
||||||
'$c_get_optyap_statistics'(15,BytesInUse,StructsInUse).
|
'$c_get_optyap_statistics'(15,BytesInUse,StructsInUse).
|
||||||
|
opt_statistics(subgoal_entries,[BytesInUse,StructsInUse]) :-
|
||||||
|
'$c_get_optyap_statistics'(16,BytesInUse,StructsInUse).
|
||||||
|
opt_statistics(answer_ref_nodes,[BytesInUse,StructsInUse]) :-
|
||||||
|
'$c_get_optyap_statistics'(17,BytesInUse,StructsInUse).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user