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 <kempe...@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 _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel