Disabled erf also for Cygwin where it is not supported and causes errors.
diff --git a/Eigen/src/Core/MathFunctions.h b/Eigen/src/Core/MathFunctions.h
index 6b65500..6d4fc41 100644
--- a/Eigen/src/Core/MathFunctions.h
+++ b/Eigen/src/Core/MathFunctions.h
@@ -129,7 +129,7 @@
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_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_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); }