diff options
Diffstat (limited to 'examples/opt')
| -rw-r--r-- | examples/opt/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | examples/opt/opt.cc | 45 |
2 files changed, 57 insertions, 0 deletions
diff --git a/examples/opt/CMakeLists.txt b/examples/opt/CMakeLists.txt new file mode 100644 index 0000000..e537cec --- /dev/null +++ b/examples/opt/CMakeLists.txt @@ -0,0 +1,12 @@ + +cmake_minimum_required(VERSION 3.15...3.31) + +project( + Opt + VERSION 1.0 + LANGUAGES CXX) + +add_executable(Opt opt.cc) + +set_property(TARGET Opt PROPERTY CXX_STANDARD 20) +target_include_directories(Opt PUBLIC ../../include/ocl) diff --git a/examples/opt/opt.cc b/examples/opt/opt.cc new file mode 100644 index 0000000..75abed4 --- /dev/null +++ b/examples/opt/opt.cc @@ -0,0 +1,45 @@ +/* + String checksum example + Written by Amlal El Mahrouss. + Licensed under the Boost Software License + */ + +#include <logic/opt.hpp> +#include <io/print.hpp> +#include <utility/crc32.hpp> +#include <string> + +static const char do_hash(const std::string& in) +{ + int hash = 0; + + for (long index = 0; index < in.size(); ++index) + { + hash += in[index]; + } + + return hash; +} + +static auto do_some(const std::string recv_data, const std::string check_data) +{ + const int hash_to_check = do_hash(check_data); /* here we assume this should match opt_hash */ + const int opt_hash = do_hash(recv_data); /* we assume that the hash is correct */ + + auto opt = ocl::opt(ocl::eval_eq(hash_to_check, opt_hash)); /* do the compute */ + return opt; +} + +/* finally test it */ +int main(int argc, char** argv) +{ + // ... let's assume we fetch data from network... + + ocl::io::println("Testing data..."); + + auto opt = do_some("Ohio", "Ohio"); + opt.expect("Checksum failed, Ohio isn't Ohio!"); + + + return 0; +} |
