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 |