[pktools] 190/375: error in hist in StatFactory

Bas Couwenberg sebastic at xs4all.nl
Wed Dec 3 21:54:13 UTC 2014


This is an automated email from the git hooks/post-receive script.

sebastic-guest pushed a commit to branch upstream-master
in repository pktools.

commit 3d78193d2900fe4613449e1231c54d6b86fb88f2
Author: Default Seadas User <seadas-user at localhost>
Date:   Tue Feb 25 17:30:35 2014 +0100

    error in hist in StatFactory
---
 src/algorithms/StatFactory.h |  2 +-
 src/apps/pkstatascii.cc      | 56 +-------------------------------------------
 2 files changed, 2 insertions(+), 56 deletions(-)

diff --git a/src/algorithms/StatFactory.h b/src/algorithms/StatFactory.h
index e59b192..b8e3e3d 100644
--- a/src/algorithms/StatFactory.h
+++ b/src/algorithms/StatFactory.h
@@ -619,7 +619,7 @@ template<class T> void  StatFactory::distribution(const std::vector<T>& input, t
       if(*it==maximum)
         theBin=nbin-1;
       else if(*it>minimum && *it<maximum)
-        theBin=static_cast<int>(static_cast<double>((nbin-1)*(*it)-minimum)/(maximum-minimum));
+        theBin=static_cast<int>(static_cast<double>((nbin-1)*(*it-minimum)/(maximum-minimum)));
       ++output[theBin];
       // if(*it==maximum)
       //   ++output[nbin-1];
diff --git a/src/apps/pkstatascii.cc b/src/apps/pkstatascii.cc
index 787607e..fd9c832 100644
--- a/src/apps/pkstatascii.cc
+++ b/src/apps/pkstatascii.cc
@@ -201,6 +201,7 @@ int main(int argc, char *argv[])
       cout << "min value column " << col_opt[icol] << ": " << stat.min(dataVector[icol]) << endl;
     if(max_opt[0])
       cout << "max value column " << col_opt[icol] << ": " << stat.max(dataVector[icol]) << endl;
+
     if(histogram_opt[0]){
       //todo: support kernel density function and estimate sigma as in practical estimate of the bandwith in http://en.wikipedia.org/wiki/Kernel_density_estimation
       double sigma=0;
@@ -217,62 +218,8 @@ int main(int argc, char *argv[])
         else
           std::cout << "calculating histogram for col " << icol << std::endl;
       }
-      //test
-      // cout << "debug0" << endl;
-      // cout << "dataVector.size(): " << dataVector.size() << endl;
-      // cout << "statVector.size(): " << statVector.size() << endl;
-
-      // double theMinValue=0;
-      // double theMaxValue=0;
-      
-      // stat.minmax(dataVector[icol],dataVector[icol].begin(),dataVector[icol].end(),theMinValue,theMaxValue);
-      // if(minValue<maxValue&&minValue>theMinValue)
-      // 	theMinValue=minValue;
-      // if(minValue<maxValue&&maxValue<theMaxValue)
-      // 	theMaxValue=maxValue;
-
-      // //todo: check...
-      // minValue=theMinValue;
-      // maxValue=theMaxValue;
-
-      // if(maxValue<=minValue){
-      // 	std::ostringstream s;
-      // 	s<<"Error: could not calculate distribution (min>=max)";
-      // 	throw(s.str());
-      // }
-      // assert(nbin);
-      // assert(dataVector[icol].size());
-      // if(statVector[icol].size()!=nbin){
-      // 	statVector[icol].resize(nbin);
-      // 	for(int i=0;i<nbin;statVector[icol][i++]=0);
-      // }
-      // typename std::vector<double>::const_iterator it;
-      // for(it=dataVector[icol].begin();it!=dataVector[icol].end();++it){
-      // 	if(*it<minValue)
-      // 	  continue;
-      // 	if(*it>maxValue)
-      // 	  continue;
-      // 	if(stat.isNoData(*it))
-      // 	  continue;
-      // 	int theBin=0;
-      // 	if(*it==maxValue)
-      // 	  theBin=nbin-1;
-      // 	else if(*it>minValue && *it<maxValue)
-      // 	  theBin=static_cast<int>(static_cast<double>((nbin-1)*(*it)-minValue)/(maxValue-minValue));
-      // 	assert(theBin<statVector[icol].size());
-      // 	++statVector[icol][theBin];
-      // 	// if(*it==maxValue)
-      // 	//   ++statVector[icol][nbin-1];
-      // 	// else if(*it>=minValue && *it<maxValue)
-      // 	//   ++statVector[icol][static_cast<int>(static_cast<double>((*it)-minValue)/(maxValue-minValue)*nbin)];
-      // }
 
-      // exit(0);
-      //end test
-      
       stat.distribution(dataVector[icol],dataVector[icol].begin(),dataVector[icol].end(),statVector[icol],nbin,minValue,maxValue,sigma);
-      //test
-      cout << "debug1" << endl;
       if(verbose_opt[0])
         std::cout << "min and max values: " << minValue << ", " << maxValue << std::endl;
     }
@@ -300,7 +247,6 @@ int main(int argc, char *argv[])
       else
 	binValue=minValue+static_cast<double>(maxValue-minValue)*(irow+0.5)/nbin;
       std::cout << binValue << " ";
-      // std::cout << minValue+static_cast<double>(maxValue-minValue)*(irow+0.5)/nbin << " ";
       for(int icol=0;icol<col_opt.size();++icol){
         if(relative_opt[0])
           std::cout << 100.0*static_cast<double>(statVector[icol][irow])/static_cast<double>(dataVector[icol].size());

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pktools.git



More information about the Pkg-grass-devel mailing list