diff --git a/Eigen/src/Core/MathFunctions.h b/Eigen/src/Core/MathFunctions.h index 6b65500ce..6d4fc41df 100644 --- a/Eigen/src/Core/MathFunctions.h +++ b/Eigen/src/Core/MathFunctions.h @@ -129,7 +129,7 @@ inline float ei_norm1(float x) { return ei_abs(x); } inline float ei_sqrt(float x) { return std::sqrt(x); } inline float ei_exp(float x) { return std::exp(x); } inline float ei_log(float x) { return std::log(x); } -#ifndef _MSC_VER +#if (!defined(_MSC_VER) && !defined(__CYGWIN__)) inline float ei_erf(float x) { return erff(x); } #endif inline float ei_sin(float x) { return std::sin(x); } @@ -179,7 +179,7 @@ inline double ei_norm1(double x) { return ei_abs(x); } inline double ei_sqrt(double x) { return std::sqrt(x); } inline double ei_exp(double x) { return std::exp(x); } inline double ei_log(double x) { return std::log(x); } -#ifndef _MSC_VER +#if (!defined(_MSC_VER) && !defined(__CYGWIN__)) inline double ei_erf(double x) { return erf(x); } #endif inline double ei_sin(double x) { return std::sin(x); } @@ -303,7 +303,7 @@ inline long double ei_abs2(long double x) { return x*x; } inline long double ei_sqrt(long double x) { return std::sqrt(x); } inline long double ei_exp(long double x) { return std::exp(x); } inline long double ei_log(long double x) { return std::log(x); } -#ifndef _MSC_VER +#if (!defined(_MSC_VER) && !defined(__CYGWIN__)) inline long double ei_erf(long double x) { return erfl(x); } #endif inline long double ei_sin(long double x) { return std::sin(x); }