introduce ei_xxx_return_value and ei_xxx_impl for xxx in solve,kernel,impl

put them in a new internal 'misc' directory
This commit is contained in:
Benoit Jacob
2009-11-03 02:18:10 -05:00
parent f975b9bd3e
commit da363d997f
11 changed files with 326 additions and 184 deletions

View File

@@ -38,8 +38,10 @@ struct ei_traits<ReturnByValue<Derived> >
// matrix.inverse().block(...)
// because the Block ctor with direct access
// wants to call coeffRef() to get an address, and that fails (infinite recursion) as ReturnByValue
// doesnt implement coeffRef(). The better fix is probably rather to make Block work directly
// on the nested type, right?
// doesnt implement coeffRef().
// The fact that I had to do that shows that when doing xpr.block() with a non-direct-access xpr,
// even if xpr has the EvalBeforeNestingBit, the block() doesn't use direct access on the evaluated
// xpr.
Flags = (ei_traits<typename ei_traits<Derived>::ReturnMatrixType>::Flags
| EvalBeforeNestingBit) & ~DirectAccessBit
};

View File

@@ -66,6 +66,13 @@ template<typename ExpressionType> class WithFormat;
template<typename MatrixType> struct CommaInitializer;
template<typename Derived> class ReturnByValue;
template<typename DecompositionType, typename Rhs> struct ei_solve_return_value;
template<typename DecompositionType, typename Rhs, typename Dest> struct ei_solve_impl;
template<typename DecompositionType> struct ei_kernel_return_value;
template<typename DecompositionType, typename Dest> struct ei_kernel_impl;
template<typename DecompositionType> struct ei_image_return_value;
template<typename DecompositionType, typename Dest> struct ei_image_impl;
template<typename _Scalar, int Rows=Dynamic, int Cols=Dynamic, int Supers=Dynamic, int Subs=Dynamic, int Options=0> class BandMatrix;