~elmer-csc-ubuntu/elmercsc/devel

« back to all changes in this revision

Viewing changes to elmergrid/src/metis-5.1.0/GKlib/gk_mkutils.h

  • Committer: GitHub
  • Author(s): Peter R
  • Date: 2017-10-04 13:47:14 UTC
  • mfrom: (575.1.17)
  • Revision ID: git-v1:91780af69137b74ec539fedc4ad70c9ec52d732a
Merge pull request #115 from ElmerCSC/metis_update

Updated to new Metis API for devel branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*!
 
2
\file  
 
3
\brief Templates for various utility routines
 
4
 
 
5
\date   Started 5/28/07
 
6
\author George
 
7
\version\verbatim $Id: gk_mkutils.h 10711 2011-08-31 22:23:04Z karypis $ \endverbatim
 
8
*/
 
9
 
 
10
#ifndef _GK_MKUTILS_H_
 
11
#define _GK_MKUTILS_H_
 
12
 
 
13
 
 
14
#define GK_MKARRAY2CSR(PRFX, TYPE)\
 
15
/*************************************************************************/\
 
16
/*! The macro for gk_?array2csr() routine */\
 
17
/**************************************************************************/\
 
18
void PRFX ## array2csr(TYPE n, TYPE range, TYPE *array, TYPE *ptr, TYPE *ind)\
 
19
{\
 
20
  TYPE i;\
 
21
\
 
22
  for (i=0; i<=range; i++)\
 
23
    ptr[i] = 0;\
 
24
\
 
25
  for (i=0; i<n; i++)\
 
26
    ptr[array[i]]++;\
 
27
\
 
28
  /* Compute the ptr, ind structure */\
 
29
  MAKECSR(i, range, ptr);\
 
30
  for (i=0; i<n; i++)\
 
31
    ind[ptr[array[i]]++] = i;\
 
32
  SHIFTCSR(i, range, ptr);\
 
33
}
 
34
 
 
35
 
 
36
#define GK_MKARRAY2CSR_PROTO(PRFX, TYPE)\
 
37
  void PRFX ## array2csr(TYPE n, TYPE range, TYPE *array, TYPE *ptr, TYPE *ind);\
 
38
 
 
39
 
 
40
#endif