00001
00010 #ifndef _GK_MKUTILS_H_
00011 #define _GK_MKUTILS_H_
00012
00013
00014 #define GK_MKARRAY2CSR(PRFX, TYPE)\
00015 \
00016 \
00017 \
00018 void PRFX ## array2csr(TYPE n, TYPE range, TYPE *array, TYPE *ptr, TYPE *ind)\
00019 {\
00020 TYPE i;\
00021 \
00022 for (i=0; i<=range; i++)\
00023 ptr[i] = 0;\
00024 \
00025 for (i=0; i<n; i++)\
00026 ptr[array[i]]++;\
00027 \
00028 \
00029 MAKECSR(i, range, ptr);\
00030 for (i=0; i<n; i++)\
00031 ind[ptr[array[i]]++] = i;\
00032 SHIFTCSR(i, range, ptr);\
00033 }
00034
00035
00036 #define GK_MKARRAY2CSR_PROTO(PRFX, TYPE)\
00037 void PRFX ## array2csr(TYPE n, TYPE range, TYPE *array, TYPE *ptr, TYPE *ind);\
00038
00039
00040 #endif