/* Subsequent to changes made for SuiteSparse by Timothy A. Davis,           */
/* which are documented in the file                                          */
/* ../../../../../inst/doc/SuiteSparse/CHOLMOD/SuiteSparse_metis/README.txt, */
/* the METIS library sources, which include this file, have been patched     */
/* for R package Matrix by its authors to resolve warnings issued by GCC     */
/* and Clang with options -Wall and -Wextra.  See the files ssget.sh and     */
/* *.patch below ../../../../../inst/scripts for details.                    */

/*!
\file  gk_types.h
\brief This file contains basic scalar datatype used in GKlib

\date   Started 3/27/2007
\author George
\version\verbatim $Id: gk_types.h 10711 2011-08-31 22:23:04Z karypis $ \endverbatim
*/

#ifndef _GK_TYPES_H_
#define _GK_TYPES_H_

/*************************************************************************
* Basic data type definitions. These definitions allow GKlib to separate
* the following elemental types:
* - loop iterator variables, which are set to size_t
* - signed and unsigned int variables that can be set to any # of bits
* - signed and unsigned long variables that can be set to any # of bits
* - real variables, which can be set to single or double precision.
**************************************************************************/
/*typedef ptrdiff_t       gk_idx_t;       */  /* index variable */
typedef ssize_t         gk_idx_t;         /* index variable */
typedef int32_t         gk_int_t;         /* integer values */
typedef uint32_t        gk_uint_t;        /* unsigned integer values */
typedef int64_t         gk_long_t;        /* long integer values */
typedef uint64_t        gk_ulong_t;       /* unsigned long integer values */
typedef float           gk_real_t;        /* real type */
typedef double          gk_dreal_t;       /* double precission real type */
typedef double          gk_wclock_t;	  /* wall-clock time */

/*#define GK_IDX_MAX PTRDIFF_MAX*/
#define GK_IDX_MAX ((SIZE_MAX>>1)-2)

#define PRIGKIDX "zd"
#define SCNGKIDX "zd"


#endif
