10 #ifndef EIGEN_TRIANGULAR_SOLVER_VECTOR_H    11 #define EIGEN_TRIANGULAR_SOLVER_VECTOR_H    17 template<
typename LhsScalar, 
typename RhsScalar, 
typename Index, 
int Mode, 
bool Conjugate, 
int StorageOrder>
    20   static void run(
Index size, 
const LhsScalar* _lhs, 
Index lhsStride, RhsScalar* rhs)
    25       >::run(size, _lhs, lhsStride, rhs);
    30 template<
typename LhsScalar, 
typename RhsScalar, 
typename Index, 
int Mode, 
bool Conjugate>
    36   static void run(
Index size, 
const LhsScalar* _lhs, 
Index lhsStride, RhsScalar* rhs)
    50     for(
Index pi=IsLower ? 0 : size;
    51         IsLower ? pi<size : pi>0;
    52         IsLower ? pi+=PanelWidth : pi-=PanelWidth)
    54       Index actualPanelWidth = (
std::min)(IsLower ? size - pi : pi, PanelWidth);
    56       Index r = IsLower ? pi : size - pi; 
    62         Index startRow = IsLower ? pi : pi-actualPanelWidth;
    63         Index startCol = IsLower ? 0 : pi;
    67           LhsMapper(&lhs.coeffRef(startRow,startCol), lhsStride),
    68           RhsMapper(rhs + startCol, 1),
    73       for(
Index k=0; k<actualPanelWidth; ++k)
    75         Index i = IsLower ? pi+k : pi-k-1;
    76         Index s = IsLower ? pi   : i+1;
    88 template<
typename LhsScalar, 
typename RhsScalar, 
typename Index, 
int Mode, 
bool Conjugate>
    94   static void run(
Index size, 
const LhsScalar* _lhs, 
Index lhsStride, RhsScalar* rhs)
   106     for(
Index pi=IsLower ? 0 : size;
   107         IsLower ? pi<size : pi>0;
   108         IsLower ? pi+=PanelWidth : pi-=PanelWidth)
   110       Index actualPanelWidth = (
std::min)(IsLower ? size - pi : pi, PanelWidth);
   111       Index startBlock = IsLower ? pi : pi-actualPanelWidth;
   112       Index endBlock = IsLower ? pi + actualPanelWidth : 0;
   114       for(
Index k=0; k<actualPanelWidth; ++k)
   116         Index i = IsLower ? pi+k : pi-k-1;
   118           rhs[i] /= cjLhs.coeff(i,i);
   120         Index r = actualPanelWidth - k - 1; 
   121         Index s = IsLower ? i+1 : i-r;
   125       Index r = IsLower ? size - endBlock : startBlock; 
   133             LhsMapper(&lhs.coeffRef(endBlock,startBlock), lhsStride),
   134             RhsMapper(rhs+startBlock, 1),
   135             rhs+endBlock, 1, RhsScalar(-1));
   145 #endif // EIGEN_TRIANGULAR_SOLVER_VECTOR_H 
A matrix or vector expression mapping an existing array of data. 
static void run(Index size, const LhsScalar *_lhs, Index lhsStride, RhsScalar *rhs)
static void run(Index size, const LhsScalar *_lhs, Index lhsStride, RhsScalar *rhs)
#define EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API. 
static void run(Index size, const LhsScalar *_lhs, Index lhsStride, RhsScalar *rhs)
Generic expression where a coefficient-wise unary operator is applied to an expression. 
The matrix class, also used for vectors and row-vectors. 
Convenience specialization of Stride to specify only an outer stride See class Map for some examples...