mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-13 08:31:48 +08:00
Another fix to make boost::multiprecision compile again
This commit is contained in:
parent
686e0749a5
commit
5f71579a2d
@ -827,7 +827,7 @@ void BDCSVD<MatrixType>::computeSingVals(const ArrayRef& col0, const ArrayRef& d
|
|||||||
{
|
{
|
||||||
// to avoid overflow, we must have mu > max(real_min, |z(k)|/sqrt(real_max)),
|
// to avoid overflow, we must have mu > max(real_min, |z(k)|/sqrt(real_max)),
|
||||||
// the factor 2 is to be more conservative
|
// the factor 2 is to be more conservative
|
||||||
leftShifted = numext::maxi( (std::numeric_limits<RealScalar>::min)(), Literal(2) * abs(col0(k)) / sqrt((std::numeric_limits<RealScalar>::max)()) );
|
leftShifted = numext::maxi<RealScalar>( (std::numeric_limits<RealScalar>::min)(), Literal(2) * abs(col0(k)) / sqrt((std::numeric_limits<RealScalar>::max)()) );
|
||||||
|
|
||||||
// check that we did it right:
|
// check that we did it right:
|
||||||
eigen_internal_assert( (numext::isfinite)( (col0(k)/leftShifted)*(col0(k)/(diag(k)+shift+leftShifted)) ) );
|
eigen_internal_assert( (numext::isfinite)( (col0(k)/leftShifted)*(col0(k)/(diag(k)+shift+leftShifted)) ) );
|
||||||
@ -839,7 +839,7 @@ void BDCSVD<MatrixType>::computeSingVals(const ArrayRef& col0, const ArrayRef& d
|
|||||||
{
|
{
|
||||||
leftShifted = -(right - left) * RealScalar(0.51);
|
leftShifted = -(right - left) * RealScalar(0.51);
|
||||||
if(k+1<n)
|
if(k+1<n)
|
||||||
rightShifted = -numext::maxi( (std::numeric_limits<RealScalar>::min)(), abs(col0(k+1)) / sqrt((std::numeric_limits<RealScalar>::max)()) );
|
rightShifted = -numext::maxi<RealScalar>( (std::numeric_limits<RealScalar>::min)(), abs(col0(k+1)) / sqrt((std::numeric_limits<RealScalar>::max)()) );
|
||||||
else
|
else
|
||||||
rightShifted = -(std::numeric_limits<RealScalar>::min)();
|
rightShifted = -(std::numeric_limits<RealScalar>::min)();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user