18 RealScalar largerEps = 10 * test_precision<RealScalar>();
26 Scalar s1 = internal::random<Scalar>();
31 m3 =
m1.template triangularView<Eigen::Lower>();
33 m3 =
m1.template triangularView<Eigen::Upper>();
35 m3 =
m1.template triangularView<Eigen::UnitLower>();
37 m3 =
m1.template triangularView<Eigen::UnitUpper>();
41 m3 =
m1.template triangularView<Eigen::Lower>();
43 .
isApprox((s1 *
m1).conjugate().
template triangularView<Eigen::Lower>() *
v1, largerEps));
44 m3 =
m1.template triangularView<Eigen::Upper>();
45 VERIFY((m3.conjugate() *
v1.conjugate())
46 .isApprox(
m1.conjugate().template triangularView<Eigen::Upper>() *
v1.conjugate(), largerEps));
49 m3 =
m1.template triangularView<Eigen::Upper>();
50 VERIFY((m3.transpose() *
v1).isApprox(
m1.transpose().template triangularView<Eigen::Lower>() *
v1, largerEps));
51 m3 =
m1.template triangularView<Eigen::Lower>();
52 VERIFY((m3.transpose() *
v1).isApprox(
m1.transpose().template triangularView<Eigen::Upper>() *
v1, largerEps));
53 m3 =
m1.template triangularView<Eigen::UnitUpper>();
54 VERIFY((m3.transpose() *
v1).isApprox(
m1.transpose().template triangularView<Eigen::UnitLower>() *
v1, largerEps));
55 m3 =
m1.template triangularView<Eigen::UnitLower>();
56 VERIFY((m3.transpose() *
v1).isApprox(
m1.transpose().template triangularView<Eigen::UnitUpper>() *
v1, largerEps));
59 m3 =
m1.template triangularView<Eigen::Upper>();
60 VERIFY((m3.adjoint() *
v1).isApprox(
m1.adjoint().template triangularView<Eigen::Lower>() *
v1, largerEps));
61 m3 =
m1.template triangularView<Eigen::Lower>();
62 VERIFY((m3.adjoint() * (s1 *
v1.conjugate()))
63 .isApprox(
m1.adjoint().template triangularView<Eigen::Upper>() * (s1 *
v1.conjugate()), largerEps));
64 m3 =
m1.template triangularView<Eigen::UnitUpper>();
67 m3 =
m1.template triangularView<Eigen::Lower>();
68 VERIFY((
v1.transpose() * m3).isApprox(
v1.transpose() *
m1.template triangularView<Eigen::Lower>(), largerEps));
69 VERIFY((
v1.adjoint() * m3).isApprox(
v1.adjoint() *
m1.template triangularView<Eigen::Lower>(), largerEps));
71 .isApprox(
v1.adjoint() *
m1.template triangularView<Eigen::Lower>().adjoint(), largerEps));
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
Definition: bench_gemm.cpp:45
NumTraits< Scalar >::Real RealScalar
Definition: bench_gemm.cpp:46
MatrixXf MatrixType
Definition: benchmark-blocking-sizes.cpp:52
int * m
Definition: level2_cplx_impl.h:294
#define VERIFY(a)
Definition: main.h:362
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
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
Definition: fft_test_shared.h:66