Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/elmergrid/src/metis-5.1.0/libmetis/gklib_defs.h
3206 views
1
/*!
2
\file
3
\brief Data structures and prototypes for GKlib integration
4
5
\date Started 12/23/2008
6
\author George
7
\version\verbatim $Id: gklib_defs.h 10395 2011-06-23 23:28:06Z karypis $ \endverbatim
8
*/
9
10
#ifndef _LIBMETIS_GKLIB_H_
11
#define _LIBMETIS_GKLIB_H_
12
13
#include "gklib_rename.h"
14
15
/*************************************************************************/
16
/*! Stores a weighted edge */
17
/*************************************************************************/
18
typedef struct {
19
idx_t u, v, w; /*!< Edge (u,v) with weight w */
20
} uvw_t;
21
22
/*************************************************************************
23
* Define various data structure using GKlib's templates.
24
**************************************************************************/
25
GK_MKKEYVALUE_T(ikv_t, idx_t, idx_t)
26
GK_MKKEYVALUE_T(rkv_t, real_t, idx_t)
27
GK_MKPQUEUE_T(ipq_t, ikv_t)
28
GK_MKPQUEUE_T(rpq_t, rkv_t)
29
30
31
/* gklib.c */
32
GK_MKBLAS_PROTO(i, idx_t, idx_t)
33
GK_MKBLAS_PROTO(r, real_t, real_t)
34
GK_MKALLOC_PROTO(i, idx_t)
35
GK_MKALLOC_PROTO(r, real_t)
36
GK_MKALLOC_PROTO(ikv, ikv_t)
37
GK_MKALLOC_PROTO(rkv, rkv_t)
38
GK_MKPQUEUE_PROTO(ipq, ipq_t, idx_t, idx_t)
39
GK_MKPQUEUE_PROTO(rpq, rpq_t, real_t, idx_t)
40
GK_MKRANDOM_PROTO(i, idx_t, idx_t)
41
GK_MKARRAY2CSR_PROTO(i, idx_t)
42
void isorti(size_t n, idx_t *base);
43
void isortd(size_t n, idx_t *base);
44
void rsorti(size_t n, real_t *base);
45
void rsortd(size_t n, real_t *base);
46
void ikvsorti(size_t n, ikv_t *base);
47
void ikvsortii(size_t n, ikv_t *base);
48
void ikvsortd(size_t n, ikv_t *base);
49
void rkvsorti(size_t n, rkv_t *base);
50
void rkvsortd(size_t n, rkv_t *base);
51
void uvwsorti(size_t n, uvw_t *base);
52
53
#endif
54
55