/******************************************************* Horus Interface ********************************************************/ :- module(clpbn_horus, [set_horus_flag/2, cpp_create_lifted_network/3, cpp_create_ground_network/4, cpp_set_parfactors_params/3, cpp_set_factors_params/3, cpp_run_lifted_solver/3, cpp_run_ground_solver/3, cpp_set_vars_information/2, cpp_set_horus_flag/2, cpp_free_lifted_network/1, cpp_free_ground_network/1 ]). :- catch(load_foreign_files([horus], [], init_predicates), _, patch_things_up) -> true ; warning. patch_things_up :- assert_static(clpbn_horus:cpp_set_horus_flag(_,_)). warning :- format(user_error,"Horus library not installed: cannot use hve, bp, cbp, lve, lkc and lbp~n.",[]). set_horus_flag(K,V) :- cpp_set_horus_flag(K,V). :- cpp_set_horus_flag(verbosity, 0). %:- cpp_set_horus_flag(use_logarithms, false). :- cpp_set_horus_flag(use_logarithms, true). %:- cpp_set_horus_flag(hve_elim_heuristic, sequential). %:- cpp_set_horus_flag(hve_elim_heuristic, min_neighbors). %:- cpp_set_horus_flag(hve_elim_heuristic, min_weight). %:- cpp_set_horus_flag(hve_elim_heuristic, min_fill). :- cpp_set_horus_flag(hve_elim_heuristic, weighted_min_fill). :- cpp_set_horus_flag(bp_msg_schedule, seq_fixed). %:- cpp_set_horus_flag(bp_msg_schedule, seq_random). %:- cpp_set_horus_flag(bp_msg_schedule, parallel). %:- cpp_set_horus_flag(bp_msg_schedule, max_residual). :- cpp_set_horus_flag(bp_accuracy, 0.0001). :- cpp_set_horus_flag(bp_max_iter, 1000).