diff --git a/C/absmi.c b/C/absmi.c index 62ce2224d..3b7b37da7 100644 --- a/C/absmi.c +++ b/C/absmi.c @@ -10,8 +10,11 @@ * * * File: absmi.c * * comments: Portable abstract machine interpreter * -* Last rev: $Date: 2008-02-12 17:03:50 $,$Author: vsc $ * +* Last rev: $Date: 2008-03-25 16:45:52 $,$Author: vsc $ * * $Log: not supported by cvs2svn $ +* Revision 1.235 2008/02/12 17:03:50 vsc +* SWI-portability changes +* * Revision 1.234 2008/01/27 11:01:06 vsc * make thread code more stable * @@ -2147,211 +2150,212 @@ Yap_absmi(int inp) /* cut */ Op(cut, e); PREG = NEXTOP(PREG, e); - BEGD(d0); - /* assume cut is always in stack */ - d0 = YREG[E_CB]; -#ifdef CUT_C { - if (SHOULD_CUT_UP_TO(B,(choiceptr) d0)) + choiceptr d0; + /* assume cut is always in stack */ + d0 = (choiceptr)YREG[E_CB]; +#ifdef CUT_C + { + if (SHOULD_CUT_UP_TO(B,d0)) { while (POP_CHOICE_POINT(d0)) { POP_EXECUTE(); } } - } + } #endif /* CUT_C */ #ifdef YAPOR - CUT_prune_to((choiceptr) d0); + CUT_prune_to(d0); #endif /* YAPOR */ - if (SHOULD_CUT_UP_TO(B,(choiceptr) d0)) { - /* cut ! */ - while (B->cp_b < (choiceptr)d0) { - B = B->cp_b; - } + if (SHOULD_CUT_UP_TO(B,d0)) { + /* cut ! */ + while (B->cp_b < d0) { + B = B->cp_b; + } #ifdef TABLING - abolish_incomplete_subgoals(B); + abolish_incomplete_subgoals(B); #endif /* TABLING */ - trim_trail: - HBREG = PROTECT_FROZEN_H(B->cp_b); + trim_trail: + HBREG = PROTECT_FROZEN_H(B->cp_b); #ifdef FROZEN_STACKS - { - tr_fr_ptr pt0, pt1, pbase; + { + tr_fr_ptr pt0, pt1, pbase; - pbase = B->cp_tr; - pt0 = pt1 = TR - 1; - while (pt1 >= pbase) { - BEGD(d1); - d1 = TrailTerm(pt1); - if (IsVarTerm(d1)) { - if (d1 < (CELL)HBREG || d1 > Unsigned(B->cp_b)) { - TrailTerm(pt0) = d1; - TrailVal(pt0) = TrailVal(pt1); - pt0--; - } - pt1--; - } else if (IsPairTerm(d1)) { - CELL *pt = RepPair(d1); -#ifdef LIMIT_TABLING - if ((ADDR) pt == Yap_TrailBase) { - sg_fr_ptr sg_fr = (sg_fr_ptr) TrailVal(pt1); - SgFr_state(sg_fr)--; /* complete_in_use --> complete : compiled_in_use --> compiled */ - insert_into_global_sg_fr_list(sg_fr); - } else -#endif /* LIMIT_TABLING */ - if ((ADDR) pt >= Yap_TrailBase) { - /* skip, this is a problem because we lose information, - namely active references */ - pt1 = (tr_fr_ptr)pt; - } else if (IN_BETWEEN(Yap_GlobalBase, pt, H0)) { - CELL val = Deref(*pt); - if (IsVarTerm(val)) { - Bind(pt, MkAtomTerm(AtomCut)); - Yap_WakeUp(pt); + pbase = B->cp_tr; + pt0 = pt1 = TR - 1; + while (pt1 >= pbase) { + BEGD(d1); + d1 = TrailTerm(pt1); + if (IsVarTerm(d1)) { + if (d1 < (CELL)HBREG || d1 > Unsigned(B->cp_b)) { + TrailTerm(pt0) = d1; + TrailVal(pt0) = TrailVal(pt1); + pt0--; } pt1--; - } else if ((*pt & (LogUpdMask|IndexMask)) == (LogUpdMask|IndexMask)) { - LogUpdIndex *cl = ClauseFlagsToLogUpdIndex(pt); - int erase; - PredEntry *ap = cl->ClPred; + } else if (IsPairTerm(d1)) { + CELL *pt = RepPair(d1); +#ifdef LIMIT_TABLING + if ((ADDR) pt == Yap_TrailBase) { + sg_fr_ptr sg_fr = (sg_fr_ptr) TrailVal(pt1); + SgFr_state(sg_fr)--; /* complete_in_use --> complete : compiled_in_use --> compiled */ + insert_into_global_sg_fr_list(sg_fr); + } else +#endif /* LIMIT_TABLING */ + if ((ADDR) pt >= Yap_TrailBase) { + /* skip, this is a problem because we lose information, + namely active references */ + pt1 = (tr_fr_ptr)pt; + } else if (IN_BETWEEN(Yap_GlobalBase, pt, H0)) { + CELL val = Deref(*pt); + if (IsVarTerm(val)) { + Bind(pt, MkAtomTerm(AtomCut)); + Yap_WakeUp(pt); + } + pt1--; + } else if ((*pt & (LogUpdMask|IndexMask)) == (LogUpdMask|IndexMask)) { + LogUpdIndex *cl = ClauseFlagsToLogUpdIndex(pt); + int erase; + PredEntry *ap = cl->ClPred; - LOCK(ap->PELock); - DEC_CLREF_COUNT(cl); - cl->ClFlags &= ~InUseMask; - erase = (cl->ClFlags & (ErasedMask|DirtyMask)) && !(cl->ClRefCount); - if (erase) { - /* at this point, we are the only ones accessing the clause, - hence we don't need to have a lock it */ - saveregs(); - if (cl->ClFlags & ErasedMask) - Yap_ErLogUpdIndex(cl); - else - Yap_CleanUpIndex(cl); - setregs(); + LOCK(ap->PELock); + DEC_CLREF_COUNT(cl); + cl->ClFlags &= ~InUseMask; + erase = (cl->ClFlags & (ErasedMask|DirtyMask)) && !(cl->ClRefCount); + if (erase) { + /* at this point, we are the only ones accessing the clause, + hence we don't need to have a lock it */ + saveregs(); + if (cl->ClFlags & ErasedMask) + Yap_ErLogUpdIndex(cl); + else + Yap_CleanUpIndex(cl); + setregs(); + } + UNLOCK(ap->PELock); + } else { + TrailTerm(pt0) = d1; + TrailVal(pt0) = TrailVal(pt1); + pt0--; + } + pt1--; + } else if (IsApplTerm(d1)) { + if (IN_BETWEEN(HBREG,RepAppl(d1),B->cp_b)) { + /* deterministic binding to multi-assignment variable */ + pt1 -= 2; + } else { + TrailVal(pt0) = TrailVal(pt1); + TrailTerm(pt0) = d1; + TrailVal(pt0-1) = TrailVal(pt1-1); + TrailTerm(pt0-1) = TrailTerm(pt1-1); + pt0 -= 2; + pt1 -= 2; } - UNLOCK(ap->PELock); } else { TrailTerm(pt0) = d1; TrailVal(pt0) = TrailVal(pt1); pt0--; + pt1--; } - pt1--; - } else if (IsApplTerm(d1)) { - if (IN_BETWEEN(HBREG,RepAppl(d1),B->cp_b)) { - /* deterministic binding to multi-assignment variable */ - pt1 -= 2; - } else { - TrailVal(pt0) = TrailVal(pt1); - TrailTerm(pt0) = d1; - TrailVal(pt0-1) = TrailVal(pt1-1); - TrailTerm(pt0-1) = TrailTerm(pt1-1); - pt0 -= 2; - pt1 -= 2; - } - } else { - TrailTerm(pt0) = d1; - TrailVal(pt0) = TrailVal(pt1); - pt0--; - pt1--; + ENDD(d1); + } + if (pt0 != pt1) { + int size; + pt0++; + size = TR - pt0; + memcpy(pbase, pt0, size * sizeof(struct trail_frame)); + TR = pbase + size; } - ENDD(d1); } - if (pt0 != pt1) { - int size; - pt0++; - size = TR - pt0; - memcpy(pbase, pt0, size * sizeof(struct trail_frame)); - TR = pbase + size; - } - } #else - { - tr_fr_ptr pt1, pt0; - pt1 = pt0 = B->cp_tr; - while (pt1 != TR) { - BEGD(d1); - d1 = TrailTerm(pt1); - if (IsVarTerm(d1)) { - if (d1 < (CELL)HBREG || d1 > Unsigned(B->cp_b)) { + { + tr_fr_ptr pt1, pt0; + pt1 = pt0 = B->cp_tr; + while (pt1 != TR) { + BEGD(d1); + d1 = TrailTerm(pt1); + if (IsVarTerm(d1)) { + if (d1 < (CELL)HBREG || d1 > Unsigned(B->cp_b)) { #ifdef FROZEN_STACKS - TrailVal(pt0) = TrailVal(pt1); + TrailVal(pt0) = TrailVal(pt1); #endif /* FROZEN_STACKS */ - TrailTerm(pt0) = d1; - pt0++; - } - pt1++; - } else if (IsApplTerm(d1)) { - if (IN_BETWEEN(HBREG,RepAppl(d1),B->cp_b)) { + TrailTerm(pt0) = d1; + pt0++; + } + pt1++; + } else if (IsApplTerm(d1)) { + if (IN_BETWEEN(HBREG,RepAppl(d1),B->cp_b)) { #ifdef FROZEN_STACKS - pt1 += 2; + pt1 += 2; #else - pt1 += 3; + pt1 += 3; #endif - } else { + } else { #ifdef FROZEN_STACKS - TrailVal(pt0) = TrailVal(pt1); - TrailTerm(pt0) = d1; - TrailVal(pt0+1) = TrailVal(pt1+1); - TrailTerm(pt0+1) = TrailTerm(pt1+1); - pt0 += 2; - pt1 += 2; + TrailVal(pt0) = TrailVal(pt1); + TrailTerm(pt0) = d1; + TrailVal(pt0+1) = TrailVal(pt1+1); + TrailTerm(pt0+1) = TrailTerm(pt1+1); + pt0 += 2; + pt1 += 2; #else - TrailTerm(pt0+1) = TrailTerm(pt1+1); - TrailTerm(pt0) = TrailTerm(pt0+2) = d1; - pt0 += 3; - pt1 += 3; + TrailTerm(pt0+1) = TrailTerm(pt1+1); + TrailTerm(pt0) = TrailTerm(pt0+2) = d1; + pt0 += 3; + pt1 += 3; #endif /* FROZEN_STACKS */ - } - } else if (IsPairTerm(d1)) { - CELL *pt = RepPair(d1); + } + } else if (IsPairTerm(d1)) { + CELL *pt = RepPair(d1); - if (IN_BETWEEN(Yap_GlobalBase, pt, H0)) { - CELL val = Deref(*pt); - if (IsVarTerm(val)) { - Bind(VarOfTerm(val), MkAtomTerm(AtomCut)); - Yap_WakeUp(pt); - } - } else if ((*pt & (LogUpdMask|IndexMask)) == (LogUpdMask|IndexMask)) { - LogUpdIndex *cl = ClauseFlagsToLogUpdIndex(pt); + if (IN_BETWEEN(Yap_GlobalBase, pt, H0)) { + CELL val = Deref(*pt); + if (IsVarTerm(val)) { + Bind(VarOfTerm(val), MkAtomTerm(AtomCut)); + Yap_WakeUp(pt); + } + } else if ((*pt & (LogUpdMask|IndexMask)) == (LogUpdMask|IndexMask)) { + LogUpdIndex *cl = ClauseFlagsToLogUpdIndex(pt); #if defined(YAPOR) || defined(THREADS) - PredEntry *ap = cl->ClPred; + PredEntry *ap = cl->ClPred; #endif - int erase; + int erase; - LOCK(ap->PELock); - DEC_CLREF_COUNT(cl); - cl->ClFlags &= ~InUseMask; - erase = (cl->ClFlags & (DirtyMask|ErasedMask)) && !(cl->ClRefCount); - if (erase) { - /* at this point, we are the only ones accessing the clause, - hence we don't need to have a lock it */ - saveregs(); - if (cl->ClFlags & ErasedMask) - Yap_ErLogUpdIndex(cl); - else - Yap_CleanUpIndex(cl); - setregs(); + LOCK(ap->PELock); + DEC_CLREF_COUNT(cl); + cl->ClFlags &= ~InUseMask; + erase = (cl->ClFlags & (DirtyMask|ErasedMask)) && !(cl->ClRefCount); + if (erase) { + /* at this point, we are the only ones accessing the clause, + hence we don't need to have a lock it */ + saveregs(); + if (cl->ClFlags & ErasedMask) + Yap_ErLogUpdIndex(cl); + else + Yap_CleanUpIndex(cl); + setregs(); + } + UNLOCK(ap->PELock); + } else { + TrailTerm(pt0) = d1; + pt0++; } - UNLOCK(ap->PELock); + pt1++; } else { TrailTerm(pt0) = d1; pt0++; + pt1++; } - pt1++; - } else { - TrailTerm(pt0) = d1; - pt0++; - pt1++; + ENDD(d1); } - ENDD(d1); + TR = pt0; } - TR = pt0; - } #endif /* FROZEN_STACKS */ - B = B->cp_b; - SET_BB(PROTECT_FROZEN_B(B)); + B = B->cp_b; + SET_BB(PROTECT_FROZEN_B(B)); + } } - ENDD(d0); GONext(); ENDOp(); @@ -2359,87 +2363,90 @@ Yap_absmi(int inp) /* cut_t does the same as cut */ Op(cut_t, e); PREG = NEXTOP(PREG, e); - BEGD(d0); - /* assume cut is always in stack */ - d0 = YREG[E_CB]; -#ifdef CUT_C { - if (SHOULD_CUT_UP_TO(B,(choiceptr) d0)) - { - while (POP_CHOICE_POINT(d0)) - { - POP_EXECUTE(); - } - } - } + choiceptr d0; + + /* assume cut is always in stack */ + d0 = (choiceptr)YREG[E_CB]; +#ifdef CUT_C + { + if (SHOULD_CUT_UP_TO(B,d0)) + { + while (POP_CHOICE_POINT(d0)) + { + POP_EXECUTE(); + } + } + } #endif /* CUT_C */ #ifdef YAPOR - CUT_prune_to((choiceptr) d0); + CUT_prune_to(d0); #endif /* YAPOR */ - if (SHOULD_CUT_UP_TO(B,(choiceptr) d0)) { - /* cut ! */ - while (B->cp_b < (choiceptr)d0) { - B = B->cp_b; - } + if (SHOULD_CUT_UP_TO(B,d0)) { + /* cut ! */ + while (B->cp_b < d0) { + B = B->cp_b; + } #ifdef TABLING - abolish_incomplete_subgoals(B); + abolish_incomplete_subgoals(B); #endif /* TABLING */ #ifdef FROZEN_STACKS - { - choiceptr top_b = PROTECT_FROZEN_B(B->cp_b); + { + choiceptr top_b = PROTECT_FROZEN_B(B->cp_b); #ifdef SBA - if (ENV > (CELL *) top_b || ENV < H) YREG = (CELL *) top_b; + if (ENV > (CELL *) top_b || ENV < H) YREG = (CELL *) top_b; #else - if (ENV > (CELL *) top_b) YREG = (CELL *) top_b; + if (ENV > (CELL *) top_b) YREG = (CELL *) top_b; #endif /* SBA */ - else YREG = (CELL *)((CELL)ENV + ENV_Size(CPREG)); - } + else YREG = (CELL *)((CELL)ENV + ENV_Size(CPREG)); + } #else - if (ENV > (CELL *)B->cp_b) { - YREG = (CELL *)B->cp_b; - } - else { - YREG = (CELL *) ((CELL) ENV + ENV_Size(CPREG)); - } + if (ENV > (CELL *)B->cp_b) { + YREG = (CELL *)B->cp_b; + } + else { + YREG = (CELL *) ((CELL) ENV + ENV_Size(CPREG)); + } #endif /* FROZEN_STACKS */ - YREG[E_CB] = d0; - goto trim_trail; + YREG[E_CB] = (CELL)d0; + goto trim_trail; + } } - ENDD(d0); GONext(); ENDOp(); /* cut_e */ Op(cut_e, e); PREG = NEXTOP(PREG, e); - BEGD(d0); - /* we assume dealloc leaves in S the previous env */ - d0 = SREG[E_CB]; -#ifdef CUT_C { - if (SHOULD_CUT_UP_TO(B,(choiceptr) d0)) - { - while (POP_CHOICE_POINT(d0)) - { - POP_EXECUTE(); - } - } - } + choiceptr d0; + /* we assume dealloc leaves in S the previous env */ + d0 = (choiceptr)SREG[E_CB]; +#ifdef CUT_C + { + if (SHOULD_CUT_UP_TO(B,d0)) + { + while (POP_CHOICE_POINT(d0)) + { + POP_EXECUTE(); + } + } + } #endif /* CUT_C */ #ifdef YAPOR - CUT_prune_to((choiceptr) d0); + CUT_prune_to(d0); #endif /* YAPOR */ - if (SHOULD_CUT_UP_TO(B,(choiceptr)d0)) { + if (SHOULD_CUT_UP_TO(B,d0)) { /* cut ! */ - while (B->cp_b < (choiceptr)d0) { - B = B->cp_b; - } + while (B->cp_b < d0) { + B = B->cp_b; + } #ifdef TABLING - abolish_incomplete_subgoals(B); + abolish_incomplete_subgoals(B); #endif /* TABLING */ - goto trim_trail; + goto trim_trail; + } } - ENDD(d0); GONext(); ENDOp(); diff --git a/C/alloc.c b/C/alloc.c index 940338521..d740ffc62 100644 --- a/C/alloc.c +++ b/C/alloc.c @@ -12,7 +12,7 @@ * Last rev: * * mods: * * comments: allocating space * -* version:$Id: alloc.c,v 1.89 2008-01-28 23:35:03 vsc Exp $ * +* version:$Id: alloc.c,v 1.90 2008-03-25 16:45:52 vsc Exp $ * *************************************************************************/ #ifdef SCCS static char SccsId[] = "%W% %G%"; @@ -51,8 +51,6 @@ static char SccsId[] = "%W% %G%"; #endif #endif -#define K ((Int) 1024) - /************************************************************************/ /* Yap workspace management */ @@ -1364,17 +1362,6 @@ Yap_InitMemory(int Trail, int Heap, int Stack) { Int pm, sa, ta; - if (Heap < MinHeapSpace) - Heap = MinHeapSpace; - /* sanity checking for data areas */ - if (Trail < MinTrailSpace) - Trail = MinTrailSpace; - Trail = AdjustPageSize(Trail * K); - if (Stack < MinStackSpace) - Stack = MinStackSpace; - Stack = AdjustPageSize(Stack * K); - Heap = AdjustPageSize(Heap * K); - pm = (Trail + Heap + Stack); /* memory to be * requested */ sa = Stack; /* stack area size */ diff --git a/C/amasm.c b/C/amasm.c index e30ee1fbf..f01f14aac 100644 --- a/C/amasm.c +++ b/C/amasm.c @@ -11,8 +11,12 @@ * File: amasm.c * * comments: abstract machine assembler * * * -* Last rev: $Date: 2008-01-23 17:57:44 $ * +* Last rev: $Date: 2008-03-25 16:45:52 $ * * $Log: not supported by cvs2svn $ +* Revision 1.99 2008/01/23 17:57:44 vsc +* valgrind it! +* enable atom garbage collection. +* * Revision 1.98 2007/11/26 23:43:07 vsc * fixes to support threads and assert correctly, even if inefficiently. * @@ -1911,7 +1915,7 @@ a_either(op_numbers opcode, CELL opr, CELL lab, yamop *code_p, int pass_no, stru INIT_YAMOP_LTT(code_p, nofalts); if (hascut) PUT_YAMOP_CUT(code_p); - if (clinfo->CurrentPred->PredFlags & SequentialPredFlag) + if (cip->CurrentPred->PredFlags & SequentialPredFlag) PUT_YAMOP_SEQ(code_p); if(opcode != _or_last) { code_p->u.sla.bmap = emit_bmlabel(cip->cpc->arnds[1], cip); @@ -2848,7 +2852,7 @@ do_pass(int pass_no, yamop **entry_codep, int assembling, int *clause_has_blobsp switch ((int) cip->cpc->op) { #ifdef YAPOR case sync_op: - code_p = a_try(_sync, cip->cpc->rnd1, cip->cpc->rnd2, 1, Zero, cip); + code_p = a_try(_sync, cip->cpc->rnd1, cip->cpc->rnd2, 1, Zero, code_p, pass_no, cip); break; #endif /* YAPOR */ #ifdef TABLING @@ -3296,7 +3300,7 @@ do_pass(int pass_no, yamop **entry_codep, int assembling, int *clause_has_blobsp #ifdef YAPOR if (pass_no) either_inst[either_cont++] = code_p; - code_p = a_either(_or_last, 0, 0, 0, 0, code_p, pass_no, cpc); + code_p = a_either(_or_last, 0, 0, 0, 0, code_p, pass_no, cip); if (pass_no) { int cont = 1; do { diff --git a/C/cdmgr.c b/C/cdmgr.c index 8bf8d6ac0..5570a7fa3 100644 --- a/C/cdmgr.c +++ b/C/cdmgr.c @@ -11,8 +11,11 @@ * File: cdmgr.c * * comments: Code manager * * * -* Last rev: $Date: 2008-03-24 23:48:47 $,$Author: vsc $ * +* Last rev: $Date: 2008-03-25 16:45:53 $,$Author: vsc $ * * $Log: not supported by cvs2svn $ +* Revision 1.222 2008/03/24 23:48:47 vsc +* fix maximum number of threads open error +* * Revision 1.221 2008/03/22 23:35:00 vsc * fix bug in all_calls * @@ -440,9 +443,6 @@ static char SccsId[] = "@(#)cdmgr.c 1.1 05/02/98"; #ifdef TABLING #include "tab.macros.h" #endif /* TABLING */ -#ifdef YAPOR -#include "or.macros.h" -#endif /* YAPOR */ #if HAVE_STRING_H #include #endif @@ -1549,8 +1549,6 @@ add_first_static(PredEntry *p, yamop *cp, int spy_flag) p->PredFlags |= SequentialPredFlag; PUT_YAMOP_SEQ(pt); } - if (YAMOP_LTT(pt) != 1) - Yap_Error(INTERNAL_ERROR, TermNil, "YAMOP_LTT error (add_first_static)"); #endif /* YAPOR */ #ifdef TABLING if (is_tabled(p)) { @@ -1717,9 +1715,6 @@ asserta_stat_clause(PredEntry *p, yamop *q, int spy_flag) return; } cl->ClNext = ClauseCodeToStaticClause(p->cs.p_code.FirstClause); -#ifdef YAPOR - PUT_YAMOP_LTT(q, YAMOP_LTT((yamop *)(p->cs.p_code.FirstClause)) + 1); -#endif /* YAPOR */ p->cs.p_code.FirstClause = q; p->cs.p_code.TrueCodeOfPred = q; if (p->PredFlags & SpiedPredFlag) { @@ -3697,7 +3692,7 @@ ClauseInfoForCode(yamop *codeptr, CODEADDR *startp, CODEADDR *endp) { if (pc == YESCODE) { pp = RepPredProp(Yap_GetPredPropByAtom(AtomTrue,CurrentModule)); *startp = (CODEADDR)YESCODE; - *endp = (CODEADDR)YESCODE; /*+(CELL)(NEXTOP((yamop *)NULL,e));*/ + *endp = (CODEADDR)YESCODE+(CELL)(NEXTOP((yamop *)NULL,e)); return pp; } if (!pp) { diff --git a/C/grow.c b/C/grow.c index 308450033..b9f978901 100644 --- a/C/grow.c +++ b/C/grow.c @@ -1005,6 +1005,9 @@ fix_compiler_instructions(PInstr *pcpc) case table_new_answer_op: case table_try_single_op: #endif /* TABLING */ +#ifdef YAPOR + case sync_op: +#endif #ifdef BEAM case run_op: case body_op: @@ -1261,7 +1264,7 @@ Yap_growglobal(CELL **ptr) { unsigned long sz = sizeof(CELL) * 16 * 1024L; -#if YAPOR +#if defined(YAPOR) || defined(THREADS) if (NOfThreads != 1) { Yap_Error(OUT_OF_STACK_ERROR,TermNil,"cannot grow Global: more than a worker/thread running"); return(FALSE); diff --git a/C/index.c b/C/index.c index ee1c12573..3c20f27d8 100644 --- a/C/index.c +++ b/C/index.c @@ -11,8 +11,11 @@ * File: index.c * * comments: Indexing a Prolog predicate * * * -* Last rev: $Date: 2008-02-14 14:35:13 $,$Author: vsc $ * +* Last rev: $Date: 2008-03-25 16:45:53 $,$Author: vsc $ * * $Log: not supported by cvs2svn $ +* Revision 1.197 2008/02/14 14:35:13 vsc +* fixes for indexing code. +* * Revision 1.196 2008/01/30 10:35:43 vsc * fix indexing in 64 bits (it would split ints from atoms :( ). * @@ -872,6 +875,8 @@ has_cut(yamop *pc) do { op_numbers op = Yap_op_from_opcode(pc->opc); switch (op) { + case _unify_idb_term: + case _copy_idb_term: case _Ystop: case _Nstop: return FALSE; @@ -918,7 +923,6 @@ has_cut(yamop *pc) break; /* instructions type Ill */ case _enter_lu_pred: - case _stale_lu_index: pc = pc->u.Ill.l1; break; case _execute: @@ -953,6 +957,8 @@ has_cut(yamop *pc) pc = NEXTOP(pc,EC); break; /* instructions type e */ + case _lock_lu: + case _unlock_lu: case _trust_fail: case _op_fail: case _allocate: @@ -1045,7 +1051,6 @@ has_cut(yamop *pc) case _p_primitive_x: case _p_compound_x: case _p_float_x: - case _p_cut_by_x: pc = NEXTOP(pc,xF); break; /* instructions type y */ @@ -1066,7 +1071,6 @@ has_cut(yamop *pc) case _p_primitive_y: case _p_compound_y: case _p_float_y: - case _p_cut_by_y: pc = NEXTOP(pc,yF); break; /* instructions type sla */ @@ -1278,6 +1282,10 @@ has_cut(yamop *pc) case _write_atom: pc = NEXTOP(pc,c); break; + /* instructions type p */ + case _procceed: + pc = NEXTOP(pc,p); + break; /* instructions type sc */ case _write_n_atoms: pc = NEXTOP(pc,sc); diff --git a/C/init.c b/C/init.c index 58fc565b7..19a179fcd 100644 --- a/C/init.c +++ b/C/init.c @@ -81,7 +81,7 @@ STD_PROTO(void exit, (int)); ADDR Yap_HeapBase; -#ifdef THREADS +#if defined(THREADS) struct restore_info rinfo[MAX_WORKERS]; @@ -944,17 +944,17 @@ InitCodes(void) Yap_heap_regs->env_for_yes_code.op = Yap_opcode(_call); Yap_heap_regs->env_for_yes_code.s = -Signed(RealEnvSize); Yap_heap_regs->env_for_yes_code.l2 = NULL; - Yap_heap_regs->yescode->opc = Yap_opcode(_Ystop); + Yap_heap_regs->yescode.opc = Yap_opcode(_Ystop); Yap_heap_regs->undef_op = Yap_opcode(_undef_p); Yap_heap_regs->index_op = Yap_opcode(_index_pred); Yap_heap_regs->lockpred_op = Yap_opcode(_lock_pred); Yap_heap_regs->fail_op = Yap_opcode(_op_fail); - Yap_heap_regs->nocode->opc = Yap_opcode(_Nstop); + Yap_heap_regs->nocode.opc = Yap_opcode(_Nstop); - ((yamop *)(&Yap_heap_regs->rtrycode))->opc = Yap_opcode(_retry_and_mark); - ((yamop *)(&Yap_heap_regs->rtrycode))->u.ld.s = 0; - ((yamop *)(&Yap_heap_regs->rtrycode))->u.ld.d = NIL; + Yap_heap_regs->rtrycode.opc = Yap_opcode(_retry_and_mark); + Yap_heap_regs->rtrycode.u.ld.s = 0; + Yap_heap_regs->rtrycode.u.ld.d = NIL; #ifdef YAPOR INIT_YAMOP_LTT(&(Yap_heap_regs->rtrycode), 1); #endif /* YAPOR */ @@ -981,6 +981,9 @@ InitCodes(void) Yap_heap_regs->n_of_threads_created = 1; Yap_heap_regs->threads_total_time = 0; #endif +#ifdef YAPOR + Yap_heap_regs->n_of_threads = 1; +#endif #if defined(YAPOR) || defined(THREADS) INIT_LOCK(Yap_heap_regs->bgl); INIT_LOCK(Yap_heap_regs->free_blocks_lock); @@ -1343,6 +1346,9 @@ InitVersion(void) } +#define K ((Int) 1024) + + void Yap_InitWorkspace(int Heap, int Stack, int Trail, int max_table_size, int n_workers, int sch_loop, int delay_load) @@ -1370,6 +1376,17 @@ Yap_InitWorkspace(int Heap, int Stack, int Trail, int max_table_size, /* also init memory page size, required by later functions */ Yap_InitSysbits (); + if (Heap < MinHeapSpace) + Heap = MinHeapSpace; + Heap = AdjustPageSize(Heap * K); + /* sanity checking for data areas */ + if (Trail < MinTrailSpace) + Trail = MinTrailSpace; + Trail = AdjustPageSize(Trail * K); + if (Stack < MinStackSpace) + Stack = MinStackSpace; + Stack = AdjustPageSize(Stack * K); + #ifdef YAPOR worker_id = 0; if (n_workers > MAX_WORKERS) diff --git a/C/tracer.c b/C/tracer.c index df8626199..2aa63148b 100644 --- a/C/tracer.c +++ b/C/tracer.c @@ -164,8 +164,6 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args) LOCK(Yap_heap_regs->low_level_trace_lock); sc = Yap_heap_regs; vsc_count++; - if (vsc_count < 2064000LL) - return; #ifdef COMMENTED //*(H0+(0xb65f2850-0xb64b2008)/sizeof(CELL))==0xc || //0x4fd4d diff --git a/C/utilpreds.c b/C/utilpreds.c index 2092c700a..57e4b41c0 100644 --- a/C/utilpreds.c +++ b/C/utilpreds.c @@ -2027,65 +2027,6 @@ camacho_dum(void) #endif /* DEBUG */ -static Int -cont_current_atom(void) -{ - Atom catom; - Int i = IntOfTerm(EXTRA_CBACK_ARG(1,2)); - AtomEntry *ap; /* nasty hack for gcc on hpux */ - - /* protect current hash table line */ - if (IsAtomTerm(EXTRA_CBACK_ARG(1,1))) - catom = AtomOfTerm(EXTRA_CBACK_ARG(1,1)); - else - catom = NIL; - if (catom == NIL){ - i++; - /* move away from current hash table line */ - while (i < AtomHashTableSize) { - READ_LOCK(HashChain[i].AERWLock); - catom = HashChain[i].Entry; - READ_UNLOCK(HashChain[i].AERWLock); - if (catom != NIL) { - break; - } - i++; - } - if (i == AtomHashTableSize) { - cut_fail(); - } - } - ap = RepAtom(catom); - if (Yap_unify_constant(ARG1, MkAtomTerm(catom))) { - READ_LOCK(ap->ARWLock); - if (ap->NextOfAE == NIL) { - READ_UNLOCK(ap->ARWLock); - i++; - while (i < AtomHashTableSize) { - READ_LOCK(HashChain[i].AERWLock); - catom = HashChain[i].Entry; - READ_UNLOCK(HashChain[i].AERWLock); - if (catom != NIL) { - break; - } - i++; - } - if (i == AtomHashTableSize) { - cut_fail(); - } else { - EXTRA_CBACK_ARG(1,1) = MkAtomTerm(catom); - } - } else { - EXTRA_CBACK_ARG(1,1) = MkAtomTerm(ap->NextOfAE); - READ_UNLOCK(ap->ARWLock); - } - EXTRA_CBACK_ARG(1,2) = MkIntTerm(i); - return TRUE; - } else { - return FALSE; - } -} - static Int p_unifiable(void) { diff --git a/CLPBN/clpbn/dists.yap b/CLPBN/clpbn/dists.yap index 507bc90d3..1a3475fa4 100644 --- a/CLPBN/clpbn/dists.yap +++ b/CLPBN/clpbn/dists.yap @@ -1,5 +1,5 @@ % -% distribution +% routines to manipulate distributions % :- module(clpbn_dist, @@ -101,10 +101,10 @@ dist(p(Type, CPT), Id, FParents) :- distribution(bool, trans(CPT), Id, Parents, FParents) :- is_list(CPT), !, compress_hmm_table(CPT, Parents, Tab, FParents), - add_dist([t,f], trans, Tab, ParentsId). + add_dist([t,f], trans, Tab, Parents, Id). distribution(bool, CPT, Id, Parents, Parents) :- is_list(CPT), !, - add_dist([t,f], tab, CPT, Id). + add_dist([t,f], tab, CPT, Parents, Id). distribution(aminoacids, trans(CPT), Id, Parents, FParents) :- is_list(CPT), !, compress_hmm_table(CPT, Parents, Tab, FParents), @@ -138,7 +138,7 @@ distribution(Domain, CPT, Id, Parents, Parents) :- add_dist(Domain, Type, CPT, _, Id) :- recorded(clpbn_dist_db, db(Id, CPT, Type, Domain, _, _), _), !. -add_dist(Domain, Type, CPT, PSizes, Id) :- +add_dist(Domain, Type, CPT, Parents, Id) :- length(CPT, CPTSize), length(Domain, DSize), new_id(Id), @@ -150,7 +150,7 @@ record_parent_sizes([], Id, [], DSizes) :- recordz(clpbn_dist_psizes,db(Id, DSizes),_). record_parent_sizes([P|Parents], Id, [Size|Sizes], DSizes) :- clpbn:get_atts(P,dist(Dist,_)), - get_dist_domain_size(Dist, DSize), + get_dist_domain_size(Dist, Size), record_parent_sizes(Parents, Id, Sizes, DSizes). % @@ -217,7 +217,7 @@ empty_dist(Dist, TAB) :- recorded(clpbn_dist_psizes,db(Dist, DSizes),_), matrix_new(floats, DSizes, TAB). -dist_new_table(Id, NewMAT) :- +dist_new_table(Id, NewMat) :- matrix_to_list(NewMat, List), recorded(clpbn_dist_db, db(Id, _, A, B, C, D), R), erase(R), diff --git a/CLPBN/clpbn/examples/School/parlearn.yap b/CLPBN/clpbn/examples/School/parlearn.yap new file mode 100644 index 000000000..e722d8334 --- /dev/null +++ b/CLPBN/clpbn/examples/School/parlearn.yap @@ -0,0 +1,44 @@ + +:- [pos:sample32]. + +:- ['~/Yap/work/CLPBN/clpbn/examples/School/school_32']. + +% These libraries provide same functionality. +:- [library('clpbn/learning/mle')]. +%:- [library('clpbn/learning/bnt_parms')]. + +:- [library(matrix)]. + +main :- + findall(X,goal(X),L), + learn_parameters(L,CPTs), + write_cpts(CPTs). + +goal(professor_ability(P,V)) :- + pos:professor_ability(P,V), + p(pa, M), random < M. +goal(professor_popularity(P,V)) :- + pos:professor_popularity(P,V), + p(pp, M), random < M. +goal(registration_grade(P,V)) :- + pos:registration_grade(P,V), + p(rg, M), random < M. +goal(student_intelligence(P,V)) :- + pos:student_intelligence(P,V), + p(si, M), random < M. +goal(course_difficulty(P,V)) :- + pos:course_difficulty(P,V), + p(cd, M), random < M. +goal(registration_satisfaction(P,V)) :- + pos:registration_satisfaction(P,V), + p(rs, M), random < M. + +% sampling parameter +p(_, 1.0). + +write_cpts([]). +write_cpts([CPT|CPTs]) :- + matrix_to_list(CPT,L), + format('CPT=~w~n',[L]), + write_cpts(CPTs). + diff --git a/CLPBN/clpbn/examples/School/sample32.yap b/CLPBN/clpbn/examples/School/sample32.yap new file mode 100644 index 000000000..f6dda7aef --- /dev/null +++ b/CLPBN/clpbn/examples/School/sample32.yap @@ -0,0 +1,2433 @@ + + +professor_ability(p0,h). +professor_ability(p1,h). +professor_ability(p2,m). +professor_ability(p3,m). +professor_ability(p4,h). +professor_ability(p5,h). +professor_ability(p6,l). +professor_ability(p7,l). +professor_ability(p8,m). +professor_ability(p9,h). +professor_ability(p10,m). +professor_ability(p11,h). +professor_ability(p12,h). +professor_ability(p13,m). +professor_ability(p14,m). +professor_ability(p15,m). +professor_ability(p16,m). +professor_ability(p17,m). +professor_ability(p18,l). +professor_ability(p19,h). +professor_ability(p20,h). +professor_ability(p21,h). +professor_ability(p22,m). +professor_ability(p23,m). +professor_ability(p24,l). +professor_ability(p25,m). +professor_ability(p26,h). +professor_ability(p27,h). +professor_ability(p28,h). +professor_ability(p29,m). +professor_ability(p30,m). +professor_ability(p31,h). + + +course_difficulty(c0,h). +course_difficulty(c1,m). +course_difficulty(c2,l). +course_difficulty(c3,m). +course_difficulty(c4,m). +course_difficulty(c5,l). +course_difficulty(c6,m). +course_difficulty(c7,h). +course_difficulty(c8,h). +course_difficulty(c9,l). +course_difficulty(c10,m). +course_difficulty(c11,m). +course_difficulty(c12,m). +course_difficulty(c13,h). +course_difficulty(c14,m). +course_difficulty(c15,h). +course_difficulty(c16,l). +course_difficulty(c17,h). +course_difficulty(c18,m). +course_difficulty(c19,l). +course_difficulty(c20,m). +course_difficulty(c21,h). +course_difficulty(c22,m). +course_difficulty(c23,m). +course_difficulty(c24,h). +course_difficulty(c25,m). +course_difficulty(c26,l). +course_difficulty(c27,h). +course_difficulty(c28,m). +course_difficulty(c29,m). +course_difficulty(c30,m). +course_difficulty(c31,m). +course_difficulty(c32,l). +course_difficulty(c33,m). +course_difficulty(c34,l). +course_difficulty(c35,h). +course_difficulty(c36,h). +course_difficulty(c37,m). +course_difficulty(c38,m). +course_difficulty(c39,m). +course_difficulty(c40,h). +course_difficulty(c41,m). +course_difficulty(c42,h). +course_difficulty(c43,m). +course_difficulty(c44,m). +course_difficulty(c45,m). +course_difficulty(c46,m). +course_difficulty(c47,m). +course_difficulty(c48,m). +course_difficulty(c49,l). +course_difficulty(c50,m). +course_difficulty(c51,h). +course_difficulty(c52,h). +course_difficulty(c53,h). +course_difficulty(c54,m). +course_difficulty(c55,h). +course_difficulty(c56,m). +course_difficulty(c57,m). +course_difficulty(c58,h). +course_difficulty(c59,m). +course_difficulty(c60,h). +course_difficulty(c61,m). +course_difficulty(c62,l). +course_difficulty(c63,l). + + +student_intelligence(s0,l). +student_intelligence(s1,l). +student_intelligence(s2,h). +student_intelligence(s3,h). +student_intelligence(s4,h). +student_intelligence(s5,h). +student_intelligence(s6,m). +student_intelligence(s7,h). +student_intelligence(s8,h). +student_intelligence(s9,m). +student_intelligence(s10,m). +student_intelligence(s11,m). +student_intelligence(s12,h). +student_intelligence(s13,h). +student_intelligence(s14,h). +student_intelligence(s15,m). +student_intelligence(s16,h). +student_intelligence(s17,m). +student_intelligence(s18,m). +student_intelligence(s19,h). +student_intelligence(s20,m). +student_intelligence(s21,h). +student_intelligence(s22,h). +student_intelligence(s23,h). +student_intelligence(s24,m). +student_intelligence(s25,h). +student_intelligence(s26,m). +student_intelligence(s27,m). +student_intelligence(s28,m). +student_intelligence(s29,m). +student_intelligence(s30,h). +student_intelligence(s31,m). +student_intelligence(s32,m). +student_intelligence(s33,h). +student_intelligence(s34,l). +student_intelligence(s35,m). +student_intelligence(s36,l). +student_intelligence(s37,m). +student_intelligence(s38,h). +student_intelligence(s39,h). +student_intelligence(s40,h). +student_intelligence(s41,m). +student_intelligence(s42,m). +student_intelligence(s43,h). +student_intelligence(s44,h). +student_intelligence(s45,h). +student_intelligence(s46,l). +student_intelligence(s47,h). +student_intelligence(s48,m). +student_intelligence(s49,m). +student_intelligence(s50,h). +student_intelligence(s51,m). +student_intelligence(s52,m). +student_intelligence(s53,m). +student_intelligence(s54,h). +student_intelligence(s55,h). +student_intelligence(s56,l). +student_intelligence(s57,m). +student_intelligence(s58,h). +student_intelligence(s59,m). +student_intelligence(s60,m). +student_intelligence(s61,h). +student_intelligence(s62,m). +student_intelligence(s63,h). +student_intelligence(s64,l). +student_intelligence(s65,m). +student_intelligence(s66,h). +student_intelligence(s67,m). +student_intelligence(s68,h). +student_intelligence(s69,h). +student_intelligence(s70,l). +student_intelligence(s71,m). +student_intelligence(s72,h). +student_intelligence(s73,m). +student_intelligence(s74,h). +student_intelligence(s75,h). +student_intelligence(s76,h). +student_intelligence(s77,h). +student_intelligence(s78,h). +student_intelligence(s79,m). +student_intelligence(s80,m). +student_intelligence(s81,l). +student_intelligence(s82,h). +student_intelligence(s83,h). +student_intelligence(s84,m). +student_intelligence(s85,h). +student_intelligence(s86,m). +student_intelligence(s87,h). +student_intelligence(s88,h). +student_intelligence(s89,m). +student_intelligence(s90,h). +student_intelligence(s91,m). +student_intelligence(s92,h). +student_intelligence(s93,l). +student_intelligence(s94,l). +student_intelligence(s95,h). +student_intelligence(s96,m). +student_intelligence(s97,h). +student_intelligence(s98,h). +student_intelligence(s99,l). +student_intelligence(s100,h). +student_intelligence(s101,h). +student_intelligence(s102,m). +student_intelligence(s103,h). +student_intelligence(s104,l). +student_intelligence(s105,m). +student_intelligence(s106,h). +student_intelligence(s107,l). +student_intelligence(s108,m). +student_intelligence(s109,m). +student_intelligence(s110,m). +student_intelligence(s111,h). +student_intelligence(s112,m). +student_intelligence(s113,h). +student_intelligence(s114,m). +student_intelligence(s115,h). +student_intelligence(s116,m). +student_intelligence(s117,m). +student_intelligence(s118,m). +student_intelligence(s119,h). +student_intelligence(s120,h). +student_intelligence(s121,h). +student_intelligence(s122,m). +student_intelligence(s123,m). +student_intelligence(s124,h). +student_intelligence(s125,m). +student_intelligence(s126,m). +student_intelligence(s127,m). +student_intelligence(s128,m). +student_intelligence(s129,h). +student_intelligence(s130,m). +student_intelligence(s131,h). +student_intelligence(s132,h). +student_intelligence(s133,h). +student_intelligence(s134,h). +student_intelligence(s135,h). +student_intelligence(s136,m). +student_intelligence(s137,m). +student_intelligence(s138,l). +student_intelligence(s139,h). +student_intelligence(s140,h). +student_intelligence(s141,m). +student_intelligence(s142,m). +student_intelligence(s143,h). +student_intelligence(s144,h). +student_intelligence(s145,h). +student_intelligence(s146,m). +student_intelligence(s147,m). +student_intelligence(s148,m). +student_intelligence(s149,h). +student_intelligence(s150,l). +student_intelligence(s151,h). +student_intelligence(s152,h). +student_intelligence(s153,m). +student_intelligence(s154,m). +student_intelligence(s155,h). +student_intelligence(s156,m). +student_intelligence(s157,m). +student_intelligence(s158,h). +student_intelligence(s159,h). +student_intelligence(s160,m). +student_intelligence(s161,m). +student_intelligence(s162,h). +student_intelligence(s163,m). +student_intelligence(s164,m). +student_intelligence(s165,m). +student_intelligence(s166,m). +student_intelligence(s167,h). +student_intelligence(s168,h). +student_intelligence(s169,m). +student_intelligence(s170,m). +student_intelligence(s171,m). +student_intelligence(s172,h). +student_intelligence(s173,h). +student_intelligence(s174,h). +student_intelligence(s175,m). +student_intelligence(s176,m). +student_intelligence(s177,m). +student_intelligence(s178,h). +student_intelligence(s179,m). +student_intelligence(s180,m). +student_intelligence(s181,h). +student_intelligence(s182,m). +student_intelligence(s183,h). +student_intelligence(s184,h). +student_intelligence(s185,m). +student_intelligence(s186,m). +student_intelligence(s187,m). +student_intelligence(s188,h). +student_intelligence(s189,m). +student_intelligence(s190,h). +student_intelligence(s191,l). +student_intelligence(s192,h). +student_intelligence(s193,m). +student_intelligence(s194,m). +student_intelligence(s195,m). +student_intelligence(s196,h). +student_intelligence(s197,h). +student_intelligence(s198,h). +student_intelligence(s199,m). +student_intelligence(s200,h). +student_intelligence(s201,l). +student_intelligence(s202,h). +student_intelligence(s203,m). +student_intelligence(s204,h). +student_intelligence(s205,h). +student_intelligence(s206,h). +student_intelligence(s207,h). +student_intelligence(s208,m). +student_intelligence(s209,h). +student_intelligence(s210,m). +student_intelligence(s211,m). +student_intelligence(s212,m). +student_intelligence(s213,h). +student_intelligence(s214,h). +student_intelligence(s215,m). +student_intelligence(s216,h). +student_intelligence(s217,m). +student_intelligence(s218,h). +student_intelligence(s219,h). +student_intelligence(s220,h). +student_intelligence(s221,h). +student_intelligence(s222,h). +student_intelligence(s223,m). +student_intelligence(s224,l). +student_intelligence(s225,l). +student_intelligence(s226,m). +student_intelligence(s227,h). +student_intelligence(s228,h). +student_intelligence(s229,m). +student_intelligence(s230,m). +student_intelligence(s231,h). +student_intelligence(s232,m). +student_intelligence(s233,h). +student_intelligence(s234,l). +student_intelligence(s235,h). +student_intelligence(s236,h). +student_intelligence(s237,h). +student_intelligence(s238,h). +student_intelligence(s239,h). +student_intelligence(s240,h). +student_intelligence(s241,m). +student_intelligence(s242,l). +student_intelligence(s243,h). +student_intelligence(s244,h). +student_intelligence(s245,l). +student_intelligence(s246,m). +student_intelligence(s247,h). +student_intelligence(s248,m). +student_intelligence(s249,h). +student_intelligence(s250,m). +student_intelligence(s251,h). +student_intelligence(s252,m). +student_intelligence(s253,m). +student_intelligence(s254,m). +student_intelligence(s255,m). + + +professor_popularity(p0,h). +professor_popularity(p1,h). +professor_popularity(p2,l). +professor_popularity(p3,h). +professor_popularity(p4,h). +professor_popularity(p5,h). +professor_popularity(p6,l). +professor_popularity(p7,l). +professor_popularity(p8,m). +professor_popularity(p9,h). +professor_popularity(p10,l). +professor_popularity(p11,h). +professor_popularity(p12,h). +professor_popularity(p13,l). +professor_popularity(p14,m). +professor_popularity(p15,h). +professor_popularity(p16,m). +professor_popularity(p17,h). +professor_popularity(p18,l). +professor_popularity(p19,h). +professor_popularity(p20,h). +professor_popularity(p21,h). +professor_popularity(p22,h). +professor_popularity(p23,l). +professor_popularity(p24,l). +professor_popularity(p25,l). +professor_popularity(p26,m). +professor_popularity(p27,h). +professor_popularity(p28,h). +professor_popularity(p29,l). +professor_popularity(p30,m). +professor_popularity(p31,h). + + +registration_grade(r0,a). +registration_grade(r1,c). +registration_grade(r2,c). +registration_grade(r3,c). +registration_grade(r4,c). +registration_grade(r5,c). +registration_grade(r6,a). +registration_grade(r7,a). +registration_grade(r8,b). +registration_grade(r9,a). +registration_grade(r10,a). +registration_grade(r11,a). +registration_grade(r12,a). +registration_grade(r13,a). +registration_grade(r14,b). +registration_grade(r15,b). +registration_grade(r16,a). +registration_grade(r17,b). +registration_grade(r18,c). +registration_grade(r19,c). +registration_grade(r20,c). +registration_grade(r21,a). +registration_grade(r22,a). +registration_grade(r23,b). +registration_grade(r24,b). +registration_grade(r25,a). +registration_grade(r26,a). +registration_grade(r27,b). +registration_grade(r28,c). +registration_grade(r29,b). +registration_grade(r30,c). +registration_grade(r31,b). +registration_grade(r32,c). +registration_grade(r33,a). +registration_grade(r34,c). +registration_grade(r35,c). +registration_grade(r36,a). +registration_grade(r37,a). +registration_grade(r38,c). +registration_grade(r39,a). +registration_grade(r40,a). +registration_grade(r41,c). +registration_grade(r42,b). +registration_grade(r43,a). +registration_grade(r44,a). +registration_grade(r45,a). +registration_grade(r46,a). +registration_grade(r47,b). +registration_grade(r48,b). +registration_grade(r49,b). +registration_grade(r50,b). +registration_grade(r51,b). +registration_grade(r52,b). +registration_grade(r53,a). +registration_grade(r54,b). +registration_grade(r55,a). +registration_grade(r56,c). +registration_grade(r57,c). +registration_grade(r58,a). +registration_grade(r59,c). +registration_grade(r60,a). +registration_grade(r61,a). +registration_grade(r62,a). +registration_grade(r63,b). +registration_grade(r64,b). +registration_grade(r65,b). +registration_grade(r66,b). +registration_grade(r67,b). +registration_grade(r68,a). +registration_grade(r69,b). +registration_grade(r70,c). +registration_grade(r71,b). +registration_grade(r72,a). +registration_grade(r73,b). +registration_grade(r74,a). +registration_grade(r75,b). +registration_grade(r76,c). +registration_grade(r77,a). +registration_grade(r78,b). +registration_grade(r79,a). +registration_grade(r80,b). +registration_grade(r81,b). +registration_grade(r82,a). +registration_grade(r83,a). +registration_grade(r84,c). +registration_grade(r85,b). +registration_grade(r86,b). +registration_grade(r87,b). +registration_grade(r88,c). +registration_grade(r89,c). +registration_grade(r90,c). +registration_grade(r91,a). +registration_grade(r92,d). +registration_grade(r93,b). +registration_grade(r94,c). +registration_grade(r95,b). +registration_grade(r96,a). +registration_grade(r97,a). +registration_grade(r98,b). +registration_grade(r99,b). +registration_grade(r100,a). +registration_grade(r101,a). +registration_grade(r102,a). +registration_grade(r103,b). +registration_grade(r104,b). +registration_grade(r105,c). +registration_grade(r106,b). +registration_grade(r107,b). +registration_grade(r108,b). +registration_grade(r109,b). +registration_grade(r110,a). +registration_grade(r111,a). +registration_grade(r112,a). +registration_grade(r113,c). +registration_grade(r114,c). +registration_grade(r115,d). +registration_grade(r116,b). +registration_grade(r117,c). +registration_grade(r118,a). +registration_grade(r119,b). +registration_grade(r120,b). +registration_grade(r121,c). +registration_grade(r122,b). +registration_grade(r123,a). +registration_grade(r124,a). +registration_grade(r125,b). +registration_grade(r126,b). +registration_grade(r127,b). +registration_grade(r128,a). +registration_grade(r129,c). +registration_grade(r130,a). +registration_grade(r131,a). +registration_grade(r132,b). +registration_grade(r133,a). +registration_grade(r134,a). +registration_grade(r135,b). +registration_grade(r136,a). +registration_grade(r137,b). +registration_grade(r138,a). +registration_grade(r139,a). +registration_grade(r140,a). +registration_grade(r141,b). +registration_grade(r142,b). +registration_grade(r143,b). +registration_grade(r144,c). +registration_grade(r145,b). +registration_grade(r146,a). +registration_grade(r147,a). +registration_grade(r148,a). +registration_grade(r149,a). +registration_grade(r150,b). +registration_grade(r151,a). +registration_grade(r152,a). +registration_grade(r153,b). +registration_grade(r154,a). +registration_grade(r155,c). +registration_grade(r156,b). +registration_grade(r157,b). +registration_grade(r158,c). +registration_grade(r159,b). +registration_grade(r160,a). +registration_grade(r161,a). +registration_grade(r162,b). +registration_grade(r163,a). +registration_grade(r164,b). +registration_grade(r165,b). +registration_grade(r166,c). +registration_grade(r167,a). +registration_grade(r168,a). +registration_grade(r169,a). +registration_grade(r170,a). +registration_grade(r171,a). +registration_grade(r172,c). +registration_grade(r173,b). +registration_grade(r174,a). +registration_grade(r175,b). +registration_grade(r176,b). +registration_grade(r177,c). +registration_grade(r178,b). +registration_grade(r179,d). +registration_grade(r180,c). +registration_grade(r181,a). +registration_grade(r182,b). +registration_grade(r183,a). +registration_grade(r184,a). +registration_grade(r185,b). +registration_grade(r186,c). +registration_grade(r187,a). +registration_grade(r188,a). +registration_grade(r189,a). +registration_grade(r190,a). +registration_grade(r191,b). +registration_grade(r192,b). +registration_grade(r193,c). +registration_grade(r194,b). +registration_grade(r195,c). +registration_grade(r196,b). +registration_grade(r197,a). +registration_grade(r198,a). +registration_grade(r199,b). +registration_grade(r200,b). +registration_grade(r201,c). +registration_grade(r202,a). +registration_grade(r203,a). +registration_grade(r204,b). +registration_grade(r205,a). +registration_grade(r206,a). +registration_grade(r207,a). +registration_grade(r208,c). +registration_grade(r209,b). +registration_grade(r210,a). +registration_grade(r211,d). +registration_grade(r212,b). +registration_grade(r213,b). +registration_grade(r214,a). +registration_grade(r215,a). +registration_grade(r216,b). +registration_grade(r217,a). +registration_grade(r218,b). +registration_grade(r219,a). +registration_grade(r220,a). +registration_grade(r221,b). +registration_grade(r222,c). +registration_grade(r223,a). +registration_grade(r224,b). +registration_grade(r225,b). +registration_grade(r226,d). +registration_grade(r227,b). +registration_grade(r228,c). +registration_grade(r229,b). +registration_grade(r230,a). +registration_grade(r231,c). +registration_grade(r232,a). +registration_grade(r233,b). +registration_grade(r234,b). +registration_grade(r235,c). +registration_grade(r236,b). +registration_grade(r237,c). +registration_grade(r238,d). +registration_grade(r239,b). +registration_grade(r240,b). +registration_grade(r241,a). +registration_grade(r242,b). +registration_grade(r243,a). +registration_grade(r244,b). +registration_grade(r245,a). +registration_grade(r246,b). +registration_grade(r247,c). +registration_grade(r248,b). +registration_grade(r249,a). +registration_grade(r250,a). +registration_grade(r251,a). +registration_grade(r252,b). +registration_grade(r253,a). +registration_grade(r254,b). +registration_grade(r255,a). +registration_grade(r256,a). +registration_grade(r257,b). +registration_grade(r258,a). +registration_grade(r259,a). +registration_grade(r260,b). +registration_grade(r261,a). +registration_grade(r262,a). +registration_grade(r263,a). +registration_grade(r264,c). +registration_grade(r265,a). +registration_grade(r266,a). +registration_grade(r267,a). +registration_grade(r268,c). +registration_grade(r269,a). +registration_grade(r270,c). +registration_grade(r271,b). +registration_grade(r272,c). +registration_grade(r273,b). +registration_grade(r274,c). +registration_grade(r275,a). +registration_grade(r276,a). +registration_grade(r277,a). +registration_grade(r278,a). +registration_grade(r279,a). +registration_grade(r280,b). +registration_grade(r281,b). +registration_grade(r282,d). +registration_grade(r283,a). +registration_grade(r284,b). +registration_grade(r285,b). +registration_grade(r286,a). +registration_grade(r287,b). +registration_grade(r288,b). +registration_grade(r289,d). +registration_grade(r290,b). +registration_grade(r291,c). +registration_grade(r292,b). +registration_grade(r293,a). +registration_grade(r294,a). +registration_grade(r295,a). +registration_grade(r296,b). +registration_grade(r297,a). +registration_grade(r298,a). +registration_grade(r299,a). +registration_grade(r300,b). +registration_grade(r301,b). +registration_grade(r302,b). +registration_grade(r303,a). +registration_grade(r304,a). +registration_grade(r305,b). +registration_grade(r306,b). +registration_grade(r307,c). +registration_grade(r308,c). +registration_grade(r309,c). +registration_grade(r310,a). +registration_grade(r311,a). +registration_grade(r312,a). +registration_grade(r313,a). +registration_grade(r314,c). +registration_grade(r315,c). +registration_grade(r316,c). +registration_grade(r317,c). +registration_grade(r318,c). +registration_grade(r319,c). +registration_grade(r320,b). +registration_grade(r321,b). +registration_grade(r322,a). +registration_grade(r323,c). +registration_grade(r324,b). +registration_grade(r325,b). +registration_grade(r326,a). +registration_grade(r327,c). +registration_grade(r328,b). +registration_grade(r329,a). +registration_grade(r330,b). +registration_grade(r331,a). +registration_grade(r332,a). +registration_grade(r333,a). +registration_grade(r334,c). +registration_grade(r335,d). +registration_grade(r336,b). +registration_grade(r337,b). +registration_grade(r338,b). +registration_grade(r339,a). +registration_grade(r340,b). +registration_grade(r341,b). +registration_grade(r342,b). +registration_grade(r343,a). +registration_grade(r344,c). +registration_grade(r345,b). +registration_grade(r346,b). +registration_grade(r347,b). +registration_grade(r348,a). +registration_grade(r349,a). +registration_grade(r350,b). +registration_grade(r351,b). +registration_grade(r352,d). +registration_grade(r353,c). +registration_grade(r354,c). +registration_grade(r355,c). +registration_grade(r356,b). +registration_grade(r357,b). +registration_grade(r358,a). +registration_grade(r359,a). +registration_grade(r360,a). +registration_grade(r361,b). +registration_grade(r362,c). +registration_grade(r363,c). +registration_grade(r364,b). +registration_grade(r365,b). +registration_grade(r366,b). +registration_grade(r367,b). +registration_grade(r368,a). +registration_grade(r369,c). +registration_grade(r370,b). +registration_grade(r371,a). +registration_grade(r372,a). +registration_grade(r373,a). +registration_grade(r374,b). +registration_grade(r375,b). +registration_grade(r376,a). +registration_grade(r377,a). +registration_grade(r378,a). +registration_grade(r379,c). +registration_grade(r380,a). +registration_grade(r381,c). +registration_grade(r382,a). +registration_grade(r383,a). +registration_grade(r384,b). +registration_grade(r385,b). +registration_grade(r386,d). +registration_grade(r387,a). +registration_grade(r388,a). +registration_grade(r389,a). +registration_grade(r390,a). +registration_grade(r391,b). +registration_grade(r392,b). +registration_grade(r393,b). +registration_grade(r394,c). +registration_grade(r395,b). +registration_grade(r396,b). +registration_grade(r397,a). +registration_grade(r398,b). +registration_grade(r399,c). +registration_grade(r400,a). +registration_grade(r401,c). +registration_grade(r402,a). +registration_grade(r403,a). +registration_grade(r404,a). +registration_grade(r405,a). +registration_grade(r406,a). +registration_grade(r407,b). +registration_grade(r408,a). +registration_grade(r409,a). +registration_grade(r410,b). +registration_grade(r411,b). +registration_grade(r412,a). +registration_grade(r413,a). +registration_grade(r414,a). +registration_grade(r415,b). +registration_grade(r416,b). +registration_grade(r417,d). +registration_grade(r418,a). +registration_grade(r419,a). +registration_grade(r420,a). +registration_grade(r421,c). +registration_grade(r422,b). +registration_grade(r423,b). +registration_grade(r424,a). +registration_grade(r425,b). +registration_grade(r426,c). +registration_grade(r427,c). +registration_grade(r428,c). +registration_grade(r429,c). +registration_grade(r430,b). +registration_grade(r431,d). +registration_grade(r432,c). +registration_grade(r433,a). +registration_grade(r434,a). +registration_grade(r435,c). +registration_grade(r436,a). +registration_grade(r437,c). +registration_grade(r438,b). +registration_grade(r439,b). +registration_grade(r440,c). +registration_grade(r441,a). +registration_grade(r442,c). +registration_grade(r443,a). +registration_grade(r444,a). +registration_grade(r445,a). +registration_grade(r446,a). +registration_grade(r447,d). +registration_grade(r448,c). +registration_grade(r449,b). +registration_grade(r450,a). +registration_grade(r451,a). +registration_grade(r452,b). +registration_grade(r453,d). +registration_grade(r454,d). +registration_grade(r455,c). +registration_grade(r456,c). +registration_grade(r457,a). +registration_grade(r458,b). +registration_grade(r459,b). +registration_grade(r460,a). +registration_grade(r461,b). +registration_grade(r462,a). +registration_grade(r463,d). +registration_grade(r464,a). +registration_grade(r465,a). +registration_grade(r466,b). +registration_grade(r467,b). +registration_grade(r468,a). +registration_grade(r469,a). +registration_grade(r470,c). +registration_grade(r471,b). +registration_grade(r472,a). +registration_grade(r473,c). +registration_grade(r474,b). +registration_grade(r475,a). +registration_grade(r476,c). +registration_grade(r477,b). +registration_grade(r478,a). +registration_grade(r479,b). +registration_grade(r480,a). +registration_grade(r481,b). +registration_grade(r482,b). +registration_grade(r483,a). +registration_grade(r484,a). +registration_grade(r485,a). +registration_grade(r486,a). +registration_grade(r487,a). +registration_grade(r488,a). +registration_grade(r489,b). +registration_grade(r490,c). +registration_grade(r491,c). +registration_grade(r492,b). +registration_grade(r493,a). +registration_grade(r494,b). +registration_grade(r495,b). +registration_grade(r496,a). +registration_grade(r497,c). +registration_grade(r498,b). +registration_grade(r499,c). +registration_grade(r500,b). +registration_grade(r501,a). +registration_grade(r502,a). +registration_grade(r503,c). +registration_grade(r504,b). +registration_grade(r505,c). +registration_grade(r506,c). +registration_grade(r507,a). +registration_grade(r508,c). +registration_grade(r509,b). +registration_grade(r510,a). +registration_grade(r511,c). +registration_grade(r512,b). +registration_grade(r513,b). +registration_grade(r514,c). +registration_grade(r515,c). +registration_grade(r516,a). +registration_grade(r517,b). +registration_grade(r518,a). +registration_grade(r519,a). +registration_grade(r520,b). +registration_grade(r521,a). +registration_grade(r522,b). +registration_grade(r523,a). +registration_grade(r524,b). +registration_grade(r525,c). +registration_grade(r526,c). +registration_grade(r527,c). +registration_grade(r528,a). +registration_grade(r529,b). +registration_grade(r530,a). +registration_grade(r531,b). +registration_grade(r532,a). +registration_grade(r533,a). +registration_grade(r534,b). +registration_grade(r535,c). +registration_grade(r536,a). +registration_grade(r537,a). +registration_grade(r538,a). +registration_grade(r539,b). +registration_grade(r540,b). +registration_grade(r541,c). +registration_grade(r542,a). +registration_grade(r543,a). +registration_grade(r544,b). +registration_grade(r545,a). +registration_grade(r546,b). +registration_grade(r547,c). +registration_grade(r548,c). +registration_grade(r549,b). +registration_grade(r550,a). +registration_grade(r551,a). +registration_grade(r552,c). +registration_grade(r553,b). +registration_grade(r554,b). +registration_grade(r555,b). +registration_grade(r556,a). +registration_grade(r557,a). +registration_grade(r558,a). +registration_grade(r559,b). +registration_grade(r560,b). +registration_grade(r561,a). +registration_grade(r562,a). +registration_grade(r563,a). +registration_grade(r564,b). +registration_grade(r565,d). +registration_grade(r566,c). +registration_grade(r567,a). +registration_grade(r568,a). +registration_grade(r569,a). +registration_grade(r570,c). +registration_grade(r571,c). +registration_grade(r572,b). +registration_grade(r573,a). +registration_grade(r574,c). +registration_grade(r575,a). +registration_grade(r576,a). +registration_grade(r577,a). +registration_grade(r578,b). +registration_grade(r579,a). +registration_grade(r580,b). +registration_grade(r581,a). +registration_grade(r582,a). +registration_grade(r583,a). +registration_grade(r584,a). +registration_grade(r585,c). +registration_grade(r586,b). +registration_grade(r587,c). +registration_grade(r588,c). +registration_grade(r589,c). +registration_grade(r590,b). +registration_grade(r591,c). +registration_grade(r592,b). +registration_grade(r593,b). +registration_grade(r594,c). +registration_grade(r595,b). +registration_grade(r596,a). +registration_grade(r597,a). +registration_grade(r598,a). +registration_grade(r599,a). +registration_grade(r600,a). +registration_grade(r601,b). +registration_grade(r602,a). +registration_grade(r603,d). +registration_grade(r604,c). +registration_grade(r605,a). +registration_grade(r606,a). +registration_grade(r607,b). +registration_grade(r608,a). +registration_grade(r609,b). +registration_grade(r610,a). +registration_grade(r611,a). +registration_grade(r612,c). +registration_grade(r613,a). +registration_grade(r614,d). +registration_grade(r615,b). +registration_grade(r616,a). +registration_grade(r617,a). +registration_grade(r618,b). +registration_grade(r619,a). +registration_grade(r620,a). +registration_grade(r621,a). +registration_grade(r622,b). +registration_grade(r623,b). +registration_grade(r624,a). +registration_grade(r625,c). +registration_grade(r626,a). +registration_grade(r627,b). +registration_grade(r628,a). +registration_grade(r629,b). +registration_grade(r630,c). +registration_grade(r631,a). +registration_grade(r632,a). +registration_grade(r633,b). +registration_grade(r634,b). +registration_grade(r635,b). +registration_grade(r636,d). +registration_grade(r637,c). +registration_grade(r638,a). +registration_grade(r639,b). +registration_grade(r640,c). +registration_grade(r641,c). +registration_grade(r642,c). +registration_grade(r643,a). +registration_grade(r644,a). +registration_grade(r645,b). +registration_grade(r646,b). +registration_grade(r647,b). +registration_grade(r648,a). +registration_grade(r649,b). +registration_grade(r650,c). +registration_grade(r651,b). +registration_grade(r652,b). +registration_grade(r653,b). +registration_grade(r654,b). +registration_grade(r655,a). +registration_grade(r656,b). +registration_grade(r657,a). +registration_grade(r658,a). +registration_grade(r659,a). +registration_grade(r660,a). +registration_grade(r661,c). +registration_grade(r662,a). +registration_grade(r663,a). +registration_grade(r664,c). +registration_grade(r665,a). +registration_grade(r666,b). +registration_grade(r667,b). +registration_grade(r668,d). +registration_grade(r669,b). +registration_grade(r670,a). +registration_grade(r671,c). +registration_grade(r672,c). +registration_grade(r673,a). +registration_grade(r674,a). +registration_grade(r675,b). +registration_grade(r676,a). +registration_grade(r677,a). +registration_grade(r678,a). +registration_grade(r679,a). +registration_grade(r680,c). +registration_grade(r681,b). +registration_grade(r682,a). +registration_grade(r683,b). +registration_grade(r684,b). +registration_grade(r685,a). +registration_grade(r686,b). +registration_grade(r687,a). +registration_grade(r688,c). +registration_grade(r689,b). +registration_grade(r690,a). +registration_grade(r691,c). +registration_grade(r692,a). +registration_grade(r693,b). +registration_grade(r694,a). +registration_grade(r695,a). +registration_grade(r696,a). +registration_grade(r697,c). +registration_grade(r698,b). +registration_grade(r699,a). +registration_grade(r700,a). +registration_grade(r701,a). +registration_grade(r702,a). +registration_grade(r703,c). +registration_grade(r704,c). +registration_grade(r705,b). +registration_grade(r706,b). +registration_grade(r707,a). +registration_grade(r708,b). +registration_grade(r709,b). +registration_grade(r710,b). +registration_grade(r711,b). +registration_grade(r712,c). +registration_grade(r713,a). +registration_grade(r714,b). +registration_grade(r715,a). +registration_grade(r716,a). +registration_grade(r717,a). +registration_grade(r718,a). +registration_grade(r719,c). +registration_grade(r720,a). +registration_grade(r721,b). +registration_grade(r722,b). +registration_grade(r723,b). +registration_grade(r724,a). +registration_grade(r725,c). +registration_grade(r726,a). +registration_grade(r727,a). +registration_grade(r728,b). +registration_grade(r729,b). +registration_grade(r730,c). +registration_grade(r731,a). +registration_grade(r732,a). +registration_grade(r733,a). +registration_grade(r734,b). +registration_grade(r735,b). +registration_grade(r736,a). +registration_grade(r737,b). +registration_grade(r738,b). +registration_grade(r739,a). +registration_grade(r740,a). +registration_grade(r741,a). +registration_grade(r742,d). +registration_grade(r743,d). +registration_grade(r744,a). +registration_grade(r745,b). +registration_grade(r746,a). +registration_grade(r747,a). +registration_grade(r748,b). +registration_grade(r749,c). +registration_grade(r750,a). +registration_grade(r751,c). +registration_grade(r752,b). +registration_grade(r753,c). +registration_grade(r754,c). +registration_grade(r755,c). +registration_grade(r756,b). +registration_grade(r757,c). +registration_grade(r758,b). +registration_grade(r759,b). +registration_grade(r760,a). +registration_grade(r761,a). +registration_grade(r762,b). +registration_grade(r763,a). +registration_grade(r764,a). +registration_grade(r765,a). +registration_grade(r766,c). +registration_grade(r767,c). +registration_grade(r768,c). +registration_grade(r769,c). +registration_grade(r770,b). +registration_grade(r771,b). +registration_grade(r772,a). +registration_grade(r773,b). +registration_grade(r774,b). +registration_grade(r775,a). +registration_grade(r776,a). +registration_grade(r777,c). +registration_grade(r778,c). +registration_grade(r779,b). +registration_grade(r780,a). +registration_grade(r781,b). +registration_grade(r782,a). +registration_grade(r783,c). +registration_grade(r784,c). +registration_grade(r785,c). +registration_grade(r786,c). +registration_grade(r787,a). +registration_grade(r788,a). +registration_grade(r789,c). +registration_grade(r790,b). +registration_grade(r791,b). +registration_grade(r792,a). +registration_grade(r793,a). +registration_grade(r794,b). +registration_grade(r795,a). +registration_grade(r796,a). +registration_grade(r797,a). +registration_grade(r798,b). +registration_grade(r799,c). +registration_grade(r800,b). +registration_grade(r801,b). +registration_grade(r802,a). +registration_grade(r803,b). +registration_grade(r804,a). +registration_grade(r805,b). +registration_grade(r806,a). +registration_grade(r807,a). +registration_grade(r808,b). +registration_grade(r809,c). +registration_grade(r810,b). +registration_grade(r811,d). +registration_grade(r812,c). +registration_grade(r813,c). +registration_grade(r814,c). +registration_grade(r815,c). +registration_grade(r816,b). +registration_grade(r817,a). +registration_grade(r818,b). +registration_grade(r819,b). +registration_grade(r820,d). +registration_grade(r821,b). +registration_grade(r822,a). +registration_grade(r823,a). +registration_grade(r824,c). +registration_grade(r825,b). +registration_grade(r826,b). +registration_grade(r827,c). +registration_grade(r828,b). +registration_grade(r829,b). +registration_grade(r830,a). +registration_grade(r831,a). +registration_grade(r832,b). +registration_grade(r833,b). +registration_grade(r834,b). +registration_grade(r835,a). +registration_grade(r836,a). +registration_grade(r837,c). +registration_grade(r838,c). +registration_grade(r839,b). +registration_grade(r840,b). +registration_grade(r841,a). +registration_grade(r842,a). +registration_grade(r843,b). +registration_grade(r844,a). +registration_grade(r845,c). +registration_grade(r846,b). +registration_grade(r847,b). +registration_grade(r848,c). +registration_grade(r849,b). +registration_grade(r850,b). +registration_grade(r851,b). +registration_grade(r852,c). +registration_grade(r853,b). +registration_grade(r854,c). +registration_grade(r855,d). +registration_grade(r856,c). + +registration_satisfaction(r0,h). +registration_satisfaction(r1,l). +registration_satisfaction(r2,h). +registration_satisfaction(r3,m). +registration_satisfaction(r4,h). +registration_satisfaction(r5,h). +registration_satisfaction(r6,h). +registration_satisfaction(r7,h). +registration_satisfaction(r8,l). +registration_satisfaction(r9,h). +registration_satisfaction(r10,h). +registration_satisfaction(r11,h). +registration_satisfaction(r12,h). +registration_satisfaction(r13,h). +registration_satisfaction(r14,m). +registration_satisfaction(r15,h). +registration_satisfaction(r16,h). +registration_satisfaction(r17,l). +registration_satisfaction(r18,l). +registration_satisfaction(r19,m). +registration_satisfaction(r20,h). +registration_satisfaction(r21,h). +registration_satisfaction(r22,h). +registration_satisfaction(r23,m). +registration_satisfaction(r24,h). +registration_satisfaction(r25,h). +registration_satisfaction(r26,h). +registration_satisfaction(r27,h). +registration_satisfaction(r28,h). +registration_satisfaction(r29,h). +registration_satisfaction(r30,l). +registration_satisfaction(r31,h). +registration_satisfaction(r32,m). +registration_satisfaction(r33,h). +registration_satisfaction(r34,h). +registration_satisfaction(r35,h). +registration_satisfaction(r36,m). +registration_satisfaction(r37,h). +registration_satisfaction(r38,h). +registration_satisfaction(r39,h). +registration_satisfaction(r40,h). +registration_satisfaction(r41,h). +registration_satisfaction(r42,l). +registration_satisfaction(r43,h). +registration_satisfaction(r44,h). +registration_satisfaction(r45,h). +registration_satisfaction(r46,m). +registration_satisfaction(r47,h). +registration_satisfaction(r48,h). +registration_satisfaction(r49,h). +registration_satisfaction(r50,h). +registration_satisfaction(r51,h). +registration_satisfaction(r52,h). +registration_satisfaction(r53,h). +registration_satisfaction(r54,h). +registration_satisfaction(r55,h). +registration_satisfaction(r56,l). +registration_satisfaction(r57,h). +registration_satisfaction(r58,h). +registration_satisfaction(r59,l). +registration_satisfaction(r60,h). +registration_satisfaction(r61,h). +registration_satisfaction(r62,h). +registration_satisfaction(r63,h). +registration_satisfaction(r64,h). +registration_satisfaction(r65,h). +registration_satisfaction(r66,h). +registration_satisfaction(r67,m). +registration_satisfaction(r68,h). +registration_satisfaction(r69,m). +registration_satisfaction(r70,h). +registration_satisfaction(r71,h). +registration_satisfaction(r72,l). +registration_satisfaction(r73,h). +registration_satisfaction(r74,h). +registration_satisfaction(r75,h). +registration_satisfaction(r76,h). +registration_satisfaction(r77,h). +registration_satisfaction(r78,m). +registration_satisfaction(r79,h). +registration_satisfaction(r80,h). +registration_satisfaction(r81,h). +registration_satisfaction(r82,l). +registration_satisfaction(r83,m). +registration_satisfaction(r84,m). +registration_satisfaction(r85,h). +registration_satisfaction(r86,m). +registration_satisfaction(r87,m). +registration_satisfaction(r88,h). +registration_satisfaction(r89,h). +registration_satisfaction(r90,m). +registration_satisfaction(r91,h). +registration_satisfaction(r92,l). +registration_satisfaction(r93,h). +registration_satisfaction(r94,l). +registration_satisfaction(r95,h). +registration_satisfaction(r96,h). +registration_satisfaction(r97,h). +registration_satisfaction(r98,h). +registration_satisfaction(r99,h). +registration_satisfaction(r100,h). +registration_satisfaction(r101,h). +registration_satisfaction(r102,h). +registration_satisfaction(r103,h). +registration_satisfaction(r104,h). +registration_satisfaction(r105,l). +registration_satisfaction(r106,h). +registration_satisfaction(r107,l). +registration_satisfaction(r108,l). +registration_satisfaction(r109,h). +registration_satisfaction(r110,h). +registration_satisfaction(r111,h). +registration_satisfaction(r112,h). +registration_satisfaction(r113,h). +registration_satisfaction(r114,m). +registration_satisfaction(r115,l). +registration_satisfaction(r116,h). +registration_satisfaction(r117,h). +registration_satisfaction(r118,h). +registration_satisfaction(r119,h). +registration_satisfaction(r120,l). +registration_satisfaction(r121,h). +registration_satisfaction(r122,h). +registration_satisfaction(r123,l). +registration_satisfaction(r124,h). +registration_satisfaction(r125,m). +registration_satisfaction(r126,h). +registration_satisfaction(r127,h). +registration_satisfaction(r128,h). +registration_satisfaction(r129,h). +registration_satisfaction(r130,h). +registration_satisfaction(r131,h). +registration_satisfaction(r132,m). +registration_satisfaction(r133,h). +registration_satisfaction(r134,m). +registration_satisfaction(r135,h). +registration_satisfaction(r136,h). +registration_satisfaction(r137,h). +registration_satisfaction(r138,h). +registration_satisfaction(r139,h). +registration_satisfaction(r140,h). +registration_satisfaction(r141,l). +registration_satisfaction(r142,h). +registration_satisfaction(r143,h). +registration_satisfaction(r144,h). +registration_satisfaction(r145,l). +registration_satisfaction(r146,h). +registration_satisfaction(r147,l). +registration_satisfaction(r148,m). +registration_satisfaction(r149,h). +registration_satisfaction(r150,h). +registration_satisfaction(r151,h). +registration_satisfaction(r152,h). +registration_satisfaction(r153,h). +registration_satisfaction(r154,m). +registration_satisfaction(r155,m). +registration_satisfaction(r156,h). +registration_satisfaction(r157,m). +registration_satisfaction(r158,l). +registration_satisfaction(r159,m). +registration_satisfaction(r160,h). +registration_satisfaction(r161,h). +registration_satisfaction(r162,m). +registration_satisfaction(r163,h). +registration_satisfaction(r164,m). +registration_satisfaction(r165,m). +registration_satisfaction(r166,l). +registration_satisfaction(r167,h). +registration_satisfaction(r168,h). +registration_satisfaction(r169,h). +registration_satisfaction(r170,h). +registration_satisfaction(r171,h). +registration_satisfaction(r172,h). +registration_satisfaction(r173,h). +registration_satisfaction(r174,h). +registration_satisfaction(r175,h). +registration_satisfaction(r176,h). +registration_satisfaction(r177,h). +registration_satisfaction(r178,h). +registration_satisfaction(r179,l). +registration_satisfaction(r180,h). +registration_satisfaction(r181,m). +registration_satisfaction(r182,h). +registration_satisfaction(r183,l). +registration_satisfaction(r184,h). +registration_satisfaction(r185,h). +registration_satisfaction(r186,h). +registration_satisfaction(r187,h). +registration_satisfaction(r188,m). +registration_satisfaction(r189,h). +registration_satisfaction(r190,h). +registration_satisfaction(r191,h). +registration_satisfaction(r192,m). +registration_satisfaction(r193,h). +registration_satisfaction(r194,h). +registration_satisfaction(r195,h). +registration_satisfaction(r196,h). +registration_satisfaction(r197,h). +registration_satisfaction(r198,h). +registration_satisfaction(r199,h). +registration_satisfaction(r200,m). +registration_satisfaction(r201,h). +registration_satisfaction(r202,h). +registration_satisfaction(r203,h). +registration_satisfaction(r204,h). +registration_satisfaction(r205,h). +registration_satisfaction(r206,h). +registration_satisfaction(r207,h). +registration_satisfaction(r208,h). +registration_satisfaction(r209,h). +registration_satisfaction(r210,h). +registration_satisfaction(r211,m). +registration_satisfaction(r212,h). +registration_satisfaction(r213,h). +registration_satisfaction(r214,h). +registration_satisfaction(r215,h). +registration_satisfaction(r216,h). +registration_satisfaction(r217,h). +registration_satisfaction(r218,m). +registration_satisfaction(r219,h). +registration_satisfaction(r220,h). +registration_satisfaction(r221,m). +registration_satisfaction(r222,l). +registration_satisfaction(r223,h). +registration_satisfaction(r224,h). +registration_satisfaction(r225,l). +registration_satisfaction(r226,l). +registration_satisfaction(r227,h). +registration_satisfaction(r228,l). +registration_satisfaction(r229,l). +registration_satisfaction(r230,h). +registration_satisfaction(r231,l). +registration_satisfaction(r232,h). +registration_satisfaction(r233,m). +registration_satisfaction(r234,l). +registration_satisfaction(r235,h). +registration_satisfaction(r236,l). +registration_satisfaction(r237,m). +registration_satisfaction(r238,m). +registration_satisfaction(r239,m). +registration_satisfaction(r240,h). +registration_satisfaction(r241,h). +registration_satisfaction(r242,m). +registration_satisfaction(r243,h). +registration_satisfaction(r244,m). +registration_satisfaction(r245,h). +registration_satisfaction(r246,h). +registration_satisfaction(r247,l). +registration_satisfaction(r248,l). +registration_satisfaction(r249,h). +registration_satisfaction(r250,h). +registration_satisfaction(r251,h). +registration_satisfaction(r252,h). +registration_satisfaction(r253,h). +registration_satisfaction(r254,h). +registration_satisfaction(r255,h). +registration_satisfaction(r256,h). +registration_satisfaction(r257,m). +registration_satisfaction(r258,h). +registration_satisfaction(r259,h). +registration_satisfaction(r260,h). +registration_satisfaction(r261,h). +registration_satisfaction(r262,h). +registration_satisfaction(r263,m). +registration_satisfaction(r264,h). +registration_satisfaction(r265,h). +registration_satisfaction(r266,l). +registration_satisfaction(r267,h). +registration_satisfaction(r268,l). +registration_satisfaction(r269,h). +registration_satisfaction(r270,l). +registration_satisfaction(r271,h). +registration_satisfaction(r272,l). +registration_satisfaction(r273,h). +registration_satisfaction(r274,h). +registration_satisfaction(r275,h). +registration_satisfaction(r276,h). +registration_satisfaction(r277,h). +registration_satisfaction(r278,h). +registration_satisfaction(r279,h). +registration_satisfaction(r280,h). +registration_satisfaction(r281,m). +registration_satisfaction(r282,h). +registration_satisfaction(r283,h). +registration_satisfaction(r284,m). +registration_satisfaction(r285,m). +registration_satisfaction(r286,h). +registration_satisfaction(r287,h). +registration_satisfaction(r288,h). +registration_satisfaction(r289,l). +registration_satisfaction(r290,m). +registration_satisfaction(r291,h). +registration_satisfaction(r292,m). +registration_satisfaction(r293,h). +registration_satisfaction(r294,h). +registration_satisfaction(r295,m). +registration_satisfaction(r296,l). +registration_satisfaction(r297,h). +registration_satisfaction(r298,h). +registration_satisfaction(r299,h). +registration_satisfaction(r300,l). +registration_satisfaction(r301,h). +registration_satisfaction(r302,m). +registration_satisfaction(r303,h). +registration_satisfaction(r304,h). +registration_satisfaction(r305,l). +registration_satisfaction(r306,h). +registration_satisfaction(r307,l). +registration_satisfaction(r308,l). +registration_satisfaction(r309,m). +registration_satisfaction(r310,h). +registration_satisfaction(r311,l). +registration_satisfaction(r312,h). +registration_satisfaction(r313,h). +registration_satisfaction(r314,h). +registration_satisfaction(r315,h). +registration_satisfaction(r316,l). +registration_satisfaction(r317,l). +registration_satisfaction(r318,h). +registration_satisfaction(r319,m). +registration_satisfaction(r320,h). +registration_satisfaction(r321,l). +registration_satisfaction(r322,h). +registration_satisfaction(r323,l). +registration_satisfaction(r324,h). +registration_satisfaction(r325,h). +registration_satisfaction(r326,h). +registration_satisfaction(r327,m). +registration_satisfaction(r328,h). +registration_satisfaction(r329,h). +registration_satisfaction(r330,l). +registration_satisfaction(r331,h). +registration_satisfaction(r332,l). +registration_satisfaction(r333,h). +registration_satisfaction(r334,h). +registration_satisfaction(r335,h). +registration_satisfaction(r336,m). +registration_satisfaction(r337,h). +registration_satisfaction(r338,h). +registration_satisfaction(r339,h). +registration_satisfaction(r340,h). +registration_satisfaction(r341,l). +registration_satisfaction(r342,h). +registration_satisfaction(r343,h). +registration_satisfaction(r344,h). +registration_satisfaction(r345,m). +registration_satisfaction(r346,h). +registration_satisfaction(r347,m). +registration_satisfaction(r348,m). +registration_satisfaction(r349,h). +registration_satisfaction(r350,m). +registration_satisfaction(r351,h). +registration_satisfaction(r352,l). +registration_satisfaction(r353,h). +registration_satisfaction(r354,h). +registration_satisfaction(r355,h). +registration_satisfaction(r356,m). +registration_satisfaction(r357,m). +registration_satisfaction(r358,h). +registration_satisfaction(r359,l). +registration_satisfaction(r360,h). +registration_satisfaction(r361,m). +registration_satisfaction(r362,h). +registration_satisfaction(r363,l). +registration_satisfaction(r364,h). +registration_satisfaction(r365,m). +registration_satisfaction(r366,h). +registration_satisfaction(r367,h). +registration_satisfaction(r368,h). +registration_satisfaction(r369,h). +registration_satisfaction(r370,h). +registration_satisfaction(r371,h). +registration_satisfaction(r372,h). +registration_satisfaction(r373,h). +registration_satisfaction(r374,l). +registration_satisfaction(r375,h). +registration_satisfaction(r376,m). +registration_satisfaction(r377,h). +registration_satisfaction(r378,h). +registration_satisfaction(r379,h). +registration_satisfaction(r380,h). +registration_satisfaction(r381,m). +registration_satisfaction(r382,h). +registration_satisfaction(r383,h). +registration_satisfaction(r384,m). +registration_satisfaction(r385,m). +registration_satisfaction(r386,l). +registration_satisfaction(r387,h). +registration_satisfaction(r388,h). +registration_satisfaction(r389,h). +registration_satisfaction(r390,h). +registration_satisfaction(r391,l). +registration_satisfaction(r392,h). +registration_satisfaction(r393,h). +registration_satisfaction(r394,h). +registration_satisfaction(r395,h). +registration_satisfaction(r396,h). +registration_satisfaction(r397,h). +registration_satisfaction(r398,l). +registration_satisfaction(r399,h). +registration_satisfaction(r400,h). +registration_satisfaction(r401,l). +registration_satisfaction(r402,h). +registration_satisfaction(r403,h). +registration_satisfaction(r404,h). +registration_satisfaction(r405,h). +registration_satisfaction(r406,h). +registration_satisfaction(r407,h). +registration_satisfaction(r408,h). +registration_satisfaction(r409,h). +registration_satisfaction(r410,h). +registration_satisfaction(r411,l). +registration_satisfaction(r412,h). +registration_satisfaction(r413,l). +registration_satisfaction(r414,h). +registration_satisfaction(r415,m). +registration_satisfaction(r416,h). +registration_satisfaction(r417,h). +registration_satisfaction(r418,h). +registration_satisfaction(r419,h). +registration_satisfaction(r420,h). +registration_satisfaction(r421,h). +registration_satisfaction(r422,m). +registration_satisfaction(r423,h). +registration_satisfaction(r424,h). +registration_satisfaction(r425,h). +registration_satisfaction(r426,l). +registration_satisfaction(r427,h). +registration_satisfaction(r428,h). +registration_satisfaction(r429,h). +registration_satisfaction(r430,l). +registration_satisfaction(r431,m). +registration_satisfaction(r432,h). +registration_satisfaction(r433,h). +registration_satisfaction(r434,h). +registration_satisfaction(r435,m). +registration_satisfaction(r436,h). +registration_satisfaction(r437,h). +registration_satisfaction(r438,l). +registration_satisfaction(r439,h). +registration_satisfaction(r440,h). +registration_satisfaction(r441,h). +registration_satisfaction(r442,m). +registration_satisfaction(r443,h). +registration_satisfaction(r444,h). +registration_satisfaction(r445,h). +registration_satisfaction(r446,h). +registration_satisfaction(r447,m). +registration_satisfaction(r448,l). +registration_satisfaction(r449,h). +registration_satisfaction(r450,h). +registration_satisfaction(r451,h). +registration_satisfaction(r452,h). +registration_satisfaction(r453,h). +registration_satisfaction(r454,l). +registration_satisfaction(r455,m). +registration_satisfaction(r456,h). +registration_satisfaction(r457,h). +registration_satisfaction(r458,m). +registration_satisfaction(r459,m). +registration_satisfaction(r460,l). +registration_satisfaction(r461,h). +registration_satisfaction(r462,h). +registration_satisfaction(r463,l). +registration_satisfaction(r464,h). +registration_satisfaction(r465,h). +registration_satisfaction(r466,l). +registration_satisfaction(r467,h). +registration_satisfaction(r468,h). +registration_satisfaction(r469,h). +registration_satisfaction(r470,h). +registration_satisfaction(r471,h). +registration_satisfaction(r472,h). +registration_satisfaction(r473,l). +registration_satisfaction(r474,m). +registration_satisfaction(r475,h). +registration_satisfaction(r476,l). +registration_satisfaction(r477,m). +registration_satisfaction(r478,h). +registration_satisfaction(r479,l). +registration_satisfaction(r480,h). +registration_satisfaction(r481,m). +registration_satisfaction(r482,h). +registration_satisfaction(r483,h). +registration_satisfaction(r484,m). +registration_satisfaction(r485,h). +registration_satisfaction(r486,h). +registration_satisfaction(r487,h). +registration_satisfaction(r488,l). +registration_satisfaction(r489,m). +registration_satisfaction(r490,m). +registration_satisfaction(r491,l). +registration_satisfaction(r492,h). +registration_satisfaction(r493,h). +registration_satisfaction(r494,m). +registration_satisfaction(r495,h). +registration_satisfaction(r496,h). +registration_satisfaction(r497,h). +registration_satisfaction(r498,l). +registration_satisfaction(r499,h). +registration_satisfaction(r500,m). +registration_satisfaction(r501,h). +registration_satisfaction(r502,h). +registration_satisfaction(r503,l). +registration_satisfaction(r504,m). +registration_satisfaction(r505,h). +registration_satisfaction(r506,h). +registration_satisfaction(r507,h). +registration_satisfaction(r508,l). +registration_satisfaction(r509,m). +registration_satisfaction(r510,h). +registration_satisfaction(r511,l). +registration_satisfaction(r512,h). +registration_satisfaction(r513,h). +registration_satisfaction(r514,h). +registration_satisfaction(r515,l). +registration_satisfaction(r516,h). +registration_satisfaction(r517,m). +registration_satisfaction(r518,h). +registration_satisfaction(r519,h). +registration_satisfaction(r520,h). +registration_satisfaction(r521,h). +registration_satisfaction(r522,h). +registration_satisfaction(r523,h). +registration_satisfaction(r524,h). +registration_satisfaction(r525,l). +registration_satisfaction(r526,h). +registration_satisfaction(r527,l). +registration_satisfaction(r528,h). +registration_satisfaction(r529,h). +registration_satisfaction(r530,h). +registration_satisfaction(r531,m). +registration_satisfaction(r532,h). +registration_satisfaction(r533,h). +registration_satisfaction(r534,l). +registration_satisfaction(r535,m). +registration_satisfaction(r536,h). +registration_satisfaction(r537,h). +registration_satisfaction(r538,h). +registration_satisfaction(r539,h). +registration_satisfaction(r540,m). +registration_satisfaction(r541,h). +registration_satisfaction(r542,h). +registration_satisfaction(r543,h). +registration_satisfaction(r544,h). +registration_satisfaction(r545,h). +registration_satisfaction(r546,h). +registration_satisfaction(r547,l). +registration_satisfaction(r548,h). +registration_satisfaction(r549,h). +registration_satisfaction(r550,h). +registration_satisfaction(r551,h). +registration_satisfaction(r552,m). +registration_satisfaction(r553,m). +registration_satisfaction(r554,l). +registration_satisfaction(r555,m). +registration_satisfaction(r556,h). +registration_satisfaction(r557,h). +registration_satisfaction(r558,h). +registration_satisfaction(r559,h). +registration_satisfaction(r560,h). +registration_satisfaction(r561,h). +registration_satisfaction(r562,h). +registration_satisfaction(r563,m). +registration_satisfaction(r564,h). +registration_satisfaction(r565,l). +registration_satisfaction(r566,l). +registration_satisfaction(r567,h). +registration_satisfaction(r568,h). +registration_satisfaction(r569,h). +registration_satisfaction(r570,h). +registration_satisfaction(r571,l). +registration_satisfaction(r572,m). +registration_satisfaction(r573,h). +registration_satisfaction(r574,m). +registration_satisfaction(r575,h). +registration_satisfaction(r576,h). +registration_satisfaction(r577,h). +registration_satisfaction(r578,l). +registration_satisfaction(r579,h). +registration_satisfaction(r580,m). +registration_satisfaction(r581,h). +registration_satisfaction(r582,h). +registration_satisfaction(r583,h). +registration_satisfaction(r584,h). +registration_satisfaction(r585,h). +registration_satisfaction(r586,m). +registration_satisfaction(r587,m). +registration_satisfaction(r588,l). +registration_satisfaction(r589,l). +registration_satisfaction(r590,h). +registration_satisfaction(r591,h). +registration_satisfaction(r592,h). +registration_satisfaction(r593,h). +registration_satisfaction(r594,l). +registration_satisfaction(r595,m). +registration_satisfaction(r596,h). +registration_satisfaction(r597,h). +registration_satisfaction(r598,h). +registration_satisfaction(r599,h). +registration_satisfaction(r600,m). +registration_satisfaction(r601,m). +registration_satisfaction(r602,h). +registration_satisfaction(r603,h). +registration_satisfaction(r604,l). +registration_satisfaction(r605,h). +registration_satisfaction(r606,h). +registration_satisfaction(r607,l). +registration_satisfaction(r608,h). +registration_satisfaction(r609,h). +registration_satisfaction(r610,h). +registration_satisfaction(r611,h). +registration_satisfaction(r612,l). +registration_satisfaction(r613,h). +registration_satisfaction(r614,m). +registration_satisfaction(r615,l). +registration_satisfaction(r616,h). +registration_satisfaction(r617,h). +registration_satisfaction(r618,h). +registration_satisfaction(r619,h). +registration_satisfaction(r620,h). +registration_satisfaction(r621,h). +registration_satisfaction(r622,h). +registration_satisfaction(r623,l). +registration_satisfaction(r624,m). +registration_satisfaction(r625,l). +registration_satisfaction(r626,h). +registration_satisfaction(r627,h). +registration_satisfaction(r628,h). +registration_satisfaction(r629,h). +registration_satisfaction(r630,h). +registration_satisfaction(r631,h). +registration_satisfaction(r632,h). +registration_satisfaction(r633,h). +registration_satisfaction(r634,h). +registration_satisfaction(r635,m). +registration_satisfaction(r636,l). +registration_satisfaction(r637,m). +registration_satisfaction(r638,h). +registration_satisfaction(r639,h). +registration_satisfaction(r640,h). +registration_satisfaction(r641,h). +registration_satisfaction(r642,h). +registration_satisfaction(r643,h). +registration_satisfaction(r644,h). +registration_satisfaction(r645,h). +registration_satisfaction(r646,h). +registration_satisfaction(r647,h). +registration_satisfaction(r648,h). +registration_satisfaction(r649,h). +registration_satisfaction(r650,h). +registration_satisfaction(r651,h). +registration_satisfaction(r652,m). +registration_satisfaction(r653,l). +registration_satisfaction(r654,h). +registration_satisfaction(r655,h). +registration_satisfaction(r656,m). +registration_satisfaction(r657,h). +registration_satisfaction(r658,h). +registration_satisfaction(r659,h). +registration_satisfaction(r660,h). +registration_satisfaction(r661,h). +registration_satisfaction(r662,h). +registration_satisfaction(r663,h). +registration_satisfaction(r664,l). +registration_satisfaction(r665,h). +registration_satisfaction(r666,l). +registration_satisfaction(r667,h). +registration_satisfaction(r668,l). +registration_satisfaction(r669,h). +registration_satisfaction(r670,h). +registration_satisfaction(r671,h). +registration_satisfaction(r672,l). +registration_satisfaction(r673,l). +registration_satisfaction(r674,h). +registration_satisfaction(r675,l). +registration_satisfaction(r676,h). +registration_satisfaction(r677,h). +registration_satisfaction(r678,h). +registration_satisfaction(r679,h). +registration_satisfaction(r680,m). +registration_satisfaction(r681,h). +registration_satisfaction(r682,h). +registration_satisfaction(r683,h). +registration_satisfaction(r684,m). +registration_satisfaction(r685,h). +registration_satisfaction(r686,h). +registration_satisfaction(r687,l). +registration_satisfaction(r688,h). +registration_satisfaction(r689,m). +registration_satisfaction(r690,h). +registration_satisfaction(r691,h). +registration_satisfaction(r692,h). +registration_satisfaction(r693,h). +registration_satisfaction(r694,h). +registration_satisfaction(r695,h). +registration_satisfaction(r696,h). +registration_satisfaction(r697,m). +registration_satisfaction(r698,h). +registration_satisfaction(r699,h). +registration_satisfaction(r700,h). +registration_satisfaction(r701,h). +registration_satisfaction(r702,h). +registration_satisfaction(r703,l). +registration_satisfaction(r704,l). +registration_satisfaction(r705,l). +registration_satisfaction(r706,m). +registration_satisfaction(r707,h). +registration_satisfaction(r708,l). +registration_satisfaction(r709,m). +registration_satisfaction(r710,l). +registration_satisfaction(r711,h). +registration_satisfaction(r712,h). +registration_satisfaction(r713,h). +registration_satisfaction(r714,m). +registration_satisfaction(r715,h). +registration_satisfaction(r716,h). +registration_satisfaction(r717,h). +registration_satisfaction(r718,l). +registration_satisfaction(r719,l). +registration_satisfaction(r720,h). +registration_satisfaction(r721,h). +registration_satisfaction(r722,h). +registration_satisfaction(r723,h). +registration_satisfaction(r724,h). +registration_satisfaction(r725,h). +registration_satisfaction(r726,h). +registration_satisfaction(r727,h). +registration_satisfaction(r728,m). +registration_satisfaction(r729,h). +registration_satisfaction(r730,h). +registration_satisfaction(r731,h). +registration_satisfaction(r732,h). +registration_satisfaction(r733,h). +registration_satisfaction(r734,h). +registration_satisfaction(r735,h). +registration_satisfaction(r736,h). +registration_satisfaction(r737,h). +registration_satisfaction(r738,h). +registration_satisfaction(r739,h). +registration_satisfaction(r740,h). +registration_satisfaction(r741,h). +registration_satisfaction(r742,h). +registration_satisfaction(r743,h). +registration_satisfaction(r744,h). +registration_satisfaction(r745,m). +registration_satisfaction(r746,h). +registration_satisfaction(r747,h). +registration_satisfaction(r748,h). +registration_satisfaction(r749,m). +registration_satisfaction(r750,h). +registration_satisfaction(r751,h). +registration_satisfaction(r752,m). +registration_satisfaction(r753,m). +registration_satisfaction(r754,h). +registration_satisfaction(r755,l). +registration_satisfaction(r756,h). +registration_satisfaction(r757,h). +registration_satisfaction(r758,h). +registration_satisfaction(r759,l). +registration_satisfaction(r760,h). +registration_satisfaction(r761,h). +registration_satisfaction(r762,m). +registration_satisfaction(r763,h). +registration_satisfaction(r764,h). +registration_satisfaction(r765,h). +registration_satisfaction(r766,h). +registration_satisfaction(r767,h). +registration_satisfaction(r768,l). +registration_satisfaction(r769,l). +registration_satisfaction(r770,m). +registration_satisfaction(r771,m). +registration_satisfaction(r772,h). +registration_satisfaction(r773,m). +registration_satisfaction(r774,h). +registration_satisfaction(r775,h). +registration_satisfaction(r776,h). +registration_satisfaction(r777,l). +registration_satisfaction(r778,h). +registration_satisfaction(r779,h). +registration_satisfaction(r780,h). +registration_satisfaction(r781,m). +registration_satisfaction(r782,m). +registration_satisfaction(r783,m). +registration_satisfaction(r784,l). +registration_satisfaction(r785,l). +registration_satisfaction(r786,h). +registration_satisfaction(r787,h). +registration_satisfaction(r788,h). +registration_satisfaction(r789,h). +registration_satisfaction(r790,h). +registration_satisfaction(r791,h). +registration_satisfaction(r792,h). +registration_satisfaction(r793,m). +registration_satisfaction(r794,l). +registration_satisfaction(r795,h). +registration_satisfaction(r796,h). +registration_satisfaction(r797,h). +registration_satisfaction(r798,m). +registration_satisfaction(r799,m). +registration_satisfaction(r800,m). +registration_satisfaction(r801,h). +registration_satisfaction(r802,h). +registration_satisfaction(r803,h). +registration_satisfaction(r804,h). +registration_satisfaction(r805,h). +registration_satisfaction(r806,h). +registration_satisfaction(r807,l). +registration_satisfaction(r808,m). +registration_satisfaction(r809,l). +registration_satisfaction(r810,h). +registration_satisfaction(r811,l). +registration_satisfaction(r812,h). +registration_satisfaction(r813,m). +registration_satisfaction(r814,l). +registration_satisfaction(r815,h). +registration_satisfaction(r816,h). +registration_satisfaction(r817,h). +registration_satisfaction(r818,l). +registration_satisfaction(r819,h). +registration_satisfaction(r820,h). +registration_satisfaction(r821,m). +registration_satisfaction(r822,m). +registration_satisfaction(r823,h). +registration_satisfaction(r824,m). +registration_satisfaction(r825,l). +registration_satisfaction(r826,l). +registration_satisfaction(r827,l). +registration_satisfaction(r828,m). +registration_satisfaction(r829,l). +registration_satisfaction(r830,h). +registration_satisfaction(r831,h). +registration_satisfaction(r832,m). +registration_satisfaction(r833,h). +registration_satisfaction(r834,h). +registration_satisfaction(r835,h). +registration_satisfaction(r836,h). +registration_satisfaction(r837,h). +registration_satisfaction(r838,l). +registration_satisfaction(r839,m). +registration_satisfaction(r840,m). +registration_satisfaction(r841,h). +registration_satisfaction(r842,h). +registration_satisfaction(r843,h). +registration_satisfaction(r844,h). +registration_satisfaction(r845,l). +registration_satisfaction(r846,l). +registration_satisfaction(r847,h). +registration_satisfaction(r848,l). +registration_satisfaction(r849,h). +registration_satisfaction(r850,h). +registration_satisfaction(r851,h). +registration_satisfaction(r852,h). +registration_satisfaction(r853,h). +registration_satisfaction(r854,m). +registration_satisfaction(r855,h). +registration_satisfaction(r856,l). + + +course_rating(c0,m). +course_rating(c1,l). +course_rating(c2,m). +course_rating(c3,h). +course_rating(c4,h). +course_rating(c5,m). +course_rating(c6,h). +course_rating(c7,h). +course_rating(c8,m). +course_rating(c9,m). +course_rating(c10,m). +course_rating(c11,h). +course_rating(c12,m). +course_rating(c13,h). +course_rating(c14,h). +course_rating(c15,m). +course_rating(c16,h). +course_rating(c17,m). +course_rating(c18,h). +course_rating(c19,h). +course_rating(c20,h). +course_rating(c21,m). +course_rating(c22,h). +course_rating(c23,h). +course_rating(c24,m). +course_rating(c25,h). +course_rating(c26,m). +course_rating(c27,h). +course_rating(c28,m). +course_rating(c29,m). +course_rating(c30,h). +course_rating(c31,h). +course_rating(c32,h). +course_rating(c33,m). +course_rating(c34,h). +course_rating(c35,m). +course_rating(c36,h). +course_rating(c37,m). +course_rating(c38,m). +course_rating(c39,h). +course_rating(c40,m). +course_rating(c41,m). +course_rating(c42,h). +course_rating(c43,h). +course_rating(c44,h). +course_rating(c45,h). +course_rating(c46,l). +course_rating(c47,h). +course_rating(c48,h). +course_rating(c49,m). +course_rating(c50,l). +course_rating(c51,m). +course_rating(c52,h). +course_rating(c53,l). +course_rating(c54,h). +course_rating(c55,h). +course_rating(c56,h). +course_rating(c57,h). +course_rating(c58,l). +course_rating(c59,h). +course_rating(c60,h). +course_rating(c61,h). +course_rating(c62,h). +course_rating(c63,h). + + +student_ranking(s0,b). +student_ranking(s1,c). +student_ranking(s2,a). +student_ranking(s3,a). +student_ranking(s4,a). +student_ranking(s5,b). +student_ranking(s6,c). +student_ranking(s7,a). +student_ranking(s8,a). +student_ranking(s9,c). +student_ranking(s10,b). +student_ranking(s11,b). +student_ranking(s12,b). +student_ranking(s13,b). +student_ranking(s14,a). +student_ranking(s15,c). +student_ranking(s16,b). +student_ranking(s17,c). +student_ranking(s18,b). +student_ranking(s19,a). +student_ranking(s20,b). +student_ranking(s21,b). +student_ranking(s22,b). +student_ranking(s23,b). +student_ranking(s24,a). +student_ranking(s25,a). +student_ranking(s26,b). +student_ranking(s27,c). +student_ranking(s28,b). +student_ranking(s29,b). +student_ranking(s30,a). +student_ranking(s31,b). +student_ranking(s32,b). +student_ranking(s33,a). +student_ranking(s34,c). +student_ranking(s35,b). +student_ranking(s36,b). +student_ranking(s37,b). +student_ranking(s38,a). +student_ranking(s39,a). +student_ranking(s40,a). +student_ranking(s41,b). +student_ranking(s42,b). +student_ranking(s43,a). +student_ranking(s44,a). +student_ranking(s45,a). +student_ranking(s46,c). +student_ranking(s47,a). +student_ranking(s48,b). +student_ranking(s49,b). +student_ranking(s50,a). +student_ranking(s51,b). +student_ranking(s52,c). +student_ranking(s53,b). +student_ranking(s54,b). +student_ranking(s55,a). +student_ranking(s56,b). +student_ranking(s57,b). +student_ranking(s58,a). +student_ranking(s59,b). +student_ranking(s60,a). +student_ranking(s61,b). +student_ranking(s62,b). +student_ranking(s63,a). +student_ranking(s64,b). +student_ranking(s65,b). +student_ranking(s66,b). +student_ranking(s67,c). +student_ranking(s68,b). +student_ranking(s69,b). +student_ranking(s70,c). +student_ranking(s71,c). +student_ranking(s72,a). +student_ranking(s73,b). +student_ranking(s74,a). +student_ranking(s75,b). +student_ranking(s76,b). +student_ranking(s77,a). +student_ranking(s78,b). +student_ranking(s79,b). +student_ranking(s80,b). +student_ranking(s81,b). +student_ranking(s82,a). +student_ranking(s83,a). +student_ranking(s84,b). +student_ranking(s85,a). +student_ranking(s86,c). +student_ranking(s87,a). +student_ranking(s88,a). +student_ranking(s89,b). +student_ranking(s90,a). +student_ranking(s91,c). +student_ranking(s92,a). +student_ranking(s93,c). +student_ranking(s94,c). +student_ranking(s95,b). +student_ranking(s96,b). +student_ranking(s97,b). +student_ranking(s98,a). +student_ranking(s99,b). +student_ranking(s100,b). +student_ranking(s101,b). +student_ranking(s102,a). +student_ranking(s103,a). +student_ranking(s104,c). +student_ranking(s105,b). +student_ranking(s106,a). +student_ranking(s107,c). +student_ranking(s108,b). +student_ranking(s109,b). +student_ranking(s110,b). +student_ranking(s111,a). +student_ranking(s112,b). +student_ranking(s113,b). +student_ranking(s114,c). +student_ranking(s115,a). +student_ranking(s116,b). +student_ranking(s117,b). +student_ranking(s118,b). +student_ranking(s119,a). +student_ranking(s120,a). +student_ranking(s121,a). +student_ranking(s122,a). +student_ranking(s123,c). +student_ranking(s124,a). +student_ranking(s125,b). +student_ranking(s126,b). +student_ranking(s127,c). +student_ranking(s128,c). +student_ranking(s129,b). +student_ranking(s130,b). +student_ranking(s131,b). +student_ranking(s132,a). +student_ranking(s133,c). +student_ranking(s134,a). +student_ranking(s135,c). +student_ranking(s136,b). +student_ranking(s137,b). +student_ranking(s138,b). +student_ranking(s139,a). +student_ranking(s140,b). +student_ranking(s141,b). +student_ranking(s142,b). +student_ranking(s143,c). +student_ranking(s144,a). +student_ranking(s145,a). +student_ranking(s146,c). +student_ranking(s147,b). +student_ranking(s148,c). +student_ranking(s149,b). +student_ranking(s150,c). +student_ranking(s151,b). +student_ranking(s152,a). +student_ranking(s153,c). +student_ranking(s154,a). +student_ranking(s155,b). +student_ranking(s156,b). +student_ranking(s157,b). +student_ranking(s158,a). +student_ranking(s159,b). +student_ranking(s160,a). +student_ranking(s161,b). +student_ranking(s162,a). +student_ranking(s163,b). +student_ranking(s164,b). +student_ranking(s165,b). +student_ranking(s166,b). +student_ranking(s167,b). +student_ranking(s168,a). +student_ranking(s169,c). +student_ranking(s170,b). +student_ranking(s171,b). +student_ranking(s172,a). +student_ranking(s173,a). +student_ranking(s174,a). +student_ranking(s175,c). +student_ranking(s176,b). +student_ranking(s177,b). +student_ranking(s178,a). +student_ranking(s179,a). +student_ranking(s180,b). +student_ranking(s181,a). +student_ranking(s182,b). +student_ranking(s183,a). +student_ranking(s184,a). +student_ranking(s185,b). +student_ranking(s186,b). +student_ranking(s187,b). +student_ranking(s188,a). +student_ranking(s189,c). +student_ranking(s190,b). +student_ranking(s191,c). +student_ranking(s192,a). +student_ranking(s193,b). +student_ranking(s194,b). +student_ranking(s195,c). +student_ranking(s196,a). +student_ranking(s197,a). +student_ranking(s198,b). +student_ranking(s199,b). +student_ranking(s200,b). +student_ranking(s201,b). +student_ranking(s202,a). +student_ranking(s203,b). +student_ranking(s204,b). +student_ranking(s205,b). +student_ranking(s206,b). +student_ranking(s207,a). +student_ranking(s208,b). +student_ranking(s209,a). +student_ranking(s210,c). +student_ranking(s211,b). +student_ranking(s212,a). +student_ranking(s213,a). +student_ranking(s214,b). +student_ranking(s215,b). +student_ranking(s216,b). +student_ranking(s217,b). +student_ranking(s218,a). +student_ranking(s219,b). +student_ranking(s220,a). +student_ranking(s221,c). +student_ranking(s222,a). +student_ranking(s223,b). +student_ranking(s224,c). +student_ranking(s225,c). +student_ranking(s226,a). +student_ranking(s227,a). +student_ranking(s228,b). +student_ranking(s229,c). +student_ranking(s230,b). +student_ranking(s231,a). +student_ranking(s232,c). +student_ranking(s233,b). +student_ranking(s234,c). +student_ranking(s235,b). +student_ranking(s236,b). +student_ranking(s237,a). +student_ranking(s238,a). +student_ranking(s239,b). +student_ranking(s240,a). +student_ranking(s241,b). +student_ranking(s242,c). +student_ranking(s243,b). +student_ranking(s244,c). +student_ranking(s245,b). +student_ranking(s246,b). +student_ranking(s247,b). +student_ranking(s248,b). +student_ranking(s249,b). +student_ranking(s250,c). +student_ranking(s251,a). +student_ranking(s252,b). +student_ranking(s253,b). +student_ranking(s254,b). +student_ranking(s255,c). diff --git a/CLPBN/clpbn/matrix_cpt_utils.yap b/CLPBN/clpbn/matrix_cpt_utils.yap index 2bc5a3599..b22e3c9c7 100644 --- a/CLPBN/clpbn/matrix_cpt_utils.yap +++ b/CLPBN/clpbn/matrix_cpt_utils.yap @@ -149,8 +149,8 @@ expand_tabs([V1|Deps1], [S1|Sz1], [V2|Deps2], [S2|Sz2], Map1, Map2, NDeps) :- normalise_CPT(MAT,NMAT) :- matrix_to_exps(MAT), - matrix_sum(MAT, Sum), - matrix_op_to_all(MAT,/,Sum,NMAT). + matrix_agg_lines(MAT, +, Sum), + matrix_op_to_lines(MAT, Sum, /, NMAT). list_from_CPT(MAT, List) :- matrix_to_list(MAT, List). diff --git a/H/Heap.h b/H/Heap.h index a2a28eae1..cb3031f64 100644 --- a/H/Heap.h +++ b/H/Heap.h @@ -10,7 +10,7 @@ * File: Heap.h * * mods: * * comments: Heap Init Structure * -* version: $Id: Heap.h,v 1.125 2008-02-12 17:03:52 vsc Exp $ * +* version: $Id: Heap.h,v 1.126 2008-03-25 16:45:53 vsc Exp $ * *************************************************************************/ /* information that can be stored in Code Space */ @@ -21,9 +21,13 @@ #if defined(YAPOR) || defined(THREADS) #define WL wl[worker_id] -#define RINFO rinfo[worker_id] #else #define WL wl +#endif + +#if defined(THREADS) +#define RINFO rinfo[worker_id] +#else #define RINFO rinfo #endif @@ -93,7 +97,7 @@ typedef struct restore_info { ADDR old_HeapBase, old_HeapTop; } restoreinfo; -#if THREADS +#if defined(THREADS) extern struct restore_info rinfo[MAX_WORKERS]; #else extern struct restore_info rinfo; @@ -279,9 +283,9 @@ typedef struct various_codes { struct pred_entry *p; struct pred_entry *p0; } env_for_yes_code; /* sla */ - yamop yescode[1]; - yamop nocode[1]; - yamop rtrycode[1]; + struct yami yescode; + struct yami nocode; + struct yami rtrycode; struct { OPREG arity; struct yami *clause; @@ -332,7 +336,7 @@ typedef struct various_codes { Int yap_flags_field[NUMBER_OF_YAP_FLAGS]; char *char_conversion_table; char *char_conversion_table2; -#if THREADS +#if defined(THREADS) || defined(YAPOR) unsigned int n_of_threads; /* number of threads and processes in system */ unsigned int n_of_threads_created; /* number of threads created since start */ UInt threads_total_time; /* total run time for dead threads */ @@ -591,6 +595,9 @@ struct various_codes *Yap_heap_regs; #define Yap_NOfMemoryHoles Yap_heap_regs->nof_memory_holes #if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) #define HeapUsed Yap_givemallinfo() +#ifdef YAPOR +#define HeapUsedLock Yap_heap_regs->heap_used_lock +#endif #else #define HeapUsed Yap_heap_regs->heap_used #define HeapUsedLock Yap_heap_regs->heap_used_lock @@ -622,9 +629,9 @@ struct various_codes *Yap_heap_regs; #define COMMA_CODE Yap_heap_regs->comma_code #define FAILCODE Yap_heap_regs->failcode #define TRUSTFAILCODE Yap_heap_regs->trustfailcode -#define YESCODE Yap_heap_regs->yescode -#define NOCODE Yap_heap_regs->nocode -#define RTRYCODE Yap_heap_regs->rtrycode +#define YESCODE (&Yap_heap_regs->yescode) +#define NOCODE (&Yap_heap_regs->nocode) +#define RTRYCODE (&Yap_heap_regs->rtrycode) #define DUMMYCODE Yap_heap_regs->dummycode #define CLAUSECODE Yap_heap_regs->clausecode #define INVISIBLECHAIN Yap_heap_regs->invisiblechain diff --git a/H/rheap.h b/H/rheap.h index e7ae0e58f..4e7eeda13 100644 --- a/H/rheap.h +++ b/H/rheap.h @@ -11,8 +11,11 @@ * File: rheap.h * * comments: walk through heap code * * * -* Last rev: $Date: 2008-02-12 17:03:52 $,$Author: vsc $ * +* Last rev: $Date: 2008-03-25 16:45:53 $,$Author: vsc $ * * $Log: not supported by cvs2svn $ +* Revision 1.85 2008/02/12 17:03:52 vsc +* SWI-portability changes +* * Revision 1.84 2008/02/07 21:39:51 vsc * fix case where predicate is for an integer (DBEntry). * @@ -497,17 +500,17 @@ restore_codes(void) Yap_heap_regs->trustfailcode->opc = Yap_opcode(_trust_fail); Yap_heap_regs->env_for_yes_code.op = Yap_opcode(_call); - Yap_heap_regs->yescode->opc = Yap_opcode(_Ystop); + Yap_heap_regs->yescode.opc = Yap_opcode(_Ystop); Yap_heap_regs->undef_op = Yap_opcode(_undef_p); Yap_heap_regs->index_op = Yap_opcode(_index_pred); Yap_heap_regs->lockpred_op = Yap_opcode(_lock_pred); Yap_heap_regs->fail_op = Yap_opcode(_op_fail); - Yap_heap_regs->nocode->opc = Yap_opcode(_Nstop); + Yap_heap_regs->nocode.opc = Yap_opcode(_Nstop); + Yap_heap_regs->rtrycode.opc = Yap_opcode(_retry_and_mark); #ifdef YAPOR INIT_YAMOP_LTT(&(Yap_heap_regs->nocode), 1); INIT_YAMOP_LTT(&(Yap_heap_regs->rtrycode), 1); #endif /* YAPOR */ - ((yamop *)(&Yap_heap_regs->rtrycode))->opc = Yap_opcode(_retry_and_mark); if (((yamop *)(&Yap_heap_regs->rtrycode))->u.ld.d != NIL) ((yamop *)(&Yap_heap_regs->rtrycode))->u.ld.d = PtoOpAdjust(((yamop *)(&Yap_heap_regs->rtrycode))->u.ld.d); @@ -526,7 +529,7 @@ restore_codes(void) (Functor)AtomAdjust((Atom)(Yap_heap_regs->clausecode->func)); } } -#if !defined(THREADS) +#if !defined(THREADS) && !defined(YAPOR) /* restore consult stack. It consists of heap pointers, so it is easy to fix. */ @@ -834,7 +837,7 @@ restore_codes(void) Yap_heap_regs->creep_code = (PredEntry *)PtoHeapCellAdjust((CELL *)(Yap_heap_regs->creep_code)); if (Yap_heap_regs->spy_code != NULL) Yap_heap_regs->spy_code = (PredEntry *)PtoHeapCellAdjust((CELL *)(Yap_heap_regs->spy_code)); -#if !defined(THREADS) +#if !defined(THREADS) && !defined(YAPOR) if (Yap_heap_regs->wl.scratchpad.ptr) { Yap_heap_regs->wl.scratchpad.ptr = (char *)AddrAdjust((ADDR)Yap_heap_regs->wl.scratchpad.ptr); @@ -848,7 +851,7 @@ restore_codes(void) #ifdef COROUTINING if (Yap_heap_regs->wake_up_code != NULL) Yap_heap_regs->wake_up_code = (PredEntry *)PtoHeapCellAdjust((CELL *)(Yap_heap_regs->wake_up_code)); -#if !defined(THREADS) +#if !defined(THREADS) && !defined(YAPOR) Yap_heap_regs->wl.atts_mutable_list = AbsAppl(PtoGloAdjust(RepAppl(Yap_heap_regs->wl.atts_mutable_list))); if (Yap_heap_regs->wl.dynamic_arrays) { diff --git a/OPTYap/opt.memory.c b/OPTYap/opt.memory.c index 48faf70a8..4591dd5d4 100644 --- a/OPTYap/opt.memory.c +++ b/OPTYap/opt.memory.c @@ -5,7 +5,7 @@ Copyright: R. Rocha and NCC - University of Porto, Portugal File: opt.memory.c - version: $Id: opt.memory.c,v 1.9 2005-06-03 18:28:11 ricroc Exp $ + version: $Id: opt.memory.c,v 1.10 2008-03-25 16:45:53 vsc Exp $ **********************************************************************/ @@ -55,6 +55,7 @@ void shm_map_memory(int id, int size, void *shmaddr) { return; } #else /* MMAP_MEMORY_MAPPING_SCHEME */ +void open_mapfile(long TotalArea) { char mapfile[20]; strcpy(mapfile,"/tmp/mapfile"); @@ -69,6 +70,7 @@ open_mapfile(long TotalArea) { } +void close_mapfile(void) { if (close(fd_mapfile) < 0) Yap_Error(FATAL_ERROR, TermNil, "close error (close_mapfile)"); @@ -90,11 +92,12 @@ void map_memory(long HeapArea, long GlobalLocalArea, long TrailAuxArea, int n_wo #endif /* YAPOR_MODEL */ /* initial allocation - model independent */ - HeapArea = ADJUST_SIZE_TO_PAGE(HeapArea * KBYTES); - GlobalLocalArea = ADJUST_SIZE(GlobalLocalArea * KBYTES); - TrailAuxArea = ADJUST_SIZE(TrailAuxArea * KBYTES); + HeapArea = ADJUST_SIZE_TO_PAGE(HeapArea); + GlobalLocalArea = ADJUST_SIZE(GlobalLocalArea); + TrailAuxArea = ADJUST_SIZE(TrailAuxArea); /* we'll need this later */ + Yap_HeapBase = (ADDR)mmap_addr; Yap_GlobalBase = mmap_addr + HeapArea; /* shared memory allocation - model dependent */ @@ -163,11 +166,11 @@ void map_memory(long HeapArea, long GlobalLocalArea, long TrailAuxArea, int n_wo Yap_LocalBase = Yap_TrailBase - CellSize; if (TrailAuxArea > 262144) /* 262144 = 256 * 1024 */ - Yap_TrailTop = Yap_TrailBase + TrailAuxArea - 131072; /* 131072 = 262144 / 2 */ + Yap_TrailTop = Yap_TrailBase + (TrailAuxArea - 131072); /* 131072 = 262144 / 2 */ else - Yap_TrailTop = Yap_TrailBase + TrailAuxArea / 2; + Yap_TrailTop = Yap_TrailBase + (TrailAuxArea / 2); - HeapMax = Yap_TrailBase + TrailAuxArea - CellSize; + HeapMax = (CELL)(Yap_TrailBase + (TrailAuxArea - CellSize)); Yap_InitHeap(mmap_addr); } @@ -245,7 +248,7 @@ void remap_memory(void) { int i; remap_addr = worker_area(0); - remap_offset = remap_addr - Yap_HeapBase; + remap_offset = (char *)remap_addr - (char *)Yap_HeapBase; WorkerArea = worker_offset(1); #ifdef SHM_MEMORY_MAPPING_SCHEME for (i = 0; i < number_workers; i++) { diff --git a/OPTYap/opt.preds.c b/OPTYap/opt.preds.c index d1a0a5e8b..74153bf9f 100644 --- a/OPTYap/opt.preds.c +++ b/OPTYap/opt.preds.c @@ -5,7 +5,7 @@ Copyright: R. Rocha and NCC - University of Porto, Portugal File: opt.preds.c - version: $Id: opt.preds.c,v 1.27 2007-04-26 14:11:08 ricroc Exp $ + version: $Id: opt.preds.c,v 1.28 2008-03-25 16:45:53 vsc Exp $ **********************************************************************/ @@ -48,18 +48,18 @@ static qg_ans_fr_ptr actual_answer; #ifdef YAPOR static realtime current_time(void); -static int p_yapor_on(void); -static int p_start_yapor(void); -static int p_sequential(void); -static int p_default_sequential(void); -static int p_execution_mode(void); -static int p_performance(void); -static int p_parallel_new_answer(void); -static int p_parallel_yes_answer(void); +static Int p_yapor_on(void); +static Int p_start_yapor(void); +static Int p_sequential(void); +static Int p_default_sequential(void); +static Int p_execution_mode(void); +static Int p_performance(void); +static Int p_parallel_new_answer(void); +static Int p_parallel_yes_answer(void); static int parallel_new_answer_putchar(int sno, int ch); static void show_answers(void); static void answer_to_stdout(char *answer); -static int p_or_statistics(void); +static Int p_or_statistics(void); #endif /* YAPOR */ #ifdef TABLING @@ -173,13 +173,13 @@ realtime current_time(void) { static -int p_yapor_on(void) { +Int p_yapor_on(void) { return (PARALLEL_EXECUTION_MODE); } static -int p_start_yapor(void) { +Int p_start_yapor(void) { #ifdef TIMESTAMP_CHECK GLOBAL_timestamp = 0; #endif /* TIMESTAMP_CHECK */ @@ -199,7 +199,7 @@ int p_start_yapor(void) { static -int p_sequential(void) { +Int p_sequential(void) { Term t, mod; PredEntry *pe; @@ -223,7 +223,7 @@ int p_sequential(void) { static -int p_default_sequential(void) { +Int p_default_sequential(void) { Term t; t = Deref(ARG1); if (IsVarTerm(t)) { @@ -252,7 +252,7 @@ int p_default_sequential(void) { static -int p_execution_mode(void) { +Int p_execution_mode(void) { Term t; t = Deref(ARG1); if (IsVarTerm(t)) { @@ -281,7 +281,7 @@ int p_execution_mode(void) { static -int p_performance(void) { +Int p_performance(void) { Term t; realtime one_worker_execution_time = 0; int i; @@ -356,7 +356,7 @@ int p_performance(void) { static -int p_parallel_new_answer(void) { +Int p_parallel_new_answer(void) { or_fr_ptr leftmost_or_fr; length_answer = 0; @@ -378,7 +378,7 @@ int p_parallel_new_answer(void) { static -int p_parallel_yes_answer(void) { +Int p_parallel_yes_answer(void) { GLOBAL_answers = YES_ANSWER; return (TRUE); } @@ -490,7 +490,7 @@ void answer_to_stdout(char *answer) { static -int p_or_statistics(void) { +Int p_or_statistics(void) { #ifdef SHM_MEMORY_ALLOC_SCHEME long pages_in_use = 0, bytes_in_use = 0; diff --git a/OPTYap/or.cut.c b/OPTYap/or.cut.c index 88e8ed422..3286c66a1 100644 --- a/OPTYap/or.cut.c +++ b/OPTYap/or.cut.c @@ -5,7 +5,7 @@ Copyright: R. Rocha and NCC - University of Porto, Portugal File: or.cut.c - version: $Id: or.cut.c,v 1.2 2005-05-31 08:24:24 ricroc Exp $ + version: $Id: or.cut.c,v 1.3 2008-03-25 16:45:53 vsc Exp $ **********************************************************************/ @@ -249,11 +249,11 @@ void prune_shared_branch(choiceptr prune_cp) { BITMAP_copy(members, OrFr_members(leftmost_or_fr)); leftmost_cp = leftmost_cp->cp_b; } -end_prune_more: } } } +end_prune_more: CUT_reset_prune_request(); #ifdef TABLING LOCAL_top_cp_on_stack = LOCAL_top_cp; diff --git a/OPTYap/or.engine.c b/OPTYap/or.engine.c index 0abe760f1..e867b7e82 100644 --- a/OPTYap/or.engine.c +++ b/OPTYap/or.engine.c @@ -5,7 +5,7 @@ Copyright: R. Rocha and NCC - University of Porto, Portugal File: or.engine.c - version: $Id: or.engine.c,v 1.10 2005-06-03 18:28:11 ricroc Exp $ + version: $Id: or.engine.c,v 1.11 2008-03-25 16:45:53 vsc Exp $ **********************************************************************/ @@ -304,7 +304,7 @@ sync_with_p: /* install fase --> TR and LOCAL_top_cp->cp_tr are equal */ aux_tr = ((choiceptr) LOCAL_start_local_copy)->cp_tr; - NEW_MAHASH((ma_h_inner_struct *)H); + Yap_NEW_MAHASH((ma_h_inner_struct *)H); while (TR != aux_tr) { aux_cell = TrailTerm(--aux_tr); if (IsVarTerm(aux_cell)) { @@ -334,7 +334,7 @@ sync_with_p: CELL *cell_ptr = RepAppl(aux_cell); if (((CELL *)aux_cell < LOCAL_top_cp->cp_h || EQUAL_OR_YOUNGER_CP(LOCAL_top_cp, (choiceptr)aux_cell)) && - !lookup_ma_var(cell_ptr)) { + !Yap_lookup_ma_var(cell_ptr)) { /* first time we found the variable, let's put the new value */ #ifdef TABLING *cell_ptr = TrailVal(aux_tr); diff --git a/OPTYap/or.macros.h b/OPTYap/or.macros.h index 5178bb54a..40e7bf75d 100644 --- a/OPTYap/or.macros.h +++ b/OPTYap/or.macros.h @@ -5,7 +5,7 @@ Copyright: R. Rocha and NCC - University of Porto, Portugal File: or.macros.h - version: $Id: or.macros.h,v 1.4 2005-05-31 08:24:24 ricroc Exp $ + version: $Id: or.macros.h,v 1.5 2008-03-25 16:45:53 vsc Exp $ **********************************************************************/ @@ -298,11 +298,11 @@ void SCH_refuse_share_request_if_any(void) { static inline void SCH_set_load(choiceptr current_cp) { - int lub; /* local untried branches */ + Int lub; /* local untried branches */ choiceptr previous_cp = current_cp->cp_b; #define INIT_CP_LUB(CP, LUB) CP->cp_or_fr = (struct or_frame *)(LUB) -#define CP_LUB(CP) (int)(CP->cp_or_fr) +#define CP_LUB(CP) (Int)(CP->cp_or_fr) if (SCH_top_shared_cp(previous_cp)) lub = 0; diff --git a/library/dgraphs.yap b/library/dgraphs.yap index 008911c21..282b37b7e 100644 --- a/library/dgraphs.yap +++ b/library/dgraphs.yap @@ -31,7 +31,8 @@ dgraph_max_path/5, dgraph_min_paths/3, dgraph_isomorphic/4, - dgraph_path/3]). + dgraph_path/3, + dgraph_connected_components]). :- reexport(library(rbtrees), [rb_new/1 as dgraph_new]). diff --git a/library/matrix/matrix.c b/library/matrix/matrix.c index 9398e2df2..85a7015f9 100644 --- a/library/matrix/matrix.c +++ b/library/matrix/matrix.c @@ -1908,7 +1908,7 @@ matrix_op_to_all(void) /* Error */ return FALSE; } - /* create a new array without first dimension */ + /* create a new array with same dimensions */ if (mat[MAT_TYPE] == INT_MATRIX) { long int *data; int dims = mat[MAT_NDIMS]; @@ -2804,7 +2804,6 @@ init_matrix(void) YAP_UserCPredicate("matrix_shuffle", matrix_transpose, 3); YAP_UserCPredicate("matrix_expand", matrix_expand, 3); YAP_UserCPredicate("matrix_select", matrix_select, 4); - YAP_UserCPredicate("matrix_add_to_all", matrix_sum, 2); YAP_UserCPredicate("matrix_to_logs", matrix_log_all,1); YAP_UserCPredicate("matrix_to_exps", matrix_exp_all, 1); YAP_UserCPredicate("matrix_sum_out", matrix_sum_out, 3); diff --git a/library/yap2swi/yap2swi.c b/library/yap2swi/yap2swi.c index daaf39978..f19865873 100644 --- a/library/yap2swi/yap2swi.c +++ b/library/yap2swi/yap2swi.c @@ -1478,13 +1478,13 @@ PL_destroy_engine(PL_engine_t e) X_API int PL_set_engine(PL_engine_t engine, PL_engine_t *old) { - int cwid = YAP_ThreadSelf(); + long int cwid = YAP_ThreadSelf(); if (*old) *old = (PL_engine_t)cwid; if (engine == PL_ENGINE_CURRENT) return PL_ENGINE_SET; if (engine < 0) /* should really check if engine does not exist */ return PL_ENGINE_INVAL; - if (!(YAP_ThreadAttachEngine((int)engine))) { + if (!(YAP_ThreadAttachEngine((long int)engine))) { return PL_ENGINE_INUSE; } return PL_ENGINE_SET;