75 RealScalar largerEps = 10 * test_precision<RealScalar>();
84 symmA.template triangularView<StrictlyUpper>().setZero();
85 symmC.template triangularView<StrictlyUpper>().setZero();
90 symmB.template triangularView<StrictlyUpper>().setZero();
103 eiSymmGen.compute(symmC, symmB,
Ax_lBx);
105 VERIFY((symmC.template selfadjointView<Lower>() * eiSymmGen.eigenvectors())
106 .isApprox(symmB.template selfadjointView<Lower>() *
107 (eiSymmGen.eigenvectors() * eiSymmGen.eigenvalues().asDiagonal()),
111 eiSymmGen.compute(symmC, symmB,
BAx_lx);
114 (symmB.template selfadjointView<Lower>() * (symmC.template selfadjointView<Lower>() * eiSymmGen.eigenvectors()))
115 .isApprox((eiSymmGen.eigenvectors() * eiSymmGen.eigenvalues().asDiagonal()), largerEps));
118 eiSymmGen.compute(symmC, symmB,
ABx_lx);
121 (symmC.template selfadjointView<Lower>() * (symmB.template selfadjointView<Lower>() * eiSymmGen.eigenvectors()))
122 .isApprox((eiSymmGen.eigenvectors() * eiSymmGen.eigenvalues().asDiagonal()), largerEps));
124 eiSymm.compute(symmC);
127 VERIFY_IS_APPROX(sqrtSymmA, symmC.template selfadjointView<Lower>() * eiSymm.operatorInverseSqrt());
139 eiSymmUninitialized.
compute(symmA,
false);
147 VERIFY_IS_APPROX(tridiag.subDiagonal(), tridiag.matrixT().template diagonal<-1>());
156 tridiag.matrixQ() * tridiag.matrixT().eval() *
MatrixType(tridiag.matrixQ()).adjoint());
158 tridiag.matrixQ() * tridiag.matrixT() * tridiag.matrixQ().adjoint());
172 symmC(0, 0) = std::numeric_limits<typename MatrixType::RealScalar>::quiet_NaN();
180 eig.compute(
a.adjoint() *
a);
189 VERIFY((ei3.eigenvectors().transpose() * ei3.eigenvectors().transpose()).eval().isIdentity());
int rows
Definition: Tutorial_commainit_02.cpp:1
int cols
Definition: Tutorial_commainit_02.cpp:1
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
Computes eigenvalues and eigenvectors of the generalized selfadjoint eigen problem.
Definition: GeneralizedSelfAdjointEigenSolver.h:51
EIGEN_DEVICE_FUNC ComputationInfo info() const
Reports whether previous computation was successful.
Definition: SelfAdjointEigenSolver.h:356
SelfAdjointEigenSolver & computeFromTridiagonal(const RealVectorType &diag, const SubDiagonalType &subdiag, int options=ComputeEigenvectors)
Computes the eigen decomposition from a tridiagonal symmetric matrix.
Definition: SelfAdjointEigenSolver.h:455
EIGEN_DEVICE_FUNC SelfAdjointEigenSolver & compute(const EigenBase< InputType > &matrix, int options=ComputeEigenvectors)
Computes eigendecomposition of given matrix.
EIGEN_DEVICE_FUNC MatrixType operatorSqrt() const
Computes the positive-definite square root of the matrix.
Definition: SelfAdjointEigenSolver.h:322
EIGEN_DEVICE_FUNC const EigenvectorsType & eigenvectors() const
Returns the eigenvectors of given matrix.
Definition: SelfAdjointEigenSolver.h:279
EIGEN_DEVICE_FUNC MatrixType operatorInverseSqrt() const
Computes the inverse square root of the matrix.
Definition: SelfAdjointEigenSolver.h:346
EIGEN_DEVICE_FUNC const RealVectorType & eigenvalues() const
Returns the eigenvalues of given matrix.
Definition: SelfAdjointEigenSolver.h:300
@ Symmetric
Definition: Constants.h:229
@ Success
Definition: Constants.h:440
@ NoConvergence
Definition: Constants.h:444
@ Ax_lBx
Definition: Constants.h:406
@ ComputeEigenvectors
Definition: Constants.h:401
@ BAx_lx
Definition: Constants.h:412
@ ABx_lx
Definition: Constants.h:409
const Scalar * a
Definition: level2_cplx_impl.h:32
#define VERIFY(a)
Definition: main.h:362
#define CALL_SUBTEST(FUNC)
Definition: main.h:382
#define VERIFY_IS_EQUAL(a, b)
Definition: main.h:367
#define VERIFY_IS_MUCH_SMALLER_THAN(a, b)
Definition: main.h:371
#define VERIFY_RAISES_ASSERT(a)
Definition: main.h:329
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:217
void svd_fill_random(MatrixType &m, int Option=0)
Definition: svd_fill.h:27