1 % (c) 2009-2024 Lehrstuhl fuer Softwaretechnik und Programmiersprachen,
2 % Heinrich Heine Universitaet Duesseldorf
3 % This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html)
4
5 :- module(graphiso,[graphiso_init/0,
6 prob_start_graph/1,
7 prob_add_edge/2,
8 prob_get_number_of_colours/1,
9 prob_set_colour_of_node/2,
10 prob_exists_graph/1,
11 prob_free_storage/0]).
12
13 :- use_module('../../src/module_information.pl').
14
15 :- module_info(group,symmetry).
16 :- module_info(description,'This is the interface to the C code for the symmetry reduction with nauty.').
17
18 % make -f MakePLlib
19 foreign(prob_init,prob_init).
20 foreign(prob_start_graph,prob_start_graph(+integer)).
21 foreign(prob_add_edge,prob_add_edge(+integer,+integer)).
22 foreign(prob_get_number_of_colours,prob_get_number_of_colours(+integer)).
23 foreign(prob_set_colour_of_node,prob_set_colour_of_node(+integer,+integer)).
24 foreign(prob_exists_graph,prob_exists_graph([-integer])).
25 foreign(prob_free_storage,prob_free_storage).
26 %foreign(prob_testrun,prob_testrun). %removed
27
28 foreign_resource(graphiso,
29 [
30 prob_init
31 ,prob_start_graph
32 ,prob_add_edge
33 ,prob_get_number_of_colours
34 ,prob_set_colour_of_node
35 ,prob_exists_graph
36 ,prob_free_storage
37 ]).
38
39 :- dynamic loaded/0.
40
41 graphiso_init :- loadfr, prob_init.
42
43 :- use_module(probsrc(pathes_lib),[safe_load_foreign_resource/2]).
44 loadfr :-
45 (loaded -> true
46 ; assertz(loaded),
47 %assert_dir,
48 %assertz(user:library_directory(prob_home('.'))),
49 safe_load_foreign_resource(graphiso,graphiso)
50 ).
51
52
53 %assert_dir :- (user:library_directory('.') -> true ; assertz(user:library_directory('.'))).
54