This commit is contained in:
Vitor Santos Costa 2018-03-18 14:23:24 +00:00
parent af610dc16d
commit 353690cc59
9 changed files with 13632 additions and 0 deletions

View File

@ -0,0 +1 @@
6.0.0

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
// -*- c++ -*-
//=============================================================================
// Copyright (C) 2011 by Denys Duchier
//
// This program is free software: you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published by the
// Free Software Foundation, either version 3 of the License, or (at your
// option) any later version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
// more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//=============================================================================
static RestartMode gecode_RestartMode_from_term(YAP_Term);
static FloatRelType gecode_FloatRelType_from_term(YAP_Term);
static ReifyMode gecode_ReifyMode_from_term(YAP_Term);
static IntRelType gecode_IntRelType_from_term(YAP_Term);
static BoolOpType gecode_BoolOpType_from_term(YAP_Term);
static IntPropLevel gecode_IntPropLevel_from_term(YAP_Term);
static TaskType gecode_TaskType_from_term(YAP_Term);
static TraceEvent gecode_TraceEvent_from_term(YAP_Term);
static SetRelType gecode_SetRelType_from_term(YAP_Term);
static SetOpType gecode_SetOpType_from_term(YAP_Term);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,681 @@
// -*- c++ -*-
//=============================================================================
// Copyright (C) 2011 by Denys Duchier
//
// This program is free software: you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published by the
// Free Software Foundation, either version 3 of the License, or (at your
// option) any later version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
// more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//=============================================================================
{ YAP_Atom X= YAP_LookupAtom("RM_NONE");
gecode_RM_NONE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_CONSTANT");
gecode_RM_CONSTANT = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_LINEAR");
gecode_RM_LINEAR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_LUBY");
gecode_RM_LUBY = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_GEOMETRIC");
gecode_RM_GEOMETRIC = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_EQ");
gecode_FRT_EQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_NQ");
gecode_FRT_NQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_LQ");
gecode_FRT_LQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_LE");
gecode_FRT_LE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_GQ");
gecode_FRT_GQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("FRT_GR");
gecode_FRT_GR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_EQV");
gecode_RM_EQV = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_IMP");
gecode_RM_IMP = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("RM_PMI");
gecode_RM_PMI = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_EQ");
gecode_IRT_EQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_NQ");
gecode_IRT_NQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_LQ");
gecode_IRT_LQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_LE");
gecode_IRT_LE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_GQ");
gecode_IRT_GQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IRT_GR");
gecode_IRT_GR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("BOT_AND");
gecode_BOT_AND = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("BOT_OR");
gecode_BOT_OR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("BOT_IMP");
gecode_BOT_IMP = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("BOT_EQV");
gecode_BOT_EQV = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("BOT_XOR");
gecode_BOT_XOR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_DEF");
gecode_IPL_DEF = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_VAL");
gecode_IPL_VAL = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_BND");
gecode_IPL_BND = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_DOM");
gecode_IPL_DOM = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_SPEED");
gecode_IPL_SPEED = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_MEMORY");
gecode_IPL_MEMORY = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_BASIC");
gecode_IPL_BASIC = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_ADVANCED");
gecode_IPL_ADVANCED = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("IPL_BASIC_ADVANCED");
gecode_IPL_BASIC_ADVANCED = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TT_FIXP");
gecode_TT_FIXP = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TT_FIXS");
gecode_TT_FIXS = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TT_FIXE");
gecode_TT_FIXE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_INIT");
gecode_TE_INIT = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_PRUNE");
gecode_TE_PRUNE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_FIX");
gecode_TE_FIX = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_FAIL");
gecode_TE_FAIL = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_DONE");
gecode_TE_DONE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_PROPAGATE");
gecode_TE_PROPAGATE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("TE_COMMIT");
gecode_TE_COMMIT = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_EQ");
gecode_SRT_EQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_NQ");
gecode_SRT_NQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_SUB");
gecode_SRT_SUB = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_SUP");
gecode_SRT_SUP = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_DISJ");
gecode_SRT_DISJ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_CMPL");
gecode_SRT_CMPL = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_LQ");
gecode_SRT_LQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_LE");
gecode_SRT_LE = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_GQ");
gecode_SRT_GQ = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SRT_GR");
gecode_SRT_GR = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SOT_UNION");
gecode_SOT_UNION = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SOT_DUNION");
gecode_SOT_DUNION = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SOT_INTER");
gecode_SOT_INTER = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
{ YAP_Atom X= YAP_LookupAtom("SOT_MINUS");
gecode_SOT_MINUS = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); }
YAP_UserCPredicate("gecode_constraint_branch_1", gecode_constraint_branch_1, 2);
YAP_UserCPredicate("gecode_constraint_convex_2", gecode_constraint_convex_2, 2);
YAP_UserCPredicate("gecode_constraint_convex_3", gecode_constraint_convex_3, 3);
YAP_UserCPredicate("gecode_constraint_abs_4", gecode_constraint_abs_4, 3);
YAP_UserCPredicate("gecode_constraint_abs_5", gecode_constraint_abs_5, 3);
YAP_UserCPredicate("gecode_constraint_abs_6", gecode_constraint_abs_6, 4);
YAP_UserCPredicate("gecode_constraint_argmax_7", gecode_constraint_argmax_7, 3);
YAP_UserCPredicate("gecode_constraint_argmax_8", gecode_constraint_argmax_8, 4);
YAP_UserCPredicate("gecode_constraint_argmax_10", gecode_constraint_argmax_10, 4);
YAP_UserCPredicate("gecode_constraint_argmax_9", gecode_constraint_argmax_9, 5);
YAP_UserCPredicate("gecode_constraint_argmax_11", gecode_constraint_argmax_11, 5);
YAP_UserCPredicate("gecode_constraint_argmax_12", gecode_constraint_argmax_12, 6);
YAP_UserCPredicate("gecode_constraint_argmin_13", gecode_constraint_argmin_13, 3);
YAP_UserCPredicate("gecode_constraint_argmin_14", gecode_constraint_argmin_14, 4);
YAP_UserCPredicate("gecode_constraint_argmin_16", gecode_constraint_argmin_16, 4);
YAP_UserCPredicate("gecode_constraint_argmin_15", gecode_constraint_argmin_15, 5);
YAP_UserCPredicate("gecode_constraint_argmin_17", gecode_constraint_argmin_17, 5);
YAP_UserCPredicate("gecode_constraint_argmin_18", gecode_constraint_argmin_18, 6);
YAP_UserCPredicate("gecode_constraint_assign_19", gecode_constraint_assign_19, 3);
YAP_UserCPredicate("gecode_constraint_assign_21", gecode_constraint_assign_21, 3);
YAP_UserCPredicate("gecode_constraint_assign_23", gecode_constraint_assign_23, 3);
YAP_UserCPredicate("gecode_constraint_assign_25", gecode_constraint_assign_25, 3);
YAP_UserCPredicate("gecode_constraint_assign_27", gecode_constraint_assign_27, 3);
YAP_UserCPredicate("gecode_constraint_assign_30", gecode_constraint_assign_30, 3);
YAP_UserCPredicate("gecode_constraint_assign_33", gecode_constraint_assign_33, 3);
YAP_UserCPredicate("gecode_constraint_assign_36", gecode_constraint_assign_36, 3);
YAP_UserCPredicate("gecode_constraint_assign_20", gecode_constraint_assign_20, 4);
YAP_UserCPredicate("gecode_constraint_assign_22", gecode_constraint_assign_22, 4);
YAP_UserCPredicate("gecode_constraint_assign_24", gecode_constraint_assign_24, 4);
YAP_UserCPredicate("gecode_constraint_assign_26", gecode_constraint_assign_26, 4);
YAP_UserCPredicate("gecode_constraint_assign_28", gecode_constraint_assign_28, 4);
YAP_UserCPredicate("gecode_constraint_assign_31", gecode_constraint_assign_31, 4);
YAP_UserCPredicate("gecode_constraint_assign_34", gecode_constraint_assign_34, 4);
YAP_UserCPredicate("gecode_constraint_assign_37", gecode_constraint_assign_37, 4);
YAP_UserCPredicate("gecode_constraint_assign_29", gecode_constraint_assign_29, 5);
YAP_UserCPredicate("gecode_constraint_assign_32", gecode_constraint_assign_32, 5);
YAP_UserCPredicate("gecode_constraint_assign_35", gecode_constraint_assign_35, 5);
YAP_UserCPredicate("gecode_constraint_assign_38", gecode_constraint_assign_38, 5);
YAP_UserCPredicate("gecode_constraint_binpacking_39", gecode_constraint_binpacking_39, 4);
YAP_UserCPredicate("gecode_constraint_binpacking_40", gecode_constraint_binpacking_40, 5);
YAP_UserCPredicate("gecode_constraint_branch_41", gecode_constraint_branch_41, 3);
YAP_UserCPredicate("gecode_constraint_branch_43", gecode_constraint_branch_43, 3);
YAP_UserCPredicate("gecode_constraint_branch_45", gecode_constraint_branch_45, 3);
YAP_UserCPredicate("gecode_constraint_branch_47", gecode_constraint_branch_47, 3);
YAP_UserCPredicate("gecode_constraint_branch_42", gecode_constraint_branch_42, 4);
YAP_UserCPredicate("gecode_constraint_branch_44", gecode_constraint_branch_44, 4);
YAP_UserCPredicate("gecode_constraint_branch_46", gecode_constraint_branch_46, 4);
YAP_UserCPredicate("gecode_constraint_branch_48", gecode_constraint_branch_48, 4);
YAP_UserCPredicate("gecode_constraint_branch_49", gecode_constraint_branch_49, 4);
YAP_UserCPredicate("gecode_constraint_branch_55", gecode_constraint_branch_55, 4);
YAP_UserCPredicate("gecode_constraint_branch_61", gecode_constraint_branch_61, 4);
YAP_UserCPredicate("gecode_constraint_branch_64", gecode_constraint_branch_64, 4);
YAP_UserCPredicate("gecode_constraint_branch_67", gecode_constraint_branch_67, 4);
YAP_UserCPredicate("gecode_constraint_branch_73", gecode_constraint_branch_73, 4);
YAP_UserCPredicate("gecode_constraint_branch_79", gecode_constraint_branch_79, 4);
YAP_UserCPredicate("gecode_constraint_branch_85", gecode_constraint_branch_85, 4);
YAP_UserCPredicate("gecode_constraint_branch_50", gecode_constraint_branch_50, 5);
YAP_UserCPredicate("gecode_constraint_branch_52", gecode_constraint_branch_52, 5);
YAP_UserCPredicate("gecode_constraint_branch_56", gecode_constraint_branch_56, 5);
YAP_UserCPredicate("gecode_constraint_branch_58", gecode_constraint_branch_58, 5);
YAP_UserCPredicate("gecode_constraint_branch_62", gecode_constraint_branch_62, 5);
YAP_UserCPredicate("gecode_constraint_branch_65", gecode_constraint_branch_65, 5);
YAP_UserCPredicate("gecode_constraint_branch_68", gecode_constraint_branch_68, 5);
YAP_UserCPredicate("gecode_constraint_branch_70", gecode_constraint_branch_70, 5);
YAP_UserCPredicate("gecode_constraint_branch_74", gecode_constraint_branch_74, 5);
YAP_UserCPredicate("gecode_constraint_branch_76", gecode_constraint_branch_76, 5);
YAP_UserCPredicate("gecode_constraint_branch_80", gecode_constraint_branch_80, 5);
YAP_UserCPredicate("gecode_constraint_branch_82", gecode_constraint_branch_82, 5);
YAP_UserCPredicate("gecode_constraint_branch_86", gecode_constraint_branch_86, 5);
YAP_UserCPredicate("gecode_constraint_branch_88", gecode_constraint_branch_88, 5);
YAP_UserCPredicate("gecode_constraint_branch_51", gecode_constraint_branch_51, 6);
YAP_UserCPredicate("gecode_constraint_branch_53", gecode_constraint_branch_53, 6);
YAP_UserCPredicate("gecode_constraint_branch_57", gecode_constraint_branch_57, 6);
YAP_UserCPredicate("gecode_constraint_branch_59", gecode_constraint_branch_59, 6);
YAP_UserCPredicate("gecode_constraint_branch_63", gecode_constraint_branch_63, 6);
YAP_UserCPredicate("gecode_constraint_branch_66", gecode_constraint_branch_66, 6);
YAP_UserCPredicate("gecode_constraint_branch_69", gecode_constraint_branch_69, 6);
YAP_UserCPredicate("gecode_constraint_branch_71", gecode_constraint_branch_71, 6);
YAP_UserCPredicate("gecode_constraint_branch_75", gecode_constraint_branch_75, 6);
YAP_UserCPredicate("gecode_constraint_branch_77", gecode_constraint_branch_77, 6);
YAP_UserCPredicate("gecode_constraint_branch_81", gecode_constraint_branch_81, 6);
YAP_UserCPredicate("gecode_constraint_branch_83", gecode_constraint_branch_83, 6);
YAP_UserCPredicate("gecode_constraint_branch_87", gecode_constraint_branch_87, 6);
YAP_UserCPredicate("gecode_constraint_branch_89", gecode_constraint_branch_89, 6);
YAP_UserCPredicate("gecode_constraint_branch_54", gecode_constraint_branch_54, 7);
YAP_UserCPredicate("gecode_constraint_branch_60", gecode_constraint_branch_60, 7);
YAP_UserCPredicate("gecode_constraint_branch_72", gecode_constraint_branch_72, 7);
YAP_UserCPredicate("gecode_constraint_branch_78", gecode_constraint_branch_78, 7);
YAP_UserCPredicate("gecode_constraint_branch_84", gecode_constraint_branch_84, 7);
YAP_UserCPredicate("gecode_constraint_branch_90", gecode_constraint_branch_90, 7);
YAP_UserCPredicate("gecode_constraint_cardinality_91", gecode_constraint_cardinality_91, 4);
YAP_UserCPredicate("gecode_constraint_cardinality_92", gecode_constraint_cardinality_92, 4);
YAP_UserCPredicate("gecode_constraint_channel_93", gecode_constraint_channel_93, 3);
YAP_UserCPredicate("gecode_constraint_channel_95", gecode_constraint_channel_95, 3);
YAP_UserCPredicate("gecode_constraint_channel_96", gecode_constraint_channel_96, 3);
YAP_UserCPredicate("gecode_constraint_channel_97", gecode_constraint_channel_97, 3);
YAP_UserCPredicate("gecode_constraint_channel_100", gecode_constraint_channel_100, 3);
YAP_UserCPredicate("gecode_constraint_channel_94", gecode_constraint_channel_94, 4);
YAP_UserCPredicate("gecode_constraint_channel_98", gecode_constraint_channel_98, 4);
YAP_UserCPredicate("gecode_constraint_channel_101", gecode_constraint_channel_101, 4);
YAP_UserCPredicate("gecode_constraint_channel_99", gecode_constraint_channel_99, 5);
YAP_UserCPredicate("gecode_constraint_channel_102", gecode_constraint_channel_102, 5);
YAP_UserCPredicate("gecode_constraint_channel_103", gecode_constraint_channel_103, 6);
YAP_UserCPredicate("gecode_constraint_circuit_104", gecode_constraint_circuit_104, 4);
YAP_UserCPredicate("gecode_constraint_circuit_115", gecode_constraint_circuit_115, 4);
YAP_UserCPredicate("gecode_constraint_circuit_105", gecode_constraint_circuit_105, 5);
YAP_UserCPredicate("gecode_constraint_circuit_106", gecode_constraint_circuit_106, 5);
YAP_UserCPredicate("gecode_constraint_circuit_108", gecode_constraint_circuit_108, 5);
YAP_UserCPredicate("gecode_constraint_circuit_107", gecode_constraint_circuit_107, 6);
YAP_UserCPredicate("gecode_constraint_circuit_109", gecode_constraint_circuit_109, 6);
YAP_UserCPredicate("gecode_constraint_circuit_110", gecode_constraint_circuit_110, 6);
YAP_UserCPredicate("gecode_constraint_circuit_111", gecode_constraint_circuit_111, 7);
YAP_UserCPredicate("gecode_constraint_circuit_112", gecode_constraint_circuit_112, 2);
YAP_UserCPredicate("gecode_constraint_circuit_113", gecode_constraint_circuit_113, 3);
YAP_UserCPredicate("gecode_constraint_circuit_114", gecode_constraint_circuit_114, 3);
YAP_UserCPredicate("gecode_constraint_clause_116", gecode_constraint_clause_116, 5);
YAP_UserCPredicate("gecode_constraint_clause_118", gecode_constraint_clause_118, 5);
YAP_UserCPredicate("gecode_constraint_clause_117", gecode_constraint_clause_117, 6);
YAP_UserCPredicate("gecode_constraint_clause_119", gecode_constraint_clause_119, 6);
YAP_UserCPredicate("gecode_constraint_count_120", gecode_constraint_count_120, 5);
YAP_UserCPredicate("gecode_constraint_count_122", gecode_constraint_count_122, 5);
YAP_UserCPredicate("gecode_constraint_count_124", gecode_constraint_count_124, 5);
YAP_UserCPredicate("gecode_constraint_count_126", gecode_constraint_count_126, 5);
YAP_UserCPredicate("gecode_constraint_count_128", gecode_constraint_count_128, 5);
YAP_UserCPredicate("gecode_constraint_count_130", gecode_constraint_count_130, 5);
YAP_UserCPredicate("gecode_constraint_count_133", gecode_constraint_count_133, 5);
YAP_UserCPredicate("gecode_constraint_count_137", gecode_constraint_count_137, 5);
YAP_UserCPredicate("gecode_constraint_count_141", gecode_constraint_count_141, 5);
YAP_UserCPredicate("gecode_constraint_count_142", gecode_constraint_count_142, 5);
YAP_UserCPredicate("gecode_constraint_count_144", gecode_constraint_count_144, 5);
YAP_UserCPredicate("gecode_constraint_count_121", gecode_constraint_count_121, 6);
YAP_UserCPredicate("gecode_constraint_count_123", gecode_constraint_count_123, 6);
YAP_UserCPredicate("gecode_constraint_count_125", gecode_constraint_count_125, 6);
YAP_UserCPredicate("gecode_constraint_count_127", gecode_constraint_count_127, 6);
YAP_UserCPredicate("gecode_constraint_count_129", gecode_constraint_count_129, 6);
YAP_UserCPredicate("gecode_constraint_count_131", gecode_constraint_count_131, 6);
YAP_UserCPredicate("gecode_constraint_count_143", gecode_constraint_count_143, 6);
YAP_UserCPredicate("gecode_constraint_count_145", gecode_constraint_count_145, 6);
YAP_UserCPredicate("gecode_constraint_count_132", gecode_constraint_count_132, 4);
YAP_UserCPredicate("gecode_constraint_count_135", gecode_constraint_count_135, 4);
YAP_UserCPredicate("gecode_constraint_count_136", gecode_constraint_count_136, 4);
YAP_UserCPredicate("gecode_constraint_count_139", gecode_constraint_count_139, 4);
YAP_UserCPredicate("gecode_constraint_count_140", gecode_constraint_count_140, 4);
YAP_UserCPredicate("gecode_constraint_count_134", gecode_constraint_count_134, 3);
YAP_UserCPredicate("gecode_constraint_count_138", gecode_constraint_count_138, 3);
YAP_UserCPredicate("gecode_constraint_cumulative_146", gecode_constraint_cumulative_146, 5);
YAP_UserCPredicate("gecode_constraint_cumulative_158", gecode_constraint_cumulative_158, 5);
YAP_UserCPredicate("gecode_constraint_cumulative_147", gecode_constraint_cumulative_147, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_148", gecode_constraint_cumulative_148, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_150", gecode_constraint_cumulative_150, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_154", gecode_constraint_cumulative_154, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_159", gecode_constraint_cumulative_159, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_160", gecode_constraint_cumulative_160, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_162", gecode_constraint_cumulative_162, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_166", gecode_constraint_cumulative_166, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_149", gecode_constraint_cumulative_149, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_151", gecode_constraint_cumulative_151, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_152", gecode_constraint_cumulative_152, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_155", gecode_constraint_cumulative_155, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_156", gecode_constraint_cumulative_156, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_161", gecode_constraint_cumulative_161, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_163", gecode_constraint_cumulative_163, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_164", gecode_constraint_cumulative_164, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_167", gecode_constraint_cumulative_167, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_168", gecode_constraint_cumulative_168, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_153", gecode_constraint_cumulative_153, 8);
YAP_UserCPredicate("gecode_constraint_cumulative_157", gecode_constraint_cumulative_157, 8);
YAP_UserCPredicate("gecode_constraint_cumulative_165", gecode_constraint_cumulative_165, 8);
YAP_UserCPredicate("gecode_constraint_cumulative_169", gecode_constraint_cumulative_169, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_170", gecode_constraint_cumulatives_170, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_172", gecode_constraint_cumulatives_172, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_174", gecode_constraint_cumulatives_174, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_176", gecode_constraint_cumulatives_176, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_178", gecode_constraint_cumulatives_178, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_180", gecode_constraint_cumulatives_180, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_182", gecode_constraint_cumulatives_182, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_184", gecode_constraint_cumulatives_184, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_171", gecode_constraint_cumulatives_171, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_173", gecode_constraint_cumulatives_173, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_175", gecode_constraint_cumulatives_175, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_177", gecode_constraint_cumulatives_177, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_179", gecode_constraint_cumulatives_179, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_181", gecode_constraint_cumulatives_181, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_183", gecode_constraint_cumulatives_183, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_185", gecode_constraint_cumulatives_185, 9);
YAP_UserCPredicate("gecode_constraint_distinct_186", gecode_constraint_distinct_186, 3);
YAP_UserCPredicate("gecode_constraint_distinct_188", gecode_constraint_distinct_188, 3);
YAP_UserCPredicate("gecode_constraint_distinct_191", gecode_constraint_distinct_191, 3);
YAP_UserCPredicate("gecode_constraint_distinct_192", gecode_constraint_distinct_192, 3);
YAP_UserCPredicate("gecode_constraint_distinct_187", gecode_constraint_distinct_187, 4);
YAP_UserCPredicate("gecode_constraint_distinct_189", gecode_constraint_distinct_189, 4);
YAP_UserCPredicate("gecode_constraint_distinct_193", gecode_constraint_distinct_193, 4);
YAP_UserCPredicate("gecode_constraint_distinct_190", gecode_constraint_distinct_190, 2);
YAP_UserCPredicate("gecode_constraint_div_194", gecode_constraint_div_194, 4);
YAP_UserCPredicate("gecode_constraint_div_195", gecode_constraint_div_195, 4);
YAP_UserCPredicate("gecode_constraint_div_196", gecode_constraint_div_196, 5);
YAP_UserCPredicate("gecode_constraint_divmod_197", gecode_constraint_divmod_197, 5);
YAP_UserCPredicate("gecode_constraint_divmod_198", gecode_constraint_divmod_198, 6);
YAP_UserCPredicate("gecode_constraint_dom_199", gecode_constraint_dom_199, 3);
YAP_UserCPredicate("gecode_constraint_dom_203", gecode_constraint_dom_203, 3);
YAP_UserCPredicate("gecode_constraint_dom_205", gecode_constraint_dom_205, 3);
YAP_UserCPredicate("gecode_constraint_dom_206", gecode_constraint_dom_206, 3);
YAP_UserCPredicate("gecode_constraint_dom_208", gecode_constraint_dom_208, 3);
YAP_UserCPredicate("gecode_constraint_dom_212", gecode_constraint_dom_212, 3);
YAP_UserCPredicate("gecode_constraint_dom_226", gecode_constraint_dom_226, 3);
YAP_UserCPredicate("gecode_constraint_dom_227", gecode_constraint_dom_227, 3);
YAP_UserCPredicate("gecode_constraint_dom_230", gecode_constraint_dom_230, 3);
YAP_UserCPredicate("gecode_constraint_dom_231", gecode_constraint_dom_231, 3);
YAP_UserCPredicate("gecode_constraint_dom_232", gecode_constraint_dom_232, 3);
YAP_UserCPredicate("gecode_constraint_dom_234", gecode_constraint_dom_234, 3);
YAP_UserCPredicate("gecode_constraint_dom_236", gecode_constraint_dom_236, 3);
YAP_UserCPredicate("gecode_constraint_dom_243", gecode_constraint_dom_243, 3);
YAP_UserCPredicate("gecode_constraint_dom_200", gecode_constraint_dom_200, 4);
YAP_UserCPredicate("gecode_constraint_dom_201", gecode_constraint_dom_201, 4);
YAP_UserCPredicate("gecode_constraint_dom_204", gecode_constraint_dom_204, 4);
YAP_UserCPredicate("gecode_constraint_dom_207", gecode_constraint_dom_207, 4);
YAP_UserCPredicate("gecode_constraint_dom_209", gecode_constraint_dom_209, 4);
YAP_UserCPredicate("gecode_constraint_dom_210", gecode_constraint_dom_210, 4);
YAP_UserCPredicate("gecode_constraint_dom_213", gecode_constraint_dom_213, 4);
YAP_UserCPredicate("gecode_constraint_dom_214", gecode_constraint_dom_214, 4);
YAP_UserCPredicate("gecode_constraint_dom_216", gecode_constraint_dom_216, 4);
YAP_UserCPredicate("gecode_constraint_dom_220", gecode_constraint_dom_220, 4);
YAP_UserCPredicate("gecode_constraint_dom_222", gecode_constraint_dom_222, 4);
YAP_UserCPredicate("gecode_constraint_dom_228", gecode_constraint_dom_228, 4);
YAP_UserCPredicate("gecode_constraint_dom_229", gecode_constraint_dom_229, 4);
YAP_UserCPredicate("gecode_constraint_dom_233", gecode_constraint_dom_233, 4);
YAP_UserCPredicate("gecode_constraint_dom_235", gecode_constraint_dom_235, 4);
YAP_UserCPredicate("gecode_constraint_dom_237", gecode_constraint_dom_237, 4);
YAP_UserCPredicate("gecode_constraint_dom_238", gecode_constraint_dom_238, 4);
YAP_UserCPredicate("gecode_constraint_dom_240", gecode_constraint_dom_240, 4);
YAP_UserCPredicate("gecode_constraint_dom_241", gecode_constraint_dom_241, 4);
YAP_UserCPredicate("gecode_constraint_dom_202", gecode_constraint_dom_202, 5);
YAP_UserCPredicate("gecode_constraint_dom_211", gecode_constraint_dom_211, 5);
YAP_UserCPredicate("gecode_constraint_dom_215", gecode_constraint_dom_215, 5);
YAP_UserCPredicate("gecode_constraint_dom_217", gecode_constraint_dom_217, 5);
YAP_UserCPredicate("gecode_constraint_dom_218", gecode_constraint_dom_218, 5);
YAP_UserCPredicate("gecode_constraint_dom_221", gecode_constraint_dom_221, 5);
YAP_UserCPredicate("gecode_constraint_dom_223", gecode_constraint_dom_223, 5);
YAP_UserCPredicate("gecode_constraint_dom_224", gecode_constraint_dom_224, 5);
YAP_UserCPredicate("gecode_constraint_dom_239", gecode_constraint_dom_239, 5);
YAP_UserCPredicate("gecode_constraint_dom_242", gecode_constraint_dom_242, 5);
YAP_UserCPredicate("gecode_constraint_dom_219", gecode_constraint_dom_219, 6);
YAP_UserCPredicate("gecode_constraint_dom_225", gecode_constraint_dom_225, 6);
YAP_UserCPredicate("gecode_constraint_element_244", gecode_constraint_element_244, 4);
YAP_UserCPredicate("gecode_constraint_element_246", gecode_constraint_element_246, 4);
YAP_UserCPredicate("gecode_constraint_element_248", gecode_constraint_element_248, 4);
YAP_UserCPredicate("gecode_constraint_element_254", gecode_constraint_element_254, 4);
YAP_UserCPredicate("gecode_constraint_element_256", gecode_constraint_element_256, 4);
YAP_UserCPredicate("gecode_constraint_element_260", gecode_constraint_element_260, 4);
YAP_UserCPredicate("gecode_constraint_element_262", gecode_constraint_element_262, 4);
YAP_UserCPredicate("gecode_constraint_element_245", gecode_constraint_element_245, 5);
YAP_UserCPredicate("gecode_constraint_element_247", gecode_constraint_element_247, 5);
YAP_UserCPredicate("gecode_constraint_element_249", gecode_constraint_element_249, 5);
YAP_UserCPredicate("gecode_constraint_element_255", gecode_constraint_element_255, 5);
YAP_UserCPredicate("gecode_constraint_element_257", gecode_constraint_element_257, 5);
YAP_UserCPredicate("gecode_constraint_element_261", gecode_constraint_element_261, 5);
YAP_UserCPredicate("gecode_constraint_element_263", gecode_constraint_element_263, 5);
YAP_UserCPredicate("gecode_constraint_element_250", gecode_constraint_element_250, 7);
YAP_UserCPredicate("gecode_constraint_element_252", gecode_constraint_element_252, 7);
YAP_UserCPredicate("gecode_constraint_element_258", gecode_constraint_element_258, 7);
YAP_UserCPredicate("gecode_constraint_element_264", gecode_constraint_element_264, 7);
YAP_UserCPredicate("gecode_constraint_element_251", gecode_constraint_element_251, 8);
YAP_UserCPredicate("gecode_constraint_element_253", gecode_constraint_element_253, 8);
YAP_UserCPredicate("gecode_constraint_element_259", gecode_constraint_element_259, 8);
YAP_UserCPredicate("gecode_constraint_element_265", gecode_constraint_element_265, 8);
YAP_UserCPredicate("gecode_constraint_extensional_266", gecode_constraint_extensional_266, 3);
YAP_UserCPredicate("gecode_constraint_extensional_268", gecode_constraint_extensional_268, 3);
YAP_UserCPredicate("gecode_constraint_extensional_270", gecode_constraint_extensional_270, 3);
YAP_UserCPredicate("gecode_constraint_extensional_272", gecode_constraint_extensional_272, 3);
YAP_UserCPredicate("gecode_constraint_extensional_267", gecode_constraint_extensional_267, 4);
YAP_UserCPredicate("gecode_constraint_extensional_269", gecode_constraint_extensional_269, 4);
YAP_UserCPredicate("gecode_constraint_extensional_271", gecode_constraint_extensional_271, 4);
YAP_UserCPredicate("gecode_constraint_extensional_273", gecode_constraint_extensional_273, 4);
YAP_UserCPredicate("gecode_constraint_ite_274", gecode_constraint_ite_274, 5);
YAP_UserCPredicate("gecode_constraint_ite_276", gecode_constraint_ite_276, 5);
YAP_UserCPredicate("gecode_constraint_ite_277", gecode_constraint_ite_277, 5);
YAP_UserCPredicate("gecode_constraint_ite_279", gecode_constraint_ite_279, 5);
YAP_UserCPredicate("gecode_constraint_ite_275", gecode_constraint_ite_275, 6);
YAP_UserCPredicate("gecode_constraint_ite_278", gecode_constraint_ite_278, 6);
YAP_UserCPredicate("gecode_constraint_linear_280", gecode_constraint_linear_280, 4);
YAP_UserCPredicate("gecode_constraint_linear_284", gecode_constraint_linear_284, 4);
YAP_UserCPredicate("gecode_constraint_linear_292", gecode_constraint_linear_292, 4);
YAP_UserCPredicate("gecode_constraint_linear_294", gecode_constraint_linear_294, 4);
YAP_UserCPredicate("gecode_constraint_linear_312", gecode_constraint_linear_312, 4);
YAP_UserCPredicate("gecode_constraint_linear_316", gecode_constraint_linear_316, 4);
YAP_UserCPredicate("gecode_constraint_linear_281", gecode_constraint_linear_281, 5);
YAP_UserCPredicate("gecode_constraint_linear_282", gecode_constraint_linear_282, 5);
YAP_UserCPredicate("gecode_constraint_linear_285", gecode_constraint_linear_285, 5);
YAP_UserCPredicate("gecode_constraint_linear_286", gecode_constraint_linear_286, 5);
YAP_UserCPredicate("gecode_constraint_linear_288", gecode_constraint_linear_288, 5);
YAP_UserCPredicate("gecode_constraint_linear_290", gecode_constraint_linear_290, 5);
YAP_UserCPredicate("gecode_constraint_linear_293", gecode_constraint_linear_293, 5);
YAP_UserCPredicate("gecode_constraint_linear_295", gecode_constraint_linear_295, 5);
YAP_UserCPredicate("gecode_constraint_linear_296", gecode_constraint_linear_296, 5);
YAP_UserCPredicate("gecode_constraint_linear_300", gecode_constraint_linear_300, 5);
YAP_UserCPredicate("gecode_constraint_linear_304", gecode_constraint_linear_304, 5);
YAP_UserCPredicate("gecode_constraint_linear_308", gecode_constraint_linear_308, 5);
YAP_UserCPredicate("gecode_constraint_linear_313", gecode_constraint_linear_313, 5);
YAP_UserCPredicate("gecode_constraint_linear_314", gecode_constraint_linear_314, 5);
YAP_UserCPredicate("gecode_constraint_linear_317", gecode_constraint_linear_317, 5);
YAP_UserCPredicate("gecode_constraint_linear_318", gecode_constraint_linear_318, 5);
YAP_UserCPredicate("gecode_constraint_linear_283", gecode_constraint_linear_283, 6);
YAP_UserCPredicate("gecode_constraint_linear_287", gecode_constraint_linear_287, 6);
YAP_UserCPredicate("gecode_constraint_linear_289", gecode_constraint_linear_289, 6);
YAP_UserCPredicate("gecode_constraint_linear_291", gecode_constraint_linear_291, 6);
YAP_UserCPredicate("gecode_constraint_linear_297", gecode_constraint_linear_297, 6);
YAP_UserCPredicate("gecode_constraint_linear_298", gecode_constraint_linear_298, 6);
YAP_UserCPredicate("gecode_constraint_linear_301", gecode_constraint_linear_301, 6);
YAP_UserCPredicate("gecode_constraint_linear_302", gecode_constraint_linear_302, 6);
YAP_UserCPredicate("gecode_constraint_linear_305", gecode_constraint_linear_305, 6);
YAP_UserCPredicate("gecode_constraint_linear_306", gecode_constraint_linear_306, 6);
YAP_UserCPredicate("gecode_constraint_linear_309", gecode_constraint_linear_309, 6);
YAP_UserCPredicate("gecode_constraint_linear_310", gecode_constraint_linear_310, 6);
YAP_UserCPredicate("gecode_constraint_linear_315", gecode_constraint_linear_315, 6);
YAP_UserCPredicate("gecode_constraint_linear_319", gecode_constraint_linear_319, 6);
YAP_UserCPredicate("gecode_constraint_linear_299", gecode_constraint_linear_299, 7);
YAP_UserCPredicate("gecode_constraint_linear_303", gecode_constraint_linear_303, 7);
YAP_UserCPredicate("gecode_constraint_linear_307", gecode_constraint_linear_307, 7);
YAP_UserCPredicate("gecode_constraint_linear_311", gecode_constraint_linear_311, 7);
YAP_UserCPredicate("gecode_constraint_max_320", gecode_constraint_max_320, 4);
YAP_UserCPredicate("gecode_constraint_max_321", gecode_constraint_max_321, 4);
YAP_UserCPredicate("gecode_constraint_max_325", gecode_constraint_max_325, 4);
YAP_UserCPredicate("gecode_constraint_max_322", gecode_constraint_max_322, 5);
YAP_UserCPredicate("gecode_constraint_max_323", gecode_constraint_max_323, 3);
YAP_UserCPredicate("gecode_constraint_max_324", gecode_constraint_max_324, 3);
YAP_UserCPredicate("gecode_constraint_member_326", gecode_constraint_member_326, 3);
YAP_UserCPredicate("gecode_constraint_member_330", gecode_constraint_member_330, 3);
YAP_UserCPredicate("gecode_constraint_member_327", gecode_constraint_member_327, 4);
YAP_UserCPredicate("gecode_constraint_member_328", gecode_constraint_member_328, 4);
YAP_UserCPredicate("gecode_constraint_member_331", gecode_constraint_member_331, 4);
YAP_UserCPredicate("gecode_constraint_member_332", gecode_constraint_member_332, 4);
YAP_UserCPredicate("gecode_constraint_member_329", gecode_constraint_member_329, 5);
YAP_UserCPredicate("gecode_constraint_member_333", gecode_constraint_member_333, 5);
YAP_UserCPredicate("gecode_constraint_min_334", gecode_constraint_min_334, 4);
YAP_UserCPredicate("gecode_constraint_min_335", gecode_constraint_min_335, 4);
YAP_UserCPredicate("gecode_constraint_min_339", gecode_constraint_min_339, 4);
YAP_UserCPredicate("gecode_constraint_min_336", gecode_constraint_min_336, 5);
YAP_UserCPredicate("gecode_constraint_min_337", gecode_constraint_min_337, 3);
YAP_UserCPredicate("gecode_constraint_min_338", gecode_constraint_min_338, 3);
YAP_UserCPredicate("gecode_constraint_mod_340", gecode_constraint_mod_340, 4);
YAP_UserCPredicate("gecode_constraint_mod_341", gecode_constraint_mod_341, 5);
YAP_UserCPredicate("gecode_constraint_mult_342", gecode_constraint_mult_342, 4);
YAP_UserCPredicate("gecode_constraint_mult_343", gecode_constraint_mult_343, 4);
YAP_UserCPredicate("gecode_constraint_mult_344", gecode_constraint_mult_344, 5);
YAP_UserCPredicate("gecode_constraint_nooverlap_345", gecode_constraint_nooverlap_345, 5);
YAP_UserCPredicate("gecode_constraint_nooverlap_346", gecode_constraint_nooverlap_346, 6);
YAP_UserCPredicate("gecode_constraint_nooverlap_347", gecode_constraint_nooverlap_347, 6);
YAP_UserCPredicate("gecode_constraint_nooverlap_348", gecode_constraint_nooverlap_348, 7);
YAP_UserCPredicate("gecode_constraint_nooverlap_349", gecode_constraint_nooverlap_349, 7);
YAP_UserCPredicate("gecode_constraint_nooverlap_350", gecode_constraint_nooverlap_350, 8);
YAP_UserCPredicate("gecode_constraint_nooverlap_351", gecode_constraint_nooverlap_351, 8);
YAP_UserCPredicate("gecode_constraint_nooverlap_352", gecode_constraint_nooverlap_352, 9);
YAP_UserCPredicate("gecode_constraint_nroot_353", gecode_constraint_nroot_353, 4);
YAP_UserCPredicate("gecode_constraint_nroot_354", gecode_constraint_nroot_354, 4);
YAP_UserCPredicate("gecode_constraint_nroot_355", gecode_constraint_nroot_355, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_356", gecode_constraint_nvalues_356, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_358", gecode_constraint_nvalues_358, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_360", gecode_constraint_nvalues_360, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_362", gecode_constraint_nvalues_362, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_357", gecode_constraint_nvalues_357, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_359", gecode_constraint_nvalues_359, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_361", gecode_constraint_nvalues_361, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_363", gecode_constraint_nvalues_363, 5);
YAP_UserCPredicate("gecode_constraint_path_364", gecode_constraint_path_364, 6);
YAP_UserCPredicate("gecode_constraint_path_375", gecode_constraint_path_375, 6);
YAP_UserCPredicate("gecode_constraint_path_365", gecode_constraint_path_365, 7);
YAP_UserCPredicate("gecode_constraint_path_366", gecode_constraint_path_366, 7);
YAP_UserCPredicate("gecode_constraint_path_368", gecode_constraint_path_368, 7);
YAP_UserCPredicate("gecode_constraint_path_367", gecode_constraint_path_367, 8);
YAP_UserCPredicate("gecode_constraint_path_369", gecode_constraint_path_369, 8);
YAP_UserCPredicate("gecode_constraint_path_370", gecode_constraint_path_370, 8);
YAP_UserCPredicate("gecode_constraint_path_371", gecode_constraint_path_371, 9);
YAP_UserCPredicate("gecode_constraint_path_372", gecode_constraint_path_372, 4);
YAP_UserCPredicate("gecode_constraint_path_373", gecode_constraint_path_373, 5);
YAP_UserCPredicate("gecode_constraint_path_374", gecode_constraint_path_374, 5);
YAP_UserCPredicate("gecode_constraint_pow_376", gecode_constraint_pow_376, 4);
YAP_UserCPredicate("gecode_constraint_pow_377", gecode_constraint_pow_377, 4);
YAP_UserCPredicate("gecode_constraint_pow_378", gecode_constraint_pow_378, 5);
YAP_UserCPredicate("gecode_constraint_precede_379", gecode_constraint_precede_379, 3);
YAP_UserCPredicate("gecode_constraint_precede_380", gecode_constraint_precede_380, 4);
YAP_UserCPredicate("gecode_constraint_precede_381", gecode_constraint_precede_381, 4);
YAP_UserCPredicate("gecode_constraint_precede_382", gecode_constraint_precede_382, 5);
YAP_UserCPredicate("gecode_constraint_rel_383", gecode_constraint_rel_383, 4);
YAP_UserCPredicate("gecode_constraint_rel_385", gecode_constraint_rel_385, 4);
YAP_UserCPredicate("gecode_constraint_rel_391", gecode_constraint_rel_391, 4);
YAP_UserCPredicate("gecode_constraint_rel_395", gecode_constraint_rel_395, 4);
YAP_UserCPredicate("gecode_constraint_rel_399", gecode_constraint_rel_399, 4);
YAP_UserCPredicate("gecode_constraint_rel_401", gecode_constraint_rel_401, 4);
YAP_UserCPredicate("gecode_constraint_rel_403", gecode_constraint_rel_403, 4);
YAP_UserCPredicate("gecode_constraint_rel_407", gecode_constraint_rel_407, 4);
YAP_UserCPredicate("gecode_constraint_rel_411", gecode_constraint_rel_411, 4);
YAP_UserCPredicate("gecode_constraint_rel_413", gecode_constraint_rel_413, 4);
YAP_UserCPredicate("gecode_constraint_rel_415", gecode_constraint_rel_415, 4);
YAP_UserCPredicate("gecode_constraint_rel_417", gecode_constraint_rel_417, 4);
YAP_UserCPredicate("gecode_constraint_rel_419", gecode_constraint_rel_419, 4);
YAP_UserCPredicate("gecode_constraint_rel_422", gecode_constraint_rel_422, 4);
YAP_UserCPredicate("gecode_constraint_rel_423", gecode_constraint_rel_423, 4);
YAP_UserCPredicate("gecode_constraint_rel_425", gecode_constraint_rel_425, 4);
YAP_UserCPredicate("gecode_constraint_rel_427", gecode_constraint_rel_427, 4);
YAP_UserCPredicate("gecode_constraint_rel_429", gecode_constraint_rel_429, 4);
YAP_UserCPredicate("gecode_constraint_rel_430", gecode_constraint_rel_430, 4);
YAP_UserCPredicate("gecode_constraint_rel_431", gecode_constraint_rel_431, 4);
YAP_UserCPredicate("gecode_constraint_rel_433", gecode_constraint_rel_433, 4);
YAP_UserCPredicate("gecode_constraint_rel_436", gecode_constraint_rel_436, 4);
YAP_UserCPredicate("gecode_constraint_rel_437", gecode_constraint_rel_437, 4);
YAP_UserCPredicate("gecode_constraint_rel_439", gecode_constraint_rel_439, 4);
YAP_UserCPredicate("gecode_constraint_rel_441", gecode_constraint_rel_441, 4);
YAP_UserCPredicate("gecode_constraint_rel_443", gecode_constraint_rel_443, 4);
YAP_UserCPredicate("gecode_constraint_rel_384", gecode_constraint_rel_384, 5);
YAP_UserCPredicate("gecode_constraint_rel_386", gecode_constraint_rel_386, 5);
YAP_UserCPredicate("gecode_constraint_rel_387", gecode_constraint_rel_387, 5);
YAP_UserCPredicate("gecode_constraint_rel_389", gecode_constraint_rel_389, 5);
YAP_UserCPredicate("gecode_constraint_rel_392", gecode_constraint_rel_392, 5);
YAP_UserCPredicate("gecode_constraint_rel_393", gecode_constraint_rel_393, 5);
YAP_UserCPredicate("gecode_constraint_rel_396", gecode_constraint_rel_396, 5);
YAP_UserCPredicate("gecode_constraint_rel_397", gecode_constraint_rel_397, 5);
YAP_UserCPredicate("gecode_constraint_rel_400", gecode_constraint_rel_400, 5);
YAP_UserCPredicate("gecode_constraint_rel_402", gecode_constraint_rel_402, 5);
YAP_UserCPredicate("gecode_constraint_rel_404", gecode_constraint_rel_404, 5);
YAP_UserCPredicate("gecode_constraint_rel_405", gecode_constraint_rel_405, 5);
YAP_UserCPredicate("gecode_constraint_rel_408", gecode_constraint_rel_408, 5);
YAP_UserCPredicate("gecode_constraint_rel_409", gecode_constraint_rel_409, 5);
YAP_UserCPredicate("gecode_constraint_rel_412", gecode_constraint_rel_412, 5);
YAP_UserCPredicate("gecode_constraint_rel_414", gecode_constraint_rel_414, 5);
YAP_UserCPredicate("gecode_constraint_rel_416", gecode_constraint_rel_416, 5);
YAP_UserCPredicate("gecode_constraint_rel_418", gecode_constraint_rel_418, 5);
YAP_UserCPredicate("gecode_constraint_rel_420", gecode_constraint_rel_420, 5);
YAP_UserCPredicate("gecode_constraint_rel_424", gecode_constraint_rel_424, 5);
YAP_UserCPredicate("gecode_constraint_rel_426", gecode_constraint_rel_426, 5);
YAP_UserCPredicate("gecode_constraint_rel_428", gecode_constraint_rel_428, 5);
YAP_UserCPredicate("gecode_constraint_rel_432", gecode_constraint_rel_432, 5);
YAP_UserCPredicate("gecode_constraint_rel_434", gecode_constraint_rel_434, 5);
YAP_UserCPredicate("gecode_constraint_rel_438", gecode_constraint_rel_438, 5);
YAP_UserCPredicate("gecode_constraint_rel_440", gecode_constraint_rel_440, 5);
YAP_UserCPredicate("gecode_constraint_rel_442", gecode_constraint_rel_442, 5);
YAP_UserCPredicate("gecode_constraint_rel_444", gecode_constraint_rel_444, 5);
YAP_UserCPredicate("gecode_constraint_rel_388", gecode_constraint_rel_388, 6);
YAP_UserCPredicate("gecode_constraint_rel_390", gecode_constraint_rel_390, 6);
YAP_UserCPredicate("gecode_constraint_rel_394", gecode_constraint_rel_394, 6);
YAP_UserCPredicate("gecode_constraint_rel_398", gecode_constraint_rel_398, 6);
YAP_UserCPredicate("gecode_constraint_rel_406", gecode_constraint_rel_406, 6);
YAP_UserCPredicate("gecode_constraint_rel_410", gecode_constraint_rel_410, 6);
YAP_UserCPredicate("gecode_constraint_rel_421", gecode_constraint_rel_421, 3);
YAP_UserCPredicate("gecode_constraint_rel_435", gecode_constraint_rel_435, 3);
YAP_UserCPredicate("gecode_constraint_relax_445", gecode_constraint_relax_445, 5);
YAP_UserCPredicate("gecode_constraint_sequence_446", gecode_constraint_sequence_446, 6);
YAP_UserCPredicate("gecode_constraint_sequence_448", gecode_constraint_sequence_448, 6);
YAP_UserCPredicate("gecode_constraint_sequence_447", gecode_constraint_sequence_447, 7);
YAP_UserCPredicate("gecode_constraint_sequence_449", gecode_constraint_sequence_449, 7);
YAP_UserCPredicate("gecode_constraint_sorted_450", gecode_constraint_sorted_450, 3);
YAP_UserCPredicate("gecode_constraint_sorted_451", gecode_constraint_sorted_451, 4);
YAP_UserCPredicate("gecode_constraint_sorted_452", gecode_constraint_sorted_452, 4);
YAP_UserCPredicate("gecode_constraint_sorted_453", gecode_constraint_sorted_453, 5);
YAP_UserCPredicate("gecode_constraint_sqr_454", gecode_constraint_sqr_454, 3);
YAP_UserCPredicate("gecode_constraint_sqr_455", gecode_constraint_sqr_455, 3);
YAP_UserCPredicate("gecode_constraint_sqr_456", gecode_constraint_sqr_456, 4);
YAP_UserCPredicate("gecode_constraint_sqrt_457", gecode_constraint_sqrt_457, 3);
YAP_UserCPredicate("gecode_constraint_sqrt_458", gecode_constraint_sqrt_458, 3);
YAP_UserCPredicate("gecode_constraint_sqrt_459", gecode_constraint_sqrt_459, 4);
YAP_UserCPredicate("gecode_constraint_unary_460", gecode_constraint_unary_460, 3);
YAP_UserCPredicate("gecode_constraint_unary_461", gecode_constraint_unary_461, 4);
YAP_UserCPredicate("gecode_constraint_unary_462", gecode_constraint_unary_462, 4);
YAP_UserCPredicate("gecode_constraint_unary_464", gecode_constraint_unary_464, 4);
YAP_UserCPredicate("gecode_constraint_unary_468", gecode_constraint_unary_468, 4);
YAP_UserCPredicate("gecode_constraint_unary_463", gecode_constraint_unary_463, 5);
YAP_UserCPredicate("gecode_constraint_unary_465", gecode_constraint_unary_465, 5);
YAP_UserCPredicate("gecode_constraint_unary_466", gecode_constraint_unary_466, 5);
YAP_UserCPredicate("gecode_constraint_unary_469", gecode_constraint_unary_469, 5);
YAP_UserCPredicate("gecode_constraint_unary_470", gecode_constraint_unary_470, 5);
YAP_UserCPredicate("gecode_constraint_unary_467", gecode_constraint_unary_467, 6);
YAP_UserCPredicate("gecode_constraint_unary_471", gecode_constraint_unary_471, 6);
YAP_UserCPredicate("gecode_constraint_unshare_472", gecode_constraint_unshare_472, 2);
YAP_UserCPredicate("gecode_constraint_unshare_474", gecode_constraint_unshare_474, 2);
YAP_UserCPredicate("gecode_constraint_unshare_473", gecode_constraint_unshare_473, 3);
YAP_UserCPredicate("gecode_constraint_unshare_475", gecode_constraint_unshare_475, 3);
YAP_UserCPredicate("gecode_constraint_when_476", gecode_constraint_when_476, 3);
YAP_UserCPredicate("gecode_constraint_when_477", gecode_constraint_when_477, 4);
YAP_UserCPredicate("gecode_constraint_when_478", gecode_constraint_when_478, 4);
YAP_UserCPredicate("gecode_constraint_when_479", gecode_constraint_when_479, 5);

View File

@ -0,0 +1,436 @@
// -*- c++ -*-
//=============================================================================
// Copyright (C) 2011 by Denys Duchier
//
// This program is free software: you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published by the
// Free Software Foundation, either version 3 of the License, or (at your
// option) any later version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
// more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//=============================================================================
#ifndef GECODE_COMMON
#define GECODE_COMMON
#if defined(_MSC_VER) || defined(__MINGW32__)
#define __i386__ 1
#if __x86_64__
#define _WIN64 1
#define _AMD64_ 1
#endif
#include <windows.h>
#endif
#include "gecode/driver.hh"
#include "gecode/int.hh"
#include "gecode/set.hh"
#include "gecode/search.hh"
#include <vector>
namespace generic_gecode
{
using namespace std;
using namespace Gecode;
// description of the optimization criterion
struct Optimizing
{
enum What { OPT_NONE, OPT_INT, OPT_RATIO };
enum How { OPT_MIN, OPT_MAX };
int num;
int den;
What what;
How how;
Optimizing(): num(-1), den(-1), what(OPT_NONE), how(OPT_MAX) {}
Optimizing(Optimizing& o)
: num(o.num), den(o.den), what(o.what), how(o.how) {}
void check_ok() const
{ if (what!=OPT_NONE)
throw Exception("gecode-python","too many optimization criteria"); }
void maximize(int i)
{ check_ok(); what = OPT_INT; how = OPT_MAX; num = i; };
void maximize(int i,int j)
{ check_ok(); what = OPT_RATIO; how = OPT_MAX; num = i; den = j; };
void minimize(int i)
{ check_ok(); what = OPT_INT; how = OPT_MIN; num = i; };
void minimize(int i,int j)
{ check_ok(); what = OPT_RATIO; how = OPT_MIN; num = i; den = j; };
};
class GenericSpace;
struct GenericEngine
{
GenericSpace* next(void);
// virtual ~GenericEngine() {};
};
struct GenericDFS: GenericEngine
{
DFS<GenericSpace> engine;
GenericDFS(GenericSpace* s,Search::Options& opt) : engine(s,opt) {}
GenericSpace* next(void) { return engine.next(); }
};
struct GenericRestartDFS: GenericEngine
{
RBS<GenericSpace,DFS> engine;
GenericRestartDFS(GenericSpace* s,Search::Options& opt) : engine(s,opt) {}
GenericSpace* next(void) { return engine.next(); }
};
struct GenericBAB: GenericEngine
{
BAB<GenericSpace> engine;
GenericBAB(GenericSpace* s,Search::Options& opt) : engine(s,opt) {}
GenericSpace* next(void) { return engine.next(); }
};
struct GenericRestartBAB: GenericEngine
{
RBS<GenericSpace,BAB> engine;
GenericRestartBAB(GenericSpace* s,Search::Options& opt) : engine(s,opt) {}
GenericSpace* next(void) { return engine.next(); }
};
#ifdef OLD
struct GenericRestart: GenericEngine
{
Restart<GenericSpace> engine;
GenericRestart(GenericSpace* s,Search::Options& opt): engine(s,opt) {}
virtual GenericSpace* next(void) { return engine.next(); }
};
#endif
struct LoadingDock
{
vector<IntVar> ivars;
vector<BoolVar> bvars;
vector<FloatVar> fvars;
vector<SetVar> svars;
vector<int> ikeep;
vector<int> bkeep;
vector<int> fkeep;
vector<int> skeep;
bool keeping_some() const
{
return (ikeep.size() != 0)
|| (bkeep.size() != 0)
|| (fkeep.size() != 0)
|| (skeep.size() != 0);
}
IntVar get_ivar(int i) const { return ivars[i]; }
BoolVar get_bvar(int i) const { return bvars[i]; }
FloatVar get_fvar(int i) const { return fvars[i]; }
SetVar get_svar(int i) const { return svars[i]; }
int enter_ivar(const IntVar& v)
{ ivars.push_back(v); return static_cast<int>(ivars.size()-1); }
int enter_bvar(const BoolVar& v)
{ bvars.push_back(v); return static_cast<int>(bvars.size()-1); }
int enter_fvar(const FloatVar& v)
{ fvars.push_back(v); return static_cast<int>(fvars.size()-1); }
int enter_svar(const SetVar& v)
{ svars.push_back(v); return static_cast<int>(svars.size()-1); }
int keep_ivar(int i) { ikeep.push_back(i); return static_cast<int>(ikeep.size()-1); }
int keep_bvar(int i) { bkeep.push_back(i); return static_cast<int>(bkeep.size()-1); }
int keep_fvar(int i) { fkeep.push_back(i); return static_cast<int>(fkeep.size()-1); }
int keep_svar(int i) { skeep.push_back(i); return static_cast<int>(skeep.size()-1); }
void freeze(Space& home,
IntVarArray& iarr, BoolVarArray& barr, SetVarArray& sarr, FloatVarArray& farr,
int& num, int& den)
{
if (keeping_some())
{
// make sure that optimization vars (if any) are kept
if (num != -1)
{
const int _num(num);
const int _den(den);
int n = static_cast<int>(ikeep.size());
bool num_found(false);
bool den_found(false);
for (;n--;)
{
const int idx(ikeep[n]);
if (idx==_num)
{ num_found=true; if (den_found) break; }
if (idx==_den)
{ den_found=true; if (num_found) break; }
}
if (!num_found)
{ ikeep.push_back(_num);
num=static_cast<int>(ikeep.size()-1); }
if (_den != -1 && !den_found)
{ ikeep.push_back(_den);
den=static_cast<int>(ikeep.size()-1); }
}
{ int n = static_cast<int>(ikeep.size());
iarr = IntVarArray(home, n);
for (;n--;) iarr[n]=ivars[ikeep[n]]; }
{ int n = static_cast<int>(bkeep.size());
barr = BoolVarArray(home, n);
for (;n--;) barr[n]=bvars[bkeep[n]]; }
{ int n = static_cast<int>(skeep.size());
sarr = SetVarArray(home, n);
for (;n--;) sarr[n]=svars[skeep[n]]; }
{ int n = static_cast<int>(fkeep.size());
farr = FloatVarArray(home, n);
for (;n--;) farr[n]=fvars[skeep[n]]; }
}
else
{
{ int n = static_cast<int>(ivars.size());
iarr = IntVarArray(home, n);
for (;n--;) iarr[n]=ivars[n]; }
{ int n = static_cast<int>(bvars.size());
barr = BoolVarArray(home, n);
for (;n--;) barr[n]=bvars[n]; }
{ int n = static_cast<int>(svars.size());
sarr = SetVarArray(home, n);
for (;n--;) sarr[n]=svars[n]; }
{ int n = static_cast<int>(fvars.size());
farr = FloatVarArray(home, n);
for (;n--;) farr[n]=fvars[n]; }
}
}
};
class GenericSpace: public Space
{
Optimizing optim;
IntVarArray ivars;
BoolVarArray bvars;
FloatVarArray fvars;
SetVarArray svars;
LoadingDock* dock;
bool keeping_some; // iff only SOME of the vars are kept
public:
Space* space() { return this; }
GenericSpace copy(bool share)
{ freeze(); return *new GenericSpace(share, *this); }
GenericSpace(bool share, GenericSpace& s)
: Space( s), optim(s.optim), dock(NULL), keeping_some(s.keeping_some)
{
ivars.update(*this, s.ivars);
bvars.update(*this, s.bvars);
svars.update(*this, s.svars);
fvars.update(*this, s.fvars);
}
GenericSpace() : dock(new LoadingDock()), keeping_some(false) {}
~GenericSpace() { delete dock; }
// throw some C++ exception on behalf of glue code
void kaboom(const char* s)
{ throw Exception("gecode-python", s); }
int ikaboom(const char* s)
{ kaboom(s); return 0; }
// freeze the space before handing it off to a search engine
void freeze()
{
if (dock)
{
keeping_some = dock->keeping_some();
dock->freeze(*this, ivars, bvars, svars, fvars, optim.num, optim.den);
delete dock;
dock = NULL;
}
}
IntVar get_ivar(int i) const { return (dock)?dock->get_ivar(i):ivars[i]; }
BoolVar get_bvar(int i) const { return (dock)?dock->get_bvar(i):bvars[i]; }
SetVar get_svar(int i) const { return (dock)?dock->get_svar(i):svars[i]; }
FloatVar get_fvar(int i) const { return (dock)?dock->get_fvar(i):fvars[i]; }
int keep_ivar(int i)
{
if (dock) return dock->keep_ivar(i);
else return ikaboom("too late to keep");
}
int keep_bvar(int i)
{
if (dock) return dock->keep_bvar(i);
else return ikaboom("too late to keep");
}
int keep_svar(int i)
{
if (dock) return dock->keep_svar(i);
else return ikaboom("too late to keep");
}
int keep_fvar(int i)
{
if (dock) return dock->keep_fvar(i);
else return ikaboom("too late to keep");
}
bool frozen() const { return dock==NULL; }
bool has_keepers() const { return keeping_some; }
// when frozen and has_keepers: which is just has_keepers actually
bool use_keep_index() const { return has_keepers(); }
GenericEngine* new_engine(bool restart, Search::Options& opt)
{
freeze();
return (optim.what == Optimizing::OPT_NONE)
? ( restart
? static_cast<GenericEngine*>(new GenericRestartDFS(this,opt))
: static_cast<GenericEngine*>(new GenericDFS(this,opt)) )
: (restart
? static_cast<GenericEngine*>(new GenericRestartBAB(this,opt))
:
static_cast<GenericEngine*>(new GenericBAB(this,opt)) );
}
int _new_ivar(IntVar& v)
{
if (dock) return dock->enter_ivar(v);
else return ikaboom("too late to create vars");
}
int new_ivar(int lo, int hi)
{
IntVar v(*this, lo, hi);
return _new_ivar(v);
}
int new_ivar(IntSet& s)
{
IntVar v(*this, s);
return _new_ivar(v);
}
int _new_fvar(FloatVar& v)
{
if (dock) return dock->enter_fvar(v);
else return ikaboom("too late to create vars");
}
int new_fvar(double lo, double hi)
{
FloatVar v(*this, lo, hi);
return _new_fvar(v);
}
int _new_bvar(BoolVar& v)
{
if (dock) return dock->enter_bvar(v);
else return ikaboom("too late to create vars");
}
int new_bvar()
{
BoolVar v(*this, 0, 1);
return _new_bvar(v);
}
int _new_svar(SetVar& v)
{
if (dock) return dock->enter_svar(v);
else return ikaboom("too late to create vars");
}
int new_svar(int glbMin, int glbMax, int lubMin, int lubMax,
unsigned int cardMin=0,
unsigned int cardMax=Set::Limits::card)
{
SetVar v(*this, glbMin, glbMax, lubMin, lubMax, cardMin, cardMax);
return _new_svar(v);
}
int new_ssvar(int glbMin, int glbMax, IntSet lubMin, IntSet lubMax,
unsigned int cardMin=0,
unsigned int cardMax=Set::Limits::card)
{
SetVar v(*this, glbMin, glbMax, lubMin, lubMax, cardMin, cardMax);
return _new_svar(v);
}
int new_ssvar(IntSet glb, int lubMin, int lubMax,
unsigned int cardMin=0,
unsigned int cardMax=Set::Limits::card)
{
SetVar v(*this, glb, lubMin, lubMax, cardMin, cardMax);
return _new_svar(v);
}
int new_svar(int glbMin, int glbMax, IntSet lub,
unsigned int cardMin=0,
unsigned int cardMax=Set::Limits::card)
{
SetVar v(*this, glbMin, glbMax, lub, cardMin, cardMax);
return _new_svar(v);
}
int new_sssvar(IntSet glb, IntSet lub,
unsigned int cardMin=0,
unsigned int cardMax=Set::Limits::card)
{
SetVar v(*this, glb, lub, cardMin, cardMax);
return _new_svar(v);
}
void minimize(int i) { optim.minimize(i); }
void minimize(int i, int j) { optim.minimize(i,j); }
void maximize(int i) { optim.maximize(i); }
void maximize(int i, int j) { optim.maximize(i,j); }
void constrain(const Space& s)
{
const GenericSpace& sol = static_cast<const GenericSpace&>(s);
switch (optim.what)
{
case Optimizing::OPT_NONE:
break;
case Optimizing::OPT_INT:
rel(*this, ivars[optim.num],
((optim.how==Optimizing::OPT_MIN) ? IRT_LE : IRT_GR),
sol.ivars[optim.num].val());
break;
case Optimizing::OPT_RATIO:
{
IntArgs c(2, sol.ivars[optim.den].val(),
- sol.ivars[optim.num].val());
IntVarArgs v(2);
v[0] = ivars[optim.num];
v[1] = ivars[optim.den];
linear(*this, c, v,
((optim.how==Optimizing::OPT_MIN) ? IRT_LE : IRT_GR), 0);
break;
}
}
}
};
}
#ifdef DISJUNCTOR
#include "disjunctor.icc"
#endif
#endif

View File

@ -0,0 +1,7 @@
/* just for program analysis */
:- include(gecode6_yap_hand_written).
:- include('6.0.0/gecode_yap_auto_generated').

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff