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('.'))).