00001
00010 #ifndef _LIBMETIS_GKLIB_H_
00011 #define _LIBMETIS_GKLIB_H_
00012
00013 #include "gklib_rename.h"
00014
00015
00017
00018 typedef struct {
00019 idx_t u, v, w;
00020 } uvw_t;
00021
00022
00023
00024
00025 GK_MKKEYVALUE_T(ikv_t, idx_t, idx_t)
00026 GK_MKKEYVALUE_T(rkv_t, real_t, idx_t)
00027 GK_MKPQUEUE_T(ipq_t, ikv_t)
00028 GK_MKPQUEUE_T(rpq_t, rkv_t)
00029
00030
00031
00032 GK_MKBLAS_PROTO(i, idx_t, idx_t)
00033 GK_MKBLAS_PROTO(r, real_t, real_t)
00034 GK_MKALLOC_PROTO(i, idx_t)
00035 GK_MKALLOC_PROTO(r, real_t)
00036 GK_MKALLOC_PROTO(ikv, ikv_t)
00037 GK_MKALLOC_PROTO(rkv, rkv_t)
00038 GK_MKPQUEUE_PROTO(ipq, ipq_t, idx_t, idx_t)
00039 GK_MKPQUEUE_PROTO(rpq, rpq_t, real_t, idx_t)
00040 GK_MKRANDOM_PROTO(i, idx_t, idx_t)
00041 GK_MKARRAY2CSR_PROTO(i, idx_t)
00042 void isorti(size_t n, idx_t *base);
00043 void isortd(size_t n, idx_t *base);
00044 void rsorti(size_t n, real_t *base);
00045 void rsortd(size_t n, real_t *base);
00046 void ikvsorti(size_t n, ikv_t *base);
00047 void ikvsortii(size_t n, ikv_t *base);
00048 void ikvsortd(size_t n, ikv_t *base);
00049 void rkvsorti(size_t n, rkv_t *base);
00050 void rkvsortd(size_t n, rkv_t *base);
00051 void uvwsorti(size_t n, uvw_t *base);
00052
00053 #endif