20 template <
typename MatrixType_,
int UpLo_>
28 template <
typename MatrixType,
int UpLo>
69 template <
typename MatrixType_,
int UpLo_>
99 template <
typename InputType>
111 template <
typename InputType>
117 inline typename Traits::MatrixU
matrixU()
const {
123 inline typename Traits::MatrixL
matrixL()
const {
128 #ifdef EIGEN_PARSED_BY_DOXYGEN
139 template <
typename Rhs>
143 template <
typename Derived>
146 template <
typename InputType>
190 template <
typename VectorType>
193 #ifndef EIGEN_PARSED_BY_DOXYGEN
194 template <
typename RhsType,
typename DstType>
195 void _solve_impl(
const RhsType& rhs, DstType& dst)
const;
197 template <
bool Conjugate,
typename RhsType,
typename DstType>
216 template <
typename Scalar,
int UpLo>
219 template <
typename MatrixType,
typename VectorType>
225 typedef typename MatrixType::ColXpr ColXpr;
227 typedef typename ColXprCleaned::SegmentReturnType ColXprSegment;
229 typedef typename TempVectorType::SegmentReturnType TempVecSegment;
248 ColXprSegment
x(
mat.col(
i).tail(rs));
249 TempVecSegment
y(temp.tail(rs));
272 temp.tail(rs) -= (wj / Ljj) *
mat.col(
j).tail(rs);
274 mat.col(
j).tail(rs) =
282 template <
typename Scalar>
285 template <
typename MatrixType>
299 if (
k > 0)
x -= A10.squaredNorm();
302 if (
k > 0 && rs > 0) A21.noalias() -= A20 * A10.adjoint();
303 if (rs > 0) A21 /=
x;
308 template <
typename MatrixType>
312 if (
size < 32)
return unblocked(
m);
315 blockSize = (blockSize / 16) * 16;
330 if ((
ret = unblocked(A11)) >= 0)
return k +
ret;
331 if (rs > 0) A11.adjoint().template triangularView<Upper>().template solveInPlace<OnTheRight>(A21);
333 A22.template selfadjointView<Lower>().rankUpdate(A21,
339 template <
typename MatrixType,
typename VectorType>
345 template <
typename Scalar>
349 template <
typename MatrixType>
354 template <
typename MatrixType>
359 template <
typename MatrixType,
typename VectorType>
366 template <
typename MatrixType>
377 template <
typename MatrixType>
397 template <
typename MatrixType,
int UpLo_>
398 template <
typename InputType>
420 bool ok = Traits::inplace_decomposition(
m_matrix);
431 template <
typename MatrixType_,
int UpLo_>
432 template <
typename VectorType>
445 #ifndef EIGEN_PARSED_BY_DOXYGEN
446 template <
typename MatrixType_,
int UpLo_>
447 template <
typename RhsType,
typename DstType>
449 _solve_impl_transposed<true>(rhs, dst);
452 template <
typename MatrixType_,
int UpLo_>
453 template <
bool Conjugate,
typename RhsType,
typename DstType>
457 matrixL().template conjugateIf<!Conjugate>().solveInPlace(dst);
458 matrixU().template conjugateIf<!Conjugate>().solveInPlace(dst);
475 template <
typename MatrixType,
int UpLo_>
476 template <
typename Derived>
487 template <
typename MatrixType,
int UpLo_>
497 template <
typename Derived>
506 template <
typename MatrixType,
unsigned int UpLo>
AnnoyingScalar conj(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:133
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
Eigen::SparseMatrix< double > mat
Definition: EigenUnitTest.cpp:10
#define EIGEN_GENERIC_PUBLIC_INTERFACE(Derived)
Definition: Macros.h:1149
#define EIGEN_NOEXCEPT
Definition: Macros.h:1267
#define EIGEN_CONSTEXPR
Definition: Macros.h:758
#define eigen_assert(x)
Definition: Macros.h:910
#define EIGEN_STRONG_INLINE
Definition: Macros.h:834
#define EIGEN_STATIC_ASSERT_NON_INTEGER(TYPE)
Definition: StaticAssert.h:74
#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE)
Definition: StaticAssert.h:36
Scalar * b
Definition: benchVecAdd.cpp:17
SCALAR Scalar
Definition: bench_gemm.cpp:45
NumTraits< Scalar >::Real RealScalar
Definition: bench_gemm.cpp:46
MatrixXf MatrixType
Definition: benchmark-blocking-sizes.cpp:52
Expression of a fixed-size or dynamic-size block.
Definition: Block.h:110
Rotation given by a cosine-sine pair.
Definition: Jacobi.h:38
EIGEN_DEVICE_FUNC void makeGivens(const Scalar &p, const Scalar &q, Scalar *r=0)
Definition: Jacobi.h:152
Standard Cholesky decomposition (LL^T) of a matrix and associated features.
Definition: LLT.h:70
LLT & compute(const EigenBase< InputType > &matrix)
RealScalar m_l1_norm
Definition: LLT.h:209
void _solve_impl_transposed(const RhsType &rhs, DstType &dst) const
Definition: LLT.h:454
ComputationInfo info() const
Reports whether previous computation was successful.
Definition: LLT.h:174
EIGEN_CONSTEXPR Index cols() const EIGEN_NOEXCEPT
Definition: LLT.h:188
MatrixType m_matrix
Definition: LLT.h:208
LLT(Index size)
Default Constructor with memory preallocation.
Definition: LLT.h:97
internal::LLT_Traits< MatrixType, UpLo > Traits
Definition: LLT.h:81
LLT & rankUpdate(const VectorType &vec, const RealScalar &sigma=1)
void _solve_impl(const RhsType &rhs, DstType &dst) const
Definition: LLT.h:448
EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition: LLT.h:187
RealScalar rcond() const
Definition: LLT.h:152
@ MaxColsAtCompileTime
Definition: LLT.h:77
bool m_isInitialized
Definition: LLT.h:210
MatrixType_ MatrixType
Definition: LLT.h:72
@ UpLo
Definition: LLT.h:79
@ PacketSize
Definition: LLT.h:79
@ AlignmentMask
Definition: LLT.h:79
LLT(EigenBase< InputType > &matrix)
Constructs a LLT factorization from a given matrix.
Definition: LLT.h:112
const LLT & adjoint() const EIGEN_NOEXCEPT
Definition: LLT.h:185
void solveInPlace(const MatrixBase< Derived > &bAndX) const
Definition: LLT.h:477
const MatrixType & matrixLLT() const
Definition: LLT.h:162
Traits::MatrixU matrixU() const
Definition: LLT.h:117
LLT(const EigenBase< InputType > &matrix)
Definition: LLT.h:100
LLT()
Default Constructor.
Definition: LLT.h:89
MatrixType reconstructedMatrix() const
Definition: LLT.h:488
ComputationInfo m_info
Definition: LLT.h:211
SolverBase< LLT > Base
Definition: LLT.h:73
Traits::MatrixL matrixL() const
Definition: LLT.h:123
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:52
const LLT< PlainObject > llt() const
Definition: LLT.h:498
const LLT< PlainObject, UpLo > llt() const
Definition: LLT.h:507
Pseudo expression representing a solving operation.
Definition: Solve.h:62
A base class for matrix decomposition and solvers.
Definition: SolverBase.h:72
internal::traits< LLT< MatrixType_, UpLo_ > >::Scalar Scalar
Definition: SolverBase.h:75
constexpr EIGEN_DEVICE_FUNC LLT< MatrixType_, UpLo_ > & derived()
Definition: EigenBase.h:49
const Solve< LLT< MatrixType_, UpLo_ >, Rhs > solve(const MatrixBase< Rhs > &b) const
Definition: SolverBase.h:106
Scalar coeff(Index row, Index col) const
Definition: SparseMatrix.h:211
Index cols() const
Definition: SparseMatrix.h:161
Scalar & coeffRef(Index row, Index col)
Definition: SparseMatrix.h:275
Index rows() const
Definition: SparseMatrix.h:159
Expression of the transpose of a matrix.
Definition: Transpose.h:56
Expression of a triangular part in a matrix.
Definition: TriangularMatrix.h:167
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
float real
Definition: datatypes.h:10
#define min(a, b)
Definition: datatypes.h:22
#define max(a, b)
Definition: datatypes.h:23
ComputationInfo
Definition: Constants.h:438
@ Lower
Definition: Constants.h:211
@ Upper
Definition: Constants.h:213
@ NumericalIssue
Definition: Constants.h:442
@ Success
Definition: Constants.h:440
Scalar * y
Definition: level1_cplx_impl.h:128
Eigen::DenseIndex ret
Definition: level1_cplx_impl.h:43
const Scalar * a
Definition: level2_cplx_impl.h:32
int * m
Definition: level2_cplx_impl.h:294
Scalar beta
Definition: level2_cplx_impl.h:36
char char char int int * k
Definition: level2_impl.h:374
static Index llt_rank_update_lower(MatrixType &mat, const VectorType &vec, const typename MatrixType::RealScalar &sigma)
Definition: LLT.h:220
typename remove_all< T >::type remove_all_t
Definition: Meta.h:142
EIGEN_DEVICE_FUNC void apply_rotation_in_the_plane(DenseBase< VectorX > &xpr_x, DenseBase< VectorY > &xpr_y, const JacobiRotation< OtherScalar > &j)
Definition: Jacobi.h:400
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
Decomposition::RealScalar rcond_estimate_helper(typename Decomposition::RealScalar matrix_norm, const Decomposition &dec)
Reciprocal condition number estimator.
Definition: ConditionEstimator.h:157
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool is_exactly_zero(const X &x)
Definition: Meta.h:592
EIGEN_DEVICE_FUNC bool abs2(bool x)
Definition: MathFunctions.h:1102
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
Extend namespace for flags.
Definition: fsi_chan_precond_driver.cc:56
int sigma
Definition: calibrate.py:179
Definition: Eigen_Colamd.h:49
Mdouble gamma(Mdouble gamma_in)
This is the gamma function returns the true value for the half integer value.
Definition: ExtendedMath.cc:116
list x
Definition: plotDoE.py:28
Definition: EigenBase.h:33
Eigen::Index Index
The interface type of indices.
Definition: EigenBase.h:43
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index size() const EIGEN_NOEXCEPT
Definition: EigenBase.h:64
Definition: Constants.h:534
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:217
Definition: Constants.h:525
static bool inplace_decomposition(MatrixType &m)
Definition: LLT.h:372
const TriangularView< const typename MatrixType::AdjointReturnType, Upper > MatrixU
Definition: LLT.h:369
const TriangularView< const MatrixType, Lower > MatrixL
Definition: LLT.h:368
static MatrixL getL(const MatrixType &m)
Definition: LLT.h:370
static MatrixU getU(const MatrixType &m)
Definition: LLT.h:371
const TriangularView< const MatrixType, Upper > MatrixU
Definition: LLT.h:380
static MatrixU getU(const MatrixType &m)
Definition: LLT.h:382
static MatrixL getL(const MatrixType &m)
Definition: LLT.h:381
const TriangularView< const typename MatrixType::AdjointReturnType, Lower > MatrixL
Definition: LLT.h:379
static bool inplace_decomposition(MatrixType &m)
Definition: LLT.h:383
NumTraits< Scalar >::Real RealScalar
Definition: LLT.h:284
static Index blocked(MatrixType &m)
Definition: LLT.h:309
static Index unblocked(MatrixType &mat)
Definition: LLT.h:286
static Index rankUpdate(MatrixType &mat, const VectorType &vec, const RealScalar &sigma)
Definition: LLT.h:340
static EIGEN_STRONG_INLINE Index unblocked(MatrixType &mat)
Definition: LLT.h:350
NumTraits< Scalar >::Real RealScalar
Definition: LLT.h:347
static EIGEN_STRONG_INLINE Index blocked(MatrixType &mat)
Definition: LLT.h:355
static Index rankUpdate(MatrixType &mat, const VectorType &vec, const RealScalar &sigma)
Definition: LLT.h:360
Definition: GenericPacketMath.h:108
MatrixXpr XprKind
Definition: LLT.h:22
int StorageIndex
Definition: LLT.h:24
SolverStorage StorageKind
Definition: LLT.h:23
Definition: ForwardDeclarations.h:21
Definition: fft_test_shared.h:66
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2