mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Fix SVD for MSVC.
This commit is contained in:
committed by
Rasmus Munk Larsen
parent
19c39bea29
commit
f03df0df53
@@ -106,7 +106,8 @@ void msvc_workaround()
|
||||
{
|
||||
const Foo::Bar a;
|
||||
const Foo::Bar b;
|
||||
std::max EIGEN_NOT_A_MACRO (a,b);
|
||||
const Foo::Bar c = std::max EIGEN_NOT_A_MACRO (a,b);
|
||||
EIGEN_UNUSED_VARIABLE(c)
|
||||
}
|
||||
|
||||
EIGEN_DECLARE_TEST(jacobisvd)
|
||||
|
||||
@@ -113,9 +113,8 @@ void svd_least_square(const MatrixType& m) {
|
||||
RhsType rhs = RhsType::Random(rows, internal::random<Index>(1, cols));
|
||||
SvdType svd(m);
|
||||
|
||||
if (internal::is_same<RealScalar, double>::value)
|
||||
svd.setThreshold(1e-8);
|
||||
else if(internal::is_same<RealScalar,float>::value) svd.setThreshold(2e-4);
|
||||
if (internal::is_same<RealScalar, double>::value) svd.setThreshold(RealScalar(1e-8));
|
||||
else if(internal::is_same<RealScalar,float>::value) svd.setThreshold(RealScalar(2e-4));
|
||||
|
||||
SolutionType x = svd.solve(rhs);
|
||||
|
||||
|
||||
@@ -64,8 +64,11 @@ void svd_fill_random(MatrixType &m, int Option = 0)
|
||||
}
|
||||
|
||||
Matrix<Scalar,Dynamic,1> samples(9);
|
||||
samples << 0, four_denorms<RealScalar>(),
|
||||
-RealScalar(1)/NumTraits<RealScalar>::highest(), RealScalar(1)/NumTraits<RealScalar>::highest(), (std::numeric_limits<RealScalar>::min)(), pow((std::numeric_limits<RealScalar>::min)(),0.8);
|
||||
samples << Scalar(0), four_denorms<RealScalar>(),
|
||||
-RealScalar(1)/NumTraits<RealScalar>::highest(),
|
||||
RealScalar(1)/NumTraits<RealScalar>::highest(),
|
||||
(std::numeric_limits<RealScalar>::min)(),
|
||||
pow((std::numeric_limits<RealScalar>::min)(), RealScalar(0.8));
|
||||
|
||||
if(Option==Symmetric)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user