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-2008 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/RealFeatures.h" 00018 #include "lib/common.h" 00019 00020 #include <stdio.h> 00021 00026 class CPruneVarSubMean : public CSimplePreProc<float64_t> 00027 { 00028 public: 00033 CPruneVarSubMean(bool divide=true); 00034 virtual ~CPruneVarSubMean(); 00035 00037 virtual bool init(CFeatures* f); 00038 00040 virtual bool load_init_data(FILE* src); 00042 virtual bool save_init_data(FILE* dst); 00043 00045 virtual void cleanup(); 00046 00050 virtual float64_t* apply_to_feature_matrix(CFeatures* f); 00051 00054 virtual float64_t* apply_to_feature_vector(float64_t* f, int32_t &len); 00055 00056 protected: 00058 int32_t* idx; 00060 float64_t* mean; 00062 float64_t* std; 00064 int32_t num_idx; 00066 bool divide_by_std; 00067 00069 bool initialized; 00070 }; 00071 #endif