mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-27 23:32:02 +08:00
std::isfinite is non standard
This commit is contained in:
parent
ee9f3e34b0
commit
0d03492e1e
@ -354,6 +354,7 @@ template<> struct ldlt_inplace<Lower>
|
|||||||
template<typename MatrixType, typename WDerived>
|
template<typename MatrixType, typename WDerived>
|
||||||
static bool updateInPlace(MatrixType& mat, MatrixBase<WDerived>& w, typename MatrixType::RealScalar sigma=1)
|
static bool updateInPlace(MatrixType& mat, MatrixBase<WDerived>& w, typename MatrixType::RealScalar sigma=1)
|
||||||
{
|
{
|
||||||
|
using internal::isfinite;
|
||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename MatrixType::RealScalar RealScalar;
|
typedef typename MatrixType::RealScalar RealScalar;
|
||||||
typedef typename MatrixType::Index Index;
|
typedef typename MatrixType::Index Index;
|
||||||
@ -367,7 +368,7 @@ template<> struct ldlt_inplace<Lower>
|
|||||||
for (Index j = 0; j < size; j++)
|
for (Index j = 0; j < size; j++)
|
||||||
{
|
{
|
||||||
// Check for termination due to an original decomposition of low-rank
|
// Check for termination due to an original decomposition of low-rank
|
||||||
if (!std::isfinite(alpha))
|
if (!isfinite(alpha))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Update the diagonal terms
|
// Update the diagonal terms
|
||||||
|
@ -837,6 +837,17 @@ template<> struct scalar_fuzzy_impl<bool>
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Special functions *
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
// std::isfinite is non standard, so let's define our own version,
|
||||||
|
// even though it is not very efficient.
|
||||||
|
template<typename T> bool isfinite(const T& x)
|
||||||
|
{
|
||||||
|
return x<NumTraits<T>::highest() && x>NumTraits<T>::lowest();
|
||||||
|
}
|
||||||
|
|
||||||
} // end namespace internal
|
} // end namespace internal
|
||||||
|
|
||||||
#endif // EIGEN_MATHFUNCTIONS_H
|
#endif // EIGEN_MATHFUNCTIONS_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user