This commit is contained in:
Vitor Santos Costa 2018-04-03 18:31:51 +01:00
parent c1d81ea7c6
commit 3a44eb657d
12 changed files with 46 additions and 12084 deletions

View File

@ -107,7 +107,7 @@ static YAP_Term add_key_i(const char *key, YAP_Int v, YAP_Term o0)
static YAP_Term add_key_s(const char *key, const char *v, YAP_Term o0)
{
Term tkv[2];
if (!v || v[0] == '\n')
if (!v || v[0] == '\0')
return o0;
tkv[1] = MkStringTerm(v), tkv[0] = MkStringTerm(key);
Term node = Yap_MkApplTerm( FunctorEq, 2, tkv);
@ -159,11 +159,13 @@ bool Yap_Warning(const char *s, ...) {
Term ts[2];
const char *fmt;
char tmpbuf[MAXPATHLEN];
yap_error_descriptor_t olde;
Yap_pushErrorContext(&olde);
LOCAL_DoingUndefp = true;
LOCAL_within_print_message = true;
if (LOCAL_PrologMode & InErrorMode) {
fprintf(stderr, "%% ERROR WITHIN ERROR %d: %s\n", LOCAL_Error_TYPE, tmpbuf);
Yap_RestartYap(1);
}
LOCAL_PrologMode |= InErrorMode;
pred = RepPredProp(PredPropByFunc(FunctorPrintMessage,
PROLOG_MODULE)); // PROCEDURE_print_message2
va_start(ap, s);
@ -182,7 +184,7 @@ bool Yap_Warning(const char *s, ...) {
if (pred->OpcodeOfPred == UNDEF_OPCODE || pred->OpcodeOfPred == FAIL_OPCODE) {
fprintf(stderr, "warning message: %s\n", tmpbuf);
LOCAL_DoingUndefp = false;
LOCAL_within_print_message = false;
LOCAL_PrologMode &= ~InErrorMode;
Yap_popErrorContext(false);
return false;
}
@ -190,8 +192,9 @@ bool Yap_Warning(const char *s, ...) {
ts[1] = MkAtomTerm(AtomWarning);
ts[0] = MkAtomTerm(Yap_LookupAtom(tmpbuf));
rc = Yap_execute_pred(pred, ts, true PASS_REGS);
Yap_popErrorContext(false);
return rc;
Yap_popErrorContext(false);
LOCAL_PrologMode &= ~InErrorMode;
return rc;
}
void Yap_InitError__(const char *file, const char *function, int lineno, yap_error_number e, Term t, ...) {
@ -235,19 +238,18 @@ bool Yap_PrintWarning(Term twarning) {
bool rc;
Term ts[2];
if (LOCAL_within_print_message) {
/* error within error */
fprintf(stderr, "%% WARNING WITHIN WARNING\n");
if (LOCAL_PrologMode & InErrorMode) {
fprintf(stderr, "%% ERROR WITHIN ERROR while processing warning: %s\n", Yap_TermToBuffer(twarning, LOCAL_encoding, 0));
Yap_RestartYap(1);
}
LOCAL_PrologMode |= InErrorMode;
LOCAL_DoingUndefp = true;
LOCAL_within_print_message = true;
if (pred->OpcodeOfPred == UNDEF_OPCODE || pred->OpcodeOfPred == FAIL_OPCODE) {
fprintf(stderr, "warning message:\n");
Yap_DebugPlWrite(twarning);
fprintf(stderr, "\n");
LOCAL_DoingUndefp = false;
LOCAL_within_print_message = false;
LOCAL_PrologMode &= ~InErrorMode;
CurrentModule = cmod;
return false;
}
@ -257,7 +259,7 @@ bool Yap_PrintWarning(Term twarning) {
B->cp_tr = TR;
rc = Yap_execute_pred(pred, ts, true PASS_REGS);
LOCAL_within_print_message = false;
LOCAL_DoingUndefp = false;
LOCAL_PrologMode &= ~InErrorMode;
return rc;
}
@ -422,27 +424,29 @@ static char tmpbuf[YAP_BUF_SIZE];
#define E0(A, B) \
case A: { \
Term ft[2]; \
ft[0] = MkAtomTerm(mkerrorct(A)); \
ft[0] = MkAtomTerm(mkerrorct(B)); \
ft[1] = info; \
return Yap_MkApplTerm(FunctorError,2,ft); }
#define E(A, B, C) \
case A: \
{ Term ft[2], nt[2]; \
ft[0] = Yap_MkNewApplTerm(Yap_MkFunctor(mkerrorct(B),2), 2); \
nt[1] = MkAtomTerm(Yap_LookupAtom(C)); \
RESET_VARIABLE(nt+2); Yap_unify(nt[2], culprit); \
nt[0] = MkAtomTerm(Yap_LookupAtom(C)); \
nt[1] = MkVarTerm(); \
Yap_unify(nt[1], culprit); \
ft[0] = Yap_MkApplTerm(Yap_MkFunctor(mkerrorct(B),2), 2, nt); \
ft[1] = info; \
return Yap_MkApplTerm(FunctorError,2,ft); }
#define E2(A, B, C, D) \
case A: \
{ \
Term ft[3], nt[2]; \
ft[0] = Yap_MkNewApplTerm(Yap_MkFunctor(mkerrorct(B),3), 3); \
nt[1] = MkAtomTerm(Yap_LookupAtom(C)); \
nt[2] = MkAtomTerm(Yap_LookupAtom(D)); \
RESET_VARIABLE(nt+3); Yap_unify(nt[3], culprit); \
Term ft[2], nt[3]; \
nt[0] = MkAtomTerm(Yap_LookupAtom(C)); \
nt[1] = MkAtomTerm(Yap_LookupAtom(D)); \
nt[2] = MkVarTerm(); \
Yap_unify(nt[2], culprit); \
ft[0] = Yap_MkApplTerm(Yap_MkFunctor(mkerrorct(B),3), 3, nt); \
ft[1] = info; \
return Yap_MkApplTerm(FunctorError,2,ft); \
}
@ -453,7 +457,7 @@ static char tmpbuf[YAP_BUF_SIZE];
}
#include "YapErrors.h"
//
void Yap_pushErrorContext(yap_error_descriptor_t *new_error) {
memset(new_error, 0, sizeof(yap_error_descriptor_t));
new_error->top_error = LOCAL_ActiveError;
@ -730,8 +734,6 @@ yamop *Yap_Error__(bool throw, const char *file, const char *function, int linen
break;
}
/* disable active signals at this point */
LOCAL_Signals = 0;
CalculateStackGap(PASS_REGS1);
#if DEBUG
// DumpActiveGoals( PASS_REGS1 );
@ -740,6 +742,7 @@ yamop *Yap_Error__(bool throw, const char *file, const char *function, int linen
it's up to her to decide */
if (LOCAL_DoingUndefp) {
LOCAL_Signals = 0;
Yap_PrintWarning(Yap_GetException());
return P;
}
@ -913,8 +916,9 @@ const char *Yap_errorClassName(yap_error_class_number e) {
if (LOCAL_ActiveError->errorNo != YAP_NO_ERROR) {
yap_error_descriptor_t *t = LOCAL_ActiveError;
Term rc = mkerrort(t->errorNo, Yap_BufferToTerm(t->culprit, TermNil), err2list(t));
Yap_DebugPlWriteln(rc);
Yap_DebugPlWriteln(rc);
Yap_ResetException(worker_id);
save_H();
return rc;
}
return 0;

View File

@ -1452,7 +1452,6 @@ static bool exec_absmi(bool top, yap_reset_t reset_mode USES_REGS) {
fprintf(stderr,"HR before jmp=%p\n", HR);
Yap_JumpToEnv();
fprintf(stderr,"HR after jmp=%p\n", HR);
LOCAL_PrologMode = UserMode;
ASP = (CELL *) B;
if (B == NULL || B->cp_b == NULL || (CELL*)(B->cp_b) > LCL0 - LOCAL_CBorder) {
LOCAL_RestartEnv = sighold;

View File

@ -854,6 +854,9 @@ static size_t downcase(void *s0, seq_tv_t *out USES_REGS) {
bool Yap_CVT_Text(seq_tv_t *inp, seq_tv_t *out USES_REGS) {
unsigned char *buf;
bool rc;
yap_error_descriptor_t new;
/*
//printf(stderr, "[ %d ", n++) ;
if (inp->type & (YAP_STRING_TERM|YAP_STRING_ATOM|YAP_STRING_ATOMS_CODES

File diff suppressed because one or more lines are too long

323
H/LOCALS
View File

@ -1,323 +0,0 @@
// Stuff that must be considered local to a thread or worker
START_WORKER_LOCAL
// Streams
int c_input_stream =0
int c_output_stream =1
int c_error_stream =2
bool sockets_io =false
bool within_print_message =false
//
// Used by the prompts to check if they are after a newline, and then a
// prompt should be output, or if we are in the middle of a line.
//
bool newline =true
Atom AtPrompt =AtomNil
char Prompt[MAX_PROMPT+1] void
encoding_t encoding =Yap_DefaultEncoding()
bool quasi_quotations =false
UInt default_priority =1200
bool eot_before_eof =false
UInt max_depth =0
UInt max_list =0
UInt max_write_args =0
// Restore info
CELL* OldASP =NULL
CELL* OldLCL0 =NULL
tr_fr_ptr OldTR =NULL
CELL* OldGlobalBase =NULL
CELL* OldH =NULL
CELL* OldH0 =NULL
ADDR OldTrailBase =NULL
ADDR OldTrailTop =NULL
ADDR OldHeapBase =NULL
ADDR OldHeapTop =NULL
Int ClDiff =0L
Int GDiff =0L
Int HDiff =0L
Int GDiff0 =0L
CELL* GSplit =NULL
Int LDiff =0L
Int TrDiff =0L
Int XDiff =0L
Int DelayDiff =0L
Int BaseDiff =0L
// Reduction counters
YAP_ULONG_LONG ReductionsCounter =0L
YAP_ULONG_LONG PredEntriesCounter =0L
YAP_ULONG_LONG RetriesCounter =0L
int ReductionsCounterOn =0L
int PredEntriesCounterOn =0L
int RetriesCounterOn =0L
// support for consulting files
/* current consult stack */
union CONSULT_OBJ* ConsultSp =NULL
/* current maximum number of cells in consult stack */
UInt ConsultCapacity void
/* top of consult stack */
union CONSULT_OBJ* ConsultBase =NULL
/* low-water mark for consult */
union CONSULT_OBJ* ConsultLow =NULL
Term VarNames =((Term)0)
Atom SourceFileName =NULL
UInt SourceFileLineno =0
//global variables
Term GlobalArena =0L TermToGlobalOrAtomAdjust
UInt GlobalArenaOverflows =0L
Int ArenaOverflows =0L
Int DepthArenas =0
struct pred_entry* LastAssertedPred =NULL
struct pred_entry* TmpPred =NULL
char* ScannerStack =NULL
struct scanner_extra_alloc* ScannerExtraBlocks =NULL
/// worker control information
/// stack limit after which the stack is managed by C-code.
Int CBorder =0
/// max number of signals (uint64_t)
UInt MaxActiveSignals =64L
/// actual life signals
uint64_t Signals =0L
/// indexing help data?
UInt IPredArity =0L
yamop* ProfEnd =NULL
int DoingUndefp =FALSE
Int StartCharCount =0L
Int StartLineCount =0L
Int StartLinePos =0L
scratch_block ScratchPad InitScratchPad(wid)
#ifdef COROUTINING
Term WokenGoals =0L TermToGlobalAdjust
Term AttsMutableList =0L TermToGlobalAdjust
#endif
// gc_stuff
Term GcGeneration =0L TermToGlobalAdjust
Term GcPhase =0L TermToGlobalAdjust
UInt GcCurrentPhase =0L
UInt GcCalls =0L
Int TotGcTime =0L
YAP_ULONG_LONG TotGcRecovered =0L
Int LastGcTime =0L
Int LastSSTime =0L
CELL* OpenArray =NULL
/* in a single gc */
Int total_marked =0L
Int total_oldies =0L
struct choicept* current_B =NULL
CELL* prev_HB =NULL
CELL* HGEN =NULL
CELL** iptop =NULL
#if defined(GC_NO_TAGS)
char* bp =NULL
#endif
tr_fr_ptr sTR =NULL
tr_fr_ptr sTR0 =NULL
tr_fr_ptr new_TR =NULL
struct gc_mark_continuation* cont_top0 =NULL
struct gc_mark_continuation* cont_top =NULL
int discard_trail_entries =0
gc_ma_hash_entry gc_ma_hash_table[GC_MAVARS_HASH_SIZE] void
gc_ma_hash_entry* gc_ma_h_top =NULL
gc_ma_hash_entry* gc_ma_h_list =NULL
UInt gc_timestamp =0L
ADDR db_vec =NULL
ADDR db_vec0 =NULL
struct RB_red_blk_node* db_root =NULL
struct RB_red_blk_node* db_nil =NULL
sigjmp_buf* gc_restore void
CELL* extra_gc_cells void
CELL* extra_gc_cells_base void
CELL* extra_gc_cells_top void
UInt extra_gc_cells_size =256
struct array_entry* DynamicArrays =NULL PtoArrayEAdjust
struct static_array_entry* StaticArrays =NULL PtoArraySAdjust
struct global_entry* GlobalVariables =NULL PtoGlobalEAdjust
int AllowRestart =FALSE
// Thread Local Area for Fast Storage of Intermediate Compiled Code
struct mem_blk* CMemFirstBlock =NULL
UInt CMemFirstBlockSz =0L
// Variable used by the compiler to store number of permanent vars in a clause
int nperm =0
int jMP =0
// Thread Local Area for Labels
Int* LabelFirstArray =NULL
UInt LabelFirstArraySz =0L
// Thread Local Area for SWI-Prolog emulation routines.
// struct PL_local_data* PL_local_data_p =Yap_InitThreadIO(wid)
#ifdef THREADS
struct thandle ThreadHandle InitThreadHandle(wid)
#endif /* THREADS */
#if defined(YAPOR) || defined(TABLING)
struct local_optyap_data optyap_data Yap_init_local_optyap_data(wid)
UInt TabMode =0L
#endif /* YAPOR || TABLING */
int InterruptsDisabled =FALSE
struct open_query_struct* execution =NULL
#if LOW_LEVEL_TRACER
Int total_choicepoints =0
#endif
int consult_level =0
// Variables related to memory allocation
ADDR LocalBase void
ADDR GlobalBase void
ADDR TrailBase void
ADDR TrailTop void
/* error handling info, designed to be easy to pass to the foreign world */
yap_error_descriptor_t* ActiveError =calloc(sizeof(yap_error_descriptor_t),1)
/// pointer to an exception term, from throw
jmp_buf* IOBotch void
TokEntry* tokptr void
TokEntry* toktide void
VarEntry* VarTable void
VarEntry* AnonVarTable void
Term Comments void
CELL* CommentsTail void
CELL* CommentsNextChar void
wchar_t* CommentsBuff void
size_t CommentsBuffPos void
size_t CommentsBuffLim void
sigjmp_buf* RestartEnv void
char FileNameBuf[YAP_FILENAME_MAX+1] void
char FileNameBuf2[YAP_FILENAME_MAX+1] void
struct TextBuffer_manager* TextBuffer =Yap_InitTextAllocator()
// Prolog State
UInt BreakLevel =0
Int PrologMode =BootMode
int CritLocks =0
// Prolog execution and state flags
union flagTerm* Flags void
UInt flagCount void
//analyst.c
/* used to find out how many instructions of each kind are executed */
#ifdef ANALYST
YAP_ULONG_LONG opcount[_std_top+1] void
YAP_ULONG_LONG 2opcount[_std_top+1][_std_top+1] void
#endif /* ANALYST */
//dbase.c
struct db_globs* s_dbg void
//eval.c
Term mathtt void
char* mathstring =NULL
//grow.c
int heap_overflows =0
Int total_heap_overflow_time =0
int stack_overflows =0
Int total_stack_overflow_time =0
int delay_overflows =0
Int total_delay_overflow_time =0
int trail_overflows =0
Int total_trail_overflow_time =0
int atom_table_overflows =0
Int total_atom_table_overflow_time =0
//load_dyld
#ifdef LOAD_DYLD
int dl_errno =0
#endif
//tracer.c
#ifdef LOW_LEVEL_TRACER
int do_trace_primitives =TRUE
#endif
//quick loader
struct export_atom_hash_entry_struct *ExportAtomHashChain =NULL
UInt ExportAtomHashTableSize =0
UInt ExportAtomHashTableNum =0
struct export_functor_hash_entry_struct *ExportFunctorHashChain =NULL
UInt ExportFunctorHashTableSize =0
UInt ExportFunctorHashTableNum =0
struct export_pred_entry_hash_entry_struct *ExportPredEntryHashChain =NULL
UInt ExportPredEntryHashTableSize =0
UInt ExportPredEntryHashTableNum =0
struct export_dbref_hash_entry_struct *ExportDBRefHashChain =NULL
UInt ExportDBRefHashTableSize =0
UInt ExportDBRefHashTableNum =0
struct import_atom_hash_entry_struct **ImportAtomHashChain =NULL
UInt ImportAtomHashTableSize =0
UInt ImportAtomHashTableNum =0
struct import_functor_hash_entry_struct **ImportFunctorHashChain =NULL
UInt ImportFunctorHashTableSize =0
UInt ImportFunctorHashTableNum =0
struct import_opcode_hash_entry_struct **ImportOPCODEHashChain =NULL
UInt ImportOPCODEHashTableSize =0
struct import_pred_entry_hash_entry_struct **ImportPredEntryHashChain =NULL
UInt ImportPredEntryHashTableSize =0
UInt ImportPredEntryHashTableNum =0
struct import_dbref_hash_entry_struct **ImportDBRefHashChain =NULL
UInt ImportDBRefHashTableSize =0
UInt ImportDBRefHashTableNum =0
yamop *ImportFAILCODE =NULL
// exo indexing
UInt ibnds[256] void
struct index_t* exo_it =NULL
CELL* exo_base =NULL
UInt exo_arity =0
UInt exo_arg =0
// atom completion
struct scan_atoms* search_atoms void
struct pred_entry* SearchPreds void
/// Slots Status
yhandle_t CurSlot =0
yhandle_t FrozenHandles =0
yhandle_t NSlots =0
CELL* SlotBase =InitHandles(wid)
// Mutexes
struct swi_mutex* Mutexes =NULL
Term SourceModule =0
Term Including =TermNil
size_t MAX_SIZE =1024L
/* last call to walltime. */
uint64_t LastWTime =0
void* shared =NULL
END_WORKER_LOCAL

View File

@ -992,6 +992,10 @@ Term Yap_read_term(int sno, Term opts, bool clause) {
int emacs_cares = FALSE;
#endif
yap_error_descriptor_t new;
Yap_pushErrorContext(&new);
int lvl = push_text_stack();
parser_state_t state = YAP_START_PARSING;
while (true) {
@ -1000,7 +1004,8 @@ Term Yap_read_term(int sno, Term opts, bool clause) {
state = initParser(opts, &fe, &re, sno, clause);
if (state == YAP_PARSING_FINISHED) {
pop_text_stack(lvl);
return 0;
Yap_popErrorContext(true);
return 0;
}
break;
case YAP_SCANNING:
@ -1033,11 +1038,13 @@ Term Yap_read_term(int sno, Term opts, bool clause) {
#if EMACS
first_char = tokstart->TokPos;
#endif /* EMACS */
Yap_popErrorContext(true);
pop_text_stack(lvl);
return fe.t;
}
}
}
Yap_popErrorContext(true);
pop_text_stack(lvl);
return 0;
}

View File

@ -299,13 +299,17 @@ bool Yap_WriteTerm(int output_stream, Term t, Term opts USES_REGS) {
Yap_Error(LOCAL_Error_TYPE, opts, NULL);
return false;
}
yap_error_descriptor_t new;
Yap_pushErrorContext(&new);
yhandle_t mySlots = Yap_StartSlots();
LOCK(GLOBAL_Stream[output_stream].streamlock);
write_term(output_stream, t, args PASS_REGS);
UNLOCK(GLOBAL_Stream[output_stream].streamlock);
free(args);
Yap_CloseSlots(mySlots);
Yap_RaiseException();
Yap_popErrorContext(true);
return (TRUE);
}

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +0,0 @@
// -*- 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 RestartMode gecode_RestartMode_from_term(YAP_Term);
static FloatRelType gecode_FloatRelType_from_term(YAP_Term);
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 IntPropLevel gecode_IntPropLevel_from_term(YAP_Term);
static TaskType gecode_TaskType_from_term(YAP_Term);
static TraceEvent gecode_TraceEvent_from_term(YAP_Term);
static SetRelType gecode_SetRelType_from_term(YAP_Term);
static SetOpType gecode_SetOpType_from_term(YAP_Term);

File diff suppressed because it is too large Load Diff

View File

@ -1,681 +0,0 @@
// -*- 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_NONE");
gecode_RM_NONE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_CONSTANT");
gecode_RM_CONSTANT = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_LINEAR");
gecode_RM_LINEAR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_LUBY");
gecode_RM_LUBY = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_GEOMETRIC");
gecode_RM_GEOMETRIC = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_EQ");
gecode_FRT_EQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_NQ");
gecode_FRT_NQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_LQ");
gecode_FRT_LQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_LE");
gecode_FRT_LE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_GQ");
gecode_FRT_GQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_GR");
gecode_FRT_GR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ 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("IPL_DEF");
gecode_IPL_DEF = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_VAL");
gecode_IPL_VAL = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_BND");
gecode_IPL_BND = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_DOM");
gecode_IPL_DOM = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_SPEED");
gecode_IPL_SPEED = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_MEMORY");
gecode_IPL_MEMORY = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_BASIC");
gecode_IPL_BASIC = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_ADVANCED");
gecode_IPL_ADVANCED = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_BASIC_ADVANCED");
gecode_IPL_BASIC_ADVANCED = 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("TE_INIT");
gecode_TE_INIT = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_PRUNE");
gecode_TE_PRUNE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_FIX");
gecode_TE_FIX = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_FAIL");
gecode_TE_FAIL = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_DONE");
gecode_TE_DONE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_PROPAGATE");
gecode_TE_PROPAGATE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_COMMIT");
gecode_TE_COMMIT = 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_UserCPredicate("gecode_constraint_branch_1", gecode_constraint_branch_1, 2);
YAP_UserCPredicate("gecode_constraint_convex_2", gecode_constraint_convex_2, 2);
YAP_UserCPredicate("gecode_constraint_convex_3", gecode_constraint_convex_3, 3);
YAP_UserCPredicate("gecode_constraint_abs_4", gecode_constraint_abs_4, 3);
YAP_UserCPredicate("gecode_constraint_abs_5", gecode_constraint_abs_5, 3);
YAP_UserCPredicate("gecode_constraint_abs_6", gecode_constraint_abs_6, 4);
YAP_UserCPredicate("gecode_constraint_argmax_7", gecode_constraint_argmax_7, 4);
YAP_UserCPredicate("gecode_constraint_argmax_11", gecode_constraint_argmax_11, 4);
YAP_UserCPredicate("gecode_constraint_argmax_8", gecode_constraint_argmax_8, 5);
YAP_UserCPredicate("gecode_constraint_argmax_12", gecode_constraint_argmax_12, 5);
YAP_UserCPredicate("gecode_constraint_argmax_9", gecode_constraint_argmax_9, 6);
YAP_UserCPredicate("gecode_constraint_argmax_10", gecode_constraint_argmax_10, 3);
YAP_UserCPredicate("gecode_constraint_argmin_13", gecode_constraint_argmin_13, 4);
YAP_UserCPredicate("gecode_constraint_argmin_17", gecode_constraint_argmin_17, 4);
YAP_UserCPredicate("gecode_constraint_argmin_14", gecode_constraint_argmin_14, 5);
YAP_UserCPredicate("gecode_constraint_argmin_18", gecode_constraint_argmin_18, 5);
YAP_UserCPredicate("gecode_constraint_argmin_15", gecode_constraint_argmin_15, 6);
YAP_UserCPredicate("gecode_constraint_argmin_16", gecode_constraint_argmin_16, 3);
YAP_UserCPredicate("gecode_constraint_assign_19", gecode_constraint_assign_19, 3);
YAP_UserCPredicate("gecode_constraint_assign_21", gecode_constraint_assign_21, 3);
YAP_UserCPredicate("gecode_constraint_assign_24", gecode_constraint_assign_24, 3);
YAP_UserCPredicate("gecode_constraint_assign_27", gecode_constraint_assign_27, 3);
YAP_UserCPredicate("gecode_constraint_assign_30", gecode_constraint_assign_30, 3);
YAP_UserCPredicate("gecode_constraint_assign_33", gecode_constraint_assign_33, 3);
YAP_UserCPredicate("gecode_constraint_assign_35", gecode_constraint_assign_35, 3);
YAP_UserCPredicate("gecode_constraint_assign_37", gecode_constraint_assign_37, 3);
YAP_UserCPredicate("gecode_constraint_assign_20", gecode_constraint_assign_20, 4);
YAP_UserCPredicate("gecode_constraint_assign_22", gecode_constraint_assign_22, 4);
YAP_UserCPredicate("gecode_constraint_assign_25", gecode_constraint_assign_25, 4);
YAP_UserCPredicate("gecode_constraint_assign_28", gecode_constraint_assign_28, 4);
YAP_UserCPredicate("gecode_constraint_assign_31", gecode_constraint_assign_31, 4);
YAP_UserCPredicate("gecode_constraint_assign_34", gecode_constraint_assign_34, 4);
YAP_UserCPredicate("gecode_constraint_assign_36", gecode_constraint_assign_36, 4);
YAP_UserCPredicate("gecode_constraint_assign_38", gecode_constraint_assign_38, 4);
YAP_UserCPredicate("gecode_constraint_assign_23", gecode_constraint_assign_23, 5);
YAP_UserCPredicate("gecode_constraint_assign_26", gecode_constraint_assign_26, 5);
YAP_UserCPredicate("gecode_constraint_assign_29", gecode_constraint_assign_29, 5);
YAP_UserCPredicate("gecode_constraint_assign_32", gecode_constraint_assign_32, 5);
YAP_UserCPredicate("gecode_constraint_binpacking_39", gecode_constraint_binpacking_39, 4);
YAP_UserCPredicate("gecode_constraint_binpacking_40", gecode_constraint_binpacking_40, 5);
YAP_UserCPredicate("gecode_constraint_branch_41", gecode_constraint_branch_41, 3);
YAP_UserCPredicate("gecode_constraint_branch_85", gecode_constraint_branch_85, 3);
YAP_UserCPredicate("gecode_constraint_branch_87", gecode_constraint_branch_87, 3);
YAP_UserCPredicate("gecode_constraint_branch_89", gecode_constraint_branch_89, 3);
YAP_UserCPredicate("gecode_constraint_branch_42", gecode_constraint_branch_42, 4);
YAP_UserCPredicate("gecode_constraint_branch_43", gecode_constraint_branch_43, 4);
YAP_UserCPredicate("gecode_constraint_branch_49", gecode_constraint_branch_49, 4);
YAP_UserCPredicate("gecode_constraint_branch_55", gecode_constraint_branch_55, 4);
YAP_UserCPredicate("gecode_constraint_branch_58", gecode_constraint_branch_58, 4);
YAP_UserCPredicate("gecode_constraint_branch_64", gecode_constraint_branch_64, 4);
YAP_UserCPredicate("gecode_constraint_branch_70", gecode_constraint_branch_70, 4);
YAP_UserCPredicate("gecode_constraint_branch_76", gecode_constraint_branch_76, 4);
YAP_UserCPredicate("gecode_constraint_branch_82", gecode_constraint_branch_82, 4);
YAP_UserCPredicate("gecode_constraint_branch_86", gecode_constraint_branch_86, 4);
YAP_UserCPredicate("gecode_constraint_branch_88", gecode_constraint_branch_88, 4);
YAP_UserCPredicate("gecode_constraint_branch_90", gecode_constraint_branch_90, 4);
YAP_UserCPredicate("gecode_constraint_branch_44", gecode_constraint_branch_44, 5);
YAP_UserCPredicate("gecode_constraint_branch_46", gecode_constraint_branch_46, 5);
YAP_UserCPredicate("gecode_constraint_branch_50", gecode_constraint_branch_50, 5);
YAP_UserCPredicate("gecode_constraint_branch_52", gecode_constraint_branch_52, 5);
YAP_UserCPredicate("gecode_constraint_branch_56", gecode_constraint_branch_56, 5);
YAP_UserCPredicate("gecode_constraint_branch_59", gecode_constraint_branch_59, 5);
YAP_UserCPredicate("gecode_constraint_branch_61", gecode_constraint_branch_61, 5);
YAP_UserCPredicate("gecode_constraint_branch_65", gecode_constraint_branch_65, 5);
YAP_UserCPredicate("gecode_constraint_branch_67", gecode_constraint_branch_67, 5);
YAP_UserCPredicate("gecode_constraint_branch_71", gecode_constraint_branch_71, 5);
YAP_UserCPredicate("gecode_constraint_branch_73", gecode_constraint_branch_73, 5);
YAP_UserCPredicate("gecode_constraint_branch_77", gecode_constraint_branch_77, 5);
YAP_UserCPredicate("gecode_constraint_branch_79", gecode_constraint_branch_79, 5);
YAP_UserCPredicate("gecode_constraint_branch_83", gecode_constraint_branch_83, 5);
YAP_UserCPredicate("gecode_constraint_branch_45", gecode_constraint_branch_45, 6);
YAP_UserCPredicate("gecode_constraint_branch_47", gecode_constraint_branch_47, 6);
YAP_UserCPredicate("gecode_constraint_branch_51", gecode_constraint_branch_51, 6);
YAP_UserCPredicate("gecode_constraint_branch_53", gecode_constraint_branch_53, 6);
YAP_UserCPredicate("gecode_constraint_branch_57", gecode_constraint_branch_57, 6);
YAP_UserCPredicate("gecode_constraint_branch_60", gecode_constraint_branch_60, 6);
YAP_UserCPredicate("gecode_constraint_branch_62", gecode_constraint_branch_62, 6);
YAP_UserCPredicate("gecode_constraint_branch_66", gecode_constraint_branch_66, 6);
YAP_UserCPredicate("gecode_constraint_branch_68", gecode_constraint_branch_68, 6);
YAP_UserCPredicate("gecode_constraint_branch_72", gecode_constraint_branch_72, 6);
YAP_UserCPredicate("gecode_constraint_branch_74", gecode_constraint_branch_74, 6);
YAP_UserCPredicate("gecode_constraint_branch_78", gecode_constraint_branch_78, 6);
YAP_UserCPredicate("gecode_constraint_branch_80", gecode_constraint_branch_80, 6);
YAP_UserCPredicate("gecode_constraint_branch_84", gecode_constraint_branch_84, 6);
YAP_UserCPredicate("gecode_constraint_branch_48", gecode_constraint_branch_48, 7);
YAP_UserCPredicate("gecode_constraint_branch_54", gecode_constraint_branch_54, 7);
YAP_UserCPredicate("gecode_constraint_branch_63", gecode_constraint_branch_63, 7);
YAP_UserCPredicate("gecode_constraint_branch_69", gecode_constraint_branch_69, 7);
YAP_UserCPredicate("gecode_constraint_branch_75", gecode_constraint_branch_75, 7);
YAP_UserCPredicate("gecode_constraint_branch_81", gecode_constraint_branch_81, 7);
YAP_UserCPredicate("gecode_constraint_cardinality_91", gecode_constraint_cardinality_91, 4);
YAP_UserCPredicate("gecode_constraint_cardinality_92", gecode_constraint_cardinality_92, 4);
YAP_UserCPredicate("gecode_constraint_channel_93", gecode_constraint_channel_93, 3);
YAP_UserCPredicate("gecode_constraint_channel_95", gecode_constraint_channel_95, 3);
YAP_UserCPredicate("gecode_constraint_channel_98", gecode_constraint_channel_98, 3);
YAP_UserCPredicate("gecode_constraint_channel_102", gecode_constraint_channel_102, 3);
YAP_UserCPredicate("gecode_constraint_channel_103", gecode_constraint_channel_103, 3);
YAP_UserCPredicate("gecode_constraint_channel_94", gecode_constraint_channel_94, 4);
YAP_UserCPredicate("gecode_constraint_channel_96", gecode_constraint_channel_96, 4);
YAP_UserCPredicate("gecode_constraint_channel_99", gecode_constraint_channel_99, 4);
YAP_UserCPredicate("gecode_constraint_channel_97", gecode_constraint_channel_97, 5);
YAP_UserCPredicate("gecode_constraint_channel_100", gecode_constraint_channel_100, 5);
YAP_UserCPredicate("gecode_constraint_channel_101", gecode_constraint_channel_101, 6);
YAP_UserCPredicate("gecode_constraint_circuit_104", gecode_constraint_circuit_104, 5);
YAP_UserCPredicate("gecode_constraint_circuit_107", gecode_constraint_circuit_107, 5);
YAP_UserCPredicate("gecode_constraint_circuit_110", gecode_constraint_circuit_110, 5);
YAP_UserCPredicate("gecode_constraint_circuit_105", gecode_constraint_circuit_105, 6);
YAP_UserCPredicate("gecode_constraint_circuit_108", gecode_constraint_circuit_108, 6);
YAP_UserCPredicate("gecode_constraint_circuit_111", gecode_constraint_circuit_111, 6);
YAP_UserCPredicate("gecode_constraint_circuit_106", gecode_constraint_circuit_106, 4);
YAP_UserCPredicate("gecode_constraint_circuit_115", gecode_constraint_circuit_115, 4);
YAP_UserCPredicate("gecode_constraint_circuit_109", gecode_constraint_circuit_109, 7);
YAP_UserCPredicate("gecode_constraint_circuit_112", gecode_constraint_circuit_112, 2);
YAP_UserCPredicate("gecode_constraint_circuit_113", gecode_constraint_circuit_113, 3);
YAP_UserCPredicate("gecode_constraint_circuit_114", gecode_constraint_circuit_114, 3);
YAP_UserCPredicate("gecode_constraint_clause_116", gecode_constraint_clause_116, 5);
YAP_UserCPredicate("gecode_constraint_clause_118", gecode_constraint_clause_118, 5);
YAP_UserCPredicate("gecode_constraint_clause_117", gecode_constraint_clause_117, 6);
YAP_UserCPredicate("gecode_constraint_clause_119", gecode_constraint_clause_119, 6);
YAP_UserCPredicate("gecode_constraint_count_120", gecode_constraint_count_120, 5);
YAP_UserCPredicate("gecode_constraint_count_122", gecode_constraint_count_122, 5);
YAP_UserCPredicate("gecode_constraint_count_125", gecode_constraint_count_125, 5);
YAP_UserCPredicate("gecode_constraint_count_129", gecode_constraint_count_129, 5);
YAP_UserCPredicate("gecode_constraint_count_130", gecode_constraint_count_130, 5);
YAP_UserCPredicate("gecode_constraint_count_132", gecode_constraint_count_132, 5);
YAP_UserCPredicate("gecode_constraint_count_135", gecode_constraint_count_135, 5);
YAP_UserCPredicate("gecode_constraint_count_138", gecode_constraint_count_138, 5);
YAP_UserCPredicate("gecode_constraint_count_140", gecode_constraint_count_140, 5);
YAP_UserCPredicate("gecode_constraint_count_142", gecode_constraint_count_142, 5);
YAP_UserCPredicate("gecode_constraint_count_144", gecode_constraint_count_144, 5);
YAP_UserCPredicate("gecode_constraint_count_121", gecode_constraint_count_121, 6);
YAP_UserCPredicate("gecode_constraint_count_123", gecode_constraint_count_123, 6);
YAP_UserCPredicate("gecode_constraint_count_131", gecode_constraint_count_131, 6);
YAP_UserCPredicate("gecode_constraint_count_133", gecode_constraint_count_133, 6);
YAP_UserCPredicate("gecode_constraint_count_139", gecode_constraint_count_139, 6);
YAP_UserCPredicate("gecode_constraint_count_141", gecode_constraint_count_141, 6);
YAP_UserCPredicate("gecode_constraint_count_143", gecode_constraint_count_143, 6);
YAP_UserCPredicate("gecode_constraint_count_145", gecode_constraint_count_145, 6);
YAP_UserCPredicate("gecode_constraint_count_124", gecode_constraint_count_124, 4);
YAP_UserCPredicate("gecode_constraint_count_127", gecode_constraint_count_127, 4);
YAP_UserCPredicate("gecode_constraint_count_128", gecode_constraint_count_128, 4);
YAP_UserCPredicate("gecode_constraint_count_134", gecode_constraint_count_134, 4);
YAP_UserCPredicate("gecode_constraint_count_137", gecode_constraint_count_137, 4);
YAP_UserCPredicate("gecode_constraint_count_126", gecode_constraint_count_126, 3);
YAP_UserCPredicate("gecode_constraint_count_136", gecode_constraint_count_136, 3);
YAP_UserCPredicate("gecode_constraint_cumulative_146", gecode_constraint_cumulative_146, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_149", gecode_constraint_cumulative_149, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_152", gecode_constraint_cumulative_152, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_156", gecode_constraint_cumulative_156, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_158", gecode_constraint_cumulative_158, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_161", gecode_constraint_cumulative_161, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_164", gecode_constraint_cumulative_164, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_168", gecode_constraint_cumulative_168, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_147", gecode_constraint_cumulative_147, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_150", gecode_constraint_cumulative_150, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_153", gecode_constraint_cumulative_153, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_154", gecode_constraint_cumulative_154, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_157", gecode_constraint_cumulative_157, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_159", gecode_constraint_cumulative_159, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_162", gecode_constraint_cumulative_162, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_165", gecode_constraint_cumulative_165, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_166", gecode_constraint_cumulative_166, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_169", gecode_constraint_cumulative_169, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_148", gecode_constraint_cumulative_148, 5);
YAP_UserCPredicate("gecode_constraint_cumulative_160", gecode_constraint_cumulative_160, 5);
YAP_UserCPredicate("gecode_constraint_cumulative_151", gecode_constraint_cumulative_151, 8);
YAP_UserCPredicate("gecode_constraint_cumulative_155", gecode_constraint_cumulative_155, 8);
YAP_UserCPredicate("gecode_constraint_cumulative_163", gecode_constraint_cumulative_163, 8);
YAP_UserCPredicate("gecode_constraint_cumulative_167", gecode_constraint_cumulative_167, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_170", gecode_constraint_cumulatives_170, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_172", gecode_constraint_cumulatives_172, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_174", gecode_constraint_cumulatives_174, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_176", gecode_constraint_cumulatives_176, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_178", gecode_constraint_cumulatives_178, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_180", gecode_constraint_cumulatives_180, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_182", gecode_constraint_cumulatives_182, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_184", gecode_constraint_cumulatives_184, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_171", gecode_constraint_cumulatives_171, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_173", gecode_constraint_cumulatives_173, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_175", gecode_constraint_cumulatives_175, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_177", gecode_constraint_cumulatives_177, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_179", gecode_constraint_cumulatives_179, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_181", gecode_constraint_cumulatives_181, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_183", gecode_constraint_cumulatives_183, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_185", gecode_constraint_cumulatives_185, 9);
YAP_UserCPredicate("gecode_constraint_distinct_186", gecode_constraint_distinct_186, 3);
YAP_UserCPredicate("gecode_constraint_distinct_188", gecode_constraint_distinct_188, 3);
YAP_UserCPredicate("gecode_constraint_distinct_190", gecode_constraint_distinct_190, 3);
YAP_UserCPredicate("gecode_constraint_distinct_193", gecode_constraint_distinct_193, 3);
YAP_UserCPredicate("gecode_constraint_distinct_187", gecode_constraint_distinct_187, 4);
YAP_UserCPredicate("gecode_constraint_distinct_189", gecode_constraint_distinct_189, 4);
YAP_UserCPredicate("gecode_constraint_distinct_191", gecode_constraint_distinct_191, 4);
YAP_UserCPredicate("gecode_constraint_distinct_192", gecode_constraint_distinct_192, 2);
YAP_UserCPredicate("gecode_constraint_div_194", gecode_constraint_div_194, 4);
YAP_UserCPredicate("gecode_constraint_div_195", gecode_constraint_div_195, 4);
YAP_UserCPredicate("gecode_constraint_div_196", gecode_constraint_div_196, 5);
YAP_UserCPredicate("gecode_constraint_divmod_197", gecode_constraint_divmod_197, 5);
YAP_UserCPredicate("gecode_constraint_divmod_198", gecode_constraint_divmod_198, 6);
YAP_UserCPredicate("gecode_constraint_dom_199", gecode_constraint_dom_199, 3);
YAP_UserCPredicate("gecode_constraint_dom_201", gecode_constraint_dom_201, 3);
YAP_UserCPredicate("gecode_constraint_dom_203", gecode_constraint_dom_203, 3);
YAP_UserCPredicate("gecode_constraint_dom_205", gecode_constraint_dom_205, 3);
YAP_UserCPredicate("gecode_constraint_dom_206", gecode_constraint_dom_206, 3);
YAP_UserCPredicate("gecode_constraint_dom_208", gecode_constraint_dom_208, 3);
YAP_UserCPredicate("gecode_constraint_dom_212", gecode_constraint_dom_212, 3);
YAP_UserCPredicate("gecode_constraint_dom_214", gecode_constraint_dom_214, 3);
YAP_UserCPredicate("gecode_constraint_dom_220", gecode_constraint_dom_220, 3);
YAP_UserCPredicate("gecode_constraint_dom_222", gecode_constraint_dom_222, 3);
YAP_UserCPredicate("gecode_constraint_dom_223", gecode_constraint_dom_223, 3);
YAP_UserCPredicate("gecode_constraint_dom_229", gecode_constraint_dom_229, 3);
YAP_UserCPredicate("gecode_constraint_dom_235", gecode_constraint_dom_235, 3);
YAP_UserCPredicate("gecode_constraint_dom_243", gecode_constraint_dom_243, 3);
YAP_UserCPredicate("gecode_constraint_dom_200", gecode_constraint_dom_200, 4);
YAP_UserCPredicate("gecode_constraint_dom_202", gecode_constraint_dom_202, 4);
YAP_UserCPredicate("gecode_constraint_dom_204", gecode_constraint_dom_204, 4);
YAP_UserCPredicate("gecode_constraint_dom_207", gecode_constraint_dom_207, 4);
YAP_UserCPredicate("gecode_constraint_dom_209", gecode_constraint_dom_209, 4);
YAP_UserCPredicate("gecode_constraint_dom_210", gecode_constraint_dom_210, 4);
YAP_UserCPredicate("gecode_constraint_dom_213", gecode_constraint_dom_213, 4);
YAP_UserCPredicate("gecode_constraint_dom_215", gecode_constraint_dom_215, 4);
YAP_UserCPredicate("gecode_constraint_dom_216", gecode_constraint_dom_216, 4);
YAP_UserCPredicate("gecode_constraint_dom_218", gecode_constraint_dom_218, 4);
YAP_UserCPredicate("gecode_constraint_dom_221", gecode_constraint_dom_221, 4);
YAP_UserCPredicate("gecode_constraint_dom_224", gecode_constraint_dom_224, 4);
YAP_UserCPredicate("gecode_constraint_dom_225", gecode_constraint_dom_225, 4);
YAP_UserCPredicate("gecode_constraint_dom_227", gecode_constraint_dom_227, 4);
YAP_UserCPredicate("gecode_constraint_dom_230", gecode_constraint_dom_230, 4);
YAP_UserCPredicate("gecode_constraint_dom_233", gecode_constraint_dom_233, 4);
YAP_UserCPredicate("gecode_constraint_dom_236", gecode_constraint_dom_236, 4);
YAP_UserCPredicate("gecode_constraint_dom_237", gecode_constraint_dom_237, 4);
YAP_UserCPredicate("gecode_constraint_dom_239", gecode_constraint_dom_239, 4);
YAP_UserCPredicate("gecode_constraint_dom_211", gecode_constraint_dom_211, 5);
YAP_UserCPredicate("gecode_constraint_dom_217", gecode_constraint_dom_217, 5);
YAP_UserCPredicate("gecode_constraint_dom_219", gecode_constraint_dom_219, 5);
YAP_UserCPredicate("gecode_constraint_dom_226", gecode_constraint_dom_226, 5);
YAP_UserCPredicate("gecode_constraint_dom_228", gecode_constraint_dom_228, 5);
YAP_UserCPredicate("gecode_constraint_dom_231", gecode_constraint_dom_231, 5);
YAP_UserCPredicate("gecode_constraint_dom_234", gecode_constraint_dom_234, 5);
YAP_UserCPredicate("gecode_constraint_dom_238", gecode_constraint_dom_238, 5);
YAP_UserCPredicate("gecode_constraint_dom_240", gecode_constraint_dom_240, 5);
YAP_UserCPredicate("gecode_constraint_dom_242", gecode_constraint_dom_242, 5);
YAP_UserCPredicate("gecode_constraint_dom_232", gecode_constraint_dom_232, 6);
YAP_UserCPredicate("gecode_constraint_dom_241", gecode_constraint_dom_241, 6);
YAP_UserCPredicate("gecode_constraint_element_244", gecode_constraint_element_244, 4);
YAP_UserCPredicate("gecode_constraint_element_246", gecode_constraint_element_246, 4);
YAP_UserCPredicate("gecode_constraint_element_250", gecode_constraint_element_250, 4);
YAP_UserCPredicate("gecode_constraint_element_254", gecode_constraint_element_254, 4);
YAP_UserCPredicate("gecode_constraint_element_256", gecode_constraint_element_256, 4);
YAP_UserCPredicate("gecode_constraint_element_258", gecode_constraint_element_258, 4);
YAP_UserCPredicate("gecode_constraint_element_264", gecode_constraint_element_264, 4);
YAP_UserCPredicate("gecode_constraint_element_245", gecode_constraint_element_245, 5);
YAP_UserCPredicate("gecode_constraint_element_247", gecode_constraint_element_247, 5);
YAP_UserCPredicate("gecode_constraint_element_251", gecode_constraint_element_251, 5);
YAP_UserCPredicate("gecode_constraint_element_255", gecode_constraint_element_255, 5);
YAP_UserCPredicate("gecode_constraint_element_257", gecode_constraint_element_257, 5);
YAP_UserCPredicate("gecode_constraint_element_259", gecode_constraint_element_259, 5);
YAP_UserCPredicate("gecode_constraint_element_265", gecode_constraint_element_265, 5);
YAP_UserCPredicate("gecode_constraint_element_248", gecode_constraint_element_248, 7);
YAP_UserCPredicate("gecode_constraint_element_252", gecode_constraint_element_252, 7);
YAP_UserCPredicate("gecode_constraint_element_260", gecode_constraint_element_260, 7);
YAP_UserCPredicate("gecode_constraint_element_262", gecode_constraint_element_262, 7);
YAP_UserCPredicate("gecode_constraint_element_249", gecode_constraint_element_249, 8);
YAP_UserCPredicate("gecode_constraint_element_253", gecode_constraint_element_253, 8);
YAP_UserCPredicate("gecode_constraint_element_261", gecode_constraint_element_261, 8);
YAP_UserCPredicate("gecode_constraint_element_263", gecode_constraint_element_263, 8);
YAP_UserCPredicate("gecode_constraint_extensional_266", gecode_constraint_extensional_266, 3);
YAP_UserCPredicate("gecode_constraint_extensional_268", gecode_constraint_extensional_268, 3);
YAP_UserCPredicate("gecode_constraint_extensional_270", gecode_constraint_extensional_270, 3);
YAP_UserCPredicate("gecode_constraint_extensional_272", gecode_constraint_extensional_272, 3);
YAP_UserCPredicate("gecode_constraint_extensional_267", gecode_constraint_extensional_267, 4);
YAP_UserCPredicate("gecode_constraint_extensional_269", gecode_constraint_extensional_269, 4);
YAP_UserCPredicate("gecode_constraint_extensional_271", gecode_constraint_extensional_271, 4);
YAP_UserCPredicate("gecode_constraint_extensional_273", gecode_constraint_extensional_273, 4);
YAP_UserCPredicate("gecode_constraint_ite_274", gecode_constraint_ite_274, 5);
YAP_UserCPredicate("gecode_constraint_ite_276", gecode_constraint_ite_276, 5);
YAP_UserCPredicate("gecode_constraint_ite_277", gecode_constraint_ite_277, 5);
YAP_UserCPredicate("gecode_constraint_ite_279", gecode_constraint_ite_279, 5);
YAP_UserCPredicate("gecode_constraint_ite_275", gecode_constraint_ite_275, 6);
YAP_UserCPredicate("gecode_constraint_ite_278", gecode_constraint_ite_278, 6);
YAP_UserCPredicate("gecode_constraint_linear_280", gecode_constraint_linear_280, 4);
YAP_UserCPredicate("gecode_constraint_linear_284", gecode_constraint_linear_284, 4);
YAP_UserCPredicate("gecode_constraint_linear_292", gecode_constraint_linear_292, 4);
YAP_UserCPredicate("gecode_constraint_linear_294", gecode_constraint_linear_294, 4);
YAP_UserCPredicate("gecode_constraint_linear_312", gecode_constraint_linear_312, 4);
YAP_UserCPredicate("gecode_constraint_linear_316", gecode_constraint_linear_316, 4);
YAP_UserCPredicate("gecode_constraint_linear_281", gecode_constraint_linear_281, 5);
YAP_UserCPredicate("gecode_constraint_linear_282", gecode_constraint_linear_282, 5);
YAP_UserCPredicate("gecode_constraint_linear_285", gecode_constraint_linear_285, 5);
YAP_UserCPredicate("gecode_constraint_linear_286", gecode_constraint_linear_286, 5);
YAP_UserCPredicate("gecode_constraint_linear_288", gecode_constraint_linear_288, 5);
YAP_UserCPredicate("gecode_constraint_linear_290", gecode_constraint_linear_290, 5);
YAP_UserCPredicate("gecode_constraint_linear_293", gecode_constraint_linear_293, 5);
YAP_UserCPredicate("gecode_constraint_linear_295", gecode_constraint_linear_295, 5);
YAP_UserCPredicate("gecode_constraint_linear_296", gecode_constraint_linear_296, 5);
YAP_UserCPredicate("gecode_constraint_linear_300", gecode_constraint_linear_300, 5);
YAP_UserCPredicate("gecode_constraint_linear_304", gecode_constraint_linear_304, 5);
YAP_UserCPredicate("gecode_constraint_linear_308", gecode_constraint_linear_308, 5);
YAP_UserCPredicate("gecode_constraint_linear_313", gecode_constraint_linear_313, 5);
YAP_UserCPredicate("gecode_constraint_linear_314", gecode_constraint_linear_314, 5);
YAP_UserCPredicate("gecode_constraint_linear_317", gecode_constraint_linear_317, 5);
YAP_UserCPredicate("gecode_constraint_linear_318", gecode_constraint_linear_318, 5);
YAP_UserCPredicate("gecode_constraint_linear_283", gecode_constraint_linear_283, 6);
YAP_UserCPredicate("gecode_constraint_linear_287", gecode_constraint_linear_287, 6);
YAP_UserCPredicate("gecode_constraint_linear_289", gecode_constraint_linear_289, 6);
YAP_UserCPredicate("gecode_constraint_linear_291", gecode_constraint_linear_291, 6);
YAP_UserCPredicate("gecode_constraint_linear_297", gecode_constraint_linear_297, 6);
YAP_UserCPredicate("gecode_constraint_linear_298", gecode_constraint_linear_298, 6);
YAP_UserCPredicate("gecode_constraint_linear_301", gecode_constraint_linear_301, 6);
YAP_UserCPredicate("gecode_constraint_linear_302", gecode_constraint_linear_302, 6);
YAP_UserCPredicate("gecode_constraint_linear_305", gecode_constraint_linear_305, 6);
YAP_UserCPredicate("gecode_constraint_linear_306", gecode_constraint_linear_306, 6);
YAP_UserCPredicate("gecode_constraint_linear_309", gecode_constraint_linear_309, 6);
YAP_UserCPredicate("gecode_constraint_linear_310", gecode_constraint_linear_310, 6);
YAP_UserCPredicate("gecode_constraint_linear_315", gecode_constraint_linear_315, 6);
YAP_UserCPredicate("gecode_constraint_linear_319", gecode_constraint_linear_319, 6);
YAP_UserCPredicate("gecode_constraint_linear_299", gecode_constraint_linear_299, 7);
YAP_UserCPredicate("gecode_constraint_linear_303", gecode_constraint_linear_303, 7);
YAP_UserCPredicate("gecode_constraint_linear_307", gecode_constraint_linear_307, 7);
YAP_UserCPredicate("gecode_constraint_linear_311", gecode_constraint_linear_311, 7);
YAP_UserCPredicate("gecode_constraint_max_320", gecode_constraint_max_320, 3);
YAP_UserCPredicate("gecode_constraint_max_321", gecode_constraint_max_321, 3);
YAP_UserCPredicate("gecode_constraint_max_322", gecode_constraint_max_322, 4);
YAP_UserCPredicate("gecode_constraint_max_323", gecode_constraint_max_323, 4);
YAP_UserCPredicate("gecode_constraint_max_324", gecode_constraint_max_324, 4);
YAP_UserCPredicate("gecode_constraint_max_325", gecode_constraint_max_325, 5);
YAP_UserCPredicate("gecode_constraint_member_326", gecode_constraint_member_326, 3);
YAP_UserCPredicate("gecode_constraint_member_330", gecode_constraint_member_330, 3);
YAP_UserCPredicate("gecode_constraint_member_327", gecode_constraint_member_327, 4);
YAP_UserCPredicate("gecode_constraint_member_328", gecode_constraint_member_328, 4);
YAP_UserCPredicate("gecode_constraint_member_331", gecode_constraint_member_331, 4);
YAP_UserCPredicate("gecode_constraint_member_332", gecode_constraint_member_332, 4);
YAP_UserCPredicate("gecode_constraint_member_329", gecode_constraint_member_329, 5);
YAP_UserCPredicate("gecode_constraint_member_333", gecode_constraint_member_333, 5);
YAP_UserCPredicate("gecode_constraint_min_334", gecode_constraint_min_334, 3);
YAP_UserCPredicate("gecode_constraint_min_335", gecode_constraint_min_335, 3);
YAP_UserCPredicate("gecode_constraint_min_336", gecode_constraint_min_336, 4);
YAP_UserCPredicate("gecode_constraint_min_337", gecode_constraint_min_337, 4);
YAP_UserCPredicate("gecode_constraint_min_338", gecode_constraint_min_338, 4);
YAP_UserCPredicate("gecode_constraint_min_339", gecode_constraint_min_339, 5);
YAP_UserCPredicate("gecode_constraint_mod_340", gecode_constraint_mod_340, 4);
YAP_UserCPredicate("gecode_constraint_mod_341", gecode_constraint_mod_341, 5);
YAP_UserCPredicate("gecode_constraint_mult_342", gecode_constraint_mult_342, 4);
YAP_UserCPredicate("gecode_constraint_mult_343", gecode_constraint_mult_343, 4);
YAP_UserCPredicate("gecode_constraint_mult_344", gecode_constraint_mult_344, 5);
YAP_UserCPredicate("gecode_constraint_nooverlap_345", gecode_constraint_nooverlap_345, 6);
YAP_UserCPredicate("gecode_constraint_nooverlap_348", gecode_constraint_nooverlap_348, 6);
YAP_UserCPredicate("gecode_constraint_nooverlap_346", gecode_constraint_nooverlap_346, 7);
YAP_UserCPredicate("gecode_constraint_nooverlap_351", gecode_constraint_nooverlap_351, 7);
YAP_UserCPredicate("gecode_constraint_nooverlap_347", gecode_constraint_nooverlap_347, 5);
YAP_UserCPredicate("gecode_constraint_nooverlap_349", gecode_constraint_nooverlap_349, 8);
YAP_UserCPredicate("gecode_constraint_nooverlap_352", gecode_constraint_nooverlap_352, 8);
YAP_UserCPredicate("gecode_constraint_nooverlap_350", gecode_constraint_nooverlap_350, 9);
YAP_UserCPredicate("gecode_constraint_nroot_353", gecode_constraint_nroot_353, 4);
YAP_UserCPredicate("gecode_constraint_nroot_354", gecode_constraint_nroot_354, 4);
YAP_UserCPredicate("gecode_constraint_nroot_355", gecode_constraint_nroot_355, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_356", gecode_constraint_nvalues_356, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_358", gecode_constraint_nvalues_358, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_360", gecode_constraint_nvalues_360, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_362", gecode_constraint_nvalues_362, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_357", gecode_constraint_nvalues_357, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_359", gecode_constraint_nvalues_359, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_361", gecode_constraint_nvalues_361, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_363", gecode_constraint_nvalues_363, 5);
YAP_UserCPredicate("gecode_constraint_path_364", gecode_constraint_path_364, 7);
YAP_UserCPredicate("gecode_constraint_path_367", gecode_constraint_path_367, 7);
YAP_UserCPredicate("gecode_constraint_path_370", gecode_constraint_path_370, 7);
YAP_UserCPredicate("gecode_constraint_path_365", gecode_constraint_path_365, 8);
YAP_UserCPredicate("gecode_constraint_path_368", gecode_constraint_path_368, 8);
YAP_UserCPredicate("gecode_constraint_path_371", gecode_constraint_path_371, 8);
YAP_UserCPredicate("gecode_constraint_path_366", gecode_constraint_path_366, 6);
YAP_UserCPredicate("gecode_constraint_path_375", gecode_constraint_path_375, 6);
YAP_UserCPredicate("gecode_constraint_path_369", gecode_constraint_path_369, 9);
YAP_UserCPredicate("gecode_constraint_path_372", gecode_constraint_path_372, 4);
YAP_UserCPredicate("gecode_constraint_path_373", gecode_constraint_path_373, 5);
YAP_UserCPredicate("gecode_constraint_path_374", gecode_constraint_path_374, 5);
YAP_UserCPredicate("gecode_constraint_pow_376", gecode_constraint_pow_376, 4);
YAP_UserCPredicate("gecode_constraint_pow_377", gecode_constraint_pow_377, 4);
YAP_UserCPredicate("gecode_constraint_pow_378", gecode_constraint_pow_378, 5);
YAP_UserCPredicate("gecode_constraint_precede_379", gecode_constraint_precede_379, 3);
YAP_UserCPredicate("gecode_constraint_precede_380", gecode_constraint_precede_380, 4);
YAP_UserCPredicate("gecode_constraint_precede_381", gecode_constraint_precede_381, 4);
YAP_UserCPredicate("gecode_constraint_precede_382", gecode_constraint_precede_382, 5);
YAP_UserCPredicate("gecode_constraint_relax_383", gecode_constraint_relax_383, 5);
YAP_UserCPredicate("gecode_constraint_rel_384", gecode_constraint_rel_384, 4);
YAP_UserCPredicate("gecode_constraint_rel_386", gecode_constraint_rel_386, 4);
YAP_UserCPredicate("gecode_constraint_rel_392", gecode_constraint_rel_392, 4);
YAP_UserCPredicate("gecode_constraint_rel_396", gecode_constraint_rel_396, 4);
YAP_UserCPredicate("gecode_constraint_rel_400", gecode_constraint_rel_400, 4);
YAP_UserCPredicate("gecode_constraint_rel_402", gecode_constraint_rel_402, 4);
YAP_UserCPredicate("gecode_constraint_rel_404", gecode_constraint_rel_404, 4);
YAP_UserCPredicate("gecode_constraint_rel_406", gecode_constraint_rel_406, 4);
YAP_UserCPredicate("gecode_constraint_rel_409", gecode_constraint_rel_409, 4);
YAP_UserCPredicate("gecode_constraint_rel_410", gecode_constraint_rel_410, 4);
YAP_UserCPredicate("gecode_constraint_rel_411", gecode_constraint_rel_411, 4);
YAP_UserCPredicate("gecode_constraint_rel_412", gecode_constraint_rel_412, 4);
YAP_UserCPredicate("gecode_constraint_rel_414", gecode_constraint_rel_414, 4);
YAP_UserCPredicate("gecode_constraint_rel_416", gecode_constraint_rel_416, 4);
YAP_UserCPredicate("gecode_constraint_rel_418", gecode_constraint_rel_418, 4);
YAP_UserCPredicate("gecode_constraint_rel_420", gecode_constraint_rel_420, 4);
YAP_UserCPredicate("gecode_constraint_rel_423", gecode_constraint_rel_423, 4);
YAP_UserCPredicate("gecode_constraint_rel_424", gecode_constraint_rel_424, 4);
YAP_UserCPredicate("gecode_constraint_rel_426", gecode_constraint_rel_426, 4);
YAP_UserCPredicate("gecode_constraint_rel_428", gecode_constraint_rel_428, 4);
YAP_UserCPredicate("gecode_constraint_rel_430", gecode_constraint_rel_430, 4);
YAP_UserCPredicate("gecode_constraint_rel_434", gecode_constraint_rel_434, 4);
YAP_UserCPredicate("gecode_constraint_rel_438", gecode_constraint_rel_438, 4);
YAP_UserCPredicate("gecode_constraint_rel_440", gecode_constraint_rel_440, 4);
YAP_UserCPredicate("gecode_constraint_rel_442", gecode_constraint_rel_442, 4);
YAP_UserCPredicate("gecode_constraint_rel_444", gecode_constraint_rel_444, 4);
YAP_UserCPredicate("gecode_constraint_rel_385", gecode_constraint_rel_385, 5);
YAP_UserCPredicate("gecode_constraint_rel_387", gecode_constraint_rel_387, 5);
YAP_UserCPredicate("gecode_constraint_rel_388", gecode_constraint_rel_388, 5);
YAP_UserCPredicate("gecode_constraint_rel_390", gecode_constraint_rel_390, 5);
YAP_UserCPredicate("gecode_constraint_rel_393", gecode_constraint_rel_393, 5);
YAP_UserCPredicate("gecode_constraint_rel_394", gecode_constraint_rel_394, 5);
YAP_UserCPredicate("gecode_constraint_rel_397", gecode_constraint_rel_397, 5);
YAP_UserCPredicate("gecode_constraint_rel_398", gecode_constraint_rel_398, 5);
YAP_UserCPredicate("gecode_constraint_rel_401", gecode_constraint_rel_401, 5);
YAP_UserCPredicate("gecode_constraint_rel_403", gecode_constraint_rel_403, 5);
YAP_UserCPredicate("gecode_constraint_rel_405", gecode_constraint_rel_405, 5);
YAP_UserCPredicate("gecode_constraint_rel_407", gecode_constraint_rel_407, 5);
YAP_UserCPredicate("gecode_constraint_rel_413", gecode_constraint_rel_413, 5);
YAP_UserCPredicate("gecode_constraint_rel_415", gecode_constraint_rel_415, 5);
YAP_UserCPredicate("gecode_constraint_rel_417", gecode_constraint_rel_417, 5);
YAP_UserCPredicate("gecode_constraint_rel_419", gecode_constraint_rel_419, 5);
YAP_UserCPredicate("gecode_constraint_rel_421", gecode_constraint_rel_421, 5);
YAP_UserCPredicate("gecode_constraint_rel_425", gecode_constraint_rel_425, 5);
YAP_UserCPredicate("gecode_constraint_rel_427", gecode_constraint_rel_427, 5);
YAP_UserCPredicate("gecode_constraint_rel_429", gecode_constraint_rel_429, 5);
YAP_UserCPredicate("gecode_constraint_rel_431", gecode_constraint_rel_431, 5);
YAP_UserCPredicate("gecode_constraint_rel_432", gecode_constraint_rel_432, 5);
YAP_UserCPredicate("gecode_constraint_rel_435", gecode_constraint_rel_435, 5);
YAP_UserCPredicate("gecode_constraint_rel_436", gecode_constraint_rel_436, 5);
YAP_UserCPredicate("gecode_constraint_rel_439", gecode_constraint_rel_439, 5);
YAP_UserCPredicate("gecode_constraint_rel_441", gecode_constraint_rel_441, 5);
YAP_UserCPredicate("gecode_constraint_rel_443", gecode_constraint_rel_443, 5);
YAP_UserCPredicate("gecode_constraint_rel_445", gecode_constraint_rel_445, 5);
YAP_UserCPredicate("gecode_constraint_rel_389", gecode_constraint_rel_389, 6);
YAP_UserCPredicate("gecode_constraint_rel_391", gecode_constraint_rel_391, 6);
YAP_UserCPredicate("gecode_constraint_rel_395", gecode_constraint_rel_395, 6);
YAP_UserCPredicate("gecode_constraint_rel_399", gecode_constraint_rel_399, 6);
YAP_UserCPredicate("gecode_constraint_rel_433", gecode_constraint_rel_433, 6);
YAP_UserCPredicate("gecode_constraint_rel_437", gecode_constraint_rel_437, 6);
YAP_UserCPredicate("gecode_constraint_rel_408", gecode_constraint_rel_408, 3);
YAP_UserCPredicate("gecode_constraint_rel_422", gecode_constraint_rel_422, 3);
YAP_UserCPredicate("gecode_constraint_sequence_446", gecode_constraint_sequence_446, 6);
YAP_UserCPredicate("gecode_constraint_sequence_448", gecode_constraint_sequence_448, 6);
YAP_UserCPredicate("gecode_constraint_sequence_447", gecode_constraint_sequence_447, 7);
YAP_UserCPredicate("gecode_constraint_sequence_449", gecode_constraint_sequence_449, 7);
YAP_UserCPredicate("gecode_constraint_sorted_450", gecode_constraint_sorted_450, 4);
YAP_UserCPredicate("gecode_constraint_sorted_453", gecode_constraint_sorted_453, 4);
YAP_UserCPredicate("gecode_constraint_sorted_451", gecode_constraint_sorted_451, 5);
YAP_UserCPredicate("gecode_constraint_sorted_452", gecode_constraint_sorted_452, 3);
YAP_UserCPredicate("gecode_constraint_sqr_454", gecode_constraint_sqr_454, 3);
YAP_UserCPredicate("gecode_constraint_sqr_455", gecode_constraint_sqr_455, 3);
YAP_UserCPredicate("gecode_constraint_sqr_456", gecode_constraint_sqr_456, 4);
YAP_UserCPredicate("gecode_constraint_sqrt_457", gecode_constraint_sqrt_457, 3);
YAP_UserCPredicate("gecode_constraint_sqrt_458", gecode_constraint_sqrt_458, 3);
YAP_UserCPredicate("gecode_constraint_sqrt_459", gecode_constraint_sqrt_459, 4);
YAP_UserCPredicate("gecode_constraint_unary_460", gecode_constraint_unary_460, 4);
YAP_UserCPredicate("gecode_constraint_unary_463", gecode_constraint_unary_463, 4);
YAP_UserCPredicate("gecode_constraint_unary_466", gecode_constraint_unary_466, 4);
YAP_UserCPredicate("gecode_constraint_unary_470", gecode_constraint_unary_470, 4);
YAP_UserCPredicate("gecode_constraint_unary_461", gecode_constraint_unary_461, 5);
YAP_UserCPredicate("gecode_constraint_unary_464", gecode_constraint_unary_464, 5);
YAP_UserCPredicate("gecode_constraint_unary_467", gecode_constraint_unary_467, 5);
YAP_UserCPredicate("gecode_constraint_unary_468", gecode_constraint_unary_468, 5);
YAP_UserCPredicate("gecode_constraint_unary_471", gecode_constraint_unary_471, 5);
YAP_UserCPredicate("gecode_constraint_unary_462", gecode_constraint_unary_462, 3);
YAP_UserCPredicate("gecode_constraint_unary_465", gecode_constraint_unary_465, 6);
YAP_UserCPredicate("gecode_constraint_unary_469", gecode_constraint_unary_469, 6);
YAP_UserCPredicate("gecode_constraint_unshare_472", gecode_constraint_unshare_472, 2);
YAP_UserCPredicate("gecode_constraint_unshare_474", gecode_constraint_unshare_474, 2);
YAP_UserCPredicate("gecode_constraint_unshare_473", gecode_constraint_unshare_473, 3);
YAP_UserCPredicate("gecode_constraint_unshare_475", gecode_constraint_unshare_475, 3);
YAP_UserCPredicate("gecode_constraint_when_476", gecode_constraint_when_476, 3);
YAP_UserCPredicate("gecode_constraint_when_477", gecode_constraint_when_477, 4);
YAP_UserCPredicate("gecode_constraint_when_478", gecode_constraint_when_478, 4);
YAP_UserCPredicate("gecode_constraint_when_479", gecode_constraint_when_479, 5);

View File

@ -1,193 +0,0 @@
//@{
/** @brief Prolog to Python library
*
*
* Please look at python.pl for more information, and to real.pl and real.c
* for related work.
*/
#ifdef _XOPEN_SOURCE
#undef _XOPEN_SOURCE // python does its own thing
#endif
#include <Python.h>
#include <SWI-Prolog.h>
#ifdef HAVE_STAT
#undef HAVE_STATa
#endif
#include <assert.h>
#include <string.h>
#define EXTRA_MESSSAGES 1
#ifndef PYTHON_H
#define PYTHON_H 1
PyObject *find_obj(PyObject *ob, term_t lhs, bool eval);
#if DEBUG_MEMORY
#define DebugPrintf(s, op) fprintf(stderr, "%s:%d: " s, __FILE__, __LINE__, op)
#else
#define DebugPrintf(s, op)
#endif
/**
* @brief A module is store as an objet plus a list of paths.
*/
#define PY_MAX_MODLEN 16
typedef struct s_mod_t {
PyObject *mod;
int length;
YAP_Term names[PY_MAX_MODLEN];
} Py_mod;
extern X_API YAP_Term pythonToYAP(PyObject *pVal);
extern X_API PyObject *yap_to_python(YAP_Term t, bool eval, PyObject *o);
typedef YAP_Arity arity_t;
extern atom_t ATOM_true, ATOM_false, ATOM_colon, ATOM_dot, ATOM_none, ATOM_t,
ATOM_comma, ATOM_builtin, ATOM_V, ATOM_A, ATOM_self;
extern functor_t FUNCTOR_dollar1, FUNCTOR_abs1, FUNCTOR_all1, FUNCTOR_any1,
FUNCTOR_bin1, FUNCTOR_brackets1, FUNCTOR_comma2, FUNCTOR_dir1,
FUNCTOR_float1, FUNCTOR_int1, FUNCTOR_iter1, FUNCTOR_iter2, FUNCTOR_long1,
FUNCTOR_len1, FUNCTOR_curly1, FUNCTOR_ord1, FUNCTOR_range1, FUNCTOR_range2,
FUNCTOR_range3, FUNCTOR_sum1, FUNCTOR_pointer1, FUNCTOR_complex2,
FUNCTOR_plus2, FUNCTOR_sub2, FUNCTOR_mul2, FUNCTOR_div2, FUNCTOR_hat2,
FUNCTOR_colon2, FUNCTOR_comma2, FUNCTOR_equal2, FUNCTOR_sqbrackets2,
FUNCTOR_dot2;
extern X_API PyObject *py_Main;
extern X_API PyObject *py_Builtin;
extern X_API PyObject *py_Yapex;
extern X_API PyObject *py_Local;
extern X_API PyObject *py_Global;
extern X_API PyObject *py_Context;
extern PyObject *py_F2P;
extern PyObject *py_Sys;
extern PyObject *py_ModDict;
extern bool python_in_python;
extern bool python_release_GIL(term_t state);
extern term_t python_acquire_GIL(void);
static inline Py_ssize_t get_p_int(PyObject *o, Py_ssize_t def) {
if (o == NULL)
return def;
if (PyLong_Check(o)) {
return PyLong_AsLong(o);
#if PY_MAJOR_VERSION < 3
} else if (PyInt_Check(o)) {
return PyInt_AsLong(o);
#endif
}
return def;
}
static inline foreign_t address_to_term(PyObject *pVal, term_t t) {
term_t to = PL_new_term_ref(), t1 = PL_new_term_ref();
PL_put_pointer(t1, (void *)pVal);
PL_cons_functor(to, FUNCTOR_pointer1, t1);
Py_INCREF(pVal);
foreign_t rc = PL_unify(t, to);
PL_reset_term_refs(to);
return rc;
}
static inline int proper_ascii_string(const char *s) {
unsigned char c;
while ((c = *s++)) {
if (c > 127)
return FALSE;
}
return TRUE;
}
static inline PyObject *atom_to_python_string(term_t t) {
// Yap_DebugPlWrite(YAP_GetFromSlot(t)); fprintf(stderr, " here I
// am\n");
char *s = NULL;
if (!PL_get_atom_chars(t, &s))
return NULL;
/* return __main__,s */
#if PY_MAJOR_VERSION < 3
if (proper_ascii_string(s)) {
return PyString_FromStringAndSize(s, strlen(s));
} else
#endif
{
PyObject *pobj = PyUnicode_DecodeUTF8(s, strlen(s), NULL);
// fprintf(stderr, "%s\n", s);
return pobj;
}
}
#define CHECK_CALL(rc, t, call) \
PyErr_Clear();\
rc = call; \
if (rc == NULL || PyErr_Occurred()) {\
YE(t,__LINE__,__FILE__,__FUNCTION__);\
PyErr_Print(); PyErr_Clear();\
}
#define CHECKNULL(t,rc) (rc != NULL ? rc : YE(t,__LINE__,__FILE__,__FUNCTION__) )
#define AOK(rc, err) { if (!rc) YEM( #rc ,__LINE__,__FILE__,__FUNCTION__); }
extern PyObject *YE(term_t t, int line, const char *file, const char *code);
extern void YEM( const char *ex, int line, const char *file, const char *code);
extern void pyErrorHandler__(int line, const char *file, const char *code);
#define pyErrorHandler() \
{ \
if (PyErr_Occurred()) { \
pyErrorHandler__(__LINE__, __FILE__, __FUNCTION__); \
} \
}
#define pyErrorAndReturn(x, y) \
{ \
if (PyErr_Occurred()) { \
pyErrorHandler__(__LINE__, __FILE__, __FUNCTION__); \
return (x); \
} else { \
return (x); \
} \
}
// #define pyErrorAndReturn( x, y ) return x
extern PyObject *compound_to_pyeval(term_t t, PyObject *context);
extern PyObject *compound_to_pytree(term_t t, PyObject *context);
extern PyObject *term_to_python(term_t t, bool eval, PyObject *contextxs);
extern PyObject *term_to_nametuple(const char *s, int arity, term_t t);
extern foreign_t python_to_term(PyObject *pVal, term_t t);
extern bool python_assign(term_t t, PyObject *exp, PyObject *context);
extern foreign_t assign_to_symbol(term_t t, PyObject *e);
extern bool python_asign(term_t t, PyObject *exp, PyObject *context);
extern foreign_t python_builtin(term_t out);
extern int lookupPyModule(Py_mod *q);
extern PyObject *lookupPySymbol(const char *s, PyObject *q, PyObject **d);
extern install_t install_pypreds(void);
extern install_t install_pl2pl(void);
X_API extern bool init_python(void);
extern bool do_init_python(void);
extern PyObject PyInit_yap(void);
extern PyObject *PythonLookup(const char *s, PyObject *o);
extern PyObject *PythonLookupSpecial(const char *s);
#endif