11 #ifndef EIGEN_TRIANGULARMATRIX_H
12 #define EIGEN_TRIANGULARMATRIX_H
21 template <
int S
ide,
typename TriangularType,
typename Rhs>
22 struct triangular_solve_retval;
31 template <
typename Derived>
78 template <
typename Other>
92 #ifndef EIGEN_PARSED_BY_DOXYGEN
97 template <
typename DenseDerived>
99 template <
typename DenseDerived>
120 #ifdef EIGEN_INTERNAL_DEBUGGING
146 template <
typename MatrixType,
unsigned int Mode_>
162 template <
typename MatrixType_,
unsigned int Mode_,
typename StorageKind>
165 template <
typename MatrixType_,
unsigned int Mode_>
167 :
public TriangularViewImpl<MatrixType_, Mode_, typename internal::traits<MatrixType_>::StorageKind> {
218 typedef std::conditional_t<Cond, ConjugateReturnType, ConstTriangularView> ReturnType;
219 return ReturnType(
m_matrix.template conjugateIf<Cond>());
228 template <
class Dummy =
int>
231 typename MatrixType::TransposeReturnType
tmp(
m_matrix);
241 template <
typename Other>
248 template <
int S
ide,
typename Other>
251 return Base::template solve<Side>(other);
296 template <
typename MatrixType_,
unsigned int Mode_>
310 using Base::evalToLazy;
324 template <
typename Other>
331 template <
typename Other>
351 return *
this = MatrixType::Constant(derived().
rows(), derived().
cols(),
value);
362 Base::check_coordinates_internal(
row,
col);
363 return derived().nestedExpression().coeff(
row,
col);
371 Base::check_coordinates_internal(
row,
col);
372 return derived().nestedExpression().coeffRef(
row,
col);
376 template <
typename OtherDerived>
380 template <
typename OtherDerived>
383 #ifndef EIGEN_PARSED_BY_DOXYGEN
385 return *
this = other.derived().nestedExpression();
388 template <
typename OtherDerived>
392 template <
typename OtherDerived>
398 template <
typename OtherDerived>
405 template <
typename OtherDerived>
434 template <
int S
ide,
typename Other>
447 template <
int S
ide,
typename OtherDerived>
450 template <
typename OtherDerived>
452 return solveInPlace<OnTheLeft>(other);
456 template <
typename OtherDerived>
458 #ifdef EIGEN_PARSED_BY_DOXYGEN
471 template <
typename OtherDerived>
478 template <
typename RhsType,
typename DstType>
481 this->solveInPlace(dst);
484 template <
typename ProductType>
497 #ifndef EIGEN_PARSED_BY_DOXYGEN
499 template <
typename MatrixType,
unsigned int Mode>
500 template <
typename OtherDerived>
509 template <
typename MatrixType,
unsigned int Mode>
510 template <
typename OtherDerived>
511 EIGEN_DEVICE_FUNC void TriangularViewImpl<MatrixType, Mode, Dense>::lazyAssign(
const MatrixBase<OtherDerived>& other) {
515 template <
typename MatrixType,
unsigned int Mode>
516 template <
typename OtherDerived>
517 EIGEN_DEVICE_FUNC inline TriangularView<MatrixType, Mode>& TriangularViewImpl<MatrixType, Mode, Dense>::operator=(
518 const TriangularBase<OtherDerived>& other) {
524 template <
typename MatrixType,
unsigned int Mode>
525 template <
typename OtherDerived>
527 const TriangularBase<OtherDerived>& other) {
539 template <
typename Derived>
540 template <
typename DenseDerived>
542 evalToLazy(other.derived());
564 template <
typename Derived>
565 template <
unsigned int Mode>
572 template <
typename Derived>
573 template <
unsigned int Mode>
584 template <
typename Derived>
591 if (absValue > maxAbsOnUpperPart) maxAbsOnUpperPart = absValue;
594 RealScalar threshold = maxAbsOnUpperPart * prec;
606 template <
typename Derived>
612 if (absValue > maxAbsOnLowerPart) maxAbsOnLowerPart = absValue;
614 RealScalar threshold = maxAbsOnLowerPart * prec;
635 template <
typename MatrixType,
unsigned int Mode>
641 template <
typename MatrixType,
unsigned int Mode>
653 template <
typename Kernel,
unsigned int Mode,
int UnrollCount,
bool ClearOpposite>
661 template <
int UpLo,
int Mode,
int SetOpposite,
typename DstEvaluatorTypeT,
typename SrcEvaluatorTypeT,
typename Functor,
683 #ifdef EIGEN_INTERNAL_DEBUGGING
693 if (Mode ==
UnitDiag && SetOpposite)
695 else if (Mode ==
ZeroDiag && SetOpposite)
707 template <
int Mode,
bool SetOpposite,
typename DstXprType,
typename SrcXprType,
typename Functor>
713 SrcEvaluatorType srcEvaluator(src);
715 Index dstRows = src.rows();
716 Index dstCols = src.cols();
717 if ((dst.rows() != dstRows) || (dst.cols() != dstCols)) dst.resize(dstRows, dstCols);
718 DstEvaluatorType dstEvaluator(dst);
721 SetOpposite, DstEvaluatorType, SrcEvaluatorType,
Functor>
723 Kernel kernel(dstEvaluator, srcEvaluator,
func, dst.const_cast_derived());
726 unroll = DstXprType::SizeAtCompileTime !=
Dynamic && SrcEvaluatorType::CoeffReadCost <
HugeCost &&
727 DstXprType::SizeAtCompileTime *
728 (
int(DstEvaluatorType::CoeffReadCost) +
int(SrcEvaluatorType::CoeffReadCost)) / 2 <=
736 template <
int Mode,
bool SetOpposite,
typename DstXprType,
typename SrcXprType>
738 call_triangular_assignment_loop<Mode, SetOpposite>(
755 template <
typename DstXprType,
typename SrcXprType,
typename Functor>
758 eigen_assert(
int(DstXprType::Mode) ==
int(SrcXprType::Mode));
760 call_triangular_assignment_loop<DstXprType::Mode, false>(dst, src,
func);
764 template <
typename DstXprType,
typename SrcXprType,
typename Functor>
767 call_triangular_assignment_loop<SrcXprType::Mode, (int(SrcXprType::Mode) & int(SelfAdjoint)) == 0>(dst, src,
func);
771 template <
typename DstXprType,
typename SrcXprType,
typename Functor>
774 call_triangular_assignment_loop<DstXprType::Mode, false>(dst, src,
func);
778 template <
typename Kernel,
unsigned int Mode,
int UnrollCount,
bool SetOpposite>
785 col = (UnrollCount - 1) / DstXprType::RowsAtCompileTime,
786 row = (UnrollCount - 1) % DstXprType::RowsAtCompileTime
795 kernel.assignDiagonalCoeff(
row);
797 kernel.assignCoeff(
row,
col);
798 else if (SetOpposite)
799 kernel.assignOppositeCoeff(
row,
col);
804 template <
typename Kernel,
unsigned int Mode,
bool SetOpposite>
812 template <
typename Kernel,
unsigned int Mode,
bool SetOpposite>
816 for (
Index j = 0;
j < kernel.cols(); ++
j) {
819 if (((Mode &
Lower) && SetOpposite) || (Mode &
Upper)) {
822 kernel.assignCoeff(
i,
j);
824 kernel.assignOppositeCoeff(
i,
j);
828 if (
i < kernel.rows())
829 kernel.assignDiagonalCoeff(
i++);
831 if (((Mode &
Upper) && SetOpposite) || (Mode &
Lower)) {
832 for (;
i < kernel.rows(); ++
i)
834 kernel.assignCoeff(
i,
j);
836 kernel.assignOppositeCoeff(
i,
j);
846 template <
typename Derived>
847 template <
typename DenseDerived>
852 other.derived(), derived().nestedExpression());
858 template <
typename DstXprType,
typename Lhs,
typename Rhs,
typename Scalar>
866 if ((dst.rows() != dstRows) || (dst.cols() != dstCols)) dst.resize(dstRows, dstCols);
868 dst._assignProduct(src,
Scalar(1),
false);
873 template <
typename DstXprType,
typename Lhs,
typename Rhs,
typename Scalar>
880 dst._assignProduct(src,
Scalar(1),
true);
885 template <
typename DstXprType,
typename Lhs,
typename Rhs,
typename Scalar>
892 dst._assignProduct(src,
Scalar(-1),
true);
int i
Definition: BiCGSTAB_step_by_step.cpp:9
#define EIGEN_DEFAULT_COPY_CONSTRUCTOR(CLASS)
Macro to explicitly define the default copy constructor. This is necessary, because the implicit defi...
Definition: Macros.h:1119
#define EIGEN_DEPRECATED
Definition: Macros.h:931
#define eigen_internal_assert(x)
Definition: Macros.h:916
#define EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(Derived)
Macro to manually define default constructors and destructors. This is necessary when the copy constr...
Definition: Macros.h:1137
#define EIGEN_NOEXCEPT
Definition: Macros.h:1267
#define EIGEN_CONSTEXPR
Definition: Macros.h:758
#define EIGEN_UNUSED_VARIABLE(var)
Definition: Macros.h:966
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:892
#define EIGEN_ONLY_USED_FOR_DEBUG(x)
Definition: Macros.h:922
#define eigen_assert(x)
Definition: Macros.h:910
#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived)
Macro to manually inherit assignment operators. This is necessary, because the implicitly defined ass...
Definition: Macros.h:1126
#define EIGEN_STRONG_INLINE
Definition: Macros.h:834
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition: PartialRedux_count.cpp:3
#define EIGEN_UNROLLING_LIMIT
Definition: Settings.h:23
#define EIGEN_STATIC_ASSERT_LVALUE(Derived)
Definition: StaticAssert.h:87
#define EIGEN_STATIC_ASSERT(X, MSG)
Definition: StaticAssert.h:26
int rows
Definition: Tutorial_commainit_02.cpp:1
int cols
Definition: Tutorial_commainit_02.cpp:1
SCALAR Scalar
Definition: bench_gemm.cpp:45
MatrixXf MatrixType
Definition: benchmark-blocking-sizes.cpp:52
Base class for all dense matrices, vectors, and arrays.
Definition: DenseBase.h:44
EIGEN_DEVICE_FUNC void resize(Index newSize)
Definition: DenseBase.h:228
NumTraits< Scalar >::Real RealScalar
Definition: DenseBase.h:69
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:52
bool isLowerTriangular(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition: TriangularMatrix.h:607
EIGEN_DEVICE_FUNC TriangularViewReturnType< Mode >::Type triangularView()
bool isUpperTriangular(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition: TriangularMatrix.h:585
Expression of the product of two arbitrary matrices or vectors.
Definition: Product.h:202
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: Product.h:227
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: Product.h:228
Expression of a selfadjoint matrix from a triangular part of a dense matrix.
Definition: SelfAdjointView.h:51
Pseudo expression representing a solving operation.
Definition: Solve.h:62
Base class for triangular part in a matrix.
Definition: TriangularMatrix.h:32
EIGEN_DEVICE_FUNC const Derived & derived() const
Definition: TriangularMatrix.h:93
internal::traits< Derived >::StorageKind StorageKind
Definition: TriangularMatrix.h:51
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: TriangularMatrix.h:61
EIGEN_DEVICE_FUNC Scalar & coeffRef(Index row, Index col)
Definition: TriangularMatrix.h:74
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index innerStride() const EIGEN_NOEXCEPT
Definition: TriangularMatrix.h:64
Derived const & Nested
Definition: TriangularMatrix.h:55
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index outerStride() const EIGEN_NOEXCEPT
Definition: TriangularMatrix.h:63
EIGEN_DEVICE_FUNC Scalar operator()(Index row, Index col) const
Definition: TriangularMatrix.h:83
internal::traits< Derived >::Scalar Scalar
Definition: TriangularMatrix.h:50
internal::traits< Derived >::FullMatrixType DenseMatrixType
Definition: TriangularMatrix.h:53
internal::traits< Derived >::StorageIndex StorageIndex
Definition: TriangularMatrix.h:52
EIGEN_DEVICE_FUNC void evalTo(MatrixBase< DenseDerived > &other) const
Definition: TriangularMatrix.h:541
EIGEN_DEVICE_FUNC DenseMatrixType toDenseMatrix() const
Definition: TriangularMatrix.h:102
EIGEN_DEVICE_FUNC void resize(Index rows, Index cols)
Definition: TriangularMatrix.h:67
@ RowsAtCompileTime
Definition: TriangularMatrix.h:36
@ SizeAtCompileTime
Definition: TriangularMatrix.h:41
@ MaxColsAtCompileTime
Definition: TriangularMatrix.h:39
@ MaxRowsAtCompileTime
Definition: TriangularMatrix.h:38
@ Mode
Definition: TriangularMatrix.h:35
@ MaxSizeAtCompileTime
Definition: TriangularMatrix.h:46
@ ColsAtCompileTime
Definition: TriangularMatrix.h:37
void check_coordinates_internal(Index, Index) const
Definition: TriangularMatrix.h:123
void check_coordinates(Index row, Index col) const
Definition: TriangularMatrix.h:109
EIGEN_DEVICE_FUNC Derived & derived()
Definition: TriangularMatrix.h:94
DenseMatrixType DenseType
Definition: TriangularMatrix.h:54
EIGEN_DEVICE_FUNC void evalToLazy(MatrixBase< DenseDerived > &other) const
Definition: TriangularMatrix.h:848
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void copyCoeff(Index row, Index col, Other &other)
Definition: TriangularMatrix.h:79
EIGEN_DEVICE_FUNC Scalar coeff(Index row, Index col) const
Definition: TriangularMatrix.h:73
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: TriangularMatrix.h:62
EIGEN_DEVICE_FUNC TriangularBase()
Definition: TriangularMatrix.h:57
EIGEN_DEVICE_FUNC Scalar & operator()(Index row, Index col)
Definition: TriangularMatrix.h:87
TriangularBase< TriangularViewType > Base
Definition: TriangularMatrix.h:301
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC void lazyAssign(const MatrixBase< OtherDerived > &other)
MatrixType::PlainObject DenseMatrixType
Definition: TriangularMatrix.h:305
EIGEN_DEVICE_FUNC Index innerStride() const
Definition: TriangularMatrix.h:321
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC void lazyAssign(const TriangularBase< OtherDerived > &other)
friend EIGEN_DEVICE_FUNC const Product< OtherDerived, TriangularViewType > operator*(const MatrixBase< OtherDerived > &lhs, const TriangularViewImpl &rhs)
Definition: TriangularMatrix.h:406
EIGEN_DEVICE_FUNC TriangularViewType & setOnes()
Definition: TriangularMatrix.h:356
EIGEN_DEVICE_FUNC TriangularViewType & operator=(const TriangularViewImpl &other)
Definition: TriangularMatrix.h:384
const internal::triangular_solve_retval< Side, TriangularViewType, Other > solve(const MatrixBase< Other > &other) const
internal::traits< TriangularViewType >::Scalar Scalar
Definition: TriangularMatrix.h:302
DenseMatrixType PlainObject
Definition: TriangularMatrix.h:306
EIGEN_DEVICE_FUNC Scalar & coeffRef(Index row, Index col)
Definition: TriangularMatrix.h:369
EIGEN_DEVICE_FUNC TriangularViewType & operator=(const MatrixBase< OtherDerived > &other)
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC void swap(MatrixBase< OtherDerived > const &other)
Definition: TriangularMatrix.h:473
EIGEN_DEVICE_FUNC TriangularViewType & operator+=(const DenseBase< Other > &other)
Definition: TriangularMatrix.h:325
EIGEN_DEVICE_FUNC TriangularViewType & operator-=(const DenseBase< Other > &other)
Definition: TriangularMatrix.h:332
EIGEN_DEVICE_FUNC const Product< TriangularViewType, OtherDerived > operator*(const MatrixBase< OtherDerived > &rhs) const
Definition: TriangularMatrix.h:399
EIGEN_DEVICE_FUNC TriangularViewType & operator=(const TriangularBase< OtherDerived > &other)
EIGEN_DEVICE_FUNC void solveInPlace(const MatrixBase< OtherDerived > &other) const
TriangularView< MatrixType_, Mode_ > TriangularViewType
Definition: TriangularMatrix.h:299
EIGEN_DEVICE_FUNC TriangularViewType & operator/=(const typename internal::traits< MatrixType >::Scalar &other)
Definition: TriangularMatrix.h:343
EIGEN_DEVICE_FUNC Scalar coeff(Index row, Index col) const
Definition: TriangularMatrix.h:361
EIGEN_DEVICE_FUNC void swap(TriangularBase< OtherDerived > const &other)
Definition: TriangularMatrix.h:463
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TriangularViewType & _assignProduct(const ProductType &prod, const Scalar &alpha, bool beta)
EIGEN_DEVICE_FUNC TriangularViewType & operator*=(const typename internal::traits< MatrixType >::Scalar &other)
Definition: TriangularMatrix.h:339
EIGEN_DEVICE_FUNC TriangularViewType & setConstant(const Scalar &value)
Definition: TriangularMatrix.h:350
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void _solve_impl(const RhsType &rhs, DstType &dst) const
Definition: TriangularMatrix.h:479
EIGEN_DEVICE_FUNC void fill(const Scalar &value)
Definition: TriangularMatrix.h:348
EIGEN_DEVICE_FUNC Index outerStride() const
Definition: TriangularMatrix.h:318
internal::traits< TriangularViewType >::StorageKind StorageKind
Definition: TriangularMatrix.h:312
EIGEN_DEVICE_FUNC TriangularViewType & setZero()
Definition: TriangularMatrix.h:354
EIGEN_DEVICE_FUNC void solveInPlace(const MatrixBase< OtherDerived > &other) const
Definition: TriangularMatrix.h:451
MatrixType_ MatrixType
Definition: TriangularMatrix.h:304
Definition: TriangularMatrix.h:163
Expression of a triangular part in a matrix.
Definition: TriangularMatrix.h:167
TriangularView< std::add_const_t< MatrixType >, Mode_ > ConstTriangularView
Definition: TriangularMatrix.h:178
internal::traits< TriangularView >::MatrixTypeNested MatrixTypeNested
Definition: TriangularMatrix.h:174
TriangularViewImpl< MatrixType_, Mode_, typename internal::traits< MatrixType_ >::StorageKind > Base
Definition: TriangularMatrix.h:169
MatrixType_ MatrixType
Definition: TriangularMatrix.h:171
EIGEN_DEVICE_FUNC SelfAdjointView< MatrixTypeNestedNonRef, Mode > selfadjointView()
Definition: TriangularMatrix.h:261
internal::traits< TriangularView >::StorageKind StorageKind
Definition: TriangularMatrix.h:181
EIGEN_DEVICE_FUNC TransposeReturnType transpose(std::enable_if_t< Eigen::internal::is_lvalue< MatrixType >::value, Dummy * >=nullptr)
Definition: TriangularMatrix.h:229
EIGEN_DEVICE_FUNC Scalar determinant() const
Definition: TriangularMatrix.h:274
EIGEN_DEVICE_FUNC const Solve< TriangularView, Other > solve(const MatrixBase< Other > &other) const
Definition: TriangularMatrix.h:242
MatrixTypeNested m_matrix
Definition: TriangularMatrix.h:284
TriangularView< typename MatrixType::TransposeReturnType, TransposeMode > TransposeReturnType
Definition: TriangularMatrix.h:226
TriangularView< const typename MatrixType::AdjointReturnType, TransposeMode > AdjointReturnType
Definition: TriangularMatrix.h:222
internal::traits< TriangularView >::MatrixTypeNestedNonRef MatrixTypeNestedNonRef
Definition: TriangularMatrix.h:175
EIGEN_DEVICE_FUNC TriangularView(MatrixType &matrix)
Definition: TriangularMatrix.h:192
TriangularView< const MatrixConjugateReturnType, Mode > ConjugateReturnType
Definition: TriangularMatrix.h:207
internal::traits< TriangularView >::MatrixTypeNestedCleaned NestedExpression
Definition: TriangularMatrix.h:182
EIGEN_DEVICE_FUNC const ConjugateReturnType conjugate() const
Definition: TriangularMatrix.h:209
EIGEN_DEVICE_FUNC const NestedExpression & nestedExpression() const
Definition: TriangularMatrix.h:202
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: TriangularMatrix.h:199
EIGEN_DEVICE_FUNC std::conditional_t< Cond, ConjugateReturnType, ConstTriangularView > conjugateIf() const
Definition: TriangularMatrix.h:217
TriangularView< const typename MatrixType::ConstTransposeReturnType, TransposeMode > ConstTransposeReturnType
Definition: TriangularMatrix.h:235
@ TransposeMode
Definition: TriangularMatrix.h:187
@ Mode
Definition: TriangularMatrix.h:185
@ IsVectorAtCompileTime
Definition: TriangularMatrix.h:189
EIGEN_DEVICE_FUNC const AdjointReturnType adjoint() const
Definition: TriangularMatrix.h:224
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: TriangularMatrix.h:197
EIGEN_DEVICE_FUNC NestedExpression & nestedExpression()
Definition: TriangularMatrix.h:205
internal::traits< TriangularView >::Scalar Scalar
Definition: TriangularMatrix.h:170
internal::remove_all_t< typename MatrixType::ConjugateReturnType > MatrixConjugateReturnType
Definition: TriangularMatrix.h:177
EIGEN_DEVICE_FUNC const ConstTransposeReturnType transpose() const
Definition: TriangularMatrix.h:237
Definition: AssignEvaluator.h:585
const SrcEvaluatorType & m_src
Definition: AssignEvaluator.h:671
DstEvaluatorTypeT DstEvaluatorType
Definition: AssignEvaluator.h:591
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(Index row, Index col)
Assign src(row,col) to dst(row,col) through the assignment functor.
Definition: AssignEvaluator.h:617
SrcEvaluatorTypeT SrcEvaluatorType
Definition: AssignEvaluator.h:592
DstEvaluatorType & m_dst
Definition: AssignEvaluator.h:670
const Functor & m_functor
Definition: AssignEvaluator.h:672
SrcEvaluatorTypeT::XprType SrcXprType
Definition: AssignEvaluator.h:588
DstEvaluatorTypeT::XprType DstXprType
Definition: AssignEvaluator.h:587
DstEvaluatorType::Scalar Scalar
Definition: AssignEvaluator.h:593
Definition: TriangularMatrix.h:664
Base::SrcEvaluatorType SrcEvaluatorType
Definition: TriangularMatrix.h:675
Base::SrcXprType SrcXprType
Definition: TriangularMatrix.h:668
Base::DstEvaluatorType DstEvaluatorType
Definition: TriangularMatrix.h:674
EIGEN_DEVICE_FUNC void assignOppositeCoeff(Index row, Index col)
Definition: TriangularMatrix.h:701
EIGEN_DEVICE_FUNC void assignDiagonalCoeff(Index id)
Definition: TriangularMatrix.h:692
Base::AssignmentTraits AssignmentTraits
Definition: TriangularMatrix.h:677
EIGEN_DEVICE_FUNC triangular_dense_assignment_kernel(DstEvaluatorType &dst, const SrcEvaluatorType &src, const Functor &func, DstXprType &dstExpr)
Definition: TriangularMatrix.h:679
generic_dense_assignment_kernel< DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version > Base
Definition: TriangularMatrix.h:666
Base::DstXprType DstXprType
Definition: TriangularMatrix.h:667
Base::Scalar Scalar
Definition: TriangularMatrix.h:676
Eigen::Map< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor >, 0, Eigen::OuterStride<> > matrix(T *data, int rows, int cols, int stride)
Definition: common.h:85
@ DefaultProduct
Definition: Constants.h:503
@ StrictlyLower
Definition: Constants.h:223
@ UnitDiag
Definition: Constants.h:215
@ StrictlyUpper
Definition: Constants.h:225
@ UnitLower
Definition: Constants.h:219
@ ZeroDiag
Definition: Constants.h:217
@ SelfAdjoint
Definition: Constants.h:227
@ UnitUpper
Definition: Constants.h:221
@ Lower
Definition: Constants.h:211
@ Upper
Definition: Constants.h:213
@ Specialized
Definition: Constants.h:311
const unsigned int PacketAccessBit
Definition: Constants.h:97
const unsigned int LinearAccessBit
Definition: Constants.h:133
const unsigned int DirectAccessBit
Definition: Constants.h:159
const unsigned int LvalueBit
Definition: Constants.h:148
RealScalar alpha
Definition: level1_cplx_impl.h:151
Scalar beta
Definition: level2_cplx_impl.h:36
Eigen::Matrix< Scalar, Dynamic, Dynamic, ColMajor > tmp
Definition: level3_impl.h:365
@ Lhs
Definition: TensorContractionMapper.h:20
@ Rhs
Definition: TensorContractionMapper.h:20
constexpr int size_at_compile_time(int rows, int cols)
Definition: XprHelper.h:373
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_assignment(Dst &dst, const Src &src)
Definition: AssignEvaluator.h:781
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR void call_assignment_no_alias(Dst &dst, const Src &src, const Func &func)
Definition: AssignEvaluator.h:812
typename remove_all< T >::type remove_all_t
Definition: Meta.h:142
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_triangular_assignment_loop(DstXprType &dst, const SrcXprType &src, const Functor &func)
Definition: TriangularMatrix.h:708
EIGEN_DEVICE_FUNC bool is_same_dense(const T1 &mat1, const T2 &mat2, std::enable_if_t< possibly_same_dense< T1, T2 >::value > *=0)
Definition: XprHelper.h:869
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T maxi(const T &x, const T &y)
Definition: MathFunctions.h:926
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE std::enable_if_t< NumTraits< T >::IsSigned||NumTraits< T >::IsComplex, typename NumTraits< T >::Real > abs(const T &x)
Definition: MathFunctions.h:1355
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T mini(const T &x, const T &y)
Definition: MathFunctions.h:920
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
squared absolute value
Definition: GlobalFunctions.h:87
const unsigned int HereditaryBits
Definition: Constants.h:198
const int HugeCost
Definition: Constants.h:48
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
const int Dynamic
Definition: Constants.h:25
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::enable_if_t< std::is_base_of< DenseBase< std::decay_t< DerivedA > >, std::decay_t< DerivedA > >::value &&std::is_base_of< DenseBase< std::decay_t< DerivedB > >, std::decay_t< DerivedB > >::value, void > swap(DerivedA &&a, DerivedB &&b)
Definition: DenseBase.h:655
const Product< Lhs, Rhs > prod(const Lhs &lhs, const Rhs &rhs)
Definition: evaluators.cpp:7
Extend namespace for flags.
Definition: fsi_chan_precond_driver.cc:56
type
Definition: compute_granudrum_aor.py:141
Definition: Eigen_Colamd.h:49
Type
Type of JSON value.
Definition: rapidjson.h:513
CwiseBinaryOp< internal::scalar_sum_op< double, double >, const CpyMatrixXd, const CpyMatrixXd > XprType
Definition: nestbyvalue.cpp:15
Update the problem specs before solve
Definition: steady_axisym_advection_diffusion.cc:353
Definition: Constants.h:540
Definition: Constants.h:519
Definition: EigenBase.h:33
Eigen::Index Index
The interface type of indices.
Definition: EigenBase.h:43
EIGEN_DEVICE_FUNC Derived & const_cast_derived() const
Definition: EigenBase.h:53
Definition: Constants.h:558
Triangular2Dense Kind
Definition: TriangularMatrix.h:748
Dense2Triangular Kind
Definition: TriangularMatrix.h:752
Triangular2Triangular Kind
Definition: TriangularMatrix.h:744
Definition: AssignEvaluator.h:760
Product< Lhs, Rhs, DefaultProduct > SrcXprType
Definition: TriangularMatrix.h:861
static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op< Scalar, typename SrcXprType::Scalar > &)
Definition: TriangularMatrix.h:862
static void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op< Scalar, typename SrcXprType::Scalar > &)
Definition: TriangularMatrix.h:890
Product< Lhs, Rhs, DefaultProduct > SrcXprType
Definition: TriangularMatrix.h:889
Product< Lhs, Rhs, DefaultProduct > SrcXprType
Definition: TriangularMatrix.h:877
static void run(DstXprType &dst, const SrcXprType &src, const internal::add_assign_op< Scalar, typename SrcXprType::Scalar > &)
Definition: TriangularMatrix.h:878
static EIGEN_DEVICE_FUNC void run(DstXprType &dst, const SrcXprType &src, const Functor &func)
Definition: TriangularMatrix.h:773
static EIGEN_DEVICE_FUNC void run(DstXprType &dst, const SrcXprType &src, const Functor &func)
Definition: TriangularMatrix.h:766
static EIGEN_DEVICE_FUNC void run(DstXprType &dst, const SrcXprType &src, const Functor &func)
Definition: TriangularMatrix.h:757
Definition: AssignEvaluator.h:773
Definition: TriangularMatrix.h:651
Definition: Constants.h:577
Definition: TriangularMatrix.h:650
Definition: TriangularMatrix.h:649
Template functor for scalar/packet assignment with addition.
Definition: AssignmentFunctors.h:52
Template functor for scalar/packet assignment.
Definition: AssignmentFunctors.h:25
Definition: AssignEvaluator.h:31
storage_kind_to_evaluator_kind< typename MatrixType::StorageKind >::Kind Kind
Definition: TriangularMatrix.h:637
glue_shapes< typename evaluator_traits< MatrixType >::Shape, TriangularShape >::type Shape
Definition: TriangularMatrix.h:638
Definition: CoreEvaluators.h:95
Definition: CoreEvaluators.h:104
Definition: XprHelper.h:854
Definition: XprHelper.h:819
Definition: XprHelper.h:506
Definition: XprHelper.h:380
Template functor for scalar/packet assignment with subtraction.
Definition: AssignmentFunctors.h:73
Template functor for scalar/packet assignment with swapping.
Definition: AssignmentFunctors.h:147
ref_selector< MatrixType >::non_const_type MatrixTypeNested
Definition: TriangularMatrix.h:148
remove_all_t< MatrixTypeNested > MatrixTypeNestedCleaned
Definition: TriangularMatrix.h:150
MatrixType::PlainObject FullMatrixType
Definition: TriangularMatrix.h:151
MatrixType ExpressionType
Definition: TriangularMatrix.h:152
std::remove_reference_t< MatrixTypeNested > MatrixTypeNestedNonRef
Definition: TriangularMatrix.h:149
Definition: ForwardDeclarations.h:21
static EIGEN_DEVICE_FUNC void run(Kernel &)
Definition: TriangularMatrix.h:806
static EIGEN_DEVICE_FUNC void run(Kernel &kernel)
Definition: TriangularMatrix.h:815
Kernel::Scalar Scalar
Definition: TriangularMatrix.h:814
Definition: TriangularMatrix.h:779
@ row
Definition: TriangularMatrix.h:786
@ col
Definition: TriangularMatrix.h:785
Kernel::Scalar Scalar
Definition: TriangularMatrix.h:789
DstEvaluatorType::XprType DstXprType
Definition: TriangularMatrix.h:782
Kernel::DstEvaluatorType DstEvaluatorType
Definition: TriangularMatrix.h:781
static EIGEN_DEVICE_FUNC void run(Kernel &kernel)
Definition: TriangularMatrix.h:791
Definition: SolveTriangular.h:213
TriangularView< MatrixType, Mode > XprType
Definition: TriangularMatrix.h:643
evaluator< internal::remove_all_t< MatrixType > > Base
Definition: TriangularMatrix.h:644
EIGEN_DEVICE_FUNC unary_evaluator(const XprType &xpr)
Definition: TriangularMatrix.h:645
Definition: CoreEvaluators.h:82
Definition: NonLinearOptimization.cpp:97
Definition: benchGeometry.cpp:21
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2