Disabled unsupported erf on MSVC machines.
diff --git a/Eigen/src/Core/MathFunctions.h b/Eigen/src/Core/MathFunctions.h
index e640e6b..6b65500 100644
--- a/Eigen/src/Core/MathFunctions.h
+++ b/Eigen/src/Core/MathFunctions.h
@@ -129,7 +129,9 @@
 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
 inline float ei_erf(float x)   { return erff(x); }
+#endif
 inline float ei_sin(float x)   { return std::sin(x); }
 inline float ei_cos(float x)   { return std::cos(x); }
 inline float ei_atan2(float y, float x) { return std::atan2(y,x); }
@@ -177,7 +179,9 @@
 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
 inline double ei_erf(double x)   { return erf(x); }
+#endif
 inline double ei_sin(double x)   { return std::sin(x); }
 inline double ei_cos(double x)   { return std::cos(x); }
 inline double ei_atan2(double y, double x) { return std::atan2(y,x); }
@@ -299,7 +303,9 @@
 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
 inline long double ei_erf(long double x)   { return erfl(x); }
+#endif
 inline long double ei_sin(long double x)   { return std::sin(x); }
 inline long double ei_cos(long double x)   { return std::cos(x); }
 inline long double ei_atan2(long double y, long double x) { return std::atan2(y,x); }