00001 // $Revision: 1.5 $ $Author: schwehr $ $Date: 2004/11/03 00:29:22 $ 00002 /* 00003 Copyright (C) 2004 Kurt Schwehr 00004 00005 This program is free software; you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation; either version 2 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 00019 */ 00020 00021 #ifndef _CDF_H_ 00022 #define _CDF_H_ 00023 00024 #include <vector> 00025 00028 00029 00036 size_t cdf(const std::vector<size_t> &data, std::vector<size_t> &value, std::vector<float> percent); 00037 00038 class Cdf { 00039 public: 00041 Cdf(const std::vector<size_t> &data, bool countZeros); 00042 00044 float getCDF(const size_t value); 00046 float getCDF(const size_t value, float &bottom, float &top); 00047 00049 void print(); 00050 00056 void writeForGraphing(const std::string &filename); 00057 00058 private: 00059 std::vector<size_t> value; 00060 std::vector<float> percent; 00061 }; 00062 00063 00064 #endif // _CDF_H_