/********************************************************************* Class for getting sorted correlation. Written by k-fleak **********************************************************************/ #include #include #include #ifndef __GETSORTCORR_CPP #define __GETSORTCORR_CPP class GetSortCorr{ private: std::vector > SortCorrSet; public: GetSortCorr(std::vector > &sortIndex, std::vector > > &CorrSet); ~GetSortCorr(); void prints(); }; GetSortCorr::GetSortCorr(std::vector > &sortIndex, std::vector > > &CorrSet){ std::vector >::iterator it; it = sortIndex.begin(); while ( it != sortIndex.end()){ std::vector::iterator it2; it2 = (*it).begin(); std::vector tmpCorr; std::vector tmpVecSigma; std::vector tmpVecNCluster; while ( it2 != (*it).end()){ tmpVecSigma.resize(CorrSet[*it2].size()); tmpVecNCluster.resize(CorrSet[*it2].size()); for ( int j = 0; j < CorrSet[*it2].size(); ++j ){ tmpVecSigma[j] += (CorrSet[*it2][j]).first; tmpVecNCluster[j] += (CorrSet[*it2][j]).second; } ++it2; } for ( int i = 0; i < tmpVecSigma.size(); ++i){ tmpCorr.push_back(tmpVecSigma[i] / tmpVecNCluster[i]); } SortCorrSet.push_back(tmpCorr); tmpCorr.clear(); tmpVecSigma.clear(); tmpVecNCluster.clear(); ++it; } } GetSortCorr::~GetSortCorr(){} void GetSortCorr::prints(){ std::vector >::iterator it; std::vector::iterator it2; it = SortCorrSet.begin(); while ( it != SortCorrSet.end()){ it2 = (*it).begin(); while ( it2 != (*it).end()){ std::cout << *it2 << " "; ++it2; } std::cout << std::endl; ++it; } } #endif