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());
401 inline typename NRowsBlockXpr<N>::Type topRows()
403 return typename NRowsBlockXpr<N>::Type(derived(), 0, 0, N, cols());
408 inline typename ConstNRowsBlockXpr<N>::Type topRows()
const
410 return typename ConstNRowsBlockXpr<N>::Type(derived(), 0, 0, N, cols());
424 inline RowsBlockXpr bottomRows(Index n)
426 return RowsBlockXpr(derived(), rows() - n, 0, n, cols());
430 inline ConstRowsBlockXpr bottomRows(Index n)
const
432 return ConstRowsBlockXpr(derived(), rows() - n, 0, n, cols());
445 inline typename NRowsBlockXpr<N>::Type bottomRows()
447 return typename NRowsBlockXpr<N>::Type(derived(), rows() - N, 0, N, cols());
452 inline typename ConstNRowsBlockXpr<N>::Type bottomRows()
const
454 return typename ConstNRowsBlockXpr<N>::Type(derived(), rows() - N, 0, N, cols());
469 inline RowsBlockXpr middleRows(Index startRow, Index numRows)
471 return RowsBlockXpr(derived(), startRow, 0, numRows, cols());
475 inline ConstRowsBlockXpr middleRows(Index startRow, Index numRows)
const
477 return ConstRowsBlockXpr(derived(), startRow, 0, numRows, cols());
491 inline typename NRowsBlockXpr<N>::Type middleRows(Index startRow)
493 return typename NRowsBlockXpr<N>::Type(derived(), startRow, 0, N, cols());
498 inline typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow)
const
500 return typename ConstNRowsBlockXpr<N>::Type(derived(), startRow, 0, N, cols());
514 inline ColsBlockXpr leftCols(Index n)
516 return ColsBlockXpr(derived(), 0, 0, rows(), n);
520 inline ConstColsBlockXpr leftCols(Index n)
const
522 return ConstColsBlockXpr(derived(), 0, 0, rows(), n);
535 inline typename NColsBlockXpr<N>::Type leftCols()
537 return typename NColsBlockXpr<N>::Type(derived(), 0, 0, rows(), N);
542 inline typename ConstNColsBlockXpr<N>::Type leftCols()
const
544 return typename ConstNColsBlockXpr<N>::Type(derived(), 0, 0, rows(), N);
558 inline ColsBlockXpr rightCols(Index n)
560 return ColsBlockXpr(derived(), 0, cols() - n, rows(), n);
564 inline ConstColsBlockXpr rightCols(Index n)
const
566 return ConstColsBlockXpr(derived(), 0, cols() - n, rows(), n);
579 inline typename NColsBlockXpr<N>::Type rightCols()
581 return typename NColsBlockXpr<N>::Type(derived(), 0, cols() - N, rows(), N);
586 inline typename ConstNColsBlockXpr<N>::Type rightCols()
const
588 return typename ConstNColsBlockXpr<N>::Type(derived(), 0, cols() - N, rows(), N);
603 inline ColsBlockXpr middleCols(Index startCol, Index numCols)
605 return ColsBlockXpr(derived(), 0, startCol, rows(), numCols);
609 inline ConstColsBlockXpr middleCols(Index startCol, Index numCols)
const
611 return ConstColsBlockXpr(derived(), 0, startCol, rows(), numCols);
625 inline typename NColsBlockXpr<N>::Type middleCols(Index startCol)
627 return typename NColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), N);
632 inline typename ConstNColsBlockXpr<N>::Type middleCols(Index startCol)
const
634 return typename ConstNColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), N);
655 template<
int BlockRows,
int BlockCols>
656 inline Block<Derived, BlockRows, BlockCols> block(Index startRow, Index startCol)
658 return Block<Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
662 template<
int BlockRows,
int BlockCols>
663 inline const Block<const Derived, BlockRows, BlockCols> block(Index startRow, Index startCol)
const
665 return Block<const Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
687 template<
int BlockRows,
int BlockCols>
688 inline Block<Derived, BlockRows, BlockCols> block(Index startRow, Index startCol,
689 Index blockRows, Index blockCols)
691 return Block<Derived, BlockRows, BlockCols>(derived(), startRow, startCol, blockRows, blockCols);
695 template<
int BlockRows,
int BlockCols>
696 inline const Block<const Derived, BlockRows, BlockCols> block(Index startRow, Index startCol,
697 Index blockRows, Index blockCols)
const
699 return Block<const Derived, BlockRows, BlockCols>(derived(), startRow, startCol, blockRows, blockCols);
708 inline ColXpr col(Index i)
710 return ColXpr(derived(), i);
714 inline ConstColXpr col(Index i)
const
716 return ConstColXpr(derived(), i);
725 inline RowXpr row(Index i)
727 return RowXpr(derived(), i);
731 inline ConstRowXpr row(Index i)
const
733 return ConstRowXpr(derived(), i);
752 inline SegmentReturnType segment(Index start, Index vecSize)
754 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
755 return SegmentReturnType(derived(), start, vecSize);
760 inline ConstSegmentReturnType segment(Index start, Index vecSize)
const
762 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
763 return ConstSegmentReturnType(derived(), start, vecSize);
781 inline SegmentReturnType head(Index vecSize)
783 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
784 return SegmentReturnType(derived(), 0, vecSize);
788 inline ConstSegmentReturnType
789 head(Index vecSize)
const
791 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
792 return ConstSegmentReturnType(derived(), 0, vecSize);
810 inline SegmentReturnType tail(Index vecSize)
812 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
813 return SegmentReturnType(derived(), this->size() - vecSize, vecSize);
817 inline ConstSegmentReturnType tail(Index vecSize)
const
819 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
820 return ConstSegmentReturnType(derived(), this->size() - vecSize, vecSize);
837 inline typename FixedSegmentReturnType<Size>::Type segment(Index start)
839 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
840 return typename FixedSegmentReturnType<Size>::Type(derived(), start);
845 inline typename ConstFixedSegmentReturnType<Size>::Type segment(Index start)
const
847 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
848 return typename ConstFixedSegmentReturnType<Size>::Type(derived(), start);
863 inline typename FixedSegmentReturnType<Size>::Type head()
865 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
866 return typename FixedSegmentReturnType<Size>::Type(derived(), 0);
871 inline typename ConstFixedSegmentReturnType<Size>::Type head()
const
873 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
874 return typename ConstFixedSegmentReturnType<Size>::Type(derived(), 0);
889 inline typename FixedSegmentReturnType<Size>::Type tail()
891 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
892 return typename FixedSegmentReturnType<Size>::Type(derived(), size() - Size);
897 inline typename ConstFixedSegmentReturnType<Size>::Type tail()
const
899 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
900 return typename ConstFixedSegmentReturnType<Size>::Type(derived(), size() - Size);
const int Dynamic
Definition: Constants.h:21