コード例 #1
0
ファイル: eigen2_sum.cpp プロジェクト: 151706061/ParaView
template<typename VectorType> void vectorSum(const VectorType& w)
{
  typedef typename VectorType::Scalar Scalar;
  int size = w.size();

  VectorType v = VectorType::Random(size);
  for(int i = 1; i < size; i++)
  {
    Scalar s = Scalar(0);
    for(int j = 0; j < i; j++) s += v[j];
    VERIFY_IS_APPROX(s, v.start(i).sum());
  }

  for(int i = 0; i < size-1; i++)
  {
    Scalar s = Scalar(0);
    for(int j = i; j < size; j++) s += v[j];
    VERIFY_IS_APPROX(s, v.end(size-i).sum());
  }

  for(int i = 0; i < size/2; i++)
  {
    Scalar s = Scalar(0);
    for(int j = i; j < size-i; j++) s += v[j];
    VERIFY_IS_APPROX(s, v.segment(i, size-2*i).sum());
  }
}
コード例 #2
0
ファイル: vector_proxy.hpp プロジェクト: GnsP/viennacl-dev
 vector_range(VectorType & v, range const & entry_range)
  : base_type(v.handle(), entry_range.size(), v.start() + v.stride() * entry_range.start(), v.stride()) {}
コード例 #3
0
ファイル: vector_proxy.hpp プロジェクト: GnsP/viennacl-dev
 vector_slice(VectorType & v, slice const & entry_slice)
     : base_type(v.handle(), entry_slice.size(), v.start() + v.stride() * entry_slice.start(), v.stride() * entry_slice.stride()) {}