Fix bug #314:
- remove most of the metaprogramming kung fu in MathFunctions.h (only keep functions that differs from the std)
- remove the overloads for array expression that were in the std namespace
diff --git a/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h b/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h
index d848cb4..7ee30e1 100644
--- a/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h
+++ b/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h
@@ -63,11 +63,13 @@
      */
     int df(const InputType& _x, JacobianType &jac) const
     {
+        using std::sqrt;
+        using std::abs;
         /* Local variables */
         Scalar h;
         int nfev=0;
         const typename InputType::Index n = _x.size();
-        const Scalar eps = internal::sqrt(((std::max)(epsfcn,NumTraits<Scalar>::epsilon() )));
+        const Scalar eps = sqrt(((std::max)(epsfcn,NumTraits<Scalar>::epsilon() )));
         ValueType val1, val2;
         InputType x = _x;
         // TODO : we should do this only if the size is not already known
@@ -89,7 +91,7 @@
 
         // Function Body
         for (int j = 0; j < n; ++j) {
-            h = eps * internal::abs(x[j]);
+            h = eps * abs(x[j]);
             if (h == 0.) {
                 h = eps;
             }