[pktools] 295/375: segmentation fault in pkfsann.cc

Bas Couwenberg sebastic at xs4all.nl
Wed Dec 3 21:54:23 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 c601fc896f0b510236addbd379fa93367a729bc6
Author: Pieter Kempeneers <kempenep at gmail.com>
Date:   Wed Jun 25 09:05:47 2014 +0200

    segmentation fault in pkfsann.cc
---
 src/algorithms/FeatureSelector.h | 52 ----------------------------------------
 src/apps/pkfsann.cc              |  1 +
 src/apps/pkfssvm.cc              |  1 +
 3 files changed, 2 insertions(+), 52 deletions(-)

diff --git a/src/algorithms/FeatureSelector.h b/src/algorithms/FeatureSelector.h
index cecb638..52959d7 100644
--- a/src/algorithms/FeatureSelector.h
+++ b/src/algorithms/FeatureSelector.h
@@ -41,21 +41,11 @@ class FeatureSelector
   template<class T> double backward(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int minFeatures, short verbose=0);
   template<class T> double floating(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures=0, double epsilon=0.001, short verbose=0);
   template<class T> double bruteForce(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures=0, short verbose=0);
-  /* //test */
-  /* template<class T> double mytest(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures=0, double epsilon=0.001, short verbose=0); */
   
   private:
     template<class T> double addFeature(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, short verbose=0);
   template<class T> double removeFeature(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int& r, short verbose=0);  
   template<class T> double forwardUnivariate(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures, short verbose=0);
-  /* template<class T> double forward(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, int maxFeatures, short verbose=0); */
-  /* template<class T> double backward(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, int minFeatures, short verbose=0); */
-  /* template<class T> double floating(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, int maxFeatures=0, double epsilon=0.001, short verbose=0); */
-  /* template<class T> double bruteForce(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, int maxFeatures=0, short verbose=0); */
-  
-  /* private: */
-  /*   template<class T> double addFeature(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, short verbose=0); */
-  /* template<class T> double removeFeature(std::vector< Vector2d<T> >& v, double (*getCost)(const std::vector< Vector2d<T> >&), std::list<int>& subset, int& r, short verbose=0);   */
 };
 
 //sequential forward selection Univariate (N single best features)
@@ -218,48 +208,6 @@ template<class T> double FeatureSelector::floating(std::vector< Vector2d<T> >& v
   return cost.back();
 }
 
-//test
-/* template<class T> double FeatureSelector::mytest(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures, double epsilon, short verbose){ */
-  
-/*   std::vector< Vector2d<T> > origv=v; */
-
-/*   std::vector<T> cost; */
-/*   subset.clear(); */
-/*   int k=subset.size(); */
-/*   while(k<maxFeatures){ */
-/*     std::list<int> tmpset=subset;//temporary set of selected features (levels) */
-/*     std::vector< Vector2d<T> > tmp(v.size()); */
-/*     double cost; */
-/*     int maxLevels=v[0][0].size(); */
-/*     for(int ilevel=0;ilevel<maxLevels;++ilevel){ */
-/*       if(find(tmpset.begin(),tmpset.end(),ilevel)!=tmpset.end()) */
-/*   	continue; */
-/*       tmpset.push_back(ilevel); */
-/*       for(int iclass=0;iclass<v.size();++iclass){ */
-/*   	//       tmp[iclass].resize(v[iclass].size()); */
-/*   	v[iclass].selectCols(tmpset,tmp[iclass]); */
-/*       } */
-/*       cost=theCostFactory.getCost(tmp); */
-/*       //    cost.push_back(addFeature(v,theCostFactory,subset,verbose)); */
-/*       std::cout << "tmpset.size: " << tmpset.size() << std::endl; */
-/*       std::cout << "cost " << tmpset.back() << ": " << cost << std::endl; */
-/*       ++k; */
-/*     } */
-/*   } */
-  
-/*   std::list<int> tmpset; */
-/*   tmpset.push_back(0); */
-/*   tmpset.push_back(1); */
-/*   std::vector< Vector2d<T> > tmp(origv.size()); */
-
-/*   for(int ilevel=0;ilevel<tmpset.size();++ilevel){ */
-/*     for(int iclass=0;iclass<origv.size();++iclass){ */
-/*       origv[iclass].selectCols(tmpset,tmp[iclass]); */
-/*     } */
-/*   } */
-/*   return(theCostFactory.getCost(tmp)); */
-/* } */
-
 //brute force search (search for all possible combinations and select best)
 template<class T> double FeatureSelector::bruteForce(std::vector< Vector2d<T> >& v, CostFactory& theCostFactory, std::list<int>& subset, int maxFeatures, short verbose){
   int maxLevels=v[0][0].size();
diff --git a/src/apps/pkfsann.cc b/src/apps/pkfsann.cc
index 1ba14cf..a28faa1 100644
--- a/src/apps/pkfsann.cc
+++ b/src/apps/pkfsann.cc
@@ -597,6 +597,7 @@ int main(int argc, char *argv[])
 
   if(verbose_opt[0])
     cout <<"cost: " << cost << endl;
+  subset.sort();
   for(list<int>::const_iterator lit=subset.begin();lit!=subset.end();++lit)
     std::cout << " -b " << *lit;
   std::cout << std::endl;
diff --git a/src/apps/pkfssvm.cc b/src/apps/pkfssvm.cc
index 7a6fd7c..7d5fb50 100644
--- a/src/apps/pkfssvm.cc
+++ b/src/apps/pkfssvm.cc
@@ -633,6 +633,7 @@ int main(int argc, char *argv[])
 
   if(verbose_opt[0])
     cout <<"cost: " << cost << endl;
+  subset.sort();
   for(list<int>::const_iterator lit=subset.begin();lit!=subset.end();++lit)
     std::cout << " -b " << *lit;
   std::cout << std::endl;

-- 
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