3acaf5f393d2418738e3bff8c91a16e407ef5942
[scilab.git] / scilab / modules / scicos / src / modelica_compiler / causalityGraph.mli
1 (*\r
2  *  Modelicac\r
3  *\r
4  *  Copyright (C) 2005 - 2007 Imagine S.A.\r
5  *  For more information or commercial use please contact us at www.amesim.com\r
6  *\r
7  *  This program is free software; you can redistribute it and/or\r
8  *  modify it under the terms of the GNU General Public License\r
9  *  as published by the Free Software Foundation; either version 2\r
10  *  of the License, or (at your option) any later version.\r
11  *\r
12  *  This program is distributed in the hope that it will be useful,\r
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15  *  GNU General Public License for more details.\r
16  *\r
17  *  You should have received a copy of the GNU General Public License\r
18  *  along with this program; if not, write to the Free Software\r
19  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.\r
20  *\r
21  *)\r
22 \r
23 (** This module provides a graph structure over which it is possible to apply\r
24 an algorithm that finds the strongly connected components of this graph. *)\r
25 \r
26 type t\r
27 (** The type of the graph used to perform the strongly connected component\r
28 finding algorithm. *)\r
29 \r
30 val create: int -> t\r
31 (** [create size] creates a graph with [size] unconnected nodes. *)\r
32 \r
33 val connect: int -> int -> t -> unit\r
34 (** [connect i j g] connects the [i]th node to the [j]th one in g. *)\r
35 \r
36 val strongly_connected_components: t -> int list list\r
37 (** [strongly_connected_components g] returns the stronly connected components\r
38 of [g] as a list of index lists. *)\r
39 \r
40 val print_with: (int -> unit) -> t -> unit\r
41 (** [print_with print_fun g] prints the connexions in [g] using [print_fun]. *)\r