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 00022 namespace shogun 00023 { 00030 class CPruneVarSubMean : public CSimplePreProc<float64_t> 00031 { 00032 public: 00037 CPruneVarSubMean(bool divide=true); 00038 virtual ~CPruneVarSubMean(); 00039 00041 virtual bool init(CFeatures* f); 00042 00044 virtual void cleanup(); 00045 00049 virtual float64_t* apply_to_feature_matrix(CFeatures* f); 00050 00053 virtual float64_t* apply_to_feature_vector(float64_t* f, int32_t &len); 00054 00056 inline virtual const char* get_name() { return "PruneVarSubMean"; } 00057 00058 protected: 00060 int32_t* idx; 00062 float64_t* mean; 00064 float64_t* std; 00066 int32_t num_idx; 00068 bool divide_by_std; 00069 00071 bool initialized; 00072 }; 00073 } 00074 #endif