hp2FEM  0.1
src/metis-5.0/GKlib/gk_proto.h
Go to the documentation of this file.
00001 
00010 #ifndef _GK_PROTO_H_
00011 #define _GK_PROTO_H_
00012 
00013 #ifdef __cplusplus
00014 extern "C" {
00015 #endif
00016 
00017 /*-------------------------------------------------------------
00018  * blas.c 
00019  *-------------------------------------------------------------*/
00020 GK_MKBLAS_PROTO(gk_c,   char,     intmax_t)
00021 GK_MKBLAS_PROTO(gk_i,   int,      intmax_t)
00022 GK_MKBLAS_PROTO(gk_i32, int32_t,  intmax_t)
00023 GK_MKBLAS_PROTO(gk_i64, int64_t,  intmax_t)
00024 GK_MKBLAS_PROTO(gk_f,   float,    float)
00025 GK_MKBLAS_PROTO(gk_d,   double,   double)
00026 GK_MKBLAS_PROTO(gk_idx, gk_idx_t, intmax_t)
00027 
00028 
00029 
00030 
00031 /*-------------------------------------------------------------
00032  * io.c
00033  *-------------------------------------------------------------*/
00034 FILE *gk_fopen(char *, char *, const char *);
00035 void gk_fclose(FILE *);
00036 gk_idx_t gk_getline(char **lineptr, size_t *n, FILE *stream);
00037 char **gk_readfile(char *fname, gk_idx_t *r_nlines);
00038 int32_t *gk_i32readfile(char *fname, gk_idx_t *r_nlines);
00039 int64_t *gk_i64readfile(char *fname, gk_idx_t *r_nlines);
00040 
00041 
00042 
00043 
00044 /*-------------------------------------------------------------
00045  * fs.c
00046  *-------------------------------------------------------------*/
00047 int gk_fexists(char *);
00048 int gk_dexists(char *);
00049 intmax_t gk_getfsize(char *);
00050 void gk_getfilestats(char *fname, size_t *r_nlines, size_t *r_ntokens, 
00051           size_t *r_max_nlntokens, size_t *r_nbytes);
00052 char *gk_getbasename(char *path);
00053 char *gk_getextname(char *path);
00054 char *gk_getfilename(char *path);
00055 char *gk_getpathname(char *path);
00056 int gk_mkpath(char *);
00057 int gk_rmpath(char *);
00058 
00059 
00060 
00061 /*-------------------------------------------------------------
00062  * memory.c
00063  *-------------------------------------------------------------*/
00064 GK_MKALLOC_PROTO(gk_c,   char)
00065 GK_MKALLOC_PROTO(gk_i,   int)
00066 GK_MKALLOC_PROTO(gk_i32, int32_t)
00067 GK_MKALLOC_PROTO(gk_i64, int64_t)
00068 GK_MKALLOC_PROTO(gk_f,   float)
00069 GK_MKALLOC_PROTO(gk_d,   double)
00070 GK_MKALLOC_PROTO(gk_idx, gk_idx_t)
00071 
00072 GK_MKALLOC_PROTO(gk_ckv,   gk_ckv_t)
00073 GK_MKALLOC_PROTO(gk_ikv,   gk_ikv_t)
00074 GK_MKALLOC_PROTO(gk_i32kv, gk_i32kv_t)
00075 GK_MKALLOC_PROTO(gk_i64kv, gk_i64kv_t)
00076 GK_MKALLOC_PROTO(gk_fkv,   gk_fkv_t)
00077 GK_MKALLOC_PROTO(gk_dkv,   gk_dkv_t)
00078 GK_MKALLOC_PROTO(gk_skv,   gk_skv_t)
00079 GK_MKALLOC_PROTO(gk_idxkv, gk_idxkv_t)
00080 
00081 void   gk_AllocMatrix(void ***, size_t, size_t , size_t);
00082 void   gk_FreeMatrix(void ***, size_t, size_t);
00083 int    gk_malloc_init();
00084 void   gk_malloc_cleanup(int showstats);
00085 void  *gk_malloc(size_t nbytes, char *msg);
00086 void  *gk_realloc(void *oldptr, size_t nbytes, char *msg);
00087 void   gk_free(void **ptr1,...);
00088 size_t gk_GetCurMemoryUsed();
00089 size_t gk_GetMaxMemoryUsed();
00090 
00091 
00092 
00093 /*-------------------------------------------------------------
00094  * seq.c
00095  *-------------------------------------------------------------*/
00096 gk_seq_t *gk_seq_ReadGKMODPSSM(char *file_name);
00097 gk_i2cc2i_t *gk_i2cc2i_create_common(char *alphabet);
00098 void gk_seq_init(gk_seq_t *seq);
00099 
00100 
00101 
00102 
00103 /*-------------------------------------------------------------
00104  * pdb.c
00105  *-------------------------------------------------------------*/
00106 char gk_threetoone(char *res);
00107 void gk_freepdbf(pdbf *p);
00108 pdbf *gk_readpdbfile(char *fname);
00109 void gk_writefullatom(pdbf *p, char *fname);
00110 void gk_writebackbone(pdbf *p, char *fname);
00111 void gk_writealphacarbons(pdbf *p, char *fname);
00112 void gk_showcorruption(pdbf *p);
00113 
00114 
00115 /*-------------------------------------------------------------
00116  * error.c
00117  *-------------------------------------------------------------*/
00118 void gk_set_exit_on_error(int value);
00119 void errexit(char *,...);
00120 void gk_errexit(int signum, char *,...);
00121 int gk_sigtrap();
00122 int gk_siguntrap();
00123 void gk_sigthrow(int signum);
00124 void gk_SetSignalHandlers();
00125 void gk_UnsetSignalHandlers();
00126 void gk_NonLocalExit_Handler(int signum);
00127 char *gk_strerror(int errnum);
00128 void PrintBackTrace();
00129 
00130 
00131 /*-------------------------------------------------------------
00132  * util.c
00133  *-------------------------------------------------------------*/
00134 void  gk_RandomPermute(size_t, int *, int);
00135 void  gk_array2csr(size_t n, size_t range, int *array, int *ptr, int *ind);
00136 int   gk_log2(int);
00137 int   gk_ispow2(int);
00138 float gk_flog2(float);
00139 
00140 
00141 /*-------------------------------------------------------------
00142  * time.c
00143  *-------------------------------------------------------------*/
00144 gk_wclock_t gk_WClockSeconds(void);
00145 double gk_CPUSeconds(void);
00146 
00147 /*-------------------------------------------------------------
00148  * string.c
00149  *-------------------------------------------------------------*/
00150 char   *gk_strchr_replace(char *str, char *fromlist, char *tolist);
00151 int     gk_strstr_replace(char *str, char *pattern, char *replacement, char *options, char **new_str);
00152 char   *gk_strtprune(char *, char *);
00153 char   *gk_strhprune(char *, char *);
00154 char   *gk_strtoupper(char *); 
00155 char   *gk_strtolower(char *); 
00156 char   *gk_strdup(char *orgstr);
00157 int     gk_strcasecmp(char *s1, char *s2);
00158 int     gk_strrcmp(char *s1, char *s2);
00159 char   *gk_time2str(time_t time);
00160 time_t  gk_str2time(char *str);
00161 int     gk_GetStringID(gk_StringMap_t *strmap, char *key);
00162 
00163 
00164 
00165 /*-------------------------------------------------------------
00166  * sort.c 
00167  *-------------------------------------------------------------*/
00168 void gk_csorti(size_t, char *);
00169 void gk_csortd(size_t, char *);
00170 void gk_isorti(size_t, int *);
00171 void gk_isortd(size_t, int *);
00172 void gk_fsorti(size_t, float *);
00173 void gk_fsortd(size_t, float *);
00174 void gk_dsorti(size_t, double *);
00175 void gk_dsortd(size_t, double *);
00176 void gk_idxsorti(size_t, gk_idx_t *);
00177 void gk_idxsortd(size_t, gk_idx_t *);
00178 void gk_ckvsorti(size_t, gk_ckv_t *);
00179 void gk_ckvsortd(size_t, gk_ckv_t *);
00180 void gk_ikvsorti(size_t, gk_ikv_t *);
00181 void gk_ikvsortd(size_t, gk_ikv_t *);
00182 void gk_i32kvsorti(size_t, gk_i32kv_t *);
00183 void gk_i32kvsortd(size_t, gk_i32kv_t *);
00184 void gk_i64kvsorti(size_t, gk_i64kv_t *);
00185 void gk_i64kvsortd(size_t, gk_i64kv_t *);
00186 void gk_fkvsorti(size_t, gk_fkv_t *);
00187 void gk_fkvsortd(size_t, gk_fkv_t *);
00188 void gk_dkvsorti(size_t, gk_dkv_t *);
00189 void gk_dkvsortd(size_t, gk_dkv_t *);
00190 void gk_skvsorti(size_t, gk_skv_t *);
00191 void gk_skvsortd(size_t, gk_skv_t *);
00192 void gk_idxkvsorti(size_t, gk_idxkv_t *);
00193 void gk_idxkvsortd(size_t, gk_idxkv_t *);
00194 
00195 
00196 /*-------------------------------------------------------------
00197  * Selection routines
00198  *-------------------------------------------------------------*/
00199 int  gk_dfkvkselect(size_t, int, gk_fkv_t *);
00200 int  gk_ifkvkselect(size_t, int, gk_fkv_t *);
00201 
00202 
00203 /*-------------------------------------------------------------
00204  * Priority queue 
00205  *-------------------------------------------------------------*/
00206 GK_MKPQUEUE_PROTO(gk_ipq,   gk_ipq_t,   int,      gk_idx_t)
00207 GK_MKPQUEUE_PROTO(gk_i32pq, gk_i32pq_t, int32_t,  gk_idx_t)
00208 GK_MKPQUEUE_PROTO(gk_i64pq, gk_i64pq_t, int64_t,  gk_idx_t)
00209 GK_MKPQUEUE_PROTO(gk_fpq,   gk_fpq_t,   float,    gk_idx_t)
00210 GK_MKPQUEUE_PROTO(gk_dpq,   gk_dpq_t,   double,   gk_idx_t)
00211 GK_MKPQUEUE_PROTO(gk_idxpq, gk_idxpq_t, gk_idx_t, gk_idx_t)
00212 
00213 
00214 /*-------------------------------------------------------------
00215  * HTable routines
00216  *-------------------------------------------------------------*/
00217 gk_HTable_t *HTable_Create(int nelements);
00218 void         HTable_Reset(gk_HTable_t *htable);
00219 void         HTable_Resize(gk_HTable_t *htable, int nelements);
00220 void         HTable_Insert(gk_HTable_t *htable, int key, int val);
00221 void         HTable_Delete(gk_HTable_t *htable, int key);
00222 int          HTable_Search(gk_HTable_t *htable, int key);
00223 int          HTable_GetNext(gk_HTable_t *htable, int key, int *val, int type);
00224 int          HTable_SearchAndDelete(gk_HTable_t *htable, int key);
00225 void         HTable_Destroy(gk_HTable_t *htable);
00226 int          HTable_HFunction(int nelements, int key);
00227  
00228 
00229 /*-------------------------------------------------------------
00230  * Tokenizer routines
00231  *-------------------------------------------------------------*/
00232 void gk_strtokenize(char *line, char *delim, gk_Tokens_t *tokens);
00233 void gk_freetokenslist(gk_Tokens_t *tokens);
00234 
00235 /*-------------------------------------------------------------
00236  * Encoder/Decoder
00237  *-------------------------------------------------------------*/
00238 void encodeblock(unsigned char *in, unsigned char *out);
00239 void decodeblock(unsigned char *in, unsigned char *out);
00240 void GKEncodeBase64(int nbytes, unsigned char *inbuffer, unsigned char *outbuffer);
00241 void GKDecodeBase64(int nbytes, unsigned char *inbuffer, unsigned char *outbuffer);
00242 
00243 
00244 /*-------------------------------------------------------------
00245  * random.c
00246  *-------------------------------------------------------------*/
00247 GK_MKRANDOM_PROTO(gk_c,   size_t, char)
00248 GK_MKRANDOM_PROTO(gk_i,   size_t, int)
00249 GK_MKRANDOM_PROTO(gk_f,   size_t, float)
00250 GK_MKRANDOM_PROTO(gk_d,   size_t, double)
00251 GK_MKRANDOM_PROTO(gk_idx, size_t, gk_idx_t)
00252 void gk_randinit(uint64_t);
00253 uint64_t gk_randint64(void);
00254 uint32_t gk_randint32(void);
00255 
00256 
00257 /*-------------------------------------------------------------
00258  * OpenMP fake functions
00259  *-------------------------------------------------------------*/
00260 #if !defined(__OPENMP__)
00261 void omp_set_num_threads(int num_threads);
00262 int omp_get_num_threads(void);
00263 int omp_get_max_threads(void);
00264 int omp_get_thread_num(void);
00265 int omp_get_num_procs(void);
00266 int omp_in_parallel(void);
00267 void omp_set_dynamic(int num_threads);
00268 int omp_get_dynamic(void);
00269 void omp_set_nested(int nested);
00270 int omp_get_nested(void);
00271 #endif /* __OPENMP__ */
00272 
00273 
00274 /*-------------------------------------------------------------
00275  * CSR-related functions
00276  *-------------------------------------------------------------*/
00277 gk_csr_t *gk_csr_Create();
00278 void gk_csr_Init(gk_csr_t *mat);
00279 void gk_csr_Free(gk_csr_t **mat);
00280 void gk_csr_FreeContents(gk_csr_t *mat);
00281 gk_csr_t *gk_csr_Dup(gk_csr_t *mat);
00282 gk_csr_t *gk_csr_ExtractSubmatrix(gk_csr_t *mat, int rstart, int nrows);
00283 gk_csr_t *gk_csr_ExtractRows(gk_csr_t *mat, int nrows, int *rind);
00284 gk_csr_t *gk_csr_ExtractPartition(gk_csr_t *mat, int *part, int pid);
00285 gk_csr_t **gk_csr_Split(gk_csr_t *mat, int *color);
00286 gk_csr_t *gk_csr_Read(char *filename, int format, int readvals, int numbering);
00287 void gk_csr_Write(gk_csr_t *mat, char *filename, int format, int writevals, int numbering);
00288 gk_csr_t *gk_csr_Prune(gk_csr_t *mat, int what, int minf, int maxf);
00289 gk_csr_t *gk_csr_LowFilter(gk_csr_t *mat, int what, int norm, float fraction);
00290 gk_csr_t *gk_csr_TopKPlusFilter(gk_csr_t *mat, int what, int topk, float keepval);
00291 gk_csr_t *gk_csr_ZScoreFilter(gk_csr_t *mat, int what, float zscore);
00292 void gk_csr_CompactColumns(gk_csr_t *mat);
00293 void gk_csr_SortIndices(gk_csr_t *mat, int what);
00294 void gk_csr_CreateIndex(gk_csr_t *mat, int what);
00295 void gk_csr_Normalize(gk_csr_t *mat, int what, int norm);
00296 void gk_csr_Scale(gk_csr_t *mat, int type);
00297 void gk_csr_ComputeSums(gk_csr_t *mat, int what);
00298 void gk_csr_ComputeSquaredNorms(gk_csr_t *mat, int what);
00299 float gk_csr_ComputeSimilarity(gk_csr_t *mat, int i1, int i2, int what, int simtype);
00300 int gk_csr_GetSimilarRows(gk_csr_t *mat, int nqterms, int *qind, float *qval,
00301         int simtype, int nsim, float minsim, gk_fkv_t *hits, int *_imarker,
00302         gk_fkv_t *i_cand);
00303 
00304 
00305 
00306 /* itemsets.c */
00307 void gk_find_frequent_itemsets(int ntrans, int *tranptr, int *tranind,
00308         int minfreq, int maxfreq, int minlen, int maxlen,
00309         void (*process_itemset)(void *stateptr, int nitems, int *itemind,
00310                                 int ntrans, int *tranind),
00311         void *stateptr);
00312 
00313 
00314 /* evaluate.c */
00315 float ComputeAccuracy(int n, gk_fkv_t *list);
00316 float ComputeROCn(int n, int maxN, gk_fkv_t *list);
00317 float ComputeMedianRFP(int n, gk_fkv_t *list);
00318 float ComputeMean (int n, float *values);
00319 float ComputeStdDev(int  n, float *values);
00320 
00321 
00322 /* mcore.c */
00323 gk_mcore_t *gk_mcoreCreate(size_t coresize);
00324 gk_mcore_t *gk_gkmcoreCreate();
00325 void gk_mcoreDestroy(gk_mcore_t **r_mcore, int showstats);
00326 void gk_gkmcoreDestroy(gk_mcore_t **r_mcore, int showstats);
00327 void *gk_mcoreMalloc(gk_mcore_t *mcore, size_t nbytes);
00328 void gk_mcorePush(gk_mcore_t *mcore);
00329 void gk_gkmcorePush(gk_mcore_t *mcore);
00330 void gk_mcorePop(gk_mcore_t *mcore);
00331 void gk_gkmcorePop(gk_mcore_t *mcore);
00332 void gk_mcoreAdd(gk_mcore_t *mcore, int type, size_t nbytes, void *ptr);
00333 void gk_gkmcoreAdd(gk_mcore_t *mcore, int type, size_t nbytes, void *ptr);
00334 void gk_mcoreDel(gk_mcore_t *mcore, void *ptr);
00335 void gk_gkmcoreDel(gk_mcore_t *mcore, void *ptr);
00336 
00337 
00338 #ifdef __cplusplus
00339 }
00340 #endif
00341 
00342 
00343 #endif
00344 
 All Classes Files Functions Variables Typedefs Friends Defines