1 | % (c) 2009 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 | :- module_info(revision,'$Rev$'). | |
18 | :- module_info(lastchanged,'$LastChangedDate$'). | |
19 | ||
20 | % make -f MakePLlib | |
21 | foreign(prob_init,prob_init). | |
22 | foreign(prob_start_graph,prob_start_graph(+integer)). | |
23 | foreign(prob_add_edge,prob_add_edge(+integer,+integer)). | |
24 | foreign(prob_get_number_of_colours,prob_get_number_of_colours(+integer)). | |
25 | foreign(prob_set_colour_of_node,prob_set_colour_of_node(+integer,+integer)). | |
26 | foreign(prob_exists_graph,prob_exists_graph([-integer])). | |
27 | foreign(prob_free_storage,prob_free_storage). | |
28 | %foreign(prob_testrun,prob_testrun). %removed | |
29 | ||
30 | foreign_resource(graphiso, | |
31 | [ | |
32 | prob_init | |
33 | ,prob_start_graph | |
34 | ,prob_add_edge | |
35 | ,prob_get_number_of_colours | |
36 | ,prob_set_colour_of_node | |
37 | ,prob_exists_graph | |
38 | ,prob_free_storage | |
39 | ]). | |
40 | ||
41 | :- dynamic loaded/0. | |
42 | ||
43 | graphiso_init :- loadfr, prob_init. | |
44 | ||
45 | loadfr :- | |
46 | (loaded -> true | |
47 | ; (assert(loaded), | |
48 | assert_dir, | |
49 | assert(user:library_directory(prob_home('.'))), | |
50 | load_foreign_resource(library(graphiso))) | |
51 | ). | |
52 | ||
53 | ||
54 | assert_dir :- (user:library_directory('.') -> true ; assert(user:library_directory('.'))). |