91 const std::string sieve_of_eratosthenes_program =
92 " var sieve[10^8] := [false]; "
93 " var m := trunc(sqrt(sieve[])); "
98 " for (var i := 0; i <= m; i += 1) "
100 " if (false == sieve[i]) "
102 " for (var j := i^2; j < sieve[]; j += i) "
104 " sieve[j] := true; "
109 " var prime_count := sieve[] - sum(sieve); "
111 " prime_count == 5761455; ";
114 loop_runtime_check.
loop_set = loop_runtime_check_t::e_all_loops;
116 static_cast<std::uint64_t
>(10e8 * std::log10(std::log10(10e8)));
120 expression_t expression;
124 parser.register_loop_runtime_check(loop_runtime_check);
125 parser.register_vector_access_runtime_check(vec_rtc);
127 parser.compile(sieve_of_eratosthenes_program,expression);
129 const auto max_duration = std::chrono::seconds(1);
130 const auto timeout_tp = std::chrono::steady_clock::now() + max_duration;
139 printf(
"Timeout Exception\n");
141 catch (std::runtime_error& rte)
143 printf(
"Exception: %s\n",rte.what());
146 parser.clear_loop_runtime_check();