Created
March 31, 2021 21:20
-
-
Save Anniepoo/aefe83fd4ab60e47111d136899b2b8a7 to your computer and use it in GitHub Desktop.
listing(clpfd_equal_/2)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| clpfd:clpfd_equal_(A, B) :- | |
| ( cyclic_term(A) | |
| -> domain_error(clpfd_expression, A) | |
| ; cyclic_term(B) | |
| -> domain_error(clpfd_expression, B) | |
| ; false | |
| ). | |
| clpfd:clpfd_equal_(A, B) :- | |
| ( nonvar(A), | |
| ( A= ?(C) | |
| ; A= #(C) | |
| ) | |
| -> must_be_fd_integer(C), | |
| D=C | |
| ; v_or_i(A), | |
| D=A | |
| ), | |
| ( nonvar(B), | |
| ( B= ?(E) | |
| ; B= #(E) | |
| ) | |
| -> must_be_fd_integer(E), | |
| F=E | |
| ; v_or_i(B), | |
| F=B | |
| ), | |
| true, | |
| !, | |
| constrain_to_integer(D), | |
| D=F. | |
| clpfd:clpfd_equal_(A, B) :- | |
| ( nonvar(A), | |
| ( A= ?(C) | |
| ; A= #(C) | |
| ) | |
| -> must_be_fd_integer(C), | |
| D=C | |
| ; v_or_i(A), | |
| D=A | |
| ), | |
| nonvar(B), | |
| B=E+F, | |
| ( nonvar(E), | |
| ( E= ?(G) | |
| ; E= #(G) | |
| ) | |
| -> must_be_fd_integer(G), | |
| H=G | |
| ; v_or_i(E), | |
| H=E | |
| ), | |
| ( nonvar(F), | |
| ( F= ?(I) | |
| ; F= #(I) | |
| ) | |
| -> must_be_fd_integer(I), | |
| J=I | |
| ; v_or_i(F), | |
| J=F | |
| ), | |
| true, | |
| !, | |
| make_propagator(pplus(H, J, D), K), | |
| init_propagator(H, K), | |
| init_propagator(J, K), | |
| init_propagator(D, K), | |
| trigger_once(K). | |
| clpfd:clpfd_equal_(A, B) :- | |
| ( nonvar(B), | |
| ( B= ?(C) | |
| ; B= #(C) | |
| ) | |
| -> must_be_fd_integer(C), | |
| D=C | |
| ; v_or_i(B), | |
| D=B | |
| ), | |
| nonvar(A), | |
| A=E+F, | |
| ( nonvar(E), | |
| ( E= ?(G) | |
| ; E= #(G) | |
| ) | |
| -> must_be_fd_integer(G), | |
| H=G | |
| ; v_or_i(E), | |
| H=E | |
| ), | |
| ( nonvar(F), | |
| ( F= ?(I) | |
| ; F= #(I) | |
| ) | |
| -> must_be_fd_integer(I), | |
| J=I | |
| ; v_or_i(F), | |
| J=F | |
| ), | |
| true, | |
| !, | |
| make_propagator(pplus(H, J, D), K), | |
| init_propagator(H, K), | |
| init_propagator(J, K), | |
| init_propagator(D, K), | |
| trigger_once(K). | |
| clpfd:clpfd_equal_(A, B) :- | |
| ( nonvar(A), | |
| ( A= ?(C) | |
| ; A= #(C) | |
| ) | |
| -> must_be_fd_integer(C), | |
| D=C | |
| ; v_or_i(A), | |
| D=A | |
| ), | |
| nonvar(B), | |
| B=E-F, | |
| ( nonvar(E), | |
| ( E= ?(G) | |
| ; E= #(G) | |
| ) | |
| -> must_be_fd_integer(G), | |
| H=G | |
| ; v_or_i(E), | |
| H=E | |
| ), | |
| ( nonvar(F), | |
| ( F= ?(I) | |
| ; F= #(I) | |
| ) | |
| -> must_be_fd_integer(I), | |
| J=I | |
| ; v_or_i(F), | |
| J=F | |
| ), | |
| true, | |
| !, | |
| make_propagator(pplus(D, J, H), K), | |
| init_propagator(D, K), | |
| init_propagator(J, K), | |
| init_propagator(H, K), | |
| trigger_once(K). | |
| clpfd:clpfd_equal_(A, B) :- | |
| ( nonvar(B), | |
| ( B= ?(C) | |
| ; B= #(C) | |
| ) | |
| -> must_be_fd_integer(C), | |
| D=C | |
| ; v_or_i(B), | |
| D=B | |
| ), | |
| nonvar(A), | |
| A=E-F, | |
| ( nonvar(E), | |
| ( E= ?(G) | |
| ; E= #(G) | |
| ) | |
| -> must_be_fd_integer(G), | |
| H=G | |
| ; v_or_i(E), | |
| H=E | |
| ), | |
| ( nonvar(F), | |
| ( F= ?(I) | |
| ; F= #(I) | |
| ) | |
| -> must_be_fd_integer(I), | |
| J=I | |
| ; v_or_i(F), | |
| J=F | |
| ), | |
| true, | |
| !, | |
| make_propagator(pplus(D, J, H), K), | |
| init_propagator(D, K), | |
| init_propagator(J, K), | |
| init_propagator(H, K), | |
| trigger_once(K). | |
| clpfd:clpfd_equal_(A, B) :- | |
| ( nonvar(A), | |
| ( A= ?(C) | |
| ; A= #(C) | |
| ) | |
| -> must_be_fd_integer(C), | |
| D=C | |
| ; v_or_i(A), | |
| D=A | |
| ), | |
| nonvar(B), | |
| B=E*F, | |
| ( nonvar(E), | |
| ( E= ?(G) | |
| ; E= #(G) | |
| ) | |
| -> must_be_fd_integer(G), | |
| H=G | |
| ; v_or_i(E), | |
| H=E | |
| ), | |
| ( nonvar(F), | |
| ( F= ?(I) | |
| ; F= #(I) | |
| ) | |
| -> must_be_fd_integer(I), | |
| J=I | |
| ; v_or_i(F), | |
| J=F | |
| ), | |
| true, | |
| !, | |
| make_propagator(ptimes(H, J, D), K), | |
| init_propagator(H, K), | |
| init_propagator(J, K), | |
| init_propagator(D, K), | |
| trigger_once(K). | |
| clpfd:clpfd_equal_(A, B) :- | |
| ( nonvar(B), | |
| ( B= ?(C) | |
| ; B= #(C) | |
| ) | |
| -> must_be_fd_integer(C), | |
| D=C | |
| ; v_or_i(B), | |
| D=B | |
| ), | |
| nonvar(A), | |
| A=E*F, | |
| ( nonvar(E), | |
| ( E= ?(G) | |
| ; E= #(G) | |
| ) | |
| -> must_be_fd_integer(G), | |
| H=G | |
| ; v_or_i(E), | |
| H=E | |
| ), | |
| ( nonvar(F), | |
| ( F= ?(I) | |
| ; F= #(I) | |
| ) | |
| -> must_be_fd_integer(I), | |
| J=I | |
| ; v_or_i(F), | |
| J=F | |
| ), | |
| true, | |
| !, | |
| make_propagator(ptimes(H, J, D), K), | |
| init_propagator(H, K), | |
| init_propagator(J, K), | |
| init_propagator(D, K), | |
| trigger_once(K). | |
| clpfd:clpfd_equal_(A, B) :- | |
| ( nonvar(A), | |
| ( A= ?(C) | |
| ; A= #(C) | |
| ) | |
| -> must_be_fd_integer(C), | |
| D=C | |
| ; v_or_i(A), | |
| D=A | |
| ), | |
| nonvar(B), | |
| B= -E, | |
| ( nonvar(E), | |
| ( E= ?(F) | |
| ; E= #(F) | |
| ) | |
| -> must_be_fd_integer(F), | |
| G=F | |
| ; v_or_i(E), | |
| G=E | |
| ), | |
| true, | |
| !, | |
| make_propagator(ptimes(-1, G, D), H), | |
| init_propagator(G, H), | |
| init_propagator(D, H), | |
| trigger_once(H). | |
| clpfd:clpfd_equal_(A, B) :- | |
| ( nonvar(B), | |
| ( B= ?(C) | |
| ; B= #(C) | |
| ) | |
| -> must_be_fd_integer(C), | |
| D=C | |
| ; v_or_i(B), | |
| D=B | |
| ), | |
| nonvar(A), | |
| A= -E, | |
| ( nonvar(E), | |
| ( E= ?(F) | |
| ; E= #(F) | |
| ) | |
| -> must_be_fd_integer(F), | |
| G=F | |
| ; v_or_i(E), | |
| G=E | |
| ), | |
| true, | |
| !, | |
| make_propagator(ptimes(-1, G, D), H), | |
| init_propagator(G, H), | |
| init_propagator(D, H), | |
| trigger_once(H). | |
| clpfd:clpfd_equal_(A, B) :- | |
| C=A, | |
| D=B, | |
| left_right_linsum_const(C, D, E, F, G), | |
| !, | |
| scalar_product_(#=, E, F, G). | |
| clpfd:clpfd_equal_(A, B) :- | |
| ( nonvar(A), | |
| ( A= ?(C) | |
| ; A= #(C) | |
| ) | |
| -> must_be_fd_integer(C), | |
| D=C | |
| ; v_or_i(A), | |
| D=A | |
| ), | |
| E=B, | |
| true, | |
| !, | |
| parse_clpfd(E, D). | |
| clpfd:clpfd_equal_(A, B) :- | |
| ( nonvar(B), | |
| ( B= ?(C) | |
| ; B= #(C) | |
| ) | |
| -> must_be_fd_integer(C), | |
| D=C | |
| ; v_or_i(B), | |
| D=B | |
| ), | |
| E=A, | |
| true, | |
| !, | |
| parse_clpfd(E, D). | |
| clpfd:clpfd_equal_(A, B) :- | |
| C=A, | |
| D=B, | |
| true, | |
| !, | |
| parse_clpfd(C, E), | |
| parse_clpfd(D, E). | |
| true. | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment