示例#1
0
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);
}
示例#3
0
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);
}