Path: blob/devel/elmergrid/src/metis-5.1.0/GKlib/gk_mkutils.h
3206 views
/*!1\file2\brief Templates for various utility routines34\date Started 5/28/075\author George6\version\verbatim $Id: gk_mkutils.h 10711 2011-08-31 22:23:04Z karypis $ \endverbatim7*/89#ifndef _GK_MKUTILS_H_10#define _GK_MKUTILS_H_111213#define GK_MKARRAY2CSR(PRFX, TYPE)\14/*************************************************************************/\15/*! The macro for gk_?array2csr() routine */\16/**************************************************************************/\17void PRFX ## array2csr(TYPE n, TYPE range, TYPE *array, TYPE *ptr, TYPE *ind)\18{\19TYPE i;\20\21for (i=0; i<=range; i++)\22ptr[i] = 0;\23\24for (i=0; i<n; i++)\25ptr[array[i]]++;\26\27/* Compute the ptr, ind structure */\28MAKECSR(i, range, ptr);\29for (i=0; i<n; i++)\30ind[ptr[array[i]]++] = i;\31SHIFTCSR(i, range, ptr);\32}333435#define GK_MKARRAY2CSR_PROTO(PRFX, TYPE)\36void PRFX ## array2csr(TYPE n, TYPE range, TYPE *array, TYPE *ptr, TYPE *ind);\373839#endif404142