Files
openfoam/applications/utilities/parallelProcessing/decompositionMethods/metis-5.0pre2/GKlib/trunk/gk_proto.h
2008-04-15 18:56:58 +01:00

321 lines
11 KiB
C

/*!
\file gk_proto.h
\brief This file contains function prototypes
\date Started 3/27/2007
\author George
\version\verbatim $Id: gk_proto.h 1432 2007-04-07 20:06:19Z karypis $ \endverbatim
*/
#ifndef _GK_PROTO_H_
#define _GK_PROTO_H_
/*-------------------------------------------------------------
* blas.c
*-------------------------------------------------------------*/
GK_SET_PROTO(gk_cset, char)
GK_SET_PROTO(gk_iset, int)
GK_SET_PROTO(gk_fset, float)
GK_SET_PROTO(gk_dset, double)
GK_SET_PROTO(gk_idxset, gk_idx_t)
GK_INCSET_PROTO(gk_cincset, char)
GK_INCSET_PROTO(gk_iincset, int)
GK_INCSET_PROTO(gk_fincset, float)
GK_INCSET_PROTO(gk_dincset, double)
GK_INCSET_PROTO(gk_idxincset, gk_idx_t)
GK_ARGMAX_PROTO(gk_cargmax, char)
GK_ARGMAX_PROTO(gk_iargmax, int)
GK_ARGMAX_PROTO(gk_fargmax, float)
GK_ARGMAX_PROTO(gk_dargmax, double)
GK_ARGMAX_PROTO(gk_idxargmax, gk_idx_t)
GK_ARGMIN_PROTO(gk_cargmin, char)
GK_ARGMIN_PROTO(gk_iargmin, int)
GK_ARGMIN_PROTO(gk_fargmin, float)
GK_ARGMIN_PROTO(gk_dargmin, double)
GK_ARGMIN_PROTO(gk_idxargmin, gk_idx_t)
GK_ARGMAX_N_PROTO(gk_cargmax_n, char)
GK_ARGMAX_N_PROTO(gk_iargmax_n, int)
GK_ARGMAX_N_PROTO(gk_fargmax_n, float)
GK_ARGMAX_N_PROTO(gk_dargmax_n, double)
GK_ARGMAX_N_PROTO(gk_idxargmax_n, gk_idx_t)
GK_SUM_PROTO(gk_csum, char, intmax_t)
GK_SUM_PROTO(gk_isum, int, intmax_t)
GK_SUM_PROTO(gk_fsum, float, float)
GK_SUM_PROTO(gk_dsum, double, double)
GK_SUM_PROTO(gk_idxsum, gk_idx_t, intmax_t)
GK_SCALE_PROTO(gk_cscale, char)
GK_SCALE_PROTO(gk_iscale, int)
GK_SCALE_PROTO(gk_fscale, float)
GK_SCALE_PROTO(gk_dscale, double)
GK_SCALE_PROTO(gk_idxscale, gk_idx_t)
GK_NORM2_PROTO(gk_cnorm2, char, intmax_t)
GK_NORM2_PROTO(gk_inorm2, int, intmax_t)
GK_NORM2_PROTO(gk_fnorm2, float, float)
GK_NORM2_PROTO(gk_dnorm2, double, double)
GK_NORM2_PROTO(gk_idxnorm2, gk_idx_t, intmax_t)
GK_DOT_PROTO(gk_cdot, char, intmax_t)
GK_DOT_PROTO(gk_idot, int, intmax_t)
GK_DOT_PROTO(gk_fdot, float, float)
GK_DOT_PROTO(gk_ddot, double, double)
GK_DOT_PROTO(gk_idxdot, gk_idx_t, intmax_t)
GK_AXPY_PROTO(gk_caxpy, char)
GK_AXPY_PROTO(gk_iaxpy, int)
GK_AXPY_PROTO(gk_faxpy, float)
GK_AXPY_PROTO(gk_daxpy, double)
GK_AXPY_PROTO(gk_idxaxpy, gk_idx_t)
/*-------------------------------------------------------------
* io.c
*-------------------------------------------------------------*/
FILE *gk_fopen(char *, char *, const char *);
void gk_fclose(FILE *);
gk_loop_t gk_getline(char **lineptr, size_t *n, FILE *stream);
/*-------------------------------------------------------------
* fs.c
*-------------------------------------------------------------*/
int gk_fexists(char *);
int gk_dexists(char *);
intmax_t gk_getfsize(char *);
void gk_getfilestats(char *fname, int *r_nlines, int *r_ntokens, int *r_nbytes);
char *gk_getbasename(char *path);
char *gk_getextname(char *path);
char *gk_getfilename(char *path);
char *gk_getpathname(char *path);
int gk_mkpath(char *);
int gk_rmpath(char *);
/*-------------------------------------------------------------
* memory.c
*-------------------------------------------------------------*/
GK_XMALLOC_PROTO(gk_cmalloc, char)
GK_XMALLOC_PROTO(gk_imalloc, int)
GK_XMALLOC_PROTO(gk_fmalloc, float)
GK_XMALLOC_PROTO(gk_dmalloc, double)
GK_XMALLOC_PROTO(gk_idxmalloc, gk_idx_t)
GK_XMALLOC_PROTO(gk_ckvmalloc, gk_ckv_t)
GK_XMALLOC_PROTO(gk_ikvmalloc, gk_ikv_t)
GK_XMALLOC_PROTO(gk_fkvmalloc, gk_fkv_t)
GK_XMALLOC_PROTO(gk_dkvmalloc, gk_dkv_t)
GK_XMALLOC_PROTO(gk_skvmalloc, gk_skv_t)
GK_XMALLOC_PROTO(gk_idxkvmalloc, gk_idxkv_t)
GK_XREALLOC_PROTO(gk_crealloc, char)
GK_XREALLOC_PROTO(gk_irealloc, int)
GK_XREALLOC_PROTO(gk_frealloc, float)
GK_XREALLOC_PROTO(gk_drealloc, double)
GK_XREALLOC_PROTO(gk_idxrealloc, gk_idx_t)
GK_XREALLOC_PROTO(gk_ckvrealloc, gk_ckv_t)
GK_XREALLOC_PROTO(gk_ikvrealloc, gk_ikv_t)
GK_XREALLOC_PROTO(gk_fkvrealloc, gk_fkv_t)
GK_XREALLOC_PROTO(gk_dkvrealloc, gk_dkv_t)
GK_XREALLOC_PROTO(gk_skvrealloc, gk_skv_t)
GK_XREALLOC_PROTO(gk_idxkvrealloc, gk_idxkv_t)
GK_XSMALLOC_PROTO(gk_csmalloc, char)
GK_XSMALLOC_PROTO(gk_ismalloc, int)
GK_XSMALLOC_PROTO(gk_fsmalloc, float)
GK_XSMALLOC_PROTO(gk_dsmalloc, double)
GK_XSMALLOC_PROTO(gk_idxsmalloc, gk_idx_t)
GK_ALLOCMATRIX_PROTO(gk_cAllocMatrix, char)
GK_ALLOCMATRIX_PROTO(gk_iAllocMatrix, int)
GK_ALLOCMATRIX_PROTO(gk_fAllocMatrix, float)
GK_ALLOCMATRIX_PROTO(gk_dAllocMatrix, double)
GK_ALLOCMATRIX_PROTO(gk_idxAllocMatrix, gk_idx_t)
GK_FREEMATRIX_PROTO(gk_cFreeMatrix, char)
GK_FREEMATRIX_PROTO(gk_iFreeMatrix, int)
GK_FREEMATRIX_PROTO(gk_fFreeMatrix, float)
GK_FREEMATRIX_PROTO(gk_dFreeMatrix, double)
GK_FREEMATRIX_PROTO(gk_idxFreeMatrix, gk_idx_t)
GK_SETMATRIX_PROTO(gk_cSetMatrix, char)
GK_SETMATRIX_PROTO(gk_iSetMatrix, int)
GK_SETMATRIX_PROTO(gk_fSetMatrix, float)
GK_SETMATRIX_PROTO(gk_dSetMatrix, double)
GK_SETMATRIX_PROTO(gk_idxSetMatrix, gk_idx_t)
void gk_AllocMatrix(void ***, size_t, size_t , size_t);
void gk_FreeMatrix(void ***, size_t, size_t);
void *gk_malloc(size_t, char *);
void *gk_realloc(void *, size_t, char *);
void gk_free(void **ptr1,...);
void gk_malloc_cleanup();
size_t gk_GetCurMemoryUsed();
size_t gk_GetMaxMemoryUsed();
/*-------------------------------------------------------------
* seq.c
*-------------------------------------------------------------*/
gk_seq_t *gk_seq_ReadGKMODPSSM(char *file_name);
gk_i2cc2i_t *gk_i2cc2i_create_common(char *alphabet);
void gk_seq_init(gk_seq_t *seq);
/*-------------------------------------------------------------
* pdb.c
*-------------------------------------------------------------*/
char gk_threetoone(char *res);
void gk_freepdbf(pdbf *p);
pdbf *gk_readpdbfile(char *fname);
void gk_writefullatom(pdbf *p, char *fname);
void gk_writebackbone(pdbf *p, char *fname);
void gk_writealphacarbons(pdbf *p, char *fname);
void gk_showcorruption(pdbf *p);
/*-------------------------------------------------------------
* error.c
*-------------------------------------------------------------*/
void errexit(char *,...);
void gk_errexit(int signum, char *,...);
void gk_SetSignalHandlers();
void gk_UnsetSignalHandlers();
void gk_NonLocalExit_Handler(int signum);
char *gk_strerror(int errnum);
void PrintBackTrace();
/*-------------------------------------------------------------
* util.c
*-------------------------------------------------------------*/
void gk_RandomPermute(size_t, int *, int);
void gk_array2csr(size_t n, size_t range, int *array, int *ptr, int *ind);
int gk_log2(int);
int gk_ispow2(int);
float gk_flog2(float);
/*-------------------------------------------------------------
* time.c
*-------------------------------------------------------------*/
gk_wclock_t gk_WClockSeconds(void);
double gk_CPUSeconds(void);
/*-------------------------------------------------------------
* string.c
*-------------------------------------------------------------*/
char *gk_strchr_replace(char *str, char *fromlist, char *tolist);
int gk_strstr_replace(char *str, char *pattern, char *replacement, char *options, char **new_str);
char *gk_strtprune(char *, char *);
char *gk_strhprune(char *, char *);
char *gk_strtoupper(char *);
char *gk_strtolower(char *);
char *gk_strdup(char *orgstr);
int gk_strcasecmp(char *s1, char *s2);
char *gk_time2str(time_t time);
time_t gk_str2time(char *str);
int gk_GetStringID(gk_StringMap_t *strmap, char *key);
/*-------------------------------------------------------------
* sort.c
*-------------------------------------------------------------*/
void gk_icsort(int, char *);
void gk_dcsort(int, char *);
void gk_iisort(int, int *);
void gk_disort(int, int *);
void gk_ifsort(int, float *);
void gk_dfsort(int, float *);
void gk_idsort(int, double *);
void gk_ddsort(int, double *);
void gk_iidxsort(int, gk_idx_t *);
void gk_didxsort(int, gk_idx_t *);
void gk_ickvsort(int, gk_ckv_t *);
void gk_dckvsort(int, gk_ckv_t *);
void gk_iikvsort(int, gk_ikv_t *);
void gk_dikvsort(int, gk_ikv_t *);
void gk_ifkvsort(int, gk_fkv_t *);
void gk_dfkvsort(int, gk_fkv_t *);
void gk_idkvsort(int, gk_dkv_t *);
void gk_ddkvsort(int, gk_dkv_t *);
void gk_iskvsort(int, gk_skv_t *);
void gk_dskvsort(int, gk_skv_t *);
void gk_iidxkvsort(int, gk_idxkv_t *);
void gk_didxkvsort(int, gk_idxkv_t *);
/*-------------------------------------------------------------
* Selection routines
*-------------------------------------------------------------*/
int gk_dfkvkselect(int, int, gk_fkv_t *);
/*-------------------------------------------------------------
* Priority queue
*-------------------------------------------------------------*/
void gk_PQueueInit(gk_PQueue_t *, int);
void gk_PQueueReset(gk_PQueue_t *);
void gk_PQueueFree(gk_PQueue_t *);
int gk_PQueueGetSize(gk_PQueue_t *);
int gk_PQueueInsert(gk_PQueue_t *, int, float);
int gk_PQueueDelete(gk_PQueue_t *, int);
int gk_PQueueUpdate(gk_PQueue_t *, int, float);
int gk_PQueueGetMax(gk_PQueue_t *);
int gk_PQueueSeeMaxVal(gk_PQueue_t *queue);
float gk_PQueueSeeMaxKey(gk_PQueue_t *queue);
int gk_PQueueLength(gk_PQueue_t *);
int gk_PQueueSeeConstraintMax(gk_PQueue_t *queue, float maxwgt, double *wgts);
float gk_PQueueSeeKey(gk_PQueue_t *queue, int node);
int gk_CheckHeap(gk_PQueue_t *);
/*-------------------------------------------------------------
* HTable routines
*-------------------------------------------------------------*/
gk_HTable_t *HTable_Create(int nelements);
void HTable_Reset(gk_HTable_t *htable);
void HTable_Resize(gk_HTable_t *htable, int nelements);
void HTable_Insert(gk_HTable_t *htable, int key, int val);
void HTable_Delete(gk_HTable_t *htable, int key);
int HTable_Search(gk_HTable_t *htable, int key);
int HTable_GetNext(gk_HTable_t *htable, int key, int *val, int type);
int HTable_SearchAndDelete(gk_HTable_t *htable, int key);
void HTable_Destroy(gk_HTable_t *htable);
int HTable_HFunction(int nelements, int key);
/*-------------------------------------------------------------
* Tokenizer routines
*-------------------------------------------------------------*/
void gk_strtokenize(char *line, char *delim, gk_Tokens_t *tokens);
void gk_freetokenslist(gk_Tokens_t *tokens);
/*-------------------------------------------------------------
* Encoder/Decoder
*-------------------------------------------------------------*/
void encodeblock(unsigned char *in, unsigned char *out);
void decodeblock(unsigned char *in, unsigned char *out);
void GKEncodeBase64(int nbytes, unsigned char *inbuffer, unsigned char *outbuffer);
void GKDecodeBase64(int nbytes, unsigned char *inbuffer, unsigned char *outbuffer);
/*-------------------------------------------------------------
* OpenMP fake functions
*-------------------------------------------------------------*/
#if !defined(__OPENMP__)
void omp_set_num_threads(int num_threads);
int omp_get_num_threads(void);
int omp_get_max_threads(void);
int omp_get_thread_num(void);
int omp_get_num_procs(void);
int omp_in_parallel(void);
void omp_set_dynamic(int num_threads);
int omp_get_dynamic(void);
void omp_set_nested(int nested);
int omp_get_nested(void);
#endif /* __OPENMP__ */
#endif