common.h

Go to the documentation of this file.
00001 /*
00002  * This program is free software; you can redistribute it and/or modify
00003  * it under the terms of the GNU General Public License as published by
00004  * the Free Software Foundation; either version 3 of the License, or
00005  * (at your option) any later version.
00006  *
00007  * Written (W) 1999-2008 Soeren Sonnenburg
00008  * Written (W) 1999-2008 Gunnar Raetsch
00009  * Written (W) 2006 Fabio De Bona
00010  * Written (W) 2006 Konrad Rieck
00011  * Written (W) 2006-2007 Christian Gehl
00012  * Copyright (C) 1999-2008 Fraunhofer Institute FIRST and Max-Planck-Society
00013  */
00014 
00015 #ifndef __COMMON_H__
00016 #define __COMMON_H__
00017 
00018 #include <stdlib.h> 
00019 #include <stdio.h> 
00020 #include "lib/config.h"
00021 #include "lib/memory.h"
00022 
00023 #ifdef SUNOS
00024 #define bool int
00025 #define false 0
00026 #define true 1
00027 #endif
00028 
00029 #ifndef LINUX
00030 #define RANDOM_MAX 2147483647
00031 #else
00032 #define RANDOM_MAX RAND_MAX
00033 #endif
00034 
00039 
00041 typedef char CHAR;
00042 typedef CHAR* P_CHAR;
00043 
00045 typedef unsigned char BYTE;
00046 typedef BYTE* P_BYTE;
00047 
00049 typedef short int SHORT;
00050 typedef SHORT* P_SHORT;
00051 
00053 typedef unsigned short int WORD;
00054 typedef WORD* P_WORD;
00055 
00057 typedef int INT;
00058 typedef INT* P_INT;
00059 
00061 typedef unsigned int UINT;
00062 typedef UINT* P_UINT;
00063 
00065 #ifndef SUNOS
00066 #include <stdint.h>
00067 typedef int64_t LONG;
00068 #else
00069 typedef long LONG;
00070 #endif
00071 typedef LONG* P_LONG;
00072 
00074 #ifndef SUNOS
00075 #include <stdint.h>
00076 typedef uint64_t ULONG;
00077 #else
00078 typedef unsigned long ULONG;
00079 #endif
00080 typedef ULONG* P_ULONG;
00081 
00083 typedef float SHORTREAL;
00084 typedef SHORTREAL* P_SHORTREAL;
00085 
00087 typedef double DREAL;
00088 typedef DREAL* P_DREAL;
00089 
00091 typedef long double LONGREAL;
00092 typedef LONGREAL* P_LONGREAL;
00093 
00094 #ifdef USE_SHORTREAL_KERNELCACHE
00095     typedef SHORTREAL KERNELCACHE_ELEM;
00096 #else
00097     typedef DREAL KERNELCACHE_ELEM;
00098 #endif
00099 
00100 typedef LONG KERNELCACHE_IDX;
00101 
00105 enum EMessageType
00106 {
00107     M_DEBUG,
00108     M_INFO,
00109     M_NOTICE,
00110     M_WARN,
00111     M_ERROR,
00112     M_CRITICAL,
00113     M_ALERT,
00114     M_EMERGENCY,
00115     M_MESSAGEONLY
00116 };
00117 
00118 enum EOptimizationType
00119 {
00120     FASTBUTMEMHUNGRY,
00121     SLOWBUTMEMEFFICIENT
00122 };
00123 
00124 enum ENormalizationType
00125 {
00126     NO_NORMALIZATION,
00127     SQRT_NORMALIZATION,
00128     FULL_NORMALIZATION,
00129     SQRTLEN_NORMALIZATION,
00130     LEN_NORMALIZATION,
00131     SQLEN_NORMALIZATION 
00132 };
00133 
00134 enum EWDKernType
00135 {
00136     E_WD=0,
00137     E_EXTERNAL=1,
00138 
00139     E_BLOCK_CONST=2,
00140     E_BLOCK_LINEAR=3,
00141     E_BLOCK_SQPOLY=4,
00142     E_BLOCK_CUBICPOLY=5,
00143     E_BLOCK_EXP=6,
00144     E_BLOCK_LOG=7,
00145     E_BLOCK_EXTERNAL=8
00146 };
00147 
00148 enum EKernelType
00149 {
00150     K_UNKNOWN = 0,
00151     K_LINEAR = 10,
00152     K_SPARSELINEAR = 11,
00153     K_POLY  = 20,
00154     K_GAUSSIAN = 30,
00155     K_SPARSEGAUSSIAN = 31,
00156     K_GAUSSIANSHIFT = 32,
00157     K_HISTOGRAM = 40,
00158     K_SALZBERG = 41,
00159     K_LOCALITYIMPROVED = 50,
00160     K_SIMPLELOCALITYIMPROVED = 60,
00161     K_FIXEDDEGREE = 70,
00162     K_WEIGHTEDDEGREE =    80,
00163     K_WEIGHTEDDEGREEPOS = 81,
00164     K_WEIGHTEDCOMMWORDSTRING = 90,
00165     K_POLYMATCH = 100,
00166     K_ALIGNMENT = 110,
00167     K_COMMWORDSTRING = 120,
00168     K_COMMULONGSTRING = 121,
00169     K_COMBINED = 140,
00170     K_AUC = 150,
00171     K_CUSTOM = 160,
00172     K_SIGMOID = 170,
00173     K_CHI2 = 180,
00174     K_DIAG = 190,
00175     K_CONST = 200,
00176     K_MINDYGRAM = 210,
00177     K_DISTANCE = 220,
00178     K_LOCALALIGNMENT= 230,
00179     K_PYRAMIDCHI2= 240,
00180 };
00181 
00182 enum EClassifierType
00183 {
00184     CT_NONE = 0,
00185     CT_LIGHT = 10,
00186     CT_LIBSVM = 20,
00187     CT_LIBSVMONECLASS=30,
00188     CT_LIBSVMMULTICLASS=40,
00189     CT_MPD = 50,
00190     CT_GPBT = 60,
00191     CT_CPLEXSVM = 70,
00192     CT_PERCEPTRON = 80,
00193     CT_KERNELPERCEPTRON = 90,
00194     CT_LDA = 100,
00195     CT_LPM = 110,
00196     CT_LPBOOST = 120,
00197     CT_KNN = 130,
00198     CT_SVMLIN=140,
00199     CT_KRR = 150,
00200     CT_GNPPSVM = 160,
00201     CT_GMNPSVM = 170,
00202     CT_SUBGRADIENTSVM = 180,
00203     CT_SUBGRADIENTLPM = 190,
00204     CT_SVMPERF = 200,
00205     CT_LIBSVR = 210,
00206     CT_SVRLIGHT = 220,
00207     CT_LIBLINEAR = 230,
00208     CT_KMEANS = 240,
00209     CT_HIERARCHICAL = 250,
00210     CT_SVMOCAS = 260,
00211     CT_WDSVMOCAS = 270,
00212     CT_SVMSGD = 280,
00213 };
00214 
00215 enum EDistanceType
00216 {
00217     D_UNKNOWN = 0,
00218     D_MINKOWSKI = 10,
00219     D_MANHATTAN = 20,
00220     D_CANBERRA = 30,
00221     D_CHEBYSHEW = 40,
00222     D_GEODESIC = 50,
00223     D_JENSEN = 60,
00224     D_MANHATTANWORD = 70,
00225     D_HAMMINGWORD = 80 ,
00226     D_CANBERRAWORD = 90,
00227     D_SPARSEEUCLIDIAN = 100,
00228     D_EUCLIDIAN = 110
00229 };
00230 
00231 enum ERegressionType
00232 {
00233     RT_NONE = 0,
00234     RT_LIGHT = 10,
00235     RT_LIBSVM = 20
00236 };
00237 
00238 enum EPreProcType
00239 {
00240     P_UNKNOWN=0,
00241     P_NORMONE=10,
00242     P_LOGPLUSONE=20,
00243     P_SORTWORDSTRING=30,
00244     P_SORTULONGSTRING=40,
00245     P_SORTWORD=50,
00246     P_PRUNEVARSUBMEAN=60
00247 };
00248 
00249 enum EKernelProperty
00250 {
00251     KP_NONE = 0,
00252     KP_LINADD = 1,  // Kernels that can be optimized via doing normal updates w + dw
00253     KP_KERNCOMBINATION = 2, // Kernels that are infact a linear combination of subkernels K=\sum_i b_i*K_i
00254     KP_BATCHEVALUATION = 4  // Kernels that can on the fly generate normals in linadd and more quickly/memory efficient process batches instead of single examples
00255 };
00256 
00257 enum EFeatureType
00258 {
00259     F_UNKNOWN = 0,
00260     F_CHAR = 10,
00261     F_BYTE = 20,
00262     F_SHORT = 30,
00263     F_WORD = 40,
00264     F_INT = 50,
00265     F_UINT = 60,
00266     F_LONG = 70,
00267     F_ULONG = 80,
00268     F_SHORTREAL = 90,
00269     F_DREAL = 100,
00270     F_LONGREAL = 110,
00271     F_ANY = 1000
00272 };
00273 
00274 enum EFeatureClass
00275 {
00276     C_UNKNOWN = 0,
00277     C_SIMPLE = 10,
00278     C_SPARSE = 20,
00279     C_STRING = 30,
00280     C_COMBINED = 40,
00281     C_ANY = 50,
00282     C_MINDYGRAM = 60
00283 };
00284 
00286 enum E_ALPHABET
00287 {
00289     DNA=0,
00290 
00292     RAWDNA=1,
00293 
00295     RNA=2,
00296 
00298     PROTEIN=3,
00299 
00301     ALPHANUM=5,
00302 
00304     CUBE=6,
00305 
00307     RAWBYTE=7,
00308 
00310     IUPAC_NUCLEIC_ACID=8,
00311 
00313     IUPAC_AMINO_ACID=9,
00314 
00316     NONE=10,
00317 
00319     UNKNOWN=11,
00320 };
00321 
00323 
00324 //#define TMP_DIR "/tmp/"
00325 
00326 #endif

SHOGUN Machine Learning Toolbox - Documentation