Hi,
Compilation of Cwise_erf.cpp. Cwise_erfc.cpp and Cwise_lgamma.cpp examples failed with VS 2017 compiler. It failed because macro EIGEN_HAS_C99_MATH in Macros.h defined to 0. This macro is used only for cwise calculation of special functions in unsupported module. It is defined to 0 because msvc does not define __STDC_VERSION__ macro although vs 2017 implements C++11 standard and implements erf, erfc and lgamma functions which are only necessary for Eigen special functions module. I suggest to modify macro EIGEN_HAS_C99_MATH definition in Macros.h file.
Instead of
// Does the compiler support C99?
#ifndef EIGEN_HAS_C99_MATH
#if EIGEN_MAX_CPP_VER>=11 && \
((defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)) \
|| (defined(__GNUC__) && defined(_GLIBCXX_USE_C99)) \
|| (defined(_LIBCPP_VERSION) && !defined(_MSC_VER)))
#define EIGEN_HAS_C99_MATH 1
#else
#define EIGEN_HAS_C99_MATH 0
#endif
#endif
define
// Does the compiler support C99?
#ifndef EIGEN_HAS_C99_MATH
#if EIGEN_MAX_CPP_VER>=11 && \
((defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)) \
|| (defined(__GNUC__) && defined(_GLIBCXX_USE_C99)) \
|| (defined(_LIBCPP_VERSION) && !defined(_MSC_VER)) \
|| (defined(_MSC_VER) && _MSVC_LANG >= 201402))
#define EIGEN_HAS_C99_MATH 1
#else
#define EIGEN_HAS_C99_MATH 0
#endif
#endif
With this modification VS 2017 compiles examples and gives write results.
Best regards,
Oleg Shirokobrod.