10#ifndef EIGEN_TRIANGULAR_SOLVER_VECTOR_H
11#define EIGEN_TRIANGULAR_SOLVER_VECTOR_H
17template<
typename LhsScalar,
typename RhsScalar,
typename Index,
int Mode,
bool Conjugate,
int StorageOrder>
25 >::run(
size, _lhs, lhsStride, rhs);
30template<
typename LhsScalar,
typename RhsScalar,
typename Index,
int Mode,
bool Conjugate>
51 IsLower ? pi<size : pi>0;
52 IsLower ?
pi+=PanelWidth :
pi-=PanelWidth)
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)
88template<
typename LhsScalar,
typename RhsScalar,
typename Index,
int Mode,
bool Conjugate>
107 IsLower ? pi<size : pi>0;
108 IsLower ?
pi+=PanelWidth :
pi-=PanelWidth)
111 Index startBlock = IsLower ?
pi :
pi-actualPanelWidth;
112 Index endBlock = IsLower ?
pi + actualPanelWidth : 0;
114 for(
Index k=0; k<actualPanelWidth; ++k)
120 rhs[i] /= cjLhs.coeff(i,i);
122 Index r = actualPanelWidth - k - 1;
123 Index s = IsLower ? i+1 : i-r;
128 Index r = IsLower ?
size - endBlock : startBlock;
136 LhsMapper(&lhs.coeffRef(endBlock,startBlock), lhsStride),
137 RhsMapper(rhs+startBlock, 1),
138 rhs+endBlock, 1, RhsScalar(-1));
#define EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH
Defines the maximal width of the blocks used in the triangular product and solver for vectors (level ...
Definition: Settings.h:38
Definition: ForwardDeclarations.h:87
Generic expression where a coefficient-wise unary operator is applied to an expression.
Definition: CwiseUnaryOp.h:56
A matrix or vector expression mapping an existing array of data.
Definition: Map.h:96
The matrix class, also used for vectors and row-vectors.
Definition: Matrix.h:180
Convenience specialization of Stride to specify only an outer stride See class Map for some examples.
Definition: Stride.h:107
Definition: BlasUtil.h:389
type
Definition: core.h:575
@ UnitDiag
Matrix has ones on the diagonal; to be used in combination with Lower or Upper.
Definition: Constants.h:213
@ Lower
View matrix as a lower triangular matrix.
Definition: Constants.h:209
@ Upper
View matrix as an upper triangular matrix.
Definition: Constants.h:211
@ ColMajor
Storage order is column major (see TopicStorageOrders).
Definition: Constants.h:319
@ RowMajor
Storage order is row major (see TopicStorageOrders).
Definition: Constants.h:321
@ OnTheLeft
Apply transformation on the left.
Definition: Constants.h:332
@ OnTheRight
Apply transformation on the right.
Definition: Constants.h:334
constexpr common_t< T1, T2 > min(const T1 x, const T2 y) noexcept
Compile-time pairwise minimum function.
Definition: min.hpp:35
EIGEN_CONSTEXPR Index size(const T &x)
Definition: Meta.h:479
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool not_equal_strict(const X &x, const Y &y)
Definition: Meta.h:798
Namespace containing all symbols from the Eigen library.
Definition: Core:141
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:74
Definition: Eigen_Colamd.h:50
static constexpr const unit_t< PI > pi(1)
Ratio of a circle's circumference to its diameter.
Definition: BlasUtil.h:40
static void run(Index size, const LhsScalar *_lhs, Index lhsStride, RhsScalar *rhs)
Definition: TriangularSolverVector.h:36
static void run(Index size, const LhsScalar *_lhs, Index lhsStride, RhsScalar *rhs)
Definition: TriangularSolverVector.h:94
static void run(Index size, const LhsScalar *_lhs, Index lhsStride, RhsScalar *rhs)
Definition: TriangularSolverVector.h:20
Definition: SolveTriangular.h:20