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