hp2FEM
0.1
|
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 * Define various data structure using GKlib's templates. 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 /* gklib.c */ 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