12#ifndef EIGEN_PARSED_BY_DOXYGEN
15typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ColXpr;
16typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ConstColXpr;
18typedef Block<Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowXpr;
19typedef const Block<const Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowXpr;
21typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ColsBlockXpr;
22typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ConstColsBlockXpr;
24typedef Block<Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowsBlockXpr;
25typedef const Block<const Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowsBlockXpr;
27template<
int N>
struct NColsBlockXpr {
typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
28template<
int N>
struct ConstNColsBlockXpr {
typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
30template<
int N>
struct NRowsBlockXpr {
typedef Block<Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
31template<
int N>
struct ConstNRowsBlockXpr {
typedef const Block<const Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
33typedef VectorBlock<Derived> SegmentReturnType;
34typedef const VectorBlock<const Derived> ConstSegmentReturnType;
57inline Block<Derived> block(Index startRow, Index startCol, Index blockRows, Index blockCols)
59 return Block<Derived>(derived(), startRow, startCol, blockRows, blockCols);
64inline const Block<const Derived> block(Index startRow, Index startCol, Index blockRows, Index blockCols)
const
66 return Block<const Derived>(derived(), startRow, startCol, blockRows, blockCols);
83inline Block<Derived> topRightCorner(Index cRows, Index cCols)
85 return Block<Derived>(derived(), 0, cols() - cCols, cRows, cCols);
90inline const Block<const Derived> topRightCorner(Index cRows, Index cCols)
const
92 return Block<const Derived>(derived(), 0, cols() - cCols, cRows, cCols);
105template<
int CRows,
int CCols>
107inline Block<Derived, CRows, CCols> topRightCorner()
109 return Block<Derived, CRows, CCols>(derived(), 0, cols() - CCols);
113template<
int CRows,
int CCols>
115inline const Block<const Derived, CRows, CCols> topRightCorner()
const
117 return Block<const Derived, CRows, CCols>(derived(), 0, cols() - CCols);
137template<
int CRows,
int CCols>
138inline Block<Derived, CRows, CCols> topRightCorner(Index cRows, Index cCols)
140 return Block<Derived, CRows, CCols>(derived(), 0, cols() - cCols, cRows, cCols);
144template<
int CRows,
int CCols>
145inline const Block<const Derived, CRows, CCols> topRightCorner(Index cRows, Index cCols)
const
147 return Block<const Derived, CRows, CCols>(derived(), 0, cols() - cCols, cRows, cCols);
163inline Block<Derived> topLeftCorner(Index cRows, Index cCols)
165 return Block<Derived>(derived(), 0, 0, cRows, cCols);
170inline const Block<const Derived> topLeftCorner(Index cRows, Index cCols)
const
172 return Block<const Derived>(derived(), 0, 0, cRows, cCols);
184template<
int CRows,
int CCols>
186inline Block<Derived, CRows, CCols> topLeftCorner()
188 return Block<Derived, CRows, CCols>(derived(), 0, 0);
192template<
int CRows,
int CCols>
194inline const Block<const Derived, CRows, CCols> topLeftCorner()
const
196 return Block<const Derived, CRows, CCols>(derived(), 0, 0);
216template<
int CRows,
int CCols>
217inline Block<Derived, CRows, CCols> topLeftCorner(Index cRows, Index cCols)
219 return Block<Derived, CRows, CCols>(derived(), 0, 0, cRows, cCols);
223template<
int CRows,
int CCols>
224inline const Block<const Derived, CRows, CCols> topLeftCorner(Index cRows, Index cCols)
const
226 return Block<const Derived, CRows, CCols>(derived(), 0, 0, cRows, cCols);
242inline Block<Derived> bottomRightCorner(Index cRows, Index cCols)
244 return Block<Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
249inline const Block<const Derived> bottomRightCorner(Index cRows, Index cCols)
const
251 return Block<const Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
263template<
int CRows,
int CCols>
265inline Block<Derived, CRows, CCols> bottomRightCorner()
267 return Block<Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
271template<
int CRows,
int CCols>
273inline const Block<const Derived, CRows, CCols> bottomRightCorner()
const
275 return Block<const Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
295template<
int CRows,
int CCols>
296inline Block<Derived, CRows, CCols> bottomRightCorner(Index cRows, Index cCols)
298 return Block<Derived, CRows, CCols>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
302template<
int CRows,
int CCols>
303inline const Block<const Derived, CRows, CCols> bottomRightCorner(Index cRows, Index cCols)
const
305 return Block<const Derived, CRows, CCols>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
321inline Block<Derived> bottomLeftCorner(Index cRows, Index cCols)
323 return Block<Derived>(derived(), rows() - cRows, 0, cRows, cCols);
328inline const Block<const Derived> bottomLeftCorner(Index cRows, Index cCols)
const
330 return Block<const Derived>(derived(), rows() - cRows, 0, cRows, cCols);
342template<
int CRows,
int CCols>
344inline Block<Derived, CRows, CCols> bottomLeftCorner()
346 return Block<Derived, CRows, CCols>(derived(), rows() - CRows, 0);
350template<
int CRows,
int CCols>
352inline const Block<const Derived, CRows, CCols> bottomLeftCorner()
const
354 return Block<const Derived, CRows, CCols>(derived(), rows() - CRows, 0);
374template<
int CRows,
int CCols>
375inline Block<Derived, CRows, CCols> bottomLeftCorner(Index cRows, Index cCols)
377 return Block<Derived, CRows, CCols>(derived(), rows() - cRows, 0, cRows, cCols);
381template<
int CRows,
int CCols>
382inline const Block<const Derived, CRows, CCols> bottomLeftCorner(Index cRows, Index cCols)
const
384 return Block<const Derived, CRows, CCols>(derived(), rows() - cRows, 0, cRows, cCols);
399inline RowsBlockXpr topRows(Index n)
401 return RowsBlockXpr(derived(), 0, 0, n, cols());
406inline ConstRowsBlockXpr topRows(Index n)
const
408 return ConstRowsBlockXpr(derived(), 0, 0, n, cols());
426inline typename NRowsBlockXpr<N>::Type topRows(Index n = N)
428 return typename NRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
434inline typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N)
const
436 return typename ConstNRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
451inline RowsBlockXpr bottomRows(Index n)
453 return RowsBlockXpr(derived(), rows() - n, 0, n, cols());
458inline ConstRowsBlockXpr bottomRows(Index n)
const
460 return ConstRowsBlockXpr(derived(), rows() - n, 0, n, cols());
478inline typename NRowsBlockXpr<N>::Type bottomRows(Index n = N)
480 return typename NRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
486inline typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N)
const
488 return typename ConstNRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
504inline RowsBlockXpr middleRows(Index startRow, Index n)
506 return RowsBlockXpr(derived(), startRow, 0, n, cols());
511inline ConstRowsBlockXpr middleRows(Index startRow, Index n)
const
513 return ConstRowsBlockXpr(derived(), startRow, 0, n, cols());
532inline typename NRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N)
534 return typename NRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
540inline typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N)
const
542 return typename ConstNRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
557inline ColsBlockXpr leftCols(Index n)
559 return ColsBlockXpr(derived(), 0, 0, rows(), n);
564inline ConstColsBlockXpr leftCols(Index n)
const
566 return ConstColsBlockXpr(derived(), 0, 0, rows(), n);
584inline typename NColsBlockXpr<N>::Type leftCols(Index n = N)
586 return typename NColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
592inline typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N)
const
594 return typename ConstNColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
609inline ColsBlockXpr rightCols(Index n)
611 return ColsBlockXpr(derived(), 0, cols() - n, rows(), n);
616inline ConstColsBlockXpr rightCols(Index n)
const
618 return ConstColsBlockXpr(derived(), 0, cols() - n, rows(), n);
636inline typename NColsBlockXpr<N>::Type rightCols(Index n = N)
638 return typename NColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
644inline typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N)
const
646 return typename ConstNColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
662inline ColsBlockXpr middleCols(Index startCol, Index numCols)
664 return ColsBlockXpr(derived(), 0, startCol, rows(), numCols);
669inline ConstColsBlockXpr middleCols(Index startCol, Index numCols)
const
671 return ConstColsBlockXpr(derived(), 0, startCol, rows(), numCols);
690inline typename NColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N)
692 return typename NColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
698inline typename ConstNColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N)
const
700 return typename ConstNColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
721template<
int BlockRows,
int BlockCols>
723inline Block<Derived, BlockRows, BlockCols> block(Index startRow, Index startCol)
725 return Block<Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
729template<
int BlockRows,
int BlockCols>
731inline const Block<const Derived, BlockRows, BlockCols> block(Index startRow, Index startCol)
const
733 return Block<const Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
755template<
int BlockRows,
int BlockCols>
756inline Block<Derived, BlockRows, BlockCols> block(Index startRow, Index startCol,
757 Index blockRows, Index blockCols)
759 return Block<Derived, BlockRows, BlockCols>(derived(), startRow, startCol, blockRows, blockCols);
763template<
int BlockRows,
int BlockCols>
764inline const Block<const Derived, BlockRows, BlockCols> block(Index startRow, Index startCol,
765 Index blockRows, Index blockCols)
const
767 return Block<const Derived, BlockRows, BlockCols>(derived(), startRow, startCol, blockRows, blockCols);
777inline ColXpr col(Index i)
779 return ColXpr(derived(), i);
784inline ConstColXpr col(Index i)
const
786 return ConstColXpr(derived(), i);
796inline RowXpr row(Index i)
798 return RowXpr(derived(), i);
803inline ConstRowXpr row(Index i)
const
805 return ConstRowXpr(derived(), i);
825inline SegmentReturnType segment(Index start, Index n)
827 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
828 return SegmentReturnType(derived(), start, n);
834inline ConstSegmentReturnType segment(Index start, Index n)
const
836 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
837 return ConstSegmentReturnType(derived(), start, n);
856inline SegmentReturnType head(Index n)
858 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
859 return SegmentReturnType(derived(), 0, n);
864inline ConstSegmentReturnType head(Index n)
const
866 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
867 return ConstSegmentReturnType(derived(), 0, n);
886inline SegmentReturnType tail(Index n)
888 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
889 return SegmentReturnType(derived(), this->size() - n, n);
894inline ConstSegmentReturnType tail(Index n)
const
896 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
897 return ConstSegmentReturnType(derived(), this->size() - n, n);
918inline typename FixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
920 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
921 return typename FixedSegmentReturnType<N>::Type(derived(), start, n);
927inline typename ConstFixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
const
929 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
930 return typename ConstFixedSegmentReturnType<N>::Type(derived(), start, n);
950inline typename FixedSegmentReturnType<N>::Type head(Index n = N)
952 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
953 return typename FixedSegmentReturnType<N>::Type(derived(), 0, n);
959inline typename ConstFixedSegmentReturnType<N>::Type head(Index n = N)
const
961 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
962 return typename ConstFixedSegmentReturnType<N>::Type(derived(), 0, n);
982inline typename FixedSegmentReturnType<N>::Type tail(Index n = N)
984 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
985 return typename FixedSegmentReturnType<N>::Type(derived(), size() - n);
991inline typename ConstFixedSegmentReturnType<N>::Type tail(Index n = N)
const
993 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
994 return typename ConstFixedSegmentReturnType<N>::Type(derived(), size() - n);
Definition BlockMethods.h:36
Definition BlockMethods.h:28
Definition BlockMethods.h:31
Definition BlockMethods.h:35
Definition BlockMethods.h:27
Definition BlockMethods.h:30