C++ Mathematical Expression Library (ExprTk)  http://www.partow.net/programming/exprtk/index.html
diff --git a/exprtk_test.cpp b/exprtk_test.cpp
index 3296de4..b10d13e 100644
--- a/exprtk_test.cpp
+++ b/exprtk_test.cpp
@@ -6286,6 +6286,63 @@
 
    }
 
+   {
+      symbol_table_t symbol_table;
+
+      symbol_table.add_constants();
+
+      std::string expression_str =
+                     " var sieve[10^7] := [false];                     "
+                     " var m := trunc(sqrt(sieve[]));                  "
+                     "                                                 "
+                     " sieve[0] := true;                               "
+                     " sieve[1] := true;                               "
+                     "                                                 "
+                     " for (var i := 0; i <= m; i += 1)                "
+                     " {                                               "
+                     "   if (false == sieve[i])                        "
+                     "   {                                             "
+                     "     for (var j := (i * i); j < sieve[]; j += i) "
+                     "     {                                           "
+                     "       sieve[j] := true;                         "
+                     "     }                                           "
+                     "   }                                             "
+                     " };                                              "
+                     "                                                 "
+                     " var prime_count := 0;                           "
+                     " for (var i := 0; i < sieve[]; i += 1)           "
+                     " {                                               "
+                     "   if (false == sieve[i])                        "
+                     "   {                                             "
+                     "     prime_count += 1;                           "
+                     "   };                                            "
+                     " };                                              "
+                     "                                                 "
+                     " prime_count == 664579;                          ";
+
+      expression_t expression;
+
+      expression.register_symbol_table(symbol_table);
+
+      parser_t parser;
+
+      if (!parser.compile(expression_str,expression))
+      {
+         printf("run_test19() - Error: %s   Expression: %s\n",
+                parser.error().c_str(),
+                expression_str.c_str());
+
+         return false;
+      }
+
+      if (T(1) != expression.value())
+      {
+         printf("run_test19() - Prime Sieve Computation Error");
+
+         return false;
+      }
+   }
+
    return true;
 }