11#ifndef EIGEN_VECTORBLOCK_H
12#define EIGEN_VECTORBLOCK_H
48template<
typename VectorType,
int Size>
49struct traits<VectorBlock<VectorType, Size> >
50 :
public traits<Block<VectorType,
51 traits<VectorType>::Flags & RowMajorBit ? 1 : Size,
52 traits<VectorType>::Flags & RowMajorBit ? Size : 1> >
58 :
public Block<VectorType,
59 internal::traits<VectorType>::Flags & RowMajorBit ? 1 : Size,
60 internal::traits<VectorType>::Flags & RowMajorBit ? Size : 1>
62 typedef Block<VectorType,
63 internal::traits<VectorType>::Flags &
RowMajorBit ? 1 : Size,
64 internal::traits<VectorType>::Flags &
RowMajorBit ? Size : 1> Base;
66 IsColVector = !(internal::traits<VectorType>::Flags &
RowMajorBit)
71 using Base::operator=;
75 inline VectorBlock(VectorType& vector, Index start, Index size)
77 IsColVector ? start : 0, IsColVector ? 0 : start,
78 IsColVector ? size : 1, IsColVector ? 1 : size)
86 : Base(vector, IsColVector ? start : 0, IsColVector ? 0 : start)
109template<
typename Derived>
110inline typename DenseBase<Derived>::SegmentReturnType
113 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
114 return SegmentReturnType(derived(), start, size);
118template<
typename Derived>
119inline typename DenseBase<Derived>::ConstSegmentReturnType
122 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
123 return ConstSegmentReturnType(derived(), start, size);
141template<
typename Derived>
142inline typename DenseBase<Derived>::SegmentReturnType
145 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
146 return SegmentReturnType(derived(), 0, size);
150template<
typename Derived>
151inline typename DenseBase<Derived>::ConstSegmentReturnType
154 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
155 return ConstSegmentReturnType(derived(), 0, size);
173template<
typename Derived>
174inline typename DenseBase<Derived>::SegmentReturnType
177 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
178 return SegmentReturnType(derived(), this->size() - size, size);
182template<
typename Derived>
183inline typename DenseBase<Derived>::ConstSegmentReturnType
186 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
187 return ConstSegmentReturnType(derived(), this->size() - size, size);
203template<
typename Derived>
208 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
209 return typename FixedSegmentReturnType<Size>::Type(derived(), start);
213template<
typename Derived>
218 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
219 return typename ConstFixedSegmentReturnType<Size>::Type(derived(), start);
233template<
typename Derived>
238 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
239 return typename FixedSegmentReturnType<Size>::Type(derived(), 0);
243template<
typename Derived>
248 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
249 return typename ConstFixedSegmentReturnType<Size>::Type(derived(), 0);
263template<
typename Derived>
268 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
269 return typename FixedSegmentReturnType<Size>::Type(derived(), size() - Size);
273template<
typename Derived>
278 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
279 return typename ConstFixedSegmentReturnType<Size>::Type(derived(), size() - Size);
Block(VectorType &xpr, Index i)
Definition Block.h:109
Base class for all dense matrices, vectors, and arrays.
Definition DenseBase.h:38
internal::traits< Derived >::Index Index
The type of indices.
Definition DenseBase.h:51
SegmentReturnType tail(Index size)
Definition VectorBlock.h:175
SegmentReturnType head(Index size)
Definition VectorBlock.h:143
SegmentReturnType segment(Index start, Index size)
Definition VectorBlock.h:111
VectorBlock(VectorType &vector, Index start)
Definition VectorBlock.h:85
VectorBlock(VectorType &vector, Index start, Index size)
Definition VectorBlock.h:75
const unsigned int RowMajorBit
Definition Constants.h:48