Cloned library METIS with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

53 lines
1.6 KiB

/*!
\file
\brief Data structures and prototypes for GKlib integration
\date Started 12/23/2008
\author George
\version\verbatim $Id: gklib_defs.h 10395 2011-06-23 23:28:06Z karypis $ \endverbatim
*/
#ifndef _LIBMETIS_GKLIB_H_
#define _LIBMETIS_GKLIB_H_
#include "gklib_rename.h"
/*************************************************************************/
/*! Stores a weighted edge */
/*************************************************************************/
typedef struct {
idx_t u, v, w; /*!< Edge (u,v) with weight w */
} uvw_t;
/*************************************************************************
* Define various data structure using GKlib's templates.
**************************************************************************/
GK_MKKEYVALUE_T(ikv_t, idx_t, idx_t)
GK_MKKEYVALUE_T(rkv_t, real_t, idx_t)
GK_MKPQUEUE_T(ipq_t, ikv_t)
GK_MKPQUEUE_T(rpq_t, rkv_t)
/* gklib.c */
GK_MKBLAS_PROTO(i, idx_t, idx_t)
GK_MKBLAS_PROTO(r, real_t, real_t)
GK_MKALLOC_PROTO(i, idx_t)
GK_MKALLOC_PROTO(r, real_t)
GK_MKALLOC_PROTO(ikv, ikv_t)
GK_MKALLOC_PROTO(rkv, rkv_t)
GK_MKPQUEUE_PROTO(ipq, ipq_t, idx_t, idx_t)
GK_MKPQUEUE_PROTO(rpq, rpq_t, real_t, idx_t)
GK_MKRANDOM_PROTO(i, idx_t, idx_t)
GK_MKARRAY2CSR_PROTO(i, idx_t)
void isorti(size_t n, idx_t *base);
void isortd(size_t n, idx_t *base);
void rsorti(size_t n, real_t *base);
void rsortd(size_t n, real_t *base);
void ikvsorti(size_t n, ikv_t *base);
void ikvsortii(size_t n, ikv_t *base);
void ikvsortd(size_t n, ikv_t *base);
void rkvsorti(size_t n, rkv_t *base);
void rkvsortd(size_t n, rkv_t *base);
void uvwsorti(size_t n, uvw_t *base);
#endif