~ubuntu-branches/ubuntu/trusty/scotch/trusty

« back to all changes in this revision

Viewing changes to src/libscotch/arch_mesh.h

  • Committer: Bazaar Package Importer
  • Author(s): Christophe Prud'homme
  • Date: 2008-01-25 09:13:53 UTC
  • Revision ID: james.westby@ubuntu.com-20080125091353-zghdao60dfsyc2bt
Tags: upstream-5.0.1.dfsg
ImportĀ upstreamĀ versionĀ 5.0.1.dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright 2004,2007 ENSEIRB, 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       : arch_mesh.h                             **/
 
35
/**                                                        **/
 
36
/**   AUTHOR     : Francois PELLEGRINI                     **/
 
37
/**                                                        **/
 
38
/**   FUNCTION   : These lines are the data declaration    **/
 
39
/**                for the mesh graph target architecture  **/
 
40
/**                functions.                              **/
 
41
/**                                                        **/
 
42
/**   DATES      : # Version 0.0  : from : 01 dec 1992     **/
 
43
/**                                 to   : 24 mar 1993     **/
 
44
/**                # Version 1.2  : from : 04 feb 1994     **/
 
45
/**                                 to   : 11 feb 1994     **/
 
46
/**                # Version 1.3  : from : 20 apr 1994     **/
 
47
/**                                 to   : 20 apr 1994     **/
 
48
/**                # Version 2.0  : from : 06 jun 1994     **/
 
49
/**                                 to   : 12 nov 1994     **/
 
50
/**                # Version 2.1  : from : 07 apr 1995     **/
 
51
/**                                 to   : 30 jun 1995     **/
 
52
/**                # Version 3.0  : from : 01 jul 1995     **/
 
53
/**                                 to     17 aug 1995     **/
 
54
/**                # Version 3.1  : from : 22 jul 1996     **/
 
55
/**                                 to     23 jul 1996     **/
 
56
/**                # Version 3.2  : from : 16 oct 1996     **/
 
57
/**                                 to     14 may 1998     **/
 
58
/**                # Version 3.3  : from : 01 oct 1998     **/
 
59
/**                                 to     01 oct 1998     **/
 
60
/**                # Version 4.0  : from : 09 jan 2004     **/
 
61
/**                                 to     09 jan 2004     **/
 
62
/**                                                        **/
 
63
/************************************************************/
 
64
 
 
65
/*
 
66
**  The type and structure definitions.
 
67
*/
 
68
 
 
69
/*+ The 2D-mesh definitions. +*/
 
70
 
 
71
typedef struct ArchMesh2_ {
 
72
  Anum                      c[2];                 /*+ Mesh dimensions +*/
 
73
} ArchMesh2;
 
74
 
 
75
typedef struct ArchMesh2Dom_ {
 
76
  Anum                      c[2][2];              /*+ Inclusive X and Y coordinates +*/
 
77
} ArchMesh2Dom;
 
78
 
 
79
/*+ The 3D-mesh definitions. +*/
 
80
 
 
81
typedef struct ArchMesh3_ {
 
82
  Anum                      c[3];                 /*+ Mesh dimensions +*/
 
83
} ArchMesh3;
 
84
 
 
85
typedef struct ArchMesh3Dom_ {
 
86
  Anum                      c[3][2];              /*+ Inclusive X, Y, and Z coordinates +*/
 
87
} ArchMesh3Dom;
 
88
 
 
89
/*
 
90
**  The function prototypes.
 
91
*/
 
92
 
 
93
#ifndef ARCH_MESH
 
94
#define static
 
95
#endif
 
96
 
 
97
int                         archMesh2ArchLoad   (ArchMesh2 * restrict const, FILE * restrict const);
 
98
int                         archMesh2ArchSave   (const ArchMesh2 * const, FILE * restrict const);
 
99
ArchDomNum                  archMesh2DomNum     (const ArchMesh2 * const, const ArchMesh2Dom * const);
 
100
int                         archMesh2DomTerm    (const ArchMesh2 * const, ArchMesh2Dom * restrict const, const ArchDomNum);
 
101
Anum                        archMesh2DomSize    (const ArchMesh2 * const, const ArchMesh2Dom * const);
 
102
Anum                        archMesh2DomDist    (const ArchMesh2 * const, const ArchMesh2Dom * const, const ArchMesh2Dom * const);
 
103
int                         archMesh2DomFrst    (const ArchMesh2 * const, ArchMesh2Dom * const);
 
104
int                         archMesh2DomLoad    (const ArchMesh2 * const, ArchMesh2Dom * const, FILE * restrict const);
 
105
int                         archMesh2DomSave    (const ArchMesh2 * const, const ArchMesh2Dom * const, FILE * restrict const);
 
106
int                         archMesh2DomBipart  (const ArchMesh2 * const, const ArchMesh2Dom * const, ArchMesh2Dom * restrict const, ArchMesh2Dom * restrict const);
 
107
int                         archMesh2DomBipartO (const ArchMesh2 * const, const ArchMesh2Dom * const, ArchMesh2Dom * restrict const, ArchMesh2Dom * restrict const);
 
108
int                         archMesh2DomBipartU (const ArchMesh2 * const, const ArchMesh2Dom * const, ArchMesh2Dom * restrict const, ArchMesh2Dom * restrict const);
 
109
 
 
110
int                         archMesh3ArchLoad   (ArchMesh3 * restrict const, FILE * restrict const);
 
111
int                         archMesh3ArchSave   (const ArchMesh3 * const, FILE * restrict const);
 
112
ArchDomNum                  archMesh3DomNum     (const ArchMesh3 * const, const ArchMesh3Dom * const);
 
113
int                         archMesh3DomTerm    (const ArchMesh3 * const, ArchMesh3Dom * restrict const, const ArchDomNum);
 
114
Anum                        archMesh3DomSize    (const ArchMesh3 * const, const ArchMesh3Dom * const);
 
115
Anum                        archMesh3DomDist    (const ArchMesh3 * const, const ArchMesh3Dom * const, const ArchMesh3Dom * const);
 
116
int                         archMesh3DomFrst    (const ArchMesh3 * const, ArchMesh3Dom * const);
 
117
int                         archMesh3DomLoad    (const ArchMesh3 * const, ArchMesh3Dom * const, FILE * restrict const);
 
118
int                         archMesh3DomSave    (const ArchMesh3 * const, const ArchMesh3Dom * const, FILE * restrict const);
 
119
int                         archMesh3DomBipart  (const ArchMesh3 * const, const ArchMesh3Dom * const, ArchMesh3Dom * restrict const, ArchMesh3Dom * restrict const);
 
120
 
 
121
#undef static