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 Gunnar Raetsch 00008 * Written (W) 1999-2008 Soeren Sonnenburg 00009 * Copyright (C) 1999-2009 Fraunhofer Institute FIRST and Max-Planck-Society 00010 */ 00011 00012 #ifndef _CPRUNE_VAR_SUB_MEAN__H__ 00013 #define _CPRUNE_VAR_SUB_MEAN__H__ 00014 00015 #include "preproc/SimplePreProc.h" 00016 #include "features/Features.h" 00017 #include "features/SimpleFeatures.h" 00018 #include "lib/common.h" 00019 00020 #include <stdio.h> 00021 00028 class CPruneVarSubMean : public CSimplePreProc<float64_t> 00029 { 00030 public: 00035 CPruneVarSubMean(bool divide=true); 00036 virtual ~CPruneVarSubMean(); 00037 00039 virtual bool init(CFeatures* f); 00040 00042 virtual bool load_init_data(FILE* src); 00044 virtual bool save_init_data(FILE* dst); 00045 00047 virtual void cleanup(); 00048 00052 virtual float64_t* apply_to_feature_matrix(CFeatures* f); 00053 00056 virtual float64_t* apply_to_feature_vector(float64_t* f, int32_t &len); 00057 00059 inline virtual const char* get_name() { return "PruneVarSubMean"; } 00060 00061 protected: 00063 int32_t* idx; 00065 float64_t* mean; 00067 float64_t* std; 00069 int32_t num_idx; 00071 bool divide_by_std; 00072 00074 bool initialized; 00075 }; 00076 #endif