#include "config.hpp"
#include "basefuncs.hpp"
Go to the source code of this file.
Definition in file mixcomp.hpp.
#define ARAGELI_ALL_BINARY_ARITHM_FUNCTIONS_MIXGATE |
Value:
ARAGELI_BINARY_FUNCTION_MIXGATE(plus, operator+) \ ARAGELI_BINARY_FUNCTION_MIXGATE(minus, operator-) \ ARAGELI_BINARY_FUNCTION_MIXGATE(multiplies, operator*) \ ARAGELI_BINARY_FUNCTION_MIXGATE(divides, operator/) \ ARAGELI_BINARY_FUNCTION_MIXGATE(modulus, operator%) \ ARAGELI_BINARY_FUNCTION_MIXGATE(bitwise_or, operator|) \ ARAGELI_BINARY_FUNCTION_MIXGATE(bitwise_and, operator&) \ ARAGELI_BINARY_FUNCTION_MIXGATE(bitwise_xor, operator^) \ ARAGELI_BINARY_FUNCTION_MIXGATE(shift_left, operator<<) \ ARAGELI_BINARY_FUNCTION_MIXGATE(shift_right, operator>>)
Definition at line 290 of file mixcomp.hpp.
#define ARAGELI_ALL_BINARY_ARITHM_FUNCTIONS_SELF_MIXGATE |
Value:
ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(plus, operator+) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(minus, operator-) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(multiplies, operator*) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(divides, operator/) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(modulus, operator%) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(bitwise_or, operator|) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(bitwise_and, operator&) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(bitwise_xor, operator^) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(shift_left, operator<<) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(shift_right, operator>>)
Definition at line 332 of file mixcomp.hpp.
#define ARAGELI_ALL_BINARY_CMP_MIXGATE |
Value:
ARAGELI_BINARY_FUNCTION_MIXGATE(cmp, cmp) \ ARAGELI_BINARY_COMPARISON_MIXGATE(equal_to, operator==, ==) \ ARAGELI_BINARY_COMPARISON_MIXGATE(not_equal_to, operator!=, !=) \ ARAGELI_BINARY_COMPARISON_MIXGATE(greater, operator>, >) \ ARAGELI_BINARY_COMPARISON_MIXGATE(less, operator<, <) \ ARAGELI_BINARY_COMPARISON_MIXGATE(greater_equal, operator>=, >=)\ ARAGELI_BINARY_COMPARISON_MIXGATE(less_equal, operator<=, <=)
Definition at line 306 of file mixcomp.hpp.
#define ARAGELI_ALL_BINARY_CMP_SELF_MIXGATE |
Value:
ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(cmp, cmp) \ ARAGELI_BINARY_COMPARISON_SELF_MIXGATE(equal_to, operator==, ==) \ ARAGELI_BINARY_COMPARISON_SELF_MIXGATE(not_equal_to, operator!=, !=) \ ARAGELI_BINARY_COMPARISON_SELF_MIXGATE(greater, operator>, >) \ ARAGELI_BINARY_COMPARISON_SELF_MIXGATE(less, operator<, <) \ ARAGELI_BINARY_COMPARISON_SELF_MIXGATE(greater_equal, operator>=, >=) \ ARAGELI_BINARY_COMPARISON_SELF_MIXGATE(less_equal, operator<=, <=)
Definition at line 348 of file mixcomp.hpp.
#define ARAGELI_ALL_BINARY_LOGIC_FUNCTIONS_MIXGATE |
Value:
ARAGELI_BINARY_FUNCTION_MIXGATE(logical_or, operator||) \ ARAGELI_BINARY_FUNCTION_MIXGATE(logical_and, operator&&)
Definition at line 302 of file mixcomp.hpp.
#define ARAGELI_ALL_BINARY_LOGIC_FUNCTIONS_SELF_MIXGATE |
Value:
ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(logical_or, operator||) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(logical_and, operator&&)
Definition at line 344 of file mixcomp.hpp.
#define ARAGELI_ALL_EACH_ALL_CMP_FUNCTIONS_MIXGATE |
Value:
ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(each_equal_to) \ ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(each_not_equal_to) \ ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(each_greater) \ ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(each_less) \ ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(each_greater_equal) \ ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(each_less_equal) \ ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(all_equal_to) \ ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(all_not_equal_to) \ ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(all_greater) \ ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(all_less) \ ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(all_greater_equal) \ ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME(all_less_equal)
Definition at line 318 of file mixcomp.hpp.
#define ARAGELI_ALL_EACH_ALL_CMP_FUNCTIONS_SELF_MIXGATE |
Value:
ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(each_equal_to) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(each_not_equal_to) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(each_greater) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(each_less) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(each_greater_equal) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(each_less_equal) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(all_equal_to) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(all_not_equal_to) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(all_greater) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(all_less) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(all_greater_equal) \ ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME(all_less_equal)
Definition at line 360 of file mixcomp.hpp.
#define ARAGELI_BINARY_COMPARISON_MIXGATE | ( | FUNC, | |||
OPER, | |||||
OP | ) |
Value:
template \ < \ ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_1_PARAMS \ ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_OTHER_COMMA \ ARAGELI_BINARY_FUNCTION_MIXGATE_OTHER_PARAMS \ > \ inline bool OPER \ ( \ ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_1_TYPE a, \ ARAGELI_BINARY_FUNCTION_MIXGATE_OTHER_TYPE b \ ) \ { return (cmp(a, b) OP 0); } \ \ template \ < \ ARAGELI_BINARY_FUNCTION_MIXGATE_OTHER_PARAMS \ ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_OTHER_COMMA \ ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_2_PARAMS \ > \ inline bool OPER \ ( \ ARAGELI_BINARY_FUNCTION_MIXGATE_OTHER_TYPE a, \ ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_2_TYPE b \ ) \ { return (cmp(a, b) OP 0); }
Definition at line 247 of file mixcomp.hpp.
#define ARAGELI_BINARY_COMPARISON_SELF_MIXGATE | ( | FUNC, | |||
OPER, | |||||
OP | ) |
Value:
template \ < \ ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_1_PARAMS \ ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_OWNER_COMMA \ ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_2_PARAMS \ > \ inline bool OPER \ ( \ ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_1_TYPE a, \ ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_2_TYPE b \ ) \ { return (cmp(a, b) OP 0); }
Definition at line 275 of file mixcomp.hpp.
#define ARAGELI_BINARY_FUNCTION_MIXGATE | ( | FUNC, | |||
OPER | ) |
Implements correct gate for compiler to undestand binary functions in mixed computations.
This macro need previously defined following macros ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_1_PARAMS ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_1_TYPE ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_2_PARAMS ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_2_TYPE ARAGELI_BINARY_FUNCTION_MIXGATE_OTHER_PARAMS ARAGELI_BINARY_FUNCTION_MIXGATE_OTHER_TYPE ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_OWNER_COMMA ARAGELI_BINARY_FUNCTION_MIXGATE_OWNER_OTHER_COMMA
Definition at line 99 of file mixcomp.hpp.
#define ARAGELI_BINARY_FUNCTION_MIXGATE_SAMENAME | ( | NAME | ) | ARAGELI_BINARY_FUNCTION_MIXGATE(NAME, NAME) |
Definition at line 315 of file mixcomp.hpp.
#define ARAGELI_BINARY_FUNCTION_SELF_MIXGATE | ( | FUNC, | |||
OPER | ) |
Definition at line 197 of file mixcomp.hpp.
#define ARAGELI_BINARY_FUNCTION_SELF_MIXGATE_SAMENAME | ( | NAME | ) | ARAGELI_BINARY_FUNCTION_SELF_MIXGATE(NAME, NAME) |
Definition at line 357 of file mixcomp.hpp.