void buildColumnIndexSet(SparseVectorT const & v, std::vector<unsigned int> & J) { for (typename SparseVectorT::const_iterator vec_it = v.begin(); vec_it != v.end(); ++vec_it) J.push_back(vec_it->first); std::sort(J.begin(), J.end()); }
void SparseMatrixTemplate_RM<T>::copyCol(int j,const SparseVectorT& x) { Assert(isValidCol(j)); Assert((int)x.n == m); int n=0; for(typename SparseVectorT::const_iterator it=x.begin();it!=x.end();it++) { for(int i=n;i<it->first;i++) rows[i].erase(j); rows[it->first].insert(j,it->second); n=it->first+1; } for(int i=n;i<m;i++) rows[i].erase(j); }
NumericT setup_w(std::vector< std::map<SizeT, NumericT> > const & A, SizeT row, SparseVectorT & w) { NumericT row_norm = 0; w = A[row]; for (typename std::map<SizeT, NumericT>::const_iterator iter_w = w.begin(); iter_w != w.end(); ++iter_w) row_norm += iter_w->second * iter_w->second; return std::sqrt(row_norm); }