Extended sparse unit-test: nested blocks and InnerIterators.

Block specialization for sparse matrices.
InnerIterators for Blocks and fixes in CoreIterators.
This commit is contained in:
Daniel Gomez Ferro
2008-09-02 15:28:49 +00:00
parent 46fe7a3d9e
commit 8fb1678f0f
10 changed files with 276 additions and 13 deletions

View File

@@ -65,6 +65,8 @@ template<typename MatrixType, int BlockRows, int BlockCols, int _PacketAccess, i
struct ei_traits<Block<MatrixType, BlockRows, BlockCols, _PacketAccess, _DirectAccessStatus> >
{
typedef typename MatrixType::Scalar Scalar;
typedef typename MatrixType::Nested MatrixTypeNested;
typedef typename ei_unref<MatrixTypeNested>::type _MatrixTypeNested;
enum{
RowsAtCompileTime = MatrixType::RowsAtCompileTime == 1 ? 1 : BlockRows,
ColsAtCompileTime = MatrixType::ColsAtCompileTime == 1 ? 1 : BlockCols,
@@ -94,6 +96,8 @@ template<typename MatrixType, int BlockRows, int BlockCols, int PacketAccess, in
EIGEN_GENERIC_PUBLIC_INTERFACE(Block)
class InnerIterator;
/** Column or Row constructor
*/
inline Block(const MatrixType& matrix, int i)
@@ -217,6 +221,7 @@ class Block<MatrixType,BlockRows,BlockCols,PacketAccess,HasDirectAccess>
_EIGEN_GENERIC_PUBLIC_INTERFACE(Block, MapBase<Block>)
class InnerIterator;
typedef typename ei_traits<Block>::AlignedDerivedType AlignedDerivedType;
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Block)