DFA and TupleSet

This commit is contained in:
Vitor Santos Costa 2013-09-12 10:17:59 +01:00
parent 9d4c7a5c8c
commit 5cd9720593
8 changed files with 1043 additions and 821 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -173,20 +173,20 @@
gecode_SOT_MINUS = YAP_MkAtomTerm(X); gecode_SOT_MINUS = YAP_MkAtomTerm(X);
YAP_AtomGetHold(X); } YAP_AtomGetHold(X); }
YAP_UserCPredicate("gecode_constraint_unary_458", gecode_constraint_unary_458, 6);
YAP_UserCPredicate("gecode_constraint_unary_454", gecode_constraint_unary_454, 6); YAP_UserCPredicate("gecode_constraint_unary_454", gecode_constraint_unary_454, 6);
YAP_UserCPredicate("gecode_constraint_unary_450", gecode_constraint_unary_450, 6); YAP_UserCPredicate("gecode_constraint_nvalues_345", gecode_constraint_nvalues_345, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_347", gecode_constraint_nvalues_347, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_341", gecode_constraint_nvalues_341, 5); YAP_UserCPredicate("gecode_constraint_nvalues_341", gecode_constraint_nvalues_341, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_343", gecode_constraint_nvalues_343, 5); YAP_UserCPredicate("gecode_constraint_nvalues_343", gecode_constraint_nvalues_343, 5);
YAP_UserCPredicate("gecode_constraint_nvalues_337", gecode_constraint_nvalues_337, 5); YAP_UserCPredicate("gecode_constraint_max_302", gecode_constraint_max_302, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_339", gecode_constraint_nvalues_339, 5); YAP_UserCPredicate("gecode_constraint_max_300", gecode_constraint_max_300, 4);
YAP_UserCPredicate("gecode_constraint_max_298", gecode_constraint_max_298, 4);
YAP_UserCPredicate("gecode_constraint_max_296", gecode_constraint_max_296, 4);
YAP_UserCPredicate("gecode_constraint_max_297", gecode_constraint_max_297, 4);
YAP_UserCPredicate("gecode_constraint_max_301", gecode_constraint_max_301, 4); YAP_UserCPredicate("gecode_constraint_max_301", gecode_constraint_max_301, 4);
YAP_UserCPredicate("gecode_constraint_max_305", gecode_constraint_max_305, 4);
YAP_UserCPredicate("gecode_constraint_dom_200", gecode_constraint_dom_200, 6); YAP_UserCPredicate("gecode_constraint_dom_200", gecode_constraint_dom_200, 6);
YAP_UserCPredicate("gecode_constraint_dom_209", gecode_constraint_dom_209, 6); YAP_UserCPredicate("gecode_constraint_dom_209", gecode_constraint_dom_209, 6);
YAP_UserCPredicate("gecode_constraint_convex_91", gecode_constraint_convex_91, 3); YAP_UserCPredicate("gecode_constraint_convex_91", gecode_constraint_convex_91, 3);
YAP_UserCPredicate("gecode_constraint_nooverlap_325", gecode_constraint_nooverlap_325, 5); YAP_UserCPredicate("gecode_constraint_nooverlap_329", gecode_constraint_nooverlap_329, 5);
YAP_UserCPredicate("gecode_constraint_assign_15", gecode_constraint_assign_15, 3); YAP_UserCPredicate("gecode_constraint_assign_15", gecode_constraint_assign_15, 3);
YAP_UserCPredicate("gecode_constraint_assign_6", gecode_constraint_assign_6, 3); YAP_UserCPredicate("gecode_constraint_assign_6", gecode_constraint_assign_6, 3);
YAP_UserCPredicate("gecode_constraint_assign_3", gecode_constraint_assign_3, 3); YAP_UserCPredicate("gecode_constraint_assign_3", gecode_constraint_assign_3, 3);
@ -204,11 +204,11 @@ YAP_UserCPredicate("gecode_constraint_element_227", gecode_constraint_element_22
YAP_UserCPredicate("gecode_constraint_element_230", gecode_constraint_element_230, 4); YAP_UserCPredicate("gecode_constraint_element_230", gecode_constraint_element_230, 4);
YAP_UserCPredicate("gecode_constraint_element_236", gecode_constraint_element_236, 4); YAP_UserCPredicate("gecode_constraint_element_236", gecode_constraint_element_236, 4);
YAP_UserCPredicate("gecode_constraint_element_228", gecode_constraint_element_228, 4); YAP_UserCPredicate("gecode_constraint_element_228", gecode_constraint_element_228, 4);
YAP_UserCPredicate("gecode_constraint_sequence_433", gecode_constraint_sequence_433, 2); YAP_UserCPredicate("gecode_constraint_sequence_437", gecode_constraint_sequence_437, 2);
YAP_UserCPredicate("gecode_constraint_notMax_331", gecode_constraint_notMax_331, 3); YAP_UserCPredicate("gecode_constraint_notMax_335", gecode_constraint_notMax_335, 3);
YAP_UserCPredicate("gecode_constraint_ite_252", gecode_constraint_ite_252, 5); YAP_UserCPredicate("gecode_constraint_ite_256", gecode_constraint_ite_256, 5);
YAP_UserCPredicate("gecode_constraint_unary_447", gecode_constraint_unary_447, 3); YAP_UserCPredicate("gecode_constraint_unary_451", gecode_constraint_unary_451, 3);
YAP_UserCPredicate("gecode_constraint_nroot_335", gecode_constraint_nroot_335, 5); YAP_UserCPredicate("gecode_constraint_nroot_339", gecode_constraint_nroot_339, 5);
YAP_UserCPredicate("gecode_constraint_circuit_85", gecode_constraint_circuit_85, 4); YAP_UserCPredicate("gecode_constraint_circuit_85", gecode_constraint_circuit_85, 4);
YAP_UserCPredicate("gecode_constraint_circuit_76", gecode_constraint_circuit_76, 4); YAP_UserCPredicate("gecode_constraint_circuit_76", gecode_constraint_circuit_76, 4);
YAP_UserCPredicate("gecode_constraint_dom_199", gecode_constraint_dom_199, 5); YAP_UserCPredicate("gecode_constraint_dom_199", gecode_constraint_dom_199, 5);
@ -224,76 +224,76 @@ YAP_UserCPredicate("gecode_constraint_dom_206", gecode_constraint_dom_206, 5);
YAP_UserCPredicate("gecode_constraint_channel_66", gecode_constraint_channel_66, 4); YAP_UserCPredicate("gecode_constraint_channel_66", gecode_constraint_channel_66, 4);
YAP_UserCPredicate("gecode_constraint_channel_62", gecode_constraint_channel_62, 4); YAP_UserCPredicate("gecode_constraint_channel_62", gecode_constraint_channel_62, 4);
YAP_UserCPredicate("gecode_constraint_channel_60", gecode_constraint_channel_60, 4); YAP_UserCPredicate("gecode_constraint_channel_60", gecode_constraint_channel_60, 4);
YAP_UserCPredicate("gecode_constraint_nooverlap_327", gecode_constraint_nooverlap_327, 8); YAP_UserCPredicate("gecode_constraint_nooverlap_331", gecode_constraint_nooverlap_331, 8);
YAP_UserCPredicate("gecode_constraint_nooverlap_330", gecode_constraint_nooverlap_330, 8); YAP_UserCPredicate("gecode_constraint_nooverlap_334", gecode_constraint_nooverlap_334, 8);
YAP_UserCPredicate("gecode_constraint_element_222", gecode_constraint_element_222, 7); YAP_UserCPredicate("gecode_constraint_element_222", gecode_constraint_element_222, 7);
YAP_UserCPredicate("gecode_constraint_element_216", gecode_constraint_element_216, 7); YAP_UserCPredicate("gecode_constraint_element_216", gecode_constraint_element_216, 7);
YAP_UserCPredicate("gecode_constraint_element_218", gecode_constraint_element_218, 7); YAP_UserCPredicate("gecode_constraint_element_218", gecode_constraint_element_218, 7);
YAP_UserCPredicate("gecode_constraint_element_226", gecode_constraint_element_226, 7); YAP_UserCPredicate("gecode_constraint_element_226", gecode_constraint_element_226, 7);
YAP_UserCPredicate("gecode_constraint_element_234", gecode_constraint_element_234, 7); YAP_UserCPredicate("gecode_constraint_element_234", gecode_constraint_element_234, 7);
YAP_UserCPredicate("gecode_constraint_element_232", gecode_constraint_element_232, 7); YAP_UserCPredicate("gecode_constraint_element_232", gecode_constraint_element_232, 7);
YAP_UserCPredicate("gecode_constraint_max_294", gecode_constraint_max_294, 3); YAP_UserCPredicate("gecode_constraint_max_298", gecode_constraint_max_298, 3);
YAP_UserCPredicate("gecode_constraint_max_295", gecode_constraint_max_295, 3); YAP_UserCPredicate("gecode_constraint_max_299", gecode_constraint_max_299, 3);
YAP_UserCPredicate("gecode_constraint_max_300", gecode_constraint_max_300, 3); YAP_UserCPredicate("gecode_constraint_max_304", gecode_constraint_max_304, 3);
YAP_UserCPredicate("gecode_constraint_unshare_459", gecode_constraint_unshare_459, 2); YAP_UserCPredicate("gecode_constraint_unshare_463", gecode_constraint_unshare_463, 2);
YAP_UserCPredicate("gecode_constraint_unshare_457", gecode_constraint_unshare_457, 2); YAP_UserCPredicate("gecode_constraint_unshare_461", gecode_constraint_unshare_461, 2);
YAP_UserCPredicate("gecode_constraint_path_354", gecode_constraint_path_354, 5); YAP_UserCPredicate("gecode_constraint_path_358", gecode_constraint_path_358, 5);
YAP_UserCPredicate("gecode_constraint_path_353", gecode_constraint_path_353, 5); YAP_UserCPredicate("gecode_constraint_path_357", gecode_constraint_path_357, 5);
YAP_UserCPredicate("gecode_constraint_branch_34", gecode_constraint_branch_34, 7); YAP_UserCPredicate("gecode_constraint_branch_34", gecode_constraint_branch_34, 7);
YAP_UserCPredicate("gecode_constraint_branch_28", gecode_constraint_branch_28, 7); YAP_UserCPredicate("gecode_constraint_branch_28", gecode_constraint_branch_28, 7);
YAP_UserCPredicate("gecode_constraint_branch_40", gecode_constraint_branch_40, 7); YAP_UserCPredicate("gecode_constraint_branch_40", gecode_constraint_branch_40, 7);
YAP_UserCPredicate("gecode_constraint_mult_321", gecode_constraint_mult_321, 4); YAP_UserCPredicate("gecode_constraint_mult_325", gecode_constraint_mult_325, 4);
YAP_UserCPredicate("gecode_constraint_mult_320", gecode_constraint_mult_320, 4); YAP_UserCPredicate("gecode_constraint_mult_324", gecode_constraint_mult_324, 4);
YAP_UserCPredicate("gecode_constraint_clause_89", gecode_constraint_clause_89, 6); YAP_UserCPredicate("gecode_constraint_clause_89", gecode_constraint_clause_89, 6);
YAP_UserCPredicate("gecode_constraint_clause_87", gecode_constraint_clause_87, 6); YAP_UserCPredicate("gecode_constraint_clause_87", gecode_constraint_clause_87, 6);
YAP_UserCPredicate("gecode_constraint_precede_362", gecode_constraint_precede_362, 5); YAP_UserCPredicate("gecode_constraint_precede_366", gecode_constraint_precede_366, 5);
YAP_UserCPredicate("gecode_constraint_distinct_160", gecode_constraint_distinct_160, 2); YAP_UserCPredicate("gecode_constraint_distinct_160", gecode_constraint_distinct_160, 2);
YAP_UserCPredicate("gecode_constraint_member_312", gecode_constraint_member_312, 4);
YAP_UserCPredicate("gecode_constraint_member_311", gecode_constraint_member_311, 4);
YAP_UserCPredicate("gecode_constraint_member_308", gecode_constraint_member_308, 4); YAP_UserCPredicate("gecode_constraint_member_308", gecode_constraint_member_308, 4);
YAP_UserCPredicate("gecode_constraint_member_307", gecode_constraint_member_307, 4); YAP_UserCPredicate("gecode_constraint_member_307", gecode_constraint_member_307, 4);
YAP_UserCPredicate("gecode_constraint_member_304", gecode_constraint_member_304, 4); YAP_UserCPredicate("gecode_constraint_mod_323", gecode_constraint_mod_323, 5);
YAP_UserCPredicate("gecode_constraint_member_303", gecode_constraint_member_303, 4);
YAP_UserCPredicate("gecode_constraint_mod_319", gecode_constraint_mod_319, 5);
YAP_UserCPredicate("gecode_constraint_cardinality_57", gecode_constraint_cardinality_57, 3); YAP_UserCPredicate("gecode_constraint_cardinality_57", gecode_constraint_cardinality_57, 3);
YAP_UserCPredicate("gecode_constraint_atmostOne_53", gecode_constraint_atmostOne_53, 3); YAP_UserCPredicate("gecode_constraint_atmostOne_53", gecode_constraint_atmostOne_53, 3);
YAP_UserCPredicate("gecode_constraint_channelSorted_73", gecode_constraint_channelSorted_73, 3); YAP_UserCPredicate("gecode_constraint_channelSorted_73", gecode_constraint_channelSorted_73, 3);
YAP_UserCPredicate("gecode_constraint_extensional_251", gecode_constraint_extensional_251, 5); YAP_UserCPredicate("gecode_constraint_extensional_253", gecode_constraint_extensional_253, 5);
YAP_UserCPredicate("gecode_constraint_extensional_248", gecode_constraint_extensional_248, 5); YAP_UserCPredicate("gecode_constraint_extensional_248", gecode_constraint_extensional_248, 5);
YAP_UserCPredicate("gecode_constraint_linear_268", gecode_constraint_linear_268, 4); YAP_UserCPredicate("gecode_constraint_linear_272", gecode_constraint_linear_272, 4);
YAP_UserCPredicate("gecode_constraint_linear_266", gecode_constraint_linear_266, 4); YAP_UserCPredicate("gecode_constraint_linear_270", gecode_constraint_linear_270, 4);
YAP_UserCPredicate("gecode_constraint_linear_254", gecode_constraint_linear_254, 4);
YAP_UserCPredicate("gecode_constraint_linear_258", gecode_constraint_linear_258, 4); YAP_UserCPredicate("gecode_constraint_linear_258", gecode_constraint_linear_258, 4);
YAP_UserCPredicate("gecode_constraint_linear_286", gecode_constraint_linear_286, 4); YAP_UserCPredicate("gecode_constraint_linear_262", gecode_constraint_linear_262, 4);
YAP_UserCPredicate("gecode_constraint_linear_290", gecode_constraint_linear_290, 4); YAP_UserCPredicate("gecode_constraint_linear_290", gecode_constraint_linear_290, 4);
YAP_UserCPredicate("gecode_constraint_linear_294", gecode_constraint_linear_294, 4);
YAP_UserCPredicate("gecode_constraint_circuit_82", gecode_constraint_circuit_82, 2); YAP_UserCPredicate("gecode_constraint_circuit_82", gecode_constraint_circuit_82, 2);
YAP_UserCPredicate("gecode_constraint_rel_402", gecode_constraint_rel_402, 5); YAP_UserCPredicate("gecode_constraint_rel_406", gecode_constraint_rel_406, 5);
YAP_UserCPredicate("gecode_constraint_rel_404", gecode_constraint_rel_404, 5); YAP_UserCPredicate("gecode_constraint_rel_408", gecode_constraint_rel_408, 5);
YAP_UserCPredicate("gecode_constraint_rel_418", gecode_constraint_rel_418, 5); YAP_UserCPredicate("gecode_constraint_rel_422", gecode_constraint_rel_422, 5);
YAP_UserCPredicate("gecode_constraint_rel_416", gecode_constraint_rel_416, 5); YAP_UserCPredicate("gecode_constraint_rel_420", gecode_constraint_rel_420, 5);
YAP_UserCPredicate("gecode_constraint_rel_392", gecode_constraint_rel_392, 5);
YAP_UserCPredicate("gecode_constraint_rel_388", gecode_constraint_rel_388, 5); YAP_UserCPredicate("gecode_constraint_rel_388", gecode_constraint_rel_388, 5);
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_383", gecode_constraint_rel_383, 5);
YAP_UserCPredicate("gecode_constraint_rel_382", gecode_constraint_rel_382, 5); YAP_UserCPredicate("gecode_constraint_rel_382", gecode_constraint_rel_382, 5);
YAP_UserCPredicate("gecode_constraint_rel_379", gecode_constraint_rel_379, 5); YAP_UserCPredicate("gecode_constraint_rel_379", gecode_constraint_rel_379, 5);
YAP_UserCPredicate("gecode_constraint_rel_378", gecode_constraint_rel_378, 5); YAP_UserCPredicate("gecode_constraint_rel_378", gecode_constraint_rel_378, 5);
YAP_UserCPredicate("gecode_constraint_rel_375", gecode_constraint_rel_375, 5); YAP_UserCPredicate("gecode_constraint_rel_375", gecode_constraint_rel_375, 5);
YAP_UserCPredicate("gecode_constraint_rel_374", gecode_constraint_rel_374, 5); YAP_UserCPredicate("gecode_constraint_rel_373", gecode_constraint_rel_373, 5);
YAP_UserCPredicate("gecode_constraint_rel_371", gecode_constraint_rel_371, 5); YAP_UserCPredicate("gecode_constraint_rel_402", gecode_constraint_rel_402, 5);
YAP_UserCPredicate("gecode_constraint_rel_369", gecode_constraint_rel_369, 5); YAP_UserCPredicate("gecode_constraint_rel_404", gecode_constraint_rel_404, 5);
YAP_UserCPredicate("gecode_constraint_rel_398", gecode_constraint_rel_398, 5); YAP_UserCPredicate("gecode_constraint_rel_398", gecode_constraint_rel_398, 5);
YAP_UserCPredicate("gecode_constraint_rel_400", gecode_constraint_rel_400, 5);
YAP_UserCPredicate("gecode_constraint_rel_394", gecode_constraint_rel_394, 5);
YAP_UserCPredicate("gecode_constraint_rel_407", gecode_constraint_rel_407, 5);
YAP_UserCPredicate("gecode_constraint_rel_406", gecode_constraint_rel_406, 5);
YAP_UserCPredicate("gecode_constraint_rel_411", gecode_constraint_rel_411, 5); YAP_UserCPredicate("gecode_constraint_rel_411", gecode_constraint_rel_411, 5);
YAP_UserCPredicate("gecode_constraint_rel_410", gecode_constraint_rel_410, 5); YAP_UserCPredicate("gecode_constraint_rel_410", gecode_constraint_rel_410, 5);
YAP_UserCPredicate("gecode_constraint_rel_415", gecode_constraint_rel_415, 5); YAP_UserCPredicate("gecode_constraint_rel_415", gecode_constraint_rel_415, 5);
YAP_UserCPredicate("gecode_constraint_rel_426", gecode_constraint_rel_426, 5); YAP_UserCPredicate("gecode_constraint_rel_414", gecode_constraint_rel_414, 5);
YAP_UserCPredicate("gecode_constraint_rel_428", gecode_constraint_rel_428, 5); YAP_UserCPredicate("gecode_constraint_rel_419", gecode_constraint_rel_419, 5);
YAP_UserCPredicate("gecode_constraint_rel_368", gecode_constraint_rel_368, 5); YAP_UserCPredicate("gecode_constraint_rel_430", gecode_constraint_rel_430, 5);
YAP_UserCPredicate("gecode_constraint_rel_366", gecode_constraint_rel_366, 5); YAP_UserCPredicate("gecode_constraint_rel_432", gecode_constraint_rel_432, 5);
YAP_UserCPredicate("gecode_constraint_min_314", gecode_constraint_min_314, 4); YAP_UserCPredicate("gecode_constraint_rel_372", gecode_constraint_rel_372, 5);
YAP_UserCPredicate("gecode_constraint_min_312", gecode_constraint_min_312, 4); YAP_UserCPredicate("gecode_constraint_rel_370", gecode_constraint_rel_370, 5);
YAP_UserCPredicate("gecode_constraint_min_313", gecode_constraint_min_313, 4); YAP_UserCPredicate("gecode_constraint_min_318", gecode_constraint_min_318, 4);
YAP_UserCPredicate("gecode_constraint_min_316", gecode_constraint_min_316, 4);
YAP_UserCPredicate("gecode_constraint_min_317", gecode_constraint_min_317, 4); YAP_UserCPredicate("gecode_constraint_min_317", gecode_constraint_min_317, 4);
YAP_UserCPredicate("gecode_constraint_min_321", gecode_constraint_min_321, 4);
YAP_UserCPredicate("gecode_constraint_cardinality_56", gecode_constraint_cardinality_56, 4); YAP_UserCPredicate("gecode_constraint_cardinality_56", gecode_constraint_cardinality_56, 4);
YAP_UserCPredicate("gecode_constraint_cardinality_58", gecode_constraint_cardinality_58, 4); YAP_UserCPredicate("gecode_constraint_cardinality_58", gecode_constraint_cardinality_58, 4);
YAP_UserCPredicate("gecode_constraint_count_109", gecode_constraint_count_109, 4); YAP_UserCPredicate("gecode_constraint_count_109", gecode_constraint_count_109, 4);
@ -301,8 +301,8 @@ YAP_UserCPredicate("gecode_constraint_count_106", gecode_constraint_count_106, 4
YAP_UserCPredicate("gecode_constraint_count_100", gecode_constraint_count_100, 4); YAP_UserCPredicate("gecode_constraint_count_100", gecode_constraint_count_100, 4);
YAP_UserCPredicate("gecode_constraint_count_99", gecode_constraint_count_99, 4); YAP_UserCPredicate("gecode_constraint_count_99", gecode_constraint_count_99, 4);
YAP_UserCPredicate("gecode_constraint_count_96", gecode_constraint_count_96, 4); YAP_UserCPredicate("gecode_constraint_count_96", gecode_constraint_count_96, 4);
YAP_UserCPredicate("gecode_constraint_sqrt_443", gecode_constraint_sqrt_443, 3); YAP_UserCPredicate("gecode_constraint_sqrt_447", gecode_constraint_sqrt_447, 3);
YAP_UserCPredicate("gecode_constraint_sqrt_442", gecode_constraint_sqrt_442, 3); YAP_UserCPredicate("gecode_constraint_sqrt_446", gecode_constraint_sqrt_446, 3);
YAP_UserCPredicate("gecode_constraint_cumulatives_157", gecode_constraint_cumulatives_157, 9); YAP_UserCPredicate("gecode_constraint_cumulatives_157", gecode_constraint_cumulatives_157, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_155", gecode_constraint_cumulatives_155, 9); YAP_UserCPredicate("gecode_constraint_cumulatives_155", gecode_constraint_cumulatives_155, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_153", gecode_constraint_cumulatives_153, 9); YAP_UserCPredicate("gecode_constraint_cumulatives_153", gecode_constraint_cumulatives_153, 9);
@ -311,41 +311,41 @@ YAP_UserCPredicate("gecode_constraint_cumulatives_149", gecode_constraint_cumula
YAP_UserCPredicate("gecode_constraint_cumulatives_147", gecode_constraint_cumulatives_147, 9); YAP_UserCPredicate("gecode_constraint_cumulatives_147", gecode_constraint_cumulatives_147, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_145", gecode_constraint_cumulatives_145, 9); YAP_UserCPredicate("gecode_constraint_cumulatives_145", gecode_constraint_cumulatives_145, 9);
YAP_UserCPredicate("gecode_constraint_cumulatives_143", gecode_constraint_cumulatives_143, 9); YAP_UserCPredicate("gecode_constraint_cumulatives_143", gecode_constraint_cumulatives_143, 9);
YAP_UserCPredicate("gecode_constraint_nvalues_344", gecode_constraint_nvalues_344, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_346", gecode_constraint_nvalues_346, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_340", gecode_constraint_nvalues_340, 4); YAP_UserCPredicate("gecode_constraint_nvalues_340", gecode_constraint_nvalues_340, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_342", gecode_constraint_nvalues_342, 4); YAP_UserCPredicate("gecode_constraint_nvalues_342", gecode_constraint_nvalues_342, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_336", gecode_constraint_nvalues_336, 4);
YAP_UserCPredicate("gecode_constraint_nvalues_338", gecode_constraint_nvalues_338, 4);
YAP_UserCPredicate("gecode_constraint_binpacking_54", gecode_constraint_binpacking_54, 4); YAP_UserCPredicate("gecode_constraint_binpacking_54", gecode_constraint_binpacking_54, 4);
YAP_UserCPredicate("gecode_constraint_linear_281", gecode_constraint_linear_281, 7);
YAP_UserCPredicate("gecode_constraint_linear_285", gecode_constraint_linear_285, 7); YAP_UserCPredicate("gecode_constraint_linear_285", gecode_constraint_linear_285, 7);
YAP_UserCPredicate("gecode_constraint_linear_273", gecode_constraint_linear_273, 7); YAP_UserCPredicate("gecode_constraint_linear_289", gecode_constraint_linear_289, 7);
YAP_UserCPredicate("gecode_constraint_linear_277", gecode_constraint_linear_277, 7); YAP_UserCPredicate("gecode_constraint_linear_277", gecode_constraint_linear_277, 7);
YAP_UserCPredicate("gecode_constraint_linear_281", gecode_constraint_linear_281, 7);
YAP_UserCPredicate("gecode_constraint_abs_52", gecode_constraint_abs_52, 4); YAP_UserCPredicate("gecode_constraint_abs_52", gecode_constraint_abs_52, 4);
YAP_UserCPredicate("gecode_constraint_convex_90", gecode_constraint_convex_90, 2); YAP_UserCPredicate("gecode_constraint_convex_90", gecode_constraint_convex_90, 2);
YAP_UserCPredicate("gecode_constraint_div_163", gecode_constraint_div_163, 4); YAP_UserCPredicate("gecode_constraint_div_163", gecode_constraint_div_163, 4);
YAP_UserCPredicate("gecode_constraint_div_162", gecode_constraint_div_162, 4); YAP_UserCPredicate("gecode_constraint_div_162", gecode_constraint_div_162, 4);
YAP_UserCPredicate("gecode_constraint_rel_408", gecode_constraint_rel_408, 6);
YAP_UserCPredicate("gecode_constraint_rel_412", gecode_constraint_rel_412, 6); YAP_UserCPredicate("gecode_constraint_rel_412", gecode_constraint_rel_412, 6);
YAP_UserCPredicate("gecode_constraint_rel_391", gecode_constraint_rel_391, 6); YAP_UserCPredicate("gecode_constraint_rel_416", gecode_constraint_rel_416, 6);
YAP_UserCPredicate("gecode_constraint_rel_392", gecode_constraint_rel_392, 6); YAP_UserCPredicate("gecode_constraint_rel_395", gecode_constraint_rel_395, 6);
YAP_UserCPredicate("gecode_constraint_rel_396", gecode_constraint_rel_396, 6);
YAP_UserCPredicate("gecode_constraint_rel_384", gecode_constraint_rel_384, 6);
YAP_UserCPredicate("gecode_constraint_rel_380", gecode_constraint_rel_380, 6); YAP_UserCPredicate("gecode_constraint_rel_380", gecode_constraint_rel_380, 6);
YAP_UserCPredicate("gecode_constraint_rel_376", gecode_constraint_rel_376, 6); YAP_UserCPredicate("gecode_constraint_rel_376", gecode_constraint_rel_376, 6);
YAP_UserCPredicate("gecode_constraint_rel_372", gecode_constraint_rel_372, 6); YAP_UserCPredicate("gecode_constraint_rel_374", gecode_constraint_rel_374, 6);
YAP_UserCPredicate("gecode_constraint_rel_370", gecode_constraint_rel_370, 6); YAP_UserCPredicate("gecode_constraint_rel_425", gecode_constraint_rel_425, 6);
YAP_UserCPredicate("gecode_constraint_rel_421", gecode_constraint_rel_421, 6); YAP_UserCPredicate("gecode_constraint_rel_426", gecode_constraint_rel_426, 6);
YAP_UserCPredicate("gecode_constraint_rel_422", gecode_constraint_rel_422, 6); YAP_UserCPredicate("gecode_constraint_rel_427", gecode_constraint_rel_427, 6);
YAP_UserCPredicate("gecode_constraint_rel_423", gecode_constraint_rel_423, 6); YAP_UserCPredicate("gecode_constraint_rel_428", gecode_constraint_rel_428, 6);
YAP_UserCPredicate("gecode_constraint_rel_424", gecode_constraint_rel_424, 6); YAP_UserCPredicate("gecode_constraint_weights_465", gecode_constraint_weights_465, 5);
YAP_UserCPredicate("gecode_constraint_weights_461", gecode_constraint_weights_461, 5); YAP_UserCPredicate("gecode_constraint_max_303", gecode_constraint_max_303, 5);
YAP_UserCPredicate("gecode_constraint_max_299", gecode_constraint_max_299, 5); YAP_UserCPredicate("gecode_constraint_path_353", gecode_constraint_path_353, 9);
YAP_UserCPredicate("gecode_constraint_path_349", gecode_constraint_path_349, 9); YAP_UserCPredicate("gecode_constraint_unary_459", gecode_constraint_unary_459, 4);
YAP_UserCPredicate("gecode_constraint_unary_455", gecode_constraint_unary_455, 4); YAP_UserCPredicate("gecode_constraint_unary_455", gecode_constraint_unary_455, 4);
YAP_UserCPredicate("gecode_constraint_unary_451", gecode_constraint_unary_451, 4); YAP_UserCPredicate("gecode_constraint_unary_449", gecode_constraint_unary_449, 4);
YAP_UserCPredicate("gecode_constraint_unary_445", gecode_constraint_unary_445, 4); YAP_UserCPredicate("gecode_constraint_unary_452", gecode_constraint_unary_452, 4);
YAP_UserCPredicate("gecode_constraint_unary_448", gecode_constraint_unary_448, 4); YAP_UserCPredicate("gecode_constraint_nroot_338", gecode_constraint_nroot_338, 4);
YAP_UserCPredicate("gecode_constraint_nroot_334", gecode_constraint_nroot_334, 4); YAP_UserCPredicate("gecode_constraint_nroot_337", gecode_constraint_nroot_337, 4);
YAP_UserCPredicate("gecode_constraint_nroot_333", gecode_constraint_nroot_333, 4); YAP_UserCPredicate("gecode_constraint_sorted_440", gecode_constraint_sorted_440, 5);
YAP_UserCPredicate("gecode_constraint_sorted_436", gecode_constraint_sorted_436, 5);
YAP_UserCPredicate("gecode_constraint_circuit_80", gecode_constraint_circuit_80, 5); YAP_UserCPredicate("gecode_constraint_circuit_80", gecode_constraint_circuit_80, 5);
YAP_UserCPredicate("gecode_constraint_circuit_77", gecode_constraint_circuit_77, 5); YAP_UserCPredicate("gecode_constraint_circuit_77", gecode_constraint_circuit_77, 5);
YAP_UserCPredicate("gecode_constraint_circuit_74", gecode_constraint_circuit_74, 5); YAP_UserCPredicate("gecode_constraint_circuit_74", gecode_constraint_circuit_74, 5);
@ -376,9 +376,9 @@ YAP_UserCPredicate("gecode_constraint_assign_8", gecode_constraint_assign_8, 5);
YAP_UserCPredicate("gecode_constraint_assign_5", gecode_constraint_assign_5, 5); YAP_UserCPredicate("gecode_constraint_assign_5", gecode_constraint_assign_5, 5);
YAP_UserCPredicate("gecode_constraint_assign_11", gecode_constraint_assign_11, 5); YAP_UserCPredicate("gecode_constraint_assign_11", gecode_constraint_assign_11, 5);
YAP_UserCPredicate("gecode_constraint_assign_14", gecode_constraint_assign_14, 5); YAP_UserCPredicate("gecode_constraint_assign_14", gecode_constraint_assign_14, 5);
YAP_UserCPredicate("gecode_constraint_rel_395", gecode_constraint_rel_395, 3); YAP_UserCPredicate("gecode_constraint_rel_399", gecode_constraint_rel_399, 3);
YAP_UserCPredicate("gecode_constraint_rel_385", gecode_constraint_rel_385, 3); YAP_UserCPredicate("gecode_constraint_rel_389", gecode_constraint_rel_389, 3);
YAP_UserCPredicate("gecode_constraint_path_352", gecode_constraint_path_352, 4); YAP_UserCPredicate("gecode_constraint_path_356", gecode_constraint_path_356, 4);
YAP_UserCPredicate("gecode_constraint_branch_45", gecode_constraint_branch_45, 4); YAP_UserCPredicate("gecode_constraint_branch_45", gecode_constraint_branch_45, 4);
YAP_UserCPredicate("gecode_constraint_branch_29", gecode_constraint_branch_29, 4); YAP_UserCPredicate("gecode_constraint_branch_29", gecode_constraint_branch_29, 4);
YAP_UserCPredicate("gecode_constraint_branch_23", gecode_constraint_branch_23, 4); YAP_UserCPredicate("gecode_constraint_branch_23", gecode_constraint_branch_23, 4);
@ -387,15 +387,15 @@ YAP_UserCPredicate("gecode_constraint_branch_35", gecode_constraint_branch_35, 4
YAP_UserCPredicate("gecode_constraint_branch_47", gecode_constraint_branch_47, 4); YAP_UserCPredicate("gecode_constraint_branch_47", gecode_constraint_branch_47, 4);
YAP_UserCPredicate("gecode_constraint_branch_41", gecode_constraint_branch_41, 4); YAP_UserCPredicate("gecode_constraint_branch_41", gecode_constraint_branch_41, 4);
YAP_UserCPredicate("gecode_constraint_branch_49", gecode_constraint_branch_49, 4); YAP_UserCPredicate("gecode_constraint_branch_49", gecode_constraint_branch_49, 4);
YAP_UserCPredicate("gecode_constraint_mult_322", gecode_constraint_mult_322, 5); YAP_UserCPredicate("gecode_constraint_mult_326", gecode_constraint_mult_326, 5);
YAP_UserCPredicate("gecode_constraint_circuit_81", gecode_constraint_circuit_81, 6); YAP_UserCPredicate("gecode_constraint_circuit_81", gecode_constraint_circuit_81, 6);
YAP_UserCPredicate("gecode_constraint_circuit_78", gecode_constraint_circuit_78, 6); YAP_UserCPredicate("gecode_constraint_circuit_78", gecode_constraint_circuit_78, 6);
YAP_UserCPredicate("gecode_constraint_circuit_75", gecode_constraint_circuit_75, 6); YAP_UserCPredicate("gecode_constraint_circuit_75", gecode_constraint_circuit_75, 6);
YAP_UserCPredicate("gecode_constraint_clause_88", gecode_constraint_clause_88, 5); YAP_UserCPredicate("gecode_constraint_clause_88", gecode_constraint_clause_88, 5);
YAP_UserCPredicate("gecode_constraint_clause_86", gecode_constraint_clause_86, 5); YAP_UserCPredicate("gecode_constraint_clause_86", gecode_constraint_clause_86, 5);
YAP_UserCPredicate("gecode_constraint_precede_368", gecode_constraint_precede_368, 4);
YAP_UserCPredicate("gecode_constraint_precede_365", gecode_constraint_precede_365, 4);
YAP_UserCPredicate("gecode_constraint_precede_364", gecode_constraint_precede_364, 4); YAP_UserCPredicate("gecode_constraint_precede_364", gecode_constraint_precede_364, 4);
YAP_UserCPredicate("gecode_constraint_precede_361", gecode_constraint_precede_361, 4);
YAP_UserCPredicate("gecode_constraint_precede_360", gecode_constraint_precede_360, 4);
YAP_UserCPredicate("gecode_constraint_channel_69", gecode_constraint_channel_69, 6); YAP_UserCPredicate("gecode_constraint_channel_69", gecode_constraint_channel_69, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_126", gecode_constraint_cumulative_126, 7); YAP_UserCPredicate("gecode_constraint_cumulative_126", gecode_constraint_cumulative_126, 7);
YAP_UserCPredicate("gecode_constraint_cumulative_129", gecode_constraint_cumulative_129, 7); YAP_UserCPredicate("gecode_constraint_cumulative_129", gecode_constraint_cumulative_129, 7);
@ -409,20 +409,22 @@ YAP_UserCPredicate("gecode_constraint_cumulative_137", gecode_constraint_cumulat
YAP_UserCPredicate("gecode_constraint_cumulative_131", gecode_constraint_cumulative_131, 7); YAP_UserCPredicate("gecode_constraint_cumulative_131", gecode_constraint_cumulative_131, 7);
YAP_UserCPredicate("gecode_constraint_distinct_161", gecode_constraint_distinct_161, 3); YAP_UserCPredicate("gecode_constraint_distinct_161", gecode_constraint_distinct_161, 3);
YAP_UserCPredicate("gecode_constraint_distinct_158", gecode_constraint_distinct_158, 3); YAP_UserCPredicate("gecode_constraint_distinct_158", gecode_constraint_distinct_158, 3);
YAP_UserCPredicate("gecode_constraint_member_313", gecode_constraint_member_313, 5);
YAP_UserCPredicate("gecode_constraint_member_309", gecode_constraint_member_309, 5); YAP_UserCPredicate("gecode_constraint_member_309", gecode_constraint_member_309, 5);
YAP_UserCPredicate("gecode_constraint_member_305", gecode_constraint_member_305, 5); YAP_UserCPredicate("gecode_constraint_mod_322", gecode_constraint_mod_322, 4);
YAP_UserCPredicate("gecode_constraint_mod_318", gecode_constraint_mod_318, 4); YAP_UserCPredicate("gecode_constraint_sqr_444", gecode_constraint_sqr_444, 3);
YAP_UserCPredicate("gecode_constraint_sqr_440", gecode_constraint_sqr_440, 3); YAP_UserCPredicate("gecode_constraint_sqr_443", gecode_constraint_sqr_443, 3);
YAP_UserCPredicate("gecode_constraint_sqr_439", gecode_constraint_sqr_439, 3); YAP_UserCPredicate("gecode_constraint_sequence_436", gecode_constraint_sequence_436, 7);
YAP_UserCPredicate("gecode_constraint_sequence_432", gecode_constraint_sequence_432, 7); YAP_UserCPredicate("gecode_constraint_sequence_434", gecode_constraint_sequence_434, 7);
YAP_UserCPredicate("gecode_constraint_sequence_430", gecode_constraint_sequence_430, 7); YAP_UserCPredicate("gecode_constraint_path_354", gecode_constraint_path_354, 7);
YAP_UserCPredicate("gecode_constraint_path_350", gecode_constraint_path_350, 7); YAP_UserCPredicate("gecode_constraint_path_351", gecode_constraint_path_351, 7);
YAP_UserCPredicate("gecode_constraint_path_347", gecode_constraint_path_347, 7); YAP_UserCPredicate("gecode_constraint_path_348", gecode_constraint_path_348, 7);
YAP_UserCPredicate("gecode_constraint_path_344", gecode_constraint_path_344, 7);
YAP_UserCPredicate("gecode_constraint_divmod_166", gecode_constraint_divmod_166, 6); YAP_UserCPredicate("gecode_constraint_divmod_166", gecode_constraint_divmod_166, 6);
YAP_UserCPredicate("gecode_constraint_sorted_437", gecode_constraint_sorted_437, 3); YAP_UserCPredicate("gecode_constraint_sorted_441", gecode_constraint_sorted_441, 3);
YAP_UserCPredicate("gecode_constraint_extensional_250", gecode_constraint_extensional_250, 4); YAP_UserCPredicate("gecode_constraint_extensional_252", gecode_constraint_extensional_252, 4);
YAP_UserCPredicate("gecode_constraint_extensional_255", gecode_constraint_extensional_255, 4);
YAP_UserCPredicate("gecode_constraint_extensional_247", gecode_constraint_extensional_247, 4); YAP_UserCPredicate("gecode_constraint_extensional_247", gecode_constraint_extensional_247, 4);
YAP_UserCPredicate("gecode_constraint_extensional_250", gecode_constraint_extensional_250, 4);
YAP_UserCPredicate("gecode_constraint_circuit_84", gecode_constraint_circuit_84, 3); YAP_UserCPredicate("gecode_constraint_circuit_84", gecode_constraint_circuit_84, 3);
YAP_UserCPredicate("gecode_constraint_circuit_83", gecode_constraint_circuit_83, 3); YAP_UserCPredicate("gecode_constraint_circuit_83", gecode_constraint_circuit_83, 3);
YAP_UserCPredicate("gecode_constraint_channel_71", gecode_constraint_channel_71, 3); YAP_UserCPredicate("gecode_constraint_channel_71", gecode_constraint_channel_71, 3);
@ -453,36 +455,38 @@ YAP_UserCPredicate("gecode_constraint_cumulatives_146", gecode_constraint_cumula
YAP_UserCPredicate("gecode_constraint_cumulatives_144", gecode_constraint_cumulatives_144, 8); YAP_UserCPredicate("gecode_constraint_cumulatives_144", gecode_constraint_cumulatives_144, 8);
YAP_UserCPredicate("gecode_constraint_cumulatives_142", gecode_constraint_cumulatives_142, 8); YAP_UserCPredicate("gecode_constraint_cumulatives_142", gecode_constraint_cumulatives_142, 8);
YAP_UserCPredicate("gecode_constraint_binpacking_55", gecode_constraint_binpacking_55, 5); YAP_UserCPredicate("gecode_constraint_binpacking_55", gecode_constraint_binpacking_55, 5);
YAP_UserCPredicate("gecode_constraint_extensional_249", gecode_constraint_extensional_249, 3); YAP_UserCPredicate("gecode_constraint_extensional_251", gecode_constraint_extensional_251, 3);
YAP_UserCPredicate("gecode_constraint_extensional_254", gecode_constraint_extensional_254, 3);
YAP_UserCPredicate("gecode_constraint_extensional_246", gecode_constraint_extensional_246, 3); YAP_UserCPredicate("gecode_constraint_extensional_246", gecode_constraint_extensional_246, 3);
YAP_UserCPredicate("gecode_constraint_linear_289", gecode_constraint_linear_289, 6); YAP_UserCPredicate("gecode_constraint_extensional_249", gecode_constraint_extensional_249, 3);
YAP_UserCPredicate("gecode_constraint_linear_293", gecode_constraint_linear_293, 6); YAP_UserCPredicate("gecode_constraint_linear_293", gecode_constraint_linear_293, 6);
YAP_UserCPredicate("gecode_constraint_linear_257", gecode_constraint_linear_257, 6); YAP_UserCPredicate("gecode_constraint_linear_297", gecode_constraint_linear_297, 6);
YAP_UserCPredicate("gecode_constraint_linear_261", gecode_constraint_linear_261, 6); YAP_UserCPredicate("gecode_constraint_linear_261", gecode_constraint_linear_261, 6);
YAP_UserCPredicate("gecode_constraint_linear_265", gecode_constraint_linear_265, 6); YAP_UserCPredicate("gecode_constraint_linear_265", gecode_constraint_linear_265, 6);
YAP_UserCPredicate("gecode_constraint_linear_263", gecode_constraint_linear_263, 6); YAP_UserCPredicate("gecode_constraint_linear_269", gecode_constraint_linear_269, 6);
YAP_UserCPredicate("gecode_constraint_linear_280", gecode_constraint_linear_280, 6); YAP_UserCPredicate("gecode_constraint_linear_267", gecode_constraint_linear_267, 6);
YAP_UserCPredicate("gecode_constraint_linear_279", gecode_constraint_linear_279, 6);
YAP_UserCPredicate("gecode_constraint_linear_284", gecode_constraint_linear_284, 6); YAP_UserCPredicate("gecode_constraint_linear_284", gecode_constraint_linear_284, 6);
YAP_UserCPredicate("gecode_constraint_linear_283", gecode_constraint_linear_283, 6); YAP_UserCPredicate("gecode_constraint_linear_283", gecode_constraint_linear_283, 6);
YAP_UserCPredicate("gecode_constraint_linear_272", gecode_constraint_linear_272, 6); YAP_UserCPredicate("gecode_constraint_linear_288", gecode_constraint_linear_288, 6);
YAP_UserCPredicate("gecode_constraint_linear_271", gecode_constraint_linear_271, 6); YAP_UserCPredicate("gecode_constraint_linear_287", gecode_constraint_linear_287, 6);
YAP_UserCPredicate("gecode_constraint_linear_276", gecode_constraint_linear_276, 6); YAP_UserCPredicate("gecode_constraint_linear_276", gecode_constraint_linear_276, 6);
YAP_UserCPredicate("gecode_constraint_linear_275", gecode_constraint_linear_275, 6); YAP_UserCPredicate("gecode_constraint_linear_275", gecode_constraint_linear_275, 6);
YAP_UserCPredicate("gecode_constraint_nooverlap_329", gecode_constraint_nooverlap_329, 7); YAP_UserCPredicate("gecode_constraint_linear_280", gecode_constraint_linear_280, 6);
YAP_UserCPredicate("gecode_constraint_nooverlap_324", gecode_constraint_nooverlap_324, 7); YAP_UserCPredicate("gecode_constraint_linear_279", gecode_constraint_linear_279, 6);
YAP_UserCPredicate("gecode_constraint_nooverlap_333", gecode_constraint_nooverlap_333, 7);
YAP_UserCPredicate("gecode_constraint_nooverlap_328", gecode_constraint_nooverlap_328, 7);
YAP_UserCPredicate("gecode_constraint_div_164", gecode_constraint_div_164, 5); YAP_UserCPredicate("gecode_constraint_div_164", gecode_constraint_div_164, 5);
YAP_UserCPredicate("gecode_constraint_sqr_441", gecode_constraint_sqr_441, 4); YAP_UserCPredicate("gecode_constraint_sqr_445", gecode_constraint_sqr_445, 4);
YAP_UserCPredicate("gecode_constraint_path_351", gecode_constraint_path_351, 8); YAP_UserCPredicate("gecode_constraint_path_355", gecode_constraint_path_355, 8);
YAP_UserCPredicate("gecode_constraint_path_348", gecode_constraint_path_348, 8); YAP_UserCPredicate("gecode_constraint_path_352", gecode_constraint_path_352, 8);
YAP_UserCPredicate("gecode_constraint_path_345", gecode_constraint_path_345, 8); YAP_UserCPredicate("gecode_constraint_path_349", gecode_constraint_path_349, 8);
YAP_UserCPredicate("gecode_constraint_unary_457", gecode_constraint_unary_457, 5);
YAP_UserCPredicate("gecode_constraint_unary_460", gecode_constraint_unary_460, 5);
YAP_UserCPredicate("gecode_constraint_unary_453", gecode_constraint_unary_453, 5); YAP_UserCPredicate("gecode_constraint_unary_453", gecode_constraint_unary_453, 5);
YAP_UserCPredicate("gecode_constraint_unary_456", gecode_constraint_unary_456, 5); YAP_UserCPredicate("gecode_constraint_unary_456", gecode_constraint_unary_456, 5);
YAP_UserCPredicate("gecode_constraint_unary_449", gecode_constraint_unary_449, 5); YAP_UserCPredicate("gecode_constraint_unary_450", gecode_constraint_unary_450, 5);
YAP_UserCPredicate("gecode_constraint_unary_452", gecode_constraint_unary_452, 5); YAP_UserCPredicate("gecode_constraint_sorted_439", gecode_constraint_sorted_439, 4);
YAP_UserCPredicate("gecode_constraint_unary_446", gecode_constraint_unary_446, 5); YAP_UserCPredicate("gecode_constraint_sorted_442", gecode_constraint_sorted_442, 4);
YAP_UserCPredicate("gecode_constraint_sorted_435", gecode_constraint_sorted_435, 4);
YAP_UserCPredicate("gecode_constraint_sorted_438", gecode_constraint_sorted_438, 4);
YAP_UserCPredicate("gecode_constraint_element_223", gecode_constraint_element_223, 8); YAP_UserCPredicate("gecode_constraint_element_223", gecode_constraint_element_223, 8);
YAP_UserCPredicate("gecode_constraint_element_217", gecode_constraint_element_217, 8); YAP_UserCPredicate("gecode_constraint_element_217", gecode_constraint_element_217, 8);
YAP_UserCPredicate("gecode_constraint_element_235", gecode_constraint_element_235, 8); YAP_UserCPredicate("gecode_constraint_element_235", gecode_constraint_element_235, 8);
@ -506,7 +510,7 @@ YAP_UserCPredicate("gecode_constraint_element_238", gecode_constraint_element_23
YAP_UserCPredicate("gecode_constraint_element_231", gecode_constraint_element_231, 5); YAP_UserCPredicate("gecode_constraint_element_231", gecode_constraint_element_231, 5);
YAP_UserCPredicate("gecode_constraint_element_237", gecode_constraint_element_237, 5); YAP_UserCPredicate("gecode_constraint_element_237", gecode_constraint_element_237, 5);
YAP_UserCPredicate("gecode_constraint_element_229", gecode_constraint_element_229, 5); YAP_UserCPredicate("gecode_constraint_element_229", gecode_constraint_element_229, 5);
YAP_UserCPredicate("gecode_constraint_sequence_434", gecode_constraint_sequence_434, 3); YAP_UserCPredicate("gecode_constraint_sequence_438", gecode_constraint_sequence_438, 3);
YAP_UserCPredicate("gecode_constraint_branch_30", gecode_constraint_branch_30, 5); YAP_UserCPredicate("gecode_constraint_branch_30", gecode_constraint_branch_30, 5);
YAP_UserCPredicate("gecode_constraint_branch_26", gecode_constraint_branch_26, 5); YAP_UserCPredicate("gecode_constraint_branch_26", gecode_constraint_branch_26, 5);
YAP_UserCPredicate("gecode_constraint_branch_24", gecode_constraint_branch_24, 5); YAP_UserCPredicate("gecode_constraint_branch_24", gecode_constraint_branch_24, 5);
@ -515,10 +519,10 @@ YAP_UserCPredicate("gecode_constraint_branch_36", gecode_constraint_branch_36, 5
YAP_UserCPredicate("gecode_constraint_branch_42", gecode_constraint_branch_42, 5); YAP_UserCPredicate("gecode_constraint_branch_42", gecode_constraint_branch_42, 5);
YAP_UserCPredicate("gecode_constraint_branch_38", gecode_constraint_branch_38, 5); YAP_UserCPredicate("gecode_constraint_branch_38", gecode_constraint_branch_38, 5);
YAP_UserCPredicate("gecode_constraint_circuit_79", gecode_constraint_circuit_79, 7); YAP_UserCPredicate("gecode_constraint_circuit_79", gecode_constraint_circuit_79, 7);
YAP_UserCPredicate("gecode_constraint_pow_357", gecode_constraint_pow_357, 4); YAP_UserCPredicate("gecode_constraint_pow_361", gecode_constraint_pow_361, 4);
YAP_UserCPredicate("gecode_constraint_pow_356", gecode_constraint_pow_356, 4); YAP_UserCPredicate("gecode_constraint_pow_360", gecode_constraint_pow_360, 4);
YAP_UserCPredicate("gecode_constraint_precede_367", gecode_constraint_precede_367, 3);
YAP_UserCPredicate("gecode_constraint_precede_363", gecode_constraint_precede_363, 3); YAP_UserCPredicate("gecode_constraint_precede_363", gecode_constraint_precede_363, 3);
YAP_UserCPredicate("gecode_constraint_precede_359", gecode_constraint_precede_359, 3);
YAP_UserCPredicate("gecode_constraint_cumulative_128", gecode_constraint_cumulative_128, 6); YAP_UserCPredicate("gecode_constraint_cumulative_128", gecode_constraint_cumulative_128, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_124", gecode_constraint_cumulative_124, 6); YAP_UserCPredicate("gecode_constraint_cumulative_124", gecode_constraint_cumulative_124, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_118", gecode_constraint_cumulative_118, 6); YAP_UserCPredicate("gecode_constraint_cumulative_118", gecode_constraint_cumulative_118, 6);
@ -528,16 +532,16 @@ YAP_UserCPredicate("gecode_constraint_cumulative_136", gecode_constraint_cumulat
YAP_UserCPredicate("gecode_constraint_cumulative_130", gecode_constraint_cumulative_130, 6); YAP_UserCPredicate("gecode_constraint_cumulative_130", gecode_constraint_cumulative_130, 6);
YAP_UserCPredicate("gecode_constraint_cumulative_133", gecode_constraint_cumulative_133, 6); YAP_UserCPredicate("gecode_constraint_cumulative_133", gecode_constraint_cumulative_133, 6);
YAP_UserCPredicate("gecode_constraint_distinct_159", gecode_constraint_distinct_159, 4); YAP_UserCPredicate("gecode_constraint_distinct_159", gecode_constraint_distinct_159, 4);
YAP_UserCPredicate("gecode_constraint_min_310", gecode_constraint_min_310, 3); YAP_UserCPredicate("gecode_constraint_min_314", gecode_constraint_min_314, 3);
YAP_UserCPredicate("gecode_constraint_min_311", gecode_constraint_min_311, 3); YAP_UserCPredicate("gecode_constraint_min_315", gecode_constraint_min_315, 3);
YAP_UserCPredicate("gecode_constraint_min_316", gecode_constraint_min_316, 3); YAP_UserCPredicate("gecode_constraint_min_320", gecode_constraint_min_320, 3);
YAP_UserCPredicate("gecode_constraint_sqrt_444", gecode_constraint_sqrt_444, 4); YAP_UserCPredicate("gecode_constraint_sqrt_448", gecode_constraint_sqrt_448, 4);
YAP_UserCPredicate("gecode_constraint_sequence_431", gecode_constraint_sequence_431, 6); YAP_UserCPredicate("gecode_constraint_sequence_435", gecode_constraint_sequence_435, 6);
YAP_UserCPredicate("gecode_constraint_sequence_429", gecode_constraint_sequence_429, 6); YAP_UserCPredicate("gecode_constraint_sequence_433", gecode_constraint_sequence_433, 6);
YAP_UserCPredicate("gecode_constraint_unshare_460", gecode_constraint_unshare_460, 3); YAP_UserCPredicate("gecode_constraint_unshare_464", gecode_constraint_unshare_464, 3);
YAP_UserCPredicate("gecode_constraint_unshare_458", gecode_constraint_unshare_458, 3); YAP_UserCPredicate("gecode_constraint_unshare_462", gecode_constraint_unshare_462, 3);
YAP_UserCPredicate("gecode_constraint_path_355", gecode_constraint_path_355, 6); YAP_UserCPredicate("gecode_constraint_path_359", gecode_constraint_path_359, 6);
YAP_UserCPredicate("gecode_constraint_path_346", gecode_constraint_path_346, 6); YAP_UserCPredicate("gecode_constraint_path_350", gecode_constraint_path_350, 6);
YAP_UserCPredicate("gecode_constraint_divmod_165", gecode_constraint_divmod_165, 5); YAP_UserCPredicate("gecode_constraint_divmod_165", gecode_constraint_divmod_165, 5);
YAP_UserCPredicate("gecode_constraint_branch_31", gecode_constraint_branch_31, 6); YAP_UserCPredicate("gecode_constraint_branch_31", gecode_constraint_branch_31, 6);
YAP_UserCPredicate("gecode_constraint_branch_27", gecode_constraint_branch_27, 6); YAP_UserCPredicate("gecode_constraint_branch_27", gecode_constraint_branch_27, 6);
@ -546,11 +550,11 @@ YAP_UserCPredicate("gecode_constraint_branch_33", gecode_constraint_branch_33, 6
YAP_UserCPredicate("gecode_constraint_branch_37", gecode_constraint_branch_37, 6); YAP_UserCPredicate("gecode_constraint_branch_37", gecode_constraint_branch_37, 6);
YAP_UserCPredicate("gecode_constraint_branch_43", gecode_constraint_branch_43, 6); YAP_UserCPredicate("gecode_constraint_branch_43", gecode_constraint_branch_43, 6);
YAP_UserCPredicate("gecode_constraint_branch_39", gecode_constraint_branch_39, 6); YAP_UserCPredicate("gecode_constraint_branch_39", gecode_constraint_branch_39, 6);
YAP_UserCPredicate("gecode_constraint_nooverlap_328", gecode_constraint_nooverlap_328, 9); YAP_UserCPredicate("gecode_constraint_nooverlap_332", gecode_constraint_nooverlap_332, 9);
YAP_UserCPredicate("gecode_constraint_cumulative_120", gecode_constraint_cumulative_120, 5); YAP_UserCPredicate("gecode_constraint_cumulative_120", gecode_constraint_cumulative_120, 5);
YAP_UserCPredicate("gecode_constraint_cumulative_132", gecode_constraint_cumulative_132, 5); YAP_UserCPredicate("gecode_constraint_cumulative_132", gecode_constraint_cumulative_132, 5);
YAP_UserCPredicate("gecode_constraint_member_310", gecode_constraint_member_310, 3);
YAP_UserCPredicate("gecode_constraint_member_306", gecode_constraint_member_306, 3); YAP_UserCPredicate("gecode_constraint_member_306", gecode_constraint_member_306, 3);
YAP_UserCPredicate("gecode_constraint_member_302", gecode_constraint_member_302, 3);
YAP_UserCPredicate("gecode_constraint_count_111", gecode_constraint_count_111, 6); YAP_UserCPredicate("gecode_constraint_count_111", gecode_constraint_count_111, 6);
YAP_UserCPredicate("gecode_constraint_count_113", gecode_constraint_count_113, 6); YAP_UserCPredicate("gecode_constraint_count_113", gecode_constraint_count_113, 6);
YAP_UserCPredicate("gecode_constraint_count_115", gecode_constraint_count_115, 6); YAP_UserCPredicate("gecode_constraint_count_115", gecode_constraint_count_115, 6);
@ -559,8 +563,8 @@ YAP_UserCPredicate("gecode_constraint_count_103", gecode_constraint_count_103, 6
YAP_UserCPredicate("gecode_constraint_count_105", gecode_constraint_count_105, 6); YAP_UserCPredicate("gecode_constraint_count_105", gecode_constraint_count_105, 6);
YAP_UserCPredicate("gecode_constraint_count_93", gecode_constraint_count_93, 6); YAP_UserCPredicate("gecode_constraint_count_93", gecode_constraint_count_93, 6);
YAP_UserCPredicate("gecode_constraint_count_95", gecode_constraint_count_95, 6); YAP_UserCPredicate("gecode_constraint_count_95", gecode_constraint_count_95, 6);
YAP_UserCPredicate("gecode_constraint_pow_358", gecode_constraint_pow_358, 5); YAP_UserCPredicate("gecode_constraint_pow_362", gecode_constraint_pow_362, 5);
YAP_UserCPredicate("gecode_constraint_notMin_332", gecode_constraint_notMin_332, 3); YAP_UserCPredicate("gecode_constraint_notMin_336", gecode_constraint_notMin_336, 3);
YAP_UserCPredicate("gecode_constraint_cumulative_127", gecode_constraint_cumulative_127, 8); YAP_UserCPredicate("gecode_constraint_cumulative_127", gecode_constraint_cumulative_127, 8);
YAP_UserCPredicate("gecode_constraint_cumulative_123", gecode_constraint_cumulative_123, 8); YAP_UserCPredicate("gecode_constraint_cumulative_123", gecode_constraint_cumulative_123, 8);
YAP_UserCPredicate("gecode_constraint_cumulative_139", gecode_constraint_cumulative_139, 8); YAP_UserCPredicate("gecode_constraint_cumulative_139", gecode_constraint_cumulative_139, 8);
@ -583,54 +587,54 @@ YAP_UserCPredicate("gecode_constraint_dom_203", gecode_constraint_dom_203, 3);
YAP_UserCPredicate("gecode_constraint_dom_191", gecode_constraint_dom_191, 3); YAP_UserCPredicate("gecode_constraint_dom_191", gecode_constraint_dom_191, 3);
YAP_UserCPredicate("gecode_constraint_dom_182", gecode_constraint_dom_182, 3); YAP_UserCPredicate("gecode_constraint_dom_182", gecode_constraint_dom_182, 3);
YAP_UserCPredicate("gecode_constraint_dom_211", gecode_constraint_dom_211, 3); YAP_UserCPredicate("gecode_constraint_dom_211", gecode_constraint_dom_211, 3);
YAP_UserCPredicate("gecode_constraint_linear_288", gecode_constraint_linear_288, 5);
YAP_UserCPredicate("gecode_constraint_linear_287", gecode_constraint_linear_287, 5);
YAP_UserCPredicate("gecode_constraint_linear_292", gecode_constraint_linear_292, 5); YAP_UserCPredicate("gecode_constraint_linear_292", gecode_constraint_linear_292, 5);
YAP_UserCPredicate("gecode_constraint_linear_291", gecode_constraint_linear_291, 5); YAP_UserCPredicate("gecode_constraint_linear_291", gecode_constraint_linear_291, 5);
YAP_UserCPredicate("gecode_constraint_linear_269", gecode_constraint_linear_269, 5); YAP_UserCPredicate("gecode_constraint_linear_296", gecode_constraint_linear_296, 5);
YAP_UserCPredicate("gecode_constraint_linear_267", gecode_constraint_linear_267, 5); YAP_UserCPredicate("gecode_constraint_linear_295", gecode_constraint_linear_295, 5);
YAP_UserCPredicate("gecode_constraint_linear_256", gecode_constraint_linear_256, 5); YAP_UserCPredicate("gecode_constraint_linear_273", gecode_constraint_linear_273, 5);
YAP_UserCPredicate("gecode_constraint_linear_255", gecode_constraint_linear_255, 5); YAP_UserCPredicate("gecode_constraint_linear_271", gecode_constraint_linear_271, 5);
YAP_UserCPredicate("gecode_constraint_linear_260", gecode_constraint_linear_260, 5); YAP_UserCPredicate("gecode_constraint_linear_260", gecode_constraint_linear_260, 5);
YAP_UserCPredicate("gecode_constraint_linear_259", gecode_constraint_linear_259, 5); YAP_UserCPredicate("gecode_constraint_linear_259", gecode_constraint_linear_259, 5);
YAP_UserCPredicate("gecode_constraint_linear_264", gecode_constraint_linear_264, 5); YAP_UserCPredicate("gecode_constraint_linear_264", gecode_constraint_linear_264, 5);
YAP_UserCPredicate("gecode_constraint_linear_262", gecode_constraint_linear_262, 5); YAP_UserCPredicate("gecode_constraint_linear_263", gecode_constraint_linear_263, 5);
YAP_UserCPredicate("gecode_constraint_linear_278", gecode_constraint_linear_278, 5); YAP_UserCPredicate("gecode_constraint_linear_268", gecode_constraint_linear_268, 5);
YAP_UserCPredicate("gecode_constraint_linear_266", gecode_constraint_linear_266, 5);
YAP_UserCPredicate("gecode_constraint_linear_282", gecode_constraint_linear_282, 5); YAP_UserCPredicate("gecode_constraint_linear_282", gecode_constraint_linear_282, 5);
YAP_UserCPredicate("gecode_constraint_linear_270", gecode_constraint_linear_270, 5); YAP_UserCPredicate("gecode_constraint_linear_286", gecode_constraint_linear_286, 5);
YAP_UserCPredicate("gecode_constraint_linear_274", gecode_constraint_linear_274, 5); YAP_UserCPredicate("gecode_constraint_linear_274", gecode_constraint_linear_274, 5);
YAP_UserCPredicate("gecode_constraint_nooverlap_323", gecode_constraint_nooverlap_323, 6); YAP_UserCPredicate("gecode_constraint_linear_278", gecode_constraint_linear_278, 5);
YAP_UserCPredicate("gecode_constraint_nooverlap_326", gecode_constraint_nooverlap_326, 6); YAP_UserCPredicate("gecode_constraint_nooverlap_327", gecode_constraint_nooverlap_327, 6);
YAP_UserCPredicate("gecode_constraint_nooverlap_330", gecode_constraint_nooverlap_330, 6);
YAP_UserCPredicate("gecode_constraint_element_245", gecode_constraint_element_245, 6); YAP_UserCPredicate("gecode_constraint_element_245", gecode_constraint_element_245, 6);
YAP_UserCPredicate("gecode_constraint_element_243", gecode_constraint_element_243, 6); YAP_UserCPredicate("gecode_constraint_element_243", gecode_constraint_element_243, 6);
YAP_UserCPredicate("gecode_constraint_element_241", gecode_constraint_element_241, 6); YAP_UserCPredicate("gecode_constraint_element_241", gecode_constraint_element_241, 6);
YAP_UserCPredicate("gecode_constraint_element_239", gecode_constraint_element_239, 6); YAP_UserCPredicate("gecode_constraint_element_239", gecode_constraint_element_239, 6);
YAP_UserCPredicate("gecode_constraint_rel_405", gecode_constraint_rel_405, 4);
YAP_UserCPredicate("gecode_constraint_rel_407", gecode_constraint_rel_407, 4);
YAP_UserCPredicate("gecode_constraint_rel_423", gecode_constraint_rel_423, 4);
YAP_UserCPredicate("gecode_constraint_rel_421", gecode_constraint_rel_421, 4);
YAP_UserCPredicate("gecode_constraint_rel_393", gecode_constraint_rel_393, 4);
YAP_UserCPredicate("gecode_constraint_rel_394", gecode_constraint_rel_394, 4);
YAP_UserCPredicate("gecode_constraint_rel_391", gecode_constraint_rel_391, 4);
YAP_UserCPredicate("gecode_constraint_rel_387", gecode_constraint_rel_387, 4);
YAP_UserCPredicate("gecode_constraint_rel_385", gecode_constraint_rel_385, 4);
YAP_UserCPredicate("gecode_constraint_rel_390", gecode_constraint_rel_390, 4);
YAP_UserCPredicate("gecode_constraint_rel_381", gecode_constraint_rel_381, 4);
YAP_UserCPredicate("gecode_constraint_rel_377", gecode_constraint_rel_377, 4);
YAP_UserCPredicate("gecode_constraint_rel_401", gecode_constraint_rel_401, 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_403", gecode_constraint_rel_403, 4);
YAP_UserCPredicate("gecode_constraint_rel_419", gecode_constraint_rel_419, 4);
YAP_UserCPredicate("gecode_constraint_rel_417", gecode_constraint_rel_417, 4);
YAP_UserCPredicate("gecode_constraint_rel_389", gecode_constraint_rel_389, 4);
YAP_UserCPredicate("gecode_constraint_rel_390", gecode_constraint_rel_390, 4);
YAP_UserCPredicate("gecode_constraint_rel_387", gecode_constraint_rel_387, 4);
YAP_UserCPredicate("gecode_constraint_rel_383", gecode_constraint_rel_383, 4);
YAP_UserCPredicate("gecode_constraint_rel_381", gecode_constraint_rel_381, 4);
YAP_UserCPredicate("gecode_constraint_rel_386", gecode_constraint_rel_386, 4);
YAP_UserCPredicate("gecode_constraint_rel_377", gecode_constraint_rel_377, 4);
YAP_UserCPredicate("gecode_constraint_rel_373", gecode_constraint_rel_373, 4);
YAP_UserCPredicate("gecode_constraint_rel_397", gecode_constraint_rel_397, 4); YAP_UserCPredicate("gecode_constraint_rel_397", gecode_constraint_rel_397, 4);
YAP_UserCPredicate("gecode_constraint_rel_399", gecode_constraint_rel_399, 4); YAP_UserCPredicate("gecode_constraint_rel_400", gecode_constraint_rel_400, 4);
YAP_UserCPredicate("gecode_constraint_rel_393", gecode_constraint_rel_393, 4);
YAP_UserCPredicate("gecode_constraint_rel_396", gecode_constraint_rel_396, 4);
YAP_UserCPredicate("gecode_constraint_rel_405", gecode_constraint_rel_405, 4);
YAP_UserCPredicate("gecode_constraint_rel_409", gecode_constraint_rel_409, 4); YAP_UserCPredicate("gecode_constraint_rel_409", gecode_constraint_rel_409, 4);
YAP_UserCPredicate("gecode_constraint_rel_413", gecode_constraint_rel_413, 4); YAP_UserCPredicate("gecode_constraint_rel_413", gecode_constraint_rel_413, 4);
YAP_UserCPredicate("gecode_constraint_rel_414", gecode_constraint_rel_414, 4); YAP_UserCPredicate("gecode_constraint_rel_417", gecode_constraint_rel_417, 4);
YAP_UserCPredicate("gecode_constraint_rel_420", gecode_constraint_rel_420, 4); YAP_UserCPredicate("gecode_constraint_rel_418", gecode_constraint_rel_418, 4);
YAP_UserCPredicate("gecode_constraint_rel_425", gecode_constraint_rel_425, 4); YAP_UserCPredicate("gecode_constraint_rel_424", gecode_constraint_rel_424, 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_367", gecode_constraint_rel_367, 4); YAP_UserCPredicate("gecode_constraint_rel_431", gecode_constraint_rel_431, 4);
YAP_UserCPredicate("gecode_constraint_rel_365", gecode_constraint_rel_365, 4); YAP_UserCPredicate("gecode_constraint_rel_371", gecode_constraint_rel_371, 4);
YAP_UserCPredicate("gecode_constraint_min_315", gecode_constraint_min_315, 5); YAP_UserCPredicate("gecode_constraint_rel_369", gecode_constraint_rel_369, 4);
YAP_UserCPredicate("gecode_constraint_min_319", gecode_constraint_min_319, 5);
YAP_UserCPredicate("gecode_constraint_count_108", gecode_constraint_count_108, 3); YAP_UserCPredicate("gecode_constraint_count_108", gecode_constraint_count_108, 3);
YAP_UserCPredicate("gecode_constraint_count_98", gecode_constraint_count_98, 3); YAP_UserCPredicate("gecode_constraint_count_98", gecode_constraint_count_98, 3);
YAP_UserCPredicate("gecode_constraint_ite_253", gecode_constraint_ite_253, 6); YAP_UserCPredicate("gecode_constraint_ite_257", gecode_constraint_ite_257, 6);

View File

@ -31,3 +31,41 @@ test4(A) :-
min(A, 1), min(A, 1),
all_different(A), all_different(A),
labeling([], [X,Y,Z]). labeling([], [X,Y,Z]).
test5(A) :-
A = [X,Y,Z],
A ins 0..1,
in_relation( A, [[0,0,0],[0,1,0],[1,0,0]] ),
X #> 0,
labeling([], A).
test6(A+B) :-
A = [X,Y,Z],
B = [X1,Y1,Z1],
A ins 0..1,
B ins 0..1,
extensional_constraint([[0,0,0],[0,1,0],[1,0,0]], C),
in_relation( A, C ),
in_relation( B, C ),
X #> 0,
X1 #< X,
Y1 #\= Z1,
labeling([], A),
labeling([], B).
test7(A) :-
A = [X,Y,Z],
A ins 0..1,
in_dfa( A, 0, [t(0,0,0),t(0,1,1),t(1,0,0),t(-1,0,0)], [0]),
X #> 0,
labeling([], A).
test8(A+B) :-
A = [X,Y,Z,W],
B = [X1,Y1,Z1,W1],
A ins 0..1,
B ins 0..1,
dfa( 0, [t(0,0,0),t(0,1,1),t(1,0,0),t(-1,0,0)], [0], C),
in_dfa( A, C ),
in_dfa( B, C ),
X #> 0,
X1 #< X,
Y1 #\= Z1,
labeling([], A),
labeling([], B).

View File

@ -39,7 +39,12 @@
min/2, min/2,
maximum/2, maximum/2,
max/2, max/2,
scalar_product/4, /* scalar_product/4,
extensional_constraint/2,
in_relation/2,
dfa/4,
in_dfa/2,
in_dfa/4, /*
tuples_in/2, */ tuples_in/2, */
labeling/2 /*, labeling/2 /*,
label/1, label/1,
@ -87,6 +92,9 @@ constraint( min(_, _) ). %2,
constraint( minimum(_, _) ). %2, constraint( minimum(_, _) ). %2,
constraint( max(_, _) ). %2, constraint( max(_, _) ). %2,
constraint( maximum(_, _) ). %2, constraint( maximum(_, _) ). %2,
constraint( in_relation(_, _) ). %2,
constraint( in_dfa(_, _) ). %2,
constraint( in_dfa(_, _, _, _) ). %2,
constraint( tuples_in(_, _) ). %2, constraint( tuples_in(_, _) ). %2,
constraint( labeling(_, _) ). %2, constraint( labeling(_, _) ). %2,
constraint( label(_) ). %1, constraint( label(_) ). %1,
@ -217,6 +225,15 @@ maximum( V, Xs ) :-
max( Xs, V ) :- max( Xs, V ) :-
get_home(Env), get_home(Env),
post( rel( max(Xs), (#=), V ), Env, _ ). post( rel( max(Xs), (#=), V ), Env, _ ).
in_relation( Xs, Rel ) :-
get_home(Env),
post(in_tupleset(Xs, Rel), Env, _ ).
in_dfa( Xs, Rel ) :-
get_home(Env),
post(in_dfa(Xs, Rel), Env, _ ).
in_dfa( Xs, S0, Ts, Fs ) :-
get_home(Env),
post(in_dfa(Xs, S0, Ts, Fs), Env, _ ).
labeling(_Opts, Xs) :- labeling(_Opts, Xs) :-
get_home(Space-Map), get_home(Space-Map),
@ -228,6 +245,12 @@ maximize(V) :-
l(V, I, Map), l(V, I, Map),
Space += maximize(I). Space += maximize(I).
extensional_constraint( Tuples, TupleSet) :-
TupleSet := tupleset( Tuples ).
dfa( S0, Transitions, Finals, DFA) :-
DFA := dfa( S0, Transitions, Finals ).
post( ( A #= B), Env, Reify) :- post( ( A #= B), Env, Reify) :-
post( rel( A, (#=), B), Env, Reify). post( rel( A, (#=), B), Env, Reify).
post( ( A #\= B), Env, Reify) :- post( ( A #\= B), Env, Reify) :-
@ -370,6 +393,37 @@ post( all_distinct( Cs , Xs ), Space-Map, Reify) :-
; ;
throw(error(domain(not_reifiable),all_distinct( Cs , Xs ))) throw(error(domain(not_reifiable),all_distinct( Cs , Xs )))
). ).
post(in_tupleset(Xs, Tuples), Space-Map, Reify) :-
is_list( Tuples ), !,
TS := tupleset( Tuples ),
maplist(ll(Map), Xs, IXs),
(var(Reify) ->
Space += extensional(IXs, TS)
;
throw(error(domain(not_reifiable),in_relation(Xs, Tuples)))
).
post(in_tupleset(Xs, TS), Space-Map, Reify) :-
maplist(ll(Map), Xs, IXs),
(var(Reify) ->
Space += extensional(IXs, TS)
;
throw(error(domain(not_reifiable),in_relation(Xs, Tuples)))
).
post(in_dfa(Xs, S0, Trs, Fs), Space-Map, Reify) :-
TS := dfa( S0, Trs, Fs ),
maplist(ll(Map), Xs, IXs),
(var(Reify) ->
Space += extensional(IXs, TS)
;
throw(error(domain(not_reifiable),in_dfa(Xs, Tuples)))
).
post(in_dfa(Xs, TS), Space-Map, Reify) :-
maplist(ll(Map), Xs, IXs),
(var(Reify) ->
Space += extensional(IXs, TS)
;
throw(error(domain(not_reifiable),in_dfa(Xs, Tuples)))
).
gecode_arith_op( (#=) , 'IRT_EQ' ). gecode_arith_op( (#=) , 'IRT_EQ' ).
gecode_arith_op( (#\=) , 'IRT_NQ' ). gecode_arith_op( (#\=) , 'IRT_NQ' ).

View File

@ -190,8 +190,7 @@ class DeclsLoader(object):
class PredGenerator(DeclsLoader): class PredGenerator(DeclsLoader):
OMIT = ("DFA", # NOT YET SUPPORTED!!! OMIT = ("VarBranchOptions",
"VarBranchOptions",
"ValBranchOptions", "ValBranchOptions",
"TieBreakVarBranch<IntVarBranch>", "TieBreakVarBranch<IntVarBranch>",
"TieBreak<IntVarBranch>", "TieBreak<IntVarBranch>",

View File

@ -171,7 +171,13 @@ extern "C"
static inline TupleSet& static inline TupleSet&
gecode_TupleSet_from_term(YAP_Term t) gecode_TupleSet_from_term(YAP_Term t)
{ {
return *(TupleSet *) YAP_IntOfTerm(t); return *(TupleSet *) YAP_OpaqueObjectFromTerm(t);
}
static inline DFA&
gecode_DFA_from_term(YAP_Term t)
{
return *(DFA *) YAP_OpaqueObjectFromTerm(t);
} }
static inline FloatNum static inline FloatNum
@ -1580,7 +1586,6 @@ extern "C"
static int gecode_tupleset_fail_handler(void* p) static int gecode_tupleset_fail_handler(void* p)
{ {
//delete *(GenericSpace**)p;
return TRUE; return TRUE;
} }
@ -1593,19 +1598,11 @@ extern "C"
return TRUE; return TRUE;
} }
static YAP_Term gecode_term_from_tupleset(TupleSet& r)
{
YAP_Term term =
YAP_NewOpaqueObject(gecode_tupleset_tag, sizeof(TupleSet *));
TupleSet *ptr =
(TupleSet*) YAP_OpaqueObjectFromTerm(term);
*ptr = r;
return term;
}
static int gecode_new_tupleset(void) static int gecode_new_tupleset(void)
{ {
TupleSet ts; YAP_Term term =
YAP_NewOpaqueObject(gecode_tupleset_tag, sizeof(TupleSet));
TupleSet *ts = new (YAP_OpaqueObjectFromTerm(term)) TupleSet;
YAP_Term t = YAP_ARG1; YAP_Term t = YAP_ARG1;
while (YAP_IsPairTerm( t ) ) { while (YAP_IsPairTerm( t ) ) {
YAP_Term l = YAP_HeadOfTerm(t); YAP_Term l = YAP_HeadOfTerm(t);
@ -1614,14 +1611,79 @@ extern "C"
IntArgs is(n); IntArgs is(n);
while (YAP_IsPairTerm( l ) ) { while (YAP_IsPairTerm( l ) ) {
YAP_Term ll = YAP_HeadOfTerm(l); YAP_Term ll = YAP_HeadOfTerm(l);
if (!YAP_IsIntTerm(ll)) {
cerr << "non-integer on tuple set" << endl; exit(1);
}
is[i++] = YAP_IntOfTerm(ll); is[i++] = YAP_IntOfTerm(ll);
l = YAP_TailOfTerm(l); l = YAP_TailOfTerm(l);
} }
ts.add(is); ts->add(is);
if (l != YAP_TermNil()) {
cerr << "non-list on tuple set" << endl; exit(1);
}
t = YAP_TailOfTerm(t); t = YAP_TailOfTerm(t);
} }
ts.finalize(); if (t != YAP_TermNil()) {
return YAP_Unify(YAP_ARG2, gecode_term_from_tupleset( ts )); cerr << "non-list on tuple set" << endl; exit(1);
}
ts->finalize();
return YAP_Unify(YAP_ARG2, term);
}
static YAP_opaque_tag_t gecode_dfa_tag;
static YAP_opaque_handler_t gecode_dfa_handler;
static int gecode_dfa_fail_handler(void* p)
{
return TRUE;
}
static int
gecode_dfa_write_handler
(void *stream_, YAP_opaque_tag_t type, void *p, int flags)
{
IOSTREAM* stream = (IOSTREAM*) stream_;
Sfprintf(stream,"<dfa %p>", p);
return TRUE;
}
static int gecode_new_dfa(void)
{
YAP_Term term =
YAP_NewOpaqueObject(gecode_dfa_tag, sizeof(DFA));
// DFA ts = new (YAP_OpaqueObjectFromTerm(term)) DFA;
YAP_Term t2 = YAP_ARG2;
int s0 = YAP_IntOfTerm(t2);
YAP_Term t3 = YAP_ARG3;
int n = gecode_list_length(t3), i=0;
DFA::Transition t[n];
while (YAP_IsPairTerm( t3 ) ) {
YAP_Term tt = YAP_HeadOfTerm(t3);
int is, sy, os;
is = YAP_IntOfTerm(YAP_ArgOfTerm(1,tt));
sy = YAP_IntOfTerm(YAP_ArgOfTerm(2,tt));
os = YAP_IntOfTerm(YAP_ArgOfTerm(3,tt));
t[i++] = DFA::Transition(is, sy, os);
t3 = YAP_TailOfTerm(t3);
}
if (t3 != YAP_TermNil()) {
cerr << "non-list on DFA" << endl; exit(1);
}
YAP_Term t4 = YAP_ARG4;
n = gecode_list_length(t4)+1;
i=0;
int s[n];
s[n-1] = -1;
while (YAP_IsPairTerm( t4 ) ) {
YAP_Term tt = YAP_HeadOfTerm(t4);
s[i++] = YAP_IntOfTerm(tt);
t4 = YAP_TailOfTerm(t4);
}
if (t4 != YAP_TermNil()) {
cerr << "non-list on DFA" << endl; exit(1);
}
new (YAP_OpaqueObjectFromTerm(term)) DFA(s0, t, s);
return YAP_Unify(YAP_ARG1, term);
} }
void gecode_init(void) void gecode_init(void)
@ -1813,11 +1875,16 @@ extern "C"
gecode_reify_handler.write_handler = gecode_reify_write_handler; gecode_reify_handler.write_handler = gecode_reify_write_handler;
gecode_reify_tag = YAP_NewOpaqueType(&gecode_reify_handler); gecode_reify_tag = YAP_NewOpaqueType(&gecode_reify_handler);
YAP_UserCPredicate("gecode_new_reify", gecode_new_reify, 4); YAP_UserCPredicate("gecode_new_reify", gecode_new_reify, 4);
// TupleSet reifications // Opaque TupleSet
gecode_tupleset_handler.fail_handler = gecode_tupleset_fail_handler; gecode_tupleset_handler.fail_handler = gecode_tupleset_fail_handler;
gecode_tupleset_handler.write_handler = gecode_tupleset_write_handler; gecode_tupleset_handler.write_handler = gecode_tupleset_write_handler;
gecode_tupleset_tag = YAP_NewOpaqueType(&gecode_tupleset_handler); gecode_tupleset_tag = YAP_NewOpaqueType(&gecode_tupleset_handler);
YAP_UserCPredicate("gecode_new_tupleset", gecode_new_tupleset, 4); YAP_UserCPredicate("gecode_new_tupleset", gecode_new_tupleset, 2);
// Opaque DFA
gecode_dfa_handler.fail_handler = gecode_dfa_fail_handler;
gecode_dfa_handler.write_handler = gecode_dfa_write_handler;
gecode_dfa_tag = YAP_NewOpaqueType(&gecode_dfa_handler);
YAP_UserCPredicate("gecode_new_dfa", gecode_new_dfa, 4);
#ifdef DISJUNCTOR #ifdef DISJUNCTOR
// opaque disjunctors and clauses // opaque disjunctors and clauses
gecode_disjunctor_handler.write_handler = gecode_disjunctor_write_handler; gecode_disjunctor_handler.write_handler = gecode_disjunctor_write_handler;
@ -1908,8 +1975,5 @@ extern "C"
YAP_UserCPredicate("gecode_floatvar_max", gecode_floatvar_max, 3); YAP_UserCPredicate("gecode_floatvar_max", gecode_floatvar_max, 3);
YAP_UserCPredicate("gecode_floatvar_med", gecode_floatvar_med, 3); YAP_UserCPredicate("gecode_floatvar_med", gecode_floatvar_med, 3);
YAP_UserCPredicate("gecode_floatvar_size", gecode_floatvar_size, 3); YAP_UserCPredicate("gecode_floatvar_size", gecode_floatvar_size, 3);
// TupleSets
YAP_UserCPredicate("gecode_new_tupleset", gecode_new_tupleset, 2);
} }
} }

View File

@ -118,10 +118,14 @@ is_IntSetArgs_([H|T],[H2|T2]) :- is_IntSet(H,H2), is_IntSetArgs(T,T2).
is_IntSetArgs(X,Y) :- nonvar(X), is_IntSetArgs_(X,Y). is_IntSetArgs(X,Y) :- nonvar(X), is_IntSetArgs_(X,Y).
is_IntSetArgs(X) :- \+ \+ is_IntSetArgs(X,_). is_IntSetArgs(X) :- \+ \+ is_IntSetArgs(X,_).
is_TupleSet_('TupleSet'(L),L). is_TupleSet_('TupleSet'(TS),TS).
is_TupleSet(X,Y) :- nonvar(X), is_TupleSet_(X,Y). is_TupleSet(X,Y) :- nonvar(X), is_TupleSet_(X,Y).
is_TupleSet(X) :- is_TupleSet(X,_). is_TupleSet(X) :- is_TupleSet(X,_).
is_DFA_('DFA'(TS),TS).
is_DFA(X,Y) :- nonvar(X), is_DFA_(X,Y).
is_DFA(X) :- is_DFA(X,_).
new_intset(X,I,J) :- intset(X,I,J). new_intset(X,I,J) :- intset(X,I,J).
new_intset(X,L) :- intset(X,L). new_intset(X,L) :- intset(X,L).
@ -156,6 +160,8 @@ assert_is_IntSet(X,Y) :-
is_IntSet(X,Y) -> true ; throw(gecode_error(expected(intset))). is_IntSet(X,Y) -> true ; throw(gecode_error(expected(intset))).
assert_is_TupleSet(X,Y) :- assert_is_TupleSet(X,Y) :-
is_TupleSet(X,Y) -> true ; throw(gecode_error(expected(tupleset))). is_TupleSet(X,Y) -> true ; throw(gecode_error(expected(tupleset))).
assert_is_DFA(X,Y) :-
is_DFA(X,Y) -> true ; throw(gecode_error(expected(dfa))).
assert_is_IntVar(X,Y) :- assert_is_IntVar(X,Y) :-
is_IntVar(X,Y) -> true ; throw(gecode_error(expected(intvar))). is_IntVar(X,Y) -> true ; throw(gecode_error(expected(intvar))).
assert_is_BoolVar(X,Y) :- assert_is_BoolVar(X,Y) :-
@ -546,9 +552,13 @@ new_setvar(SVar,Space,X1,X2) :-
gecode_new_setvar_12(Idx,Space_,X1_,X2_), gecode_new_setvar_12(Idx,Space_,X1_,X2_),
SVar='SetVar'(Idx,-1). SVar='SetVar'(Idx,-1).
new_tuple_set( List, X1 ) :- new_tupleset( TupleSet, List ) :-
gecode_new_tuple_set(List, X1_), gecode_new_tupleset(List, TupleSet_),
X1 = 'TupleSet'(X1_, -1). TupleSet = 'TupleSet'(TupleSet_).
new_dfa( DFA, S0, List, Finals ) :-
gecode_new_dfa(DFA_, S0, List, Finals),
DFA = 'DFA'(DFA_).
minimize(Space,IVar) :- minimize(Space,IVar) :-
@ -937,6 +947,8 @@ keep_list_(_, X) :-
(X := setvars(Space,N,X1,X2,X3,X4)) :- !, new_setvars_(X,Space,N,X1,X2,X3,X4). (X := setvars(Space,N,X1,X2,X3,X4)) :- !, new_setvars_(X,Space,N,X1,X2,X3,X4).
(X := setvars(Space,N,X1,X2,X3)) :- !, new_setvars_(X,Space,N,X1,X2,X3). (X := setvars(Space,N,X1,X2,X3)) :- !, new_setvars_(X,Space,N,X1,X2,X3).
(X := setvars(Space,N,X1,X2)) :- !, new_setvars_(X,Space,N,X1,X2). (X := setvars(Space,N,X1,X2)) :- !, new_setvars_(X,Space,N,X1,X2).
(X := tupleset(Set)) :- !, new_tupleset(X, Set).
(X := dfa(S0, Transitions, Finals)) :- !, new_dfa(X, S0, Transitions, Finals).
(X := min(Space,Var)) :- !, get_min(X,Space,Var). (X := min(Space,Var)) :- !, get_min(X,Space,Var).
(X := max(Space,Var)) :- !, get_max(X,Space,Var). (X := max(Space,Var)) :- !, get_max(X,Space,Var).
@ -1024,7 +1036,8 @@ keep_list_(_, X) :-
(Space += element(X1,X2,X3,X4,X5)) :- !, element(Space,X1,X2,X3,X4,X5). (Space += element(X1,X2,X3,X4,X5)) :- !, element(Space,X1,X2,X3,X4,X5).
(Space += element(X1,X2,X3,X4,X5,X6)) :- !, element(Space,X1,X2,X3,X4,X5,X6). (Space += element(X1,X2,X3,X4,X5,X6)) :- !, element(Space,X1,X2,X3,X4,X5,X6).
(Space += element(X1,X2,X3,X4,X5,X6,X7)) :- !, element(Space,X1,X2,X3,X4,X5,X6,X7). (Space += element(X1,X2,X3,X4,X5,X6,X7)) :- !, element(Space,X1,X2,X3,X4,X5,X6,X7).
(Space += linear(X1,X2,X3)) :- !, linear(Space,X1,X2,X3). (Space += extensional(X1,X2)) :- !, extensional(Space,X1,X2).
(Space += extensional(X1,X2,X3)) :- !, extensional(Space,X1,X2,X3).
(Space += linear(X1,X2,X3,X4)) :- !, linear(Space,X1,X2,X3,X4). (Space += linear(X1,X2,X3,X4)) :- !, linear(Space,X1,X2,X3,X4).
(Space += linear(X1,X2,X3,X4,X5)) :- !, linear(Space,X1,X2,X3,X4,X5). (Space += linear(X1,X2,X3,X4,X5)) :- !, linear(Space,X1,X2,X3,X4,X5).
(Space += linear(X1,X2,X3,X4,X5,X6)) :- !, linear(Space,X1,X2,X3,X4,X5,X6). (Space += linear(X1,X2,X3,X4,X5,X6)) :- !, linear(Space,X1,X2,X3,X4,X5,X6).