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/cuda/cuda.yap

33 lines
775 B
Plaintext
Raw Normal View History

2013-10-04 13:22:00 +01:00
:- module(bdd, [cuda_extensional/2,
2013-10-04 14:42:18 +01:00
cuda_rule/2,
cuda_erase/1,
cuda_eval/2,
cuda_count/2]).
2013-10-04 13:22:00 +01:00
tell_warning :-
print_message(warning,functionality(cuda)).
:- catch(load_foreign_files([cuda], [], init_cuda),_,fail) -> true ; tell_warning.
:- meta_predicate cudda_extensional(:,-).
cuda_extensional( Call, IdFacts) :-
strip_module(Call, Mod, Name/Arity),
functor(S, Name, Arity),
findall( S, Mod:S, L),
length( L, N ),
load_facts( N, Arity, L, IdFacts ).
cuda_rule((Head :- Body) , IdRules) :-
body_to_list( Body, L, [], 1, N),
functor(Head, Na, Ar),
2013-10-04 14:42:18 +01:00
load_rule( N, Ar, [Head|L], IdRules ).
2013-10-04 13:22:00 +01:00
2013-10-04 14:42:18 +01:00
body_to_list( (B1, B2), LF, L0, N0, NF) :- !,
2013-10-04 13:22:00 +01:00
body_to_list( B1, LF, LI, N0, N1),
body_to_list( B2, LI, L0, N1, NF).
body_to_list( B, [B|L], L, N0, N) :-
N is N0+1.