20 enum { Rows = MatrixType::RowsAtCompileTime, Cols = MatrixType::ColsAtCompileTime };
33 RowVectorType rv1 = RowVectorType::Random(
cols), rv2 = RowVectorType::Random(
cols);
35 LeftDiagonalMatrix ldm1(
v1), ldm2(
v2);
36 RightDiagonalMatrix rdm1(rv1), rdm2(rv2);
38 Scalar s1 = internal::random<Scalar>();
40 SquareMatrixType sq_m1(
v1.asDiagonal());
42 sq_m1 =
v1.asDiagonal();
44 SquareMatrixType sq_m2 =
v1.asDiagonal();
47 ldm1 =
v1.asDiagonal();
48 LeftDiagonalMatrix ldm3(
v1);
50 LeftDiagonalMatrix ldm4 =
v1.asDiagonal();
53 sq_m1.block(0, 0,
rows,
rows) = ldm1;
55 sq_m1.transpose() = ldm1;
58 Index i = internal::random<Index>(0,
rows - 1);
59 Index j = internal::random<Index>(0,
cols - 1);
61 internal::set_is_malloc_allowed(
false);
74 internal::set_is_malloc_allowed(
true);
97 internal::set_is_malloc_allowed(
false);
98 res.noalias() = ldm1 *
m1;
99 res.noalias() =
m1 * rdm1;
100 res.noalias() = ldm1 *
m1 * rdm1;
102 internal::set_is_malloc_allowed(
true);
114 VERIFY_IS_APPROX((sq_m1 += (s1 *
v1).asDiagonal()), sq_m2 += (s1 *
v1).asDiagonal().toDenseMatrix());
115 VERIFY_IS_APPROX((sq_m1 -= (s1 *
v1).asDiagonal()), sq_m2 -= (s1 *
v1).asDiagonal().toDenseMatrix());
119 sq_m2 =
v1.asDiagonal();
120 sq_m2 = sq_m1 * sq_m2;
124 sq_m1 =
v1.asDiagonal();
125 sq_m2 =
v2.asDiagonal();
126 SquareMatrixType sq_m3 =
v1.asDiagonal();
129 VERIFY_IS_APPROX(sq_m3 =
v1.asDiagonal() - 2 *
v2.asDiagonal() +
v1.asDiagonal(), sq_m1 - 2 * sq_m2 + sq_m1);
133 LeftDiagonalMatrix identity = LeftDiagonalMatrix::Identity(
rows);
int i
Definition: BiCGSTAB_step_by_step.cpp:9
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition: PartialRedux_count.cpp:3
Map< RowVectorXf > v2(M2.data(), M2.size())
int cols
Definition: Tutorial_commainit_02.cpp:1
MatrixXf MatrixType
Definition: benchmark-blocking-sizes.cpp:52
Represents a diagonal matrix with its storage.
Definition: DiagonalMatrix.h:172
void diagonal(const MatrixType &m)
Definition: diagonal.cpp:13
Eigen::Matrix< Scalar, Dynamic, Dynamic, ColMajor > tmp
Definition: level3_impl.h:365
double Zero
Definition: pseudosolid_node_update_elements.cc:35
EIGEN_DONT_INLINE Scalar zero()
Definition: svd_common.h:232
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2