24 m2 = MatrixType::Random(rows, cols),
26 VectorType
v1 = VectorType::Random(rows),
27 v2 = VectorType::Random(rows),
29 RowVectorType
r1 = RowVectorType::Random(rows),
30 r2 = RowVectorType::Random(rows);
31 RhsMatrixType m4 = RhsMatrixType::Random(rows,10);
33 Scalar s1 = internal::random<Scalar>(),
34 s2 = internal::random<Scalar>(),
35 s3 = internal::random<Scalar>();
37 m1 = (m1.adjoint() +
m1).
eval();
41 m2.template selfadjointView<Lower>().rankUpdate(v1,
v2);
44 m2 = m1.template triangularView<Upper>();
45 m2.template selfadjointView<Upper>().rankUpdate(-v1,s2*
v2,s3);
48 m2 = m1.template triangularView<Upper>();
49 m2.template selfadjointView<Upper>().rankUpdate(-s2*r1.adjoint(),
r2.adjoint()*s3,s1);
55 m2.block(1,1,rows-1,cols-1).template selfadjointView<Lower>().rankUpdate(v1.tail(rows-1),v2.head(cols-1));
57 m3.block(1,1,rows-1,cols-1) += v1.tail(rows-1) * v2.head(cols-1).adjoint()+ v2.head(cols-1) * v1.tail(rows-1).adjoint();
#define CALL_SUBTEST_6(FUNC)
#define CALL_SUBTEST_4(FUNC)
void adjoint(const MatrixType &m)
#define CALL_SUBTEST_3(FUNC)
#define CALL_SUBTEST_7(FUNC)
AnnoyingScalar conj(const AnnoyingScalar &x)
EIGEN_DECLARE_TEST(product_selfadjoint)
#define VERIFY_IS_APPROX(a, b)
#define CALL_SUBTEST_1(FUNC)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
#define TEST_SET_BUT_UNUSED_VARIABLE(X)
#define CALL_SUBTEST_5(FUNC)
#define EIGEN_TEST_MAX_SIZE
A triangularView< Lower >().adjoint().solveInPlace(B)
void product_selfadjoint(const MatrixType &m)
#define CALL_SUBTEST_2(FUNC)
internal::nested_eval< T, 1 >::type eval(const T &xpr)
The matrix class, also used for vectors and row-vectors.