12 #ifndef EIGEN_PARSED_BY_DOXYGEN
15 typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ColXpr;
16 typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ConstColXpr;
18 typedef Block<Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowXpr;
19 typedef const Block<const Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowXpr;
21 typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime,
Dynamic, !IsRowMajor> ColsBlockXpr;
22 typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime,
Dynamic, !IsRowMajor> ConstColsBlockXpr;
24 typedef Block<Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowsBlockXpr;
25 typedef const Block<const Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowsBlockXpr;
27 template<
int N>
struct NColsBlockXpr {
typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
28 template<
int N>
struct ConstNColsBlockXpr {
typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
30 template<
int N>
struct NRowsBlockXpr {
typedef Block<Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
31 template<
int N>
struct ConstNRowsBlockXpr {
typedef const Block<const Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
33 typedef VectorBlock<Derived> SegmentReturnType;
34 typedef const VectorBlock<const Derived> ConstSegmentReturnType;
35 template<
int Size>
struct FixedSegmentReturnType {
typedef VectorBlock<Derived, Size> Type; };
36 template<
int Size>
struct ConstFixedSegmentReturnType {
typedef const VectorBlock<const Derived, Size> Type; };
38 #endif // not EIGEN_PARSED_BY_DOXYGEN
56 inline Block<Derived> block(Index startRow, Index startCol, Index blockRows, Index blockCols)
58 return Block<Derived>(derived(), startRow, startCol, blockRows, blockCols);
62 inline const Block<const Derived> block(Index startRow, Index startCol, Index blockRows, Index blockCols)
const
64 return Block<const Derived>(derived(), startRow, startCol, blockRows, blockCols);
80 inline Block<Derived> topRightCorner(Index cRows, Index cCols)
82 return Block<Derived>(derived(), 0, cols() - cCols, cRows, cCols);
86 inline const Block<const Derived> topRightCorner(Index cRows, Index cCols)
const
88 return Block<const Derived>(derived(), 0, cols() - cCols, cRows, cCols);
101 template<
int CRows,
int CCols>
102 inline Block<Derived, CRows, CCols> topRightCorner()
104 return Block<Derived, CRows, CCols>(derived(), 0, cols() - CCols);
108 template<
int CRows,
int CCols>
109 inline const Block<const Derived, CRows, CCols> topRightCorner()
const
111 return Block<const Derived, CRows, CCols>(derived(), 0, cols() - CCols);
131 template<
int CRows,
int CCols>
132 inline Block<Derived, CRows, CCols> topRightCorner(Index cRows, Index cCols)
134 return Block<Derived, CRows, CCols>(derived(), 0, cols() - cCols, cRows, cCols);
138 template<
int CRows,
int CCols>
139 inline const Block<const Derived, CRows, CCols> topRightCorner(Index cRows, Index cCols)
const
141 return Block<const Derived, CRows, CCols>(derived(), 0, cols() - cCols, cRows, cCols);
156 inline Block<Derived> topLeftCorner(Index cRows, Index cCols)
158 return Block<Derived>(derived(), 0, 0, cRows, cCols);
162 inline const Block<const Derived> topLeftCorner(Index cRows, Index cCols)
const
164 return Block<const Derived>(derived(), 0, 0, cRows, cCols);
176 template<
int CRows,
int CCols>
177 inline Block<Derived, CRows, CCols> topLeftCorner()
179 return Block<Derived, CRows, CCols>(derived(), 0, 0);
183 template<
int CRows,
int CCols>
184 inline const Block<const Derived, CRows, CCols> topLeftCorner()
const
186 return Block<const Derived, CRows, CCols>(derived(), 0, 0);
206 template<
int CRows,
int CCols>
207 inline Block<Derived, CRows, CCols> topLeftCorner(Index cRows, Index cCols)
209 return Block<Derived, CRows, CCols>(derived(), 0, 0, cRows, cCols);
213 template<
int CRows,
int CCols>
214 inline const Block<const Derived, CRows, CCols> topLeftCorner(Index cRows, Index cCols)
const
216 return Block<const Derived, CRows, CCols>(derived(), 0, 0, cRows, cCols);
231 inline Block<Derived> bottomRightCorner(Index cRows, Index cCols)
233 return Block<Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
237 inline const Block<const Derived> bottomRightCorner(Index cRows, Index cCols)
const
239 return Block<const Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
251 template<
int CRows,
int CCols>
252 inline Block<Derived, CRows, CCols> bottomRightCorner()
254 return Block<Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
258 template<
int CRows,
int CCols>
259 inline const Block<const Derived, CRows, CCols> bottomRightCorner()
const
261 return Block<const Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
281 template<
int CRows,
int CCols>
282 inline Block<Derived, CRows, CCols> bottomRightCorner(Index cRows, Index cCols)
284 return Block<Derived, CRows, CCols>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
288 template<
int CRows,
int CCols>
289 inline const Block<const Derived, CRows, CCols> bottomRightCorner(Index cRows, Index cCols)
const
291 return Block<const Derived, CRows, CCols>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
306 inline Block<Derived> bottomLeftCorner(Index cRows, Index cCols)
308 return Block<Derived>(derived(), rows() - cRows, 0, cRows, cCols);
312 inline const Block<const Derived> bottomLeftCorner(Index cRows, Index cCols)
const
314 return Block<const Derived>(derived(), rows() - cRows, 0, cRows, cCols);
326 template<
int CRows,
int CCols>
327 inline Block<Derived, CRows, CCols> bottomLeftCorner()
329 return Block<Derived, CRows, CCols>(derived(), rows() - CRows, 0);
333 template<
int CRows,
int CCols>
334 inline const Block<const Derived, CRows, CCols> bottomLeftCorner()
const
336 return Block<const Derived, CRows, CCols>(derived(), rows() - CRows, 0);
356 template<
int CRows,
int CCols>
357 inline Block<Derived, CRows, CCols> bottomLeftCorner(Index cRows, Index cCols)
359 return Block<Derived, CRows, CCols>(derived(), rows() - cRows, 0, cRows, cCols);
363 template<
int CRows,
int CCols>
364 inline const Block<const Derived, CRows, CCols> bottomLeftCorner(Index cRows, Index cCols)
const
366 return Block<const Derived, CRows, CCols>(derived(), rows() - cRows, 0, cRows, cCols);
380 inline RowsBlockXpr topRows(Index n)
382 return RowsBlockXpr(derived(), 0, 0, n, cols());
386 inline ConstRowsBlockXpr topRows(Index n)
const
388 return ConstRowsBlockXpr(derived(), 0, 0, n, cols());
405 inline typename NRowsBlockXpr<N>::Type topRows(Index n = N)
407 return typename NRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
412 inline typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N)
const
414 return typename ConstNRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
428 inline RowsBlockXpr bottomRows(Index n)
430 return RowsBlockXpr(derived(), rows() - n, 0, n, cols());
434 inline ConstRowsBlockXpr bottomRows(Index n)
const
436 return ConstRowsBlockXpr(derived(), rows() - n, 0, n, cols());
453 inline typename NRowsBlockXpr<N>::Type bottomRows(Index n = N)
455 return typename NRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
460 inline typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N)
const
462 return typename ConstNRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
477 inline RowsBlockXpr middleRows(Index startRow, Index n)
479 return RowsBlockXpr(derived(), startRow, 0, n, cols());
483 inline ConstRowsBlockXpr middleRows(Index startRow, Index n)
const
485 return ConstRowsBlockXpr(derived(), startRow, 0, n, cols());
503 inline typename NRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N)
505 return typename NRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
510 inline typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N)
const
512 return typename ConstNRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
526 inline ColsBlockXpr leftCols(Index n)
528 return ColsBlockXpr(derived(), 0, 0, rows(), n);
532 inline ConstColsBlockXpr leftCols(Index n)
const
534 return ConstColsBlockXpr(derived(), 0, 0, rows(), n);
551 inline typename NColsBlockXpr<N>::Type leftCols(Index n = N)
553 return typename NColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
558 inline typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N)
const
560 return typename ConstNColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
574 inline ColsBlockXpr rightCols(Index n)
576 return ColsBlockXpr(derived(), 0, cols() - n, rows(), n);
580 inline ConstColsBlockXpr rightCols(Index n)
const
582 return ConstColsBlockXpr(derived(), 0, cols() - n, rows(), n);
599 inline typename NColsBlockXpr<N>::Type rightCols(Index n = N)
601 return typename NColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
606 inline typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N)
const
608 return typename ConstNColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
623 inline ColsBlockXpr middleCols(Index startCol, Index numCols)
625 return ColsBlockXpr(derived(), 0, startCol, rows(), numCols);
629 inline ConstColsBlockXpr middleCols(Index startCol, Index numCols)
const
631 return ConstColsBlockXpr(derived(), 0, startCol, rows(), numCols);
649 inline typename NColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N)
651 return typename NColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
656 inline typename ConstNColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N)
const
658 return typename ConstNColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
679 template<
int BlockRows,
int BlockCols>
680 inline Block<Derived, BlockRows, BlockCols> block(Index startRow, Index startCol)
682 return Block<Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
686 template<
int BlockRows,
int BlockCols>
687 inline const Block<const Derived, BlockRows, BlockCols> block(Index startRow, Index startCol)
const
689 return Block<const Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
711 template<
int BlockRows,
int BlockCols>
712 inline Block<Derived, BlockRows, BlockCols> block(Index startRow, Index startCol,
713 Index blockRows, Index blockCols)
715 return Block<Derived, BlockRows, BlockCols>(derived(), startRow, startCol, blockRows, blockCols);
719 template<
int BlockRows,
int BlockCols>
720 inline const Block<const Derived, BlockRows, BlockCols> block(Index startRow, Index startCol,
721 Index blockRows, Index blockCols)
const
723 return Block<const Derived, BlockRows, BlockCols>(derived(), startRow, startCol, blockRows, blockCols);
732 inline ColXpr col(Index i)
734 return ColXpr(derived(), i);
738 inline ConstColXpr col(Index i)
const
740 return ConstColXpr(derived(), i);
749 inline RowXpr row(Index i)
751 return RowXpr(derived(), i);
755 inline ConstRowXpr row(Index i)
const
757 return ConstRowXpr(derived(), i);
776 inline SegmentReturnType segment(Index start, Index n)
778 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
779 return SegmentReturnType(derived(), start, n);
784 inline ConstSegmentReturnType segment(Index start, Index n)
const
786 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
787 return ConstSegmentReturnType(derived(), start, n);
805 inline SegmentReturnType head(Index n)
807 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
808 return SegmentReturnType(derived(), 0, n);
812 inline ConstSegmentReturnType head(Index n)
const
814 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
815 return ConstSegmentReturnType(derived(), 0, n);
833 inline SegmentReturnType tail(Index n)
835 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
836 return SegmentReturnType(derived(), this->size() - n, n);
840 inline ConstSegmentReturnType tail(Index n)
const
842 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
843 return ConstSegmentReturnType(derived(), this->size() - n, n);
863 inline typename FixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
865 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
866 return typename FixedSegmentReturnType<N>::Type(derived(), start, n);
871 inline typename ConstFixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
const
873 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
874 return typename ConstFixedSegmentReturnType<N>::Type(derived(), start, n);
893 inline typename FixedSegmentReturnType<N>::Type head(Index n = N)
895 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
896 return typename FixedSegmentReturnType<N>::Type(derived(), 0, n);
901 inline typename ConstFixedSegmentReturnType<N>::Type head(Index n = N)
const
903 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
904 return typename ConstFixedSegmentReturnType<N>::Type(derived(), 0, n);
923 inline typename FixedSegmentReturnType<N>::Type tail(Index n = N)
925 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
926 return typename FixedSegmentReturnType<N>::Type(derived(), size() - n);
931 inline typename ConstFixedSegmentReturnType<N>::Type tail(Index n = N)
const
933 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
934 return typename ConstFixedSegmentReturnType<N>::Type(derived(), size() - n);
const int Dynamic
Definition: Constants.h:21