10 #ifndef EIGEN_PACKED_TRIANGULAR_SOLVER_VECTOR_H
11 #define EIGEN_PACKED_TRIANGULAR_SOLVER_VECTOR_H
16 template <
typename LhsScalar,
typename RhsScalar,
typename Index,
int S
ide,
int Mode,
bool Conjugate,
int StorageOrder>
20 template <
typename LhsScalar,
typename RhsScalar,
typename Index,
int Mode,
bool Conjugate>
23 static void run(
Index size,
const LhsScalar* lhs, RhsScalar* rhs) {
28 lhs += IsLower ? 0 : (
size * (
size + 1) >> 1) - 1;
33 rhs[
i] -= (ConjLhsType(LhsMap(lhs +
s,
pi))
36 if (!(Mode &
UnitDiag)) rhs[
i] /= cj(lhs[IsLower ?
i : 0]);
37 IsLower ? lhs +=
pi + 1 : lhs -=
pi + 2;
43 template <
typename LhsScalar,
typename RhsScalar,
typename Index,
int Mode,
bool Conjugate>
46 static void run(
Index size,
const LhsScalar* lhs, RhsScalar* rhs) {
51 lhs += IsLower ? 0 :
size * (
size - 1) >> 1;
55 if (!(Mode &
UnitDiag)) rhs[
i] /= cj(lhs[IsLower ? 0 :
i]);
58 rhs[
i] * ConjLhsType(LhsMap(lhs + (IsLower ? 1 : 0),
r));
59 IsLower ? lhs +=
size -
pi : lhs -=
r;
64 template <
typename LhsScalar,
typename RhsScalar,
typename Index,
int Mode,
bool Conjugate,
int StorageOrder>
66 static void run(
Index size,
const LhsScalar* lhs, RhsScalar* rhs) {
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Scalar Scalar int size
Definition: benchVecAdd.cpp:17
Definition: ForwardDeclarations.h:102
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: Eigen/Eigen/src/Core/Matrix.h:186
@ UnitDiag
Definition: Constants.h:215
@ Lower
Definition: Constants.h:211
@ Upper
Definition: Constants.h:213
@ ColMajor
Definition: Constants.h:318
@ RowMajor
Definition: Constants.h:320
@ OnTheLeft
Definition: Constants.h:331
@ OnTheRight
Definition: Constants.h:333
RealScalar s
Definition: level1_cplx_impl.h:130
std::conditional<!Cond, const T &, CwiseUnaryOp< scalar_conjugate_op< typename traits< T >::Scalar >, T > > conj_expr_if
Definition: SelfadjointRank2Update.h:52
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
auto run(Kernel kernel, Args &&... args) -> decltype(kernel(args...))
Definition: gpu_test_helper.h:414
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
const Mdouble pi
Definition: ExtendedMath.h:23
Definition: Eigen_Colamd.h:49
Definition: ConjHelper.h:42
static void run(Index size, const LhsScalar *lhs, RhsScalar *rhs)
Definition: PackedTriangularSolverVector.h:66
static void run(Index size, const LhsScalar *lhs, RhsScalar *rhs)
Definition: PackedTriangularSolverVector.h:46
static void run(Index size, const LhsScalar *lhs, RhsScalar *rhs)
Definition: PackedTriangularSolverVector.h:23
Definition: PackedTriangularSolverVector.h:17