1 /* Copyright 2008,2010,2014 IPB, Universite de Bordeaux, INRIA & CNRS
2 **
3 ** This file is part of the Scotch software package for static mapping,
4 ** graph partitioning and sparse matrix ordering.
5 **
6 ** This software is governed by the CeCILL-C license under French law
7 ** and abiding by the rules of distribution of free software. You can
8 ** use, modify and/or redistribute the software under the terms of the
9 ** CeCILL-C license as circulated by CEA, CNRS and INRIA at the following
10 ** URL: "http://www.cecill.info".
11 **
12 ** As a counterpart to the access to the source code and rights to copy,
13 ** modify and redistribute granted by the license, users are provided
14 ** only with a limited warranty and the software's author, the holder of
15 ** the economic rights, and the successive licensors have only limited
16 ** liability.
17 **
18 ** In this respect, the user's attention is drawn to the risks associated
19 ** with loading, using, modifying and/or developing or reproducing the
20 ** software by the user in light of its specific status of free software,
21 ** that may mean that it is complicated to manipulate, and that also
22 ** therefore means that it is reserved for developers and experienced
23 ** professionals having in-depth computer knowledge. Users are therefore
24 ** encouraged to load and test the software's suitability as regards
25 ** their requirements in conditions enabling the security of their
26 ** systems and/or data to be ensured and, more generally, to use and
27 ** operate it in the same conditions as regards security.
28 **
29 ** The fact that you are presently reading this means that you have had
30 ** knowledge of the CeCILL-C license and that you accept its terms.
31 */
32 /************************************************************/
33 /**                                                        **/
34 /**   NAME       : dgmap.h                                 **/
35 /**                                                        **/
36 /**   AUTHOR     : Francois PELLEGRINI                     **/
37 /**                                                        **/
38 /**   FUNCTION   : Part of a parallel static mapper.       **/
39 /**                These lines are the data declaration    **/
40 /**                for the main routine.                   **/
41 /**                                                        **/
42 /**   DATES      : # Version 5.1  : from : 12 jun 2008     **/
43 /**                                 to   : 18 jul 2011     **/
44 /**                # Version 6.0  : from : 10 nov 2014     **/
45 /**                                 to   : 10 nov 2014     **/
46 /**                                                        **/
47 /************************************************************/
48 
49 /*
50 **  The defines.
51 */
52 
53 /*+ File name aliases. +*/
54 
55 #define C_FILENBR                   4             /* Number of files in list */
56 
57 #define C_filenamesrcinp            fileBlockName (C_fileTab, 0) /* Source graph input file name        */
58 #define C_filenametgtinp            fileBlockName (C_fileTab, 1) /* Target architecture input file name */
59 #define C_filenamemapout            fileBlockName (C_fileTab, 2) /* Mapping result output file name     */
60 #define C_filenamelogout            fileBlockName (C_fileTab, 3) /* Log file name                       */
61 
62 #define C_filepntrsrcinp            fileBlockFile (C_fileTab, 0) /* Source graph input file        */
63 #define C_filepntrtgtinp            fileBlockFile (C_fileTab, 1) /* Target architecture input file */
64 #define C_filepntrmapout            fileBlockFile (C_fileTab, 2) /* Mapping result output file     */
65 #define C_filepntrlogout            fileBlockFile (C_fileTab, 3) /* Log file                       */
66 
67 /*+ Process flags. +*/
68 
69 #define C_FLAGNONE                  0x0000        /* No flags            */
70 #define C_FLAGPART                  0x0001        /* Partitioning        */
71 #define C_FLAGVERBSTR               0x0002        /* Verbose flags       */
72 #define C_FLAGVERBTIM               0x0004
73 #define C_FLAGVERBMAP               0x0008
74 #define C_FLAGVERBMEM               0x0010
75 #define C_FLAGDEBUG                 0x0020        /* Debugging           */
76 #define C_FLAGKBALVAL               0x0040        /* Imbalance tolerance */
77 #define C_FLAGCLUSTER               0x0080        /* Clustering          */
78 
79 /*
80 **  The function prototypes.
81 */
82 
83 void                        dgmapStatReduceOp   (double *, double *, int *, MPI_Datatype *);
84