70 SquareMatrixType
symm = a0 * a0.adjoint();
72 for (
int k = 0;
k < 3; ++
k) {
74 symm += a1 * a1.adjoint();
81 SquareMatrixType symmUp =
symm.template triangularView<Upper>();
82 SquareMatrixType symmLo =
symm.template triangularView<Lower>();
87 check_solverbase<VectorType, VectorType>(
symm, chollo,
rows,
rows, 1);
92 (
RealScalar(1) / matrix_l1_norm<MatrixType, Lower>(symmLo)) / matrix_l1_norm<MatrixType, Lower>(symmLo_inverse);
96 VERIFY(rcond_est >= rcond / 10 && rcond_est <= rcond * 10);
101 vecX = cholup.solve(vecB);
103 matX = cholup.solve(
matB);
110 (
RealScalar(1) / matrix_l1_norm<MatrixType, Upper>(symmUp)) / matrix_l1_norm<MatrixType, Upper>(symmUp_inverse);
111 rcond_est = cholup.rcond();
112 VERIFY(rcond_est >= rcond / 10 && rcond_est <= rcond * 10);
126 m2 += symmLo.template selfadjointView<Lower>().llt().solve(
matB);
129 m2 -= symmLo.template selfadjointView<Lower>().llt().solve(
matB);
132 m2.noalias() += symmLo.template selfadjointView<Lower>().llt().solve(
matB);
135 m2.noalias() -= symmLo.template selfadjointView<Lower>().llt().solve(
matB);
144 int sign = internal::random<int>() % 2 ? 1 : -1;
150 SquareMatrixType symmUp =
symm.template triangularView<Upper>();
151 SquareMatrixType symmLo =
symm.template triangularView<Lower>();
157 check_solverbase<VectorType, VectorType>(
symm, ldltlo,
rows,
rows, 1);
162 (
RealScalar(1) / matrix_l1_norm<MatrixType, Lower>(symmLo)) / matrix_l1_norm<MatrixType, Lower>(symmLo_inverse);
166 VERIFY(rcond_est >= rcond / 10 && rcond_est <= rcond * 10);
171 vecX = ldltup.solve(vecB);
173 matX = ldltup.solve(
matB);
180 (
RealScalar(1) / matrix_l1_norm<MatrixType, Upper>(symmUp)) / matrix_l1_norm<MatrixType, Upper>(symmUp_inverse);
181 rcond_est = ldltup.rcond();
182 VERIFY(rcond_est >= rcond / 10 && rcond_est <= rcond * 10);
189 if (MatrixType::RowsAtCompileTime ==
Dynamic) {
207 SquareMatrixType
A =
symm;
208 Index c = internal::random<Index>(0,
rows - 2);
216 vecX = ldltlo.solve(vecB);
222 Index r = internal::random<Index>(1,
rows - 1);
224 SquareMatrixType
A =
a *
a.adjoint();
231 vecX = ldltlo.solve(vecB);
242 for (
Index k = 0; k < rows; ++k) d(k) = d(k) * pow(RealScalar(10), internal::random<RealScalar>(-
s,
s));
243 SquareMatrixType
A =
a * d.asDiagonal() *
a.adjoint();
250 vecX = ldltlo.solve(vecB);
252 if (ldltlo.vectorD().real().cwiseAbs().minCoeff() >
RealScalar(0)) {
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
int rows
Definition: Tutorial_commainit_02.cpp:1
int cols
Definition: Tutorial_commainit_02.cpp:1
SCALAR Scalar
Definition: bench_gemm.cpp:45
NumTraits< Scalar >::Real RealScalar
Definition: bench_gemm.cpp:46
MatrixXf MatrixType
Definition: benchmark-blocking-sizes.cpp:52
Robust Cholesky decomposition of a matrix with pivoting.
Definition: LDLT.h:63
Standard Cholesky decomposition (LL^T) of a matrix and associated features.
Definition: LLT.h:70
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
EIGEN_DEVICE_FUNC Derived & setZero(Index size)
Definition: CwiseNullaryOp.h:569
Derived & setRandom(Index size)
Definition: Random.h:147
#define min(a, b)
Definition: datatypes.h:22
@ NumericalIssue
Definition: Constants.h:442
@ Success
Definition: Constants.h:440
#define VERIFY_IS_APPROX(a, b)
Definition: integer_types.cpp:13
RealScalar s
Definition: level1_cplx_impl.h:130
const Scalar * a
Definition: level2_cplx_impl.h:32
int * m
Definition: level2_cplx_impl.h:294
char char char int int * k
Definition: level2_impl.h:374
#define VERIFY(a)
Definition: main.h:362
#define STATIC_CHECK(COND)
Definition: main.h:380
#define CALL_SUBTEST(FUNC)
Definition: main.h:382
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 pow(const bfloat16 &a, const bfloat16 &b)
Definition: BFloat16.h:625
EIGEN_DEVICE_FUNC bool isApprox(const Scalar &x, const Scalar &y, const typename NumTraits< Scalar >::Real &precision=NumTraits< Scalar >::dummy_precision())
Definition: MathFunctions.h:1923
squared absolute value
Definition: GlobalFunctions.h:87
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
static int g_test_level
Definition: main.h:190
const int Dynamic
Definition: Constants.h:25
T sign(T x)
Definition: cxx11_tensor_builtins_sycl.cpp:172
int c
Definition: calibrate.py:100
void symm(int size=Size, int othersize=OtherSize)
Definition: product_symm.cpp:13
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:217
Definition: fft_test_shared.h:66
#define VERIFY_EVALUATION_COUNT(XPR, N)
Definition: test/sparse_product.cpp:28