This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/packages/CLPBN/clpbn/horus.yap

63 lines
1.7 KiB
Plaintext
Raw Normal View History

2012-03-31 23:27:37 +01:00
/*******************************************************
2012-05-23 19:15:23 +01:00
Horus Interface
2012-03-31 23:27:37 +01:00
********************************************************/
2012-03-22 19:10:15 +00:00
:- module(clpbn_horus,
[set_solver/1,
create_lifted_network/3,
2012-04-05 18:38:56 +01:00
create_ground_network/4,
2012-03-31 23:27:37 +01:00
set_parfactors_params/2,
2012-04-10 12:53:52 +01:00
set_factors_params/2,
2012-03-31 23:27:37 +01:00
run_lifted_solver/3,
run_ground_solver/3,
set_vars_information/2,
2012-03-31 23:27:37 +01:00
set_horus_flag/2,
free_parfactors/1,
free_ground_network/1
2012-03-31 23:27:37 +01:00
]).
2012-03-22 19:10:15 +00:00
:- use_module(library(pfl),
[set_pfl_flag/2]).
2012-04-03 15:01:35 +01:00
patch_things_up :-
assert_static(clpbn_horus:set_horus_flag(_,_)).
2012-04-03 15:01:35 +01:00
2012-04-18 03:03:29 +01:00
2012-04-03 15:01:35 +01:00
warning :-
format(user_error,"Horus library not installed: cannot use bp, fove~n.",[]).
2012-04-03 15:01:35 +01:00
2012-04-18 03:03:29 +01:00
:- catch(load_foreign_files([horus], [], init_predicates), _, patch_things_up)
-> true ; warning.
2012-04-03 15:01:35 +01:00
set_solver(ve) :- set_pfl_flag(solver,ve).
set_solver(jt) :- set_pfl_flag(solver,jt).
set_solver(gibbs) :- set_pfl_flag(solver,gibbs).
set_solver(fove) :- set_pfl_flag(solver,fove).
set_solver(hve) :- set_pfl_flag(solver,bp), set_horus_flag(inf_alg, ve).
set_solver(bp) :- set_pfl_flag(solver,bp), set_horus_flag(inf_alg, bp).
set_solver(cbp) :- set_pfl_flag(solver,bp), set_horus_flag(inf_alg, cbp).
set_solver(S) :- throw(error('unknow solver ', S)).
%:- set_horus_flag(inf_alg, ve).
%:- set_horus_flag(inf_alg, bp).
2012-03-31 23:27:37 +01:00
%: -set_horus_flag(inf_alg, cbp).
:- set_horus_flag(schedule, seq_fixed).
%:- set_horus_flag(schedule, seq_random).
%:- set_horus_flag(schedule, parallel).
%:- set_horus_flag(schedule, max_residual).
:- set_horus_flag(accuracy, 0.0001).
:- set_horus_flag(max_iter, 1000).
:- set_horus_flag(use_logarithms, false).
% :- set_horus_flag(use_logarithms, true).