mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-02 10:10:37 +08:00
Added missing casts.
This commit is contained in:
parent
437a79e1ab
commit
e6cac85333
@ -36,8 +36,8 @@ template<typename MatrixType> void stable_norm(const MatrixType& m)
|
|||||||
int rows = m.rows();
|
int rows = m.rows();
|
||||||
int cols = m.cols();
|
int cols = m.cols();
|
||||||
|
|
||||||
Scalar big = ei_random<Scalar>() * std::numeric_limits<RealScalar>::max() * 1e-4;
|
Scalar big = ei_random<Scalar>() * std::numeric_limits<RealScalar>::max() * RealScalar(1e-4);
|
||||||
Scalar small = 1/big;
|
Scalar small = static_cast<RealScalar>(1)/big;
|
||||||
|
|
||||||
MatrixType vzero = MatrixType::Zero(rows, cols),
|
MatrixType vzero = MatrixType::Zero(rows, cols),
|
||||||
vrand = MatrixType::Random(rows, cols),
|
vrand = MatrixType::Random(rows, cols),
|
||||||
@ -52,19 +52,19 @@ template<typename MatrixType> void stable_norm(const MatrixType& m)
|
|||||||
VERIFY_IS_APPROX(vrand.blueNorm(), vrand.norm());
|
VERIFY_IS_APPROX(vrand.blueNorm(), vrand.norm());
|
||||||
VERIFY_IS_APPROX(vrand.hypotNorm(), vrand.norm());
|
VERIFY_IS_APPROX(vrand.hypotNorm(), vrand.norm());
|
||||||
|
|
||||||
RealScalar size = m.size();
|
RealScalar size = static_cast<RealScalar>(m.size());
|
||||||
|
|
||||||
// test overflow
|
// test overflow
|
||||||
VERIFY_IS_NOT_APPROX(vbig.norm(), ei_sqrt(size)*big); // here the default norm must fail
|
VERIFY_IS_NOT_APPROX(static_cast<Scalar>(vbig.norm()), ei_sqrt(size)*big); // here the default norm must fail
|
||||||
VERIFY_IS_APPROX(vbig.stableNorm(), ei_sqrt(size)*big);
|
VERIFY_IS_APPROX(static_cast<Scalar>(vbig.stableNorm()), ei_sqrt(size)*big);
|
||||||
VERIFY_IS_APPROX(vbig.blueNorm(), ei_sqrt(size)*big);
|
VERIFY_IS_APPROX(static_cast<Scalar>(vbig.blueNorm()), ei_sqrt(size)*big);
|
||||||
VERIFY_IS_APPROX(vbig.hypotNorm(), ei_sqrt(size)*big);
|
VERIFY_IS_APPROX(static_cast<Scalar>(vbig.hypotNorm()), ei_sqrt(size)*big);
|
||||||
|
|
||||||
// test underflow
|
// test underflow
|
||||||
VERIFY_IS_NOT_APPROX(vsmall.norm(), ei_sqrt(size)*small); // here the default norm must fail
|
VERIFY_IS_NOT_APPROX(static_cast<Scalar>(vsmall.norm()), ei_sqrt(size)*small); // here the default norm must fail
|
||||||
VERIFY_IS_APPROX(vsmall.stableNorm(), ei_sqrt(size)*small);
|
VERIFY_IS_APPROX(static_cast<Scalar>(vsmall.stableNorm()), ei_sqrt(size)*small);
|
||||||
VERIFY_IS_APPROX(vsmall.blueNorm(), ei_sqrt(size)*small);
|
VERIFY_IS_APPROX(static_cast<Scalar>(vsmall.blueNorm()), ei_sqrt(size)*small);
|
||||||
VERIFY_IS_APPROX(vsmall.hypotNorm(), ei_sqrt(size)*small);
|
VERIFY_IS_APPROX(static_cast<Scalar>(vsmall.hypotNorm()), ei_sqrt(size)*small);
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_stable_norm()
|
void test_stable_norm()
|
||||||
@ -77,4 +77,3 @@ void test_stable_norm()
|
|||||||
CALL_SUBTEST( stable_norm(VectorXcd(ei_random<int>(10,2000))) );
|
CALL_SUBTEST( stable_norm(VectorXcd(ei_random<int>(10,2000))) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user