hp2FEM
0.1
|
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 /* Compute the ptr, ind structure */\ 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