C++ Mathematical Expression Library (ExprTk)  https://www.partow.net/programming/exprtk/index.html
diff --git a/exprtk.hpp b/exprtk.hpp
index b251333..c865833 100644
--- a/exprtk.hpp
+++ b/exprtk.hpp
@@ -793,7 +793,7 @@
             template <typename T>
             inline T abs_impl(const T v, real_type_tag)
             {
-               return ((v >= T(0)) ? v : -v);
+               return ((v < T(0)) ? -v : v);
             }
 
             template <typename T>
@@ -11123,27 +11123,28 @@
          bool               body_deletable_;
       };
 
-      #define exprtk_define_unary_op(OpName)                         \
-      template <typename T>                                          \
-      struct OpName##_op                                             \
-      {                                                              \
-         typedef typename functor_t<T>::Type Type;                   \
-                                                                     \
-         static inline T process(Type v)                             \
-         {                                                           \
-            return numeric:: OpName (v);                             \
-         }                                                           \
-                                                                     \
-         static inline typename expression_node<T>::node_type type() \
-         {                                                           \
-            return expression_node<T>::e_##OpName;                   \
-         }                                                           \
-                                                                     \
-         static inline details::operator_type operation()            \
-         {                                                           \
-            return details::e_##OpName;                              \
-         }                                                           \
-      };                                                             \
+      #define exprtk_define_unary_op(OpName)                    \
+      template <typename T>                                     \
+      struct OpName##_op                                        \
+      {                                                         \
+         typedef typename functor_t<T>::Type Type;              \
+         typedef typename expression_node<T>::node_type node_t; \
+                                                                \
+         static inline T process(Type v)                        \
+         {                                                      \
+            return numeric:: OpName (v);                        \
+         }                                                      \
+                                                                \
+         static inline node_t type()                            \
+         {                                                      \
+            return expression_node<T>::e_##OpName;              \
+         }                                                      \
+                                                                \
+         static inline details::operator_type operation()       \
+         {                                                      \
+            return details::e_##OpName;                         \
+         }                                                      \
+      };                                                        \
 
       exprtk_define_unary_op(abs  )
       exprtk_define_unary_op(acos )
diff --git a/exprtk_simple_example_05.cpp b/exprtk_simple_example_05.cpp
index 08218a1..1002300 100644
--- a/exprtk_simple_example_05.cpp
+++ b/exprtk_simple_example_05.cpp
@@ -43,7 +43,7 @@
    typedef exprtk::expression<T>     expression_t;
    typedef exprtk::parser<T>             parser_t;
 
-   std::string expression_string = "myfunc(sin(x * pi),y / 2)";
+   std::string expression_string = "myfunc(sin(x * pi), y / 2)";
 
    T x = T(1);
    T y = T(2);
diff --git a/exprtk_simple_example_06.cpp b/exprtk_simple_example_06.cpp
index 2a482f4..71f0512 100644
--- a/exprtk_simple_example_06.cpp
+++ b/exprtk_simple_example_06.cpp
@@ -31,7 +31,7 @@
    std::string expression_string =
                   " for (var i := 0; i < min(x[],y[],z[]); i += 1) "
                   " {                                              "
-                  "    z[i] := 3sin(x[i]) + 2log(y[i]);            "
+                  "   z[i] := 3sin(x[i]) + 2log(y[i]);             "
                   " }                                              ";
 
    T x[] = { T(1.1), T(2.2), T(3.3), T(4.4), T(5.5) };
diff --git a/exprtk_simple_example_08.cpp b/exprtk_simple_example_08.cpp
index ab80fd5..dd7dc23 100644
--- a/exprtk_simple_example_08.cpp
+++ b/exprtk_simple_example_08.cpp
@@ -49,7 +49,7 @@
       .add(
       function_t("g","3*[f(x) + f(y)]","x","y"));  // g(x,y) = 3[f(x) + f(y)]
 
-   std::string expression_string = "g(1 + f(x),f(y) / 2)";
+   std::string expression_string = "g(1 + f(x), f(y) / 2)";
 
    expression_t expression;
    expression.register_symbol_table(symbol_table);
diff --git a/exprtk_simple_example_10.cpp b/exprtk_simple_example_10.cpp
index 36487ba..ee53994 100644
--- a/exprtk_simple_example_10.cpp
+++ b/exprtk_simple_example_10.cpp
@@ -55,7 +55,7 @@
            "      var y := x / 2;                 "
            "      repeat                          "
            "        y := (1 / 2) * (y + (x / y)); "
-           "        if (equal(y * y,x))           "
+           "        if (equal(y * y, x))          "
            "          break[y];                   "
            "      until ((z -= 1) <= 0);          "
            "    };                                "