13template<
typename Derived1,
typename Derived2>
17 * (std::max)(
m1.cwiseAbs2().maxCoeff(),
m2.cwiseAbs2().maxCoeff()));
25 typedef typename MatrixType::Scalar
Scalar;
30 typedef Matrix<
Scalar, MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime,
42 identity = RowSquareMatrixType::Identity(
rows,
rows),
46 square2 = ColSquareMatrixType::Random(
cols,
cols),
47 res2 = ColSquareMatrixType::Random(
cols,
cols);
48 RowVectorType
v1 = RowVectorType::Random(
rows);
49 ColVectorType vc2 = ColVectorType::Random(
cols), vcres(
cols);
50 OtherMajorMatrixType tm1 =
m1;
52 Scalar s1 = internal::random<Scalar>();
54 Index r = internal::random<Index>(0,
rows-1),
55 c = internal::random<Index>(0,
cols-1),
56 c2 = internal::random<Index>(0,
cols-1);
62 m3 *=
m1.transpose() *
m2;
92 res.noalias() +=
m1 *
m2.transpose();
99 vcres.noalias() +=
m1.transpose() *
v1;
104 res.noalias() -=
m1 *
m2.transpose();
111 vcres.noalias() -=
m1.transpose() *
v1;
116 res.noalias() = s1 *
m1 *
m2.transpose();
119 res.noalias() += s1 *
m1 *
m2.transpose();
122 res.noalias() -= s1 *
m1 *
m2.transpose();
156 res2.noalias() +=
m1.transpose() *
m2;
168 RowSquareMatrixType ref(
square);
169 ColSquareMatrixType ref2(square2);
175 ref2 = res2 = square2;
176 VERIFY_IS_APPROX(res2.block(0,0,1,
cols).noalias() =
m1.row(0) * square2.transpose(), (ref2.row(0) =
m1.row(0) * square2.transpose()));
177 VERIFY_IS_APPROX(res2.block(0,0,1,
cols).noalias() =
m1.block(0,0,1,
cols) * square2.transpose(), (ref2.row(0) =
m1.row(0) * square2.transpose()));
184 RowVectorType w1(
rows);
191 VERIFY_IS_APPROX(w2.noalias() = vc2.block(0,0,
cols,1).transpose() * square2, vc2.transpose() * square2);
192 VERIFY_IS_APPROX(w2.block(0,0,1,
cols).noalias() = vc2.block(0,0,
cols,1).transpose() * square2, vc2.transpose() * square2);
194 vc2 = square2.block(0,0,1,
cols).transpose();
196 VERIFY_IS_APPROX(w2.noalias() = square2.block(0,0,1,
cols) * square2, vc2.transpose() * square2);
199 vc2 = square2.block(0,0,
cols,1);
201 VERIFY_IS_APPROX(w2.noalias() = square2.block(0,0,
cols,1).transpose() * square2, vc2.transpose() * square2);
202 VERIFY_IS_APPROX(w2.block(0,0,1,
cols).noalias() = square2.block(0,0,
cols,1).transpose() * square2, vc2.transpose() * square2);
207 Scalar x = square2.row(
c) * square2.col(c2);
215 VERIFY_IS_APPROX(
m1.block(0,
c,
rows,1) *
m1.row(r),
m1.block(0,
c,
rows,1) *
m1.block(r,0,1,
cols));
216 VERIFY_IS_APPROX(
m1.col(
c) *
m1.block(r,0,1,
cols),
m1.block(0,
c,
rows,1) *
m1.block(r,0,1,
cols));
223 ColVectorType
x(
cols);
x.setRandom();
225 ColVectorType
y(
cols);
y.setZero();
246 if(!MatrixType::IsRowMajor)
Matrix3f m
Definition AngleAxis_mimic_euler.cpp:1
EIGEN_DEVICE_FUNC const SquareReturnType square() const
Definition ArrayCwiseUnaryOps.h:425
int i
Definition BiCGSTAB_step_by_step.cpp:9
EIGEN_DEVICE_FUNC ConjugateReturnType conjugate() const
Definition CommonCwiseUnaryOps.h:74
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseAbs2ReturnType cwiseAbs2() const
Definition MatrixCwiseUnaryOps.h:46
cout<< "Here is the matrix m:"<< endl<< m<< endl;Matrix< ptrdiff_t, 3, 1 > res
Definition PartialRedux_count.cpp:3
M1<< 1, 2, 3, 4, 5, 6, 7, 8, 9;Map< RowVectorXf > v1(M1.data(), M1.size())
int rows
Definition Tutorial_commainit_02.cpp:1
int cols
Definition Tutorial_commainit_02.cpp:1
Scalar Scalar * c
Definition benchVecAdd.cpp:17
SCALAR Scalar
Definition bench_gemm.cpp:46
Matrix< SCALARA, Dynamic, Dynamic, opt_A > A
Definition bench_gemm.cpp:48
MatrixXf MatrixType
Definition benchmark-blocking-sizes.cpp:52
A matrix or vector expression mapping an existing array of data.
Definition Map.h:96
Base class for all dense matrices, vectors, and expressions.
Definition MatrixBase.h:50
The matrix class, also used for vectors and row-vectors.
Definition Matrix.h:180
Derived & setRandom(Index size)
Definition Random.h:151
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR Index rows() const EIGEN_NOEXCEPT
Definition PlainObjectBase.h:143
Holds strides information for Map.
Definition Stride.h:49
#define VERIFY(a)
Definition main.h:380
#define VERIFY_RAISES_ASSERT(a)
Definition main.h:340
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
Definition gnuplot_common_settings.hh:12
@ ColMajor
Definition Constants.h:319
@ RowMajor
Definition Constants.h:321
const unsigned int RowMajorBit
Definition Constants.h:66
#define VERIFY_IS_APPROX(a, b)
Definition integer_types.cpp:15
Scalar * y
Definition level1_cplx_impl.h:124
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:74
bool areNotApprox(const MatrixBase< Derived1 > &m1, const MatrixBase< Derived2 > &m2, typename Derived1::RealScalar epsilon=NumTraits< typename Derived1::RealScalar >::dummy_precision())
Definition product.h:14
void product(const MatrixType &m)
Definition product.h:20
internal::nested_eval< T, 1 >::type eval(const T &xpr)
Definition sparse_permutations.cpp:38
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition NumTraits.h:233