summaryrefslogtreecommitdiffhomepage
path: root/dev/lib/logic
diff options
context:
space:
mode:
Diffstat (limited to 'dev/lib/logic')
-rw-r--r--dev/lib/logic/equiv.hpp104
-rw-r--r--dev/lib/logic/math.hpp33
-rw-r--r--dev/lib/logic/opt.hpp134
3 files changed, 0 insertions, 271 deletions
diff --git a/dev/lib/logic/equiv.hpp b/dev/lib/logic/equiv.hpp
deleted file mode 100644
index 1bdb6d9..0000000
--- a/dev/lib/logic/equiv.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * File: equiv.hpp
- * Purpose: Equivalence header.
- * Author: Amlal El Mahrouss (amlal@nekernel.org)
- * Copyright 2025, Amlal El Mahrouss, licensed under the Boost Software License.
- */
-
-#pragma once
-
-/// @brief OCL equivalence namespace.
-namespace ocl::equiv
-{
- template <typename T>
- struct basic_hash_trait
- {
- /// @brief hash from T's result_type.
- static typename T::result_type hash()
- {
- static T val;
- return val.hash();
- }
- };
-
- template <typename T, typename U>
- struct is_same
- {
- static constexpr bool value = false;
-
- /// @brief check if hash matches what we expect.
- constexpr bool operator()() noexcept
- {
- return T::hash() == U::hash();
- }
- };
-
- template <typename T>
- struct is_same<T, T>
- {
- static constexpr bool value = true;
- };
-
- template <typename T, typename U>
- struct is_not_same
- {
- static constexpr bool value = true;
-
- constexpr bool operator()() noexcept
- {
- return T::hash() != U::hash();
- }
- };
-
- template <typename T>
- struct is_not_same<T, T>
- {
- static constexpr bool value = false;
- };
-
- template <typename T>
- struct equiv_is_int8
- {
- private:
- T left_ = 127, right_ = 127;
-
- public:
- using result_type = T;
-
- constexpr result_type hash()
- {
- return (left_ + right_) < 1;
- }
- };
-
- template <typename T>
- struct equiv_not_int8
- {
- private:
- // these shall overflow if not int8.
- T left_ = 127, right_ = 127;
-
- public:
- using result_type = T;
-
- constexpr result_type hash()
- {
- return (left_ + right_) > 0;
- }
- };
-
- template <typename T>
- struct equiv_is_real
- {
- private:
- T left_ = 5, right_ = 3;
-
- public:
- using result_type = T;
-
- constexpr result_type hash()
- {
- return left_ / right_ == 1;
- }
- };
-} // namespace ocl::equiv
diff --git a/dev/lib/logic/math.hpp b/dev/lib/logic/math.hpp
deleted file mode 100644
index 52f4535..0000000
--- a/dev/lib/logic/math.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * File: math.hpp
- * Purpose: Mathematics c++ header.
- * Author: Amlal El Mahrouss (amlal@nekernel.org)
- * Copyright 2025, Amlal El Mahrouss, Licensed under the Boost Software License.
- */
-
-#pragma once
-
-namespace ocl
-{
- template <__SIZE_TYPE__ T>
- struct is_non_boolean_integer final
- {
- static constexpr const bool value = true;
- };
-
- template <>
- struct is_non_boolean_integer<false> final
- {
- static constexpr const bool value = false;
- };
-
- template <>
- struct is_non_boolean_integer<true> final
- {
- static constexpr const bool value = false;
- };
-
- constexpr inline auto not_a_number = __builtin_nanf ("");
- constexpr inline auto positive_infinity = __builtin_inff ();
- constexpr inline auto negative_infinity = -positive_infinity;
-} // namespace ocl \ No newline at end of file
diff --git a/dev/lib/logic/opt.hpp b/dev/lib/logic/opt.hpp
deleted file mode 100644
index 07a3227..0000000
--- a/dev/lib/logic/opt.hpp
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * File: opt.hpp
- * Author: Amlal El Mahrouss,
- * Copyright 2023-2025, Amlal El Mahrouss, Licensed under the Boost Software License
- */
-
-#ifndef _OCL_OPT_HPP
-#define _OCL_OPT_HPP
-
-#include <lib/except/error.hpp>
-#include <utility>
-
-namespace ocl
-{
- enum class return_type
- {
- invalid = 0,
- okay = 100,
- err,
- count = err - okay + 1,
- };
-
- template <typename char_type = char>
- struct opt final
- {
- explicit opt(const return_type& return_type)
- : m_ret(return_type)
- {
- }
-
- opt& expect(const char_type* input)
- {
- if (m_ret == return_type::err)
- {
- throw std::runtime_error(input ? input : "opt::error");
- }
-
- return *this;
- }
-
- template <typename ErrorHandler>
- opt& expect_or_handle(const char_type* input)
- {
- if (m_ret == return_type::err)
- {
- ErrorHandler err_handler;
- err_handler(input ? input : "opt::error");
- }
-
- return *this;
- }
-
- private:
- return_type m_ret{return_type::invalid};
- };
-
- template <typename Teller, typename... Lst>
- inline return_type eval(Teller tell, Lst&&... arg)
- {
- return tell(std::forward<Lst>(arg)...) ? return_type::okay : return_type::err;
- }
-
- namespace traits
- {
- struct int_eq_teller
- {
- explicit int_eq_teller()
- {
- }
-
- bool operator()(int a, int b)
- {
- return (a == b);
- }
- };
-
- struct int_greater_than_teller
- {
- explicit int_greater_than_teller()
- {
- }
-
- bool operator()(int a, int b)
- {
- return (a > b);
- }
- };
-
- struct int_less_than_teller
- {
- explicit int_less_than_teller()
- {
- }
-
- bool operator()(int a, int b)
- {
- return (a < b);
- }
- };
- } // namespace traits
-
- template <typename... Lst>
- inline return_type eval_less_than(Lst&&... arg)
- {
- static traits::int_less_than_teller eq;
- return eq(std::forward<Lst>(arg)...) ? return_type::okay : return_type::err;
- }
-
- template <typename... Lst>
- inline return_type eval_eq(Lst&&... arg)
- {
- static traits::int_eq_teller less_than;
- return less_than(std::forward<Lst>(arg)...) ? return_type::okay : return_type::err;
- }
-
- template <typename... Lst>
- inline return_type eval_greater_than(Lst&&... arg)
- {
- static traits::int_greater_than_teller greater_than;
- return greater_than(std::forward<Lst>(arg)...) ? return_type::okay : return_type::err;
- }
-
- inline return_type eval_true() noexcept
- {
- return return_type::okay;
- }
-
- inline return_type eval_false() noexcept
- {
- return return_type::err;
- }
-} // namespace ocl
-
-#endif /* ifndef _OCL_OPT_HPP */ \ No newline at end of file