Home | History | Annotate | Download | only in Eigen2Support
      1 // This file is part of Eigen, a lightweight C++ template library
      2 // for linear algebra.
      3 //
      4 // Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud (at) inria.fr>
      5 // Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 (at) gmail.com>
      6 //
      7 // This Source Code Form is subject to the terms of the Mozilla
      8 // Public License v. 2.0. If a copy of the MPL was not distributed
      9 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
     10 
     11 #ifndef EIGEN2_VECTORBLOCK_H
     12 #define EIGEN2_VECTORBLOCK_H
     13 
     14 namespace Eigen {
     15 
     16 /** \deprecated use DenseMase::head(Index) */
     17 template<typename Derived>
     18 inline VectorBlock<Derived>
     19 MatrixBase<Derived>::start(Index size)
     20 {
     21   EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
     22   return VectorBlock<Derived>(derived(), 0, size);
     23 }
     24 
     25 /** \deprecated use DenseMase::head(Index) */
     26 template<typename Derived>
     27 inline const VectorBlock<const Derived>
     28 MatrixBase<Derived>::start(Index size) const
     29 {
     30   EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
     31   return VectorBlock<const Derived>(derived(), 0, size);
     32 }
     33 
     34 /** \deprecated use DenseMase::tail(Index) */
     35 template<typename Derived>
     36 inline VectorBlock<Derived>
     37 MatrixBase<Derived>::end(Index size)
     38 {
     39   EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
     40   return VectorBlock<Derived>(derived(), this->size() - size, size);
     41 }
     42 
     43 /** \deprecated use DenseMase::tail(Index) */
     44 template<typename Derived>
     45 inline const VectorBlock<const Derived>
     46 MatrixBase<Derived>::end(Index size) const
     47 {
     48   EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
     49   return VectorBlock<const Derived>(derived(), this->size() - size, size);
     50 }
     51 
     52 /** \deprecated use DenseMase::head() */
     53 template<typename Derived>
     54 template<int Size>
     55 inline VectorBlock<Derived,Size>
     56 MatrixBase<Derived>::start()
     57 {
     58   EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
     59   return VectorBlock<Derived,Size>(derived(), 0);
     60 }
     61 
     62 /** \deprecated use DenseMase::head() */
     63 template<typename Derived>
     64 template<int Size>
     65 inline const VectorBlock<const Derived,Size>
     66 MatrixBase<Derived>::start() const
     67 {
     68   EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
     69   return VectorBlock<const Derived,Size>(derived(), 0);
     70 }
     71 
     72 /** \deprecated use DenseMase::tail() */
     73 template<typename Derived>
     74 template<int Size>
     75 inline VectorBlock<Derived,Size>
     76 MatrixBase<Derived>::end()
     77 {
     78   EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
     79   return VectorBlock<Derived, Size>(derived(), size() - Size);
     80 }
     81 
     82 /** \deprecated use DenseMase::tail() */
     83 template<typename Derived>
     84 template<int Size>
     85 inline const VectorBlock<const Derived,Size>
     86 MatrixBase<Derived>::end() const
     87 {
     88   EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
     89   return VectorBlock<const Derived, Size>(derived(), size() - Size);
     90 }
     91 
     92 } // end namespace Eigen
     93 
     94 #endif // EIGEN2_VECTORBLOCK_H
     95