|
static constexpr characteristic_type | get_characteristic () |
| Returns the characteristic of the field, that is 2 . More...
|
|
template<typename Integer_type , class = isInteger<Integer_type>> |
static element_type | get_value (Integer_type e) |
| Returns the value of an integer in the field. That is the positive value of the integer modulo the current characteristic. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static element_type | add (Unsigned_integer_type e1, Unsigned_integer_type e2) |
| Returns the sum of two elements in the field. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static void | add_inplace (Unsigned_integer_type &e1, Unsigned_integer_type e2) |
| Stores in the first element the sum of two given elements in the field, that is (e1 + e2) % 2 , such that the result is positive. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static element_type | substract (Unsigned_integer_type e1, Unsigned_integer_type e2) |
| Returns the substraction in the field of the first element by the second element. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static void | substract_inplace_front (Unsigned_integer_type &e1, Unsigned_integer_type e2) |
| Stores in the first element the substraction in the field of the first element by the second element, that is (e1 - e2) % 2 , such that the result is positive. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static void | substract_inplace_back (Unsigned_integer_type e1, Unsigned_integer_type &e2) |
| Stores in the second element the substraction in the field of the first element by the second element, that is (e1 - e2) % 2 , such that the result is positive. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static element_type | multiply (Unsigned_integer_type e1, Unsigned_integer_type e2) |
| Returns the multiplication of two elements in the field. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static void | multiply_inplace (Unsigned_integer_type &e1, Unsigned_integer_type e2) |
| Stores in the first element the multiplication of two given elements in the field, that is (e1 * e2) % 2 , such that the result is positive. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static element_type | multiply_and_add (Unsigned_integer_type e, Unsigned_integer_type m, Unsigned_integer_type a) |
| Multiplies the first element with the second one and adds the third one. Returns the result in the field. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static void | multiply_and_add_inplace_front (Unsigned_integer_type &e, Unsigned_integer_type m, Unsigned_integer_type a) |
| Multiplies the first element with the second one and adds the third one, that is (e * m + a) % 2 , such that the result is positive. Stores the result in the first element. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static void | multiply_and_add_inplace_back (Unsigned_integer_type e, Unsigned_integer_type m, Unsigned_integer_type &a) |
| Multiplies the first element with the second one and adds the third one, that is (e * m + a) % 2 , such that the result is positive. Stores the result in the third element. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static element_type | add_and_multiply (Unsigned_integer_type e, Unsigned_integer_type a, Unsigned_integer_type m) |
| Adds the first element to the second one and multiplies the third one with it. Returns the result in the field. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static void | add_and_multiply_inplace_front (Unsigned_integer_type &e, Unsigned_integer_type a, Unsigned_integer_type m) |
| Adds the first element to the second one and multiplies the third one with it, that is ((e + a) * m) % 2 , such that the result is positive. Stores the result in the first element. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static void | add_and_multiply_inplace_back (Unsigned_integer_type &e, Unsigned_integer_type a, Unsigned_integer_type m) |
| Adds the first element to the second one and multiplies the third one with it, that is ((e + a) * m) % 2 , such that the result is positive. Stores the result in the third element. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static bool | are_equal (Unsigned_integer_type e1, Unsigned_integer_type e2) |
| Returns true if the two given elements are equal in the field, false otherwise. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static element_type | get_inverse (Unsigned_integer_type e) |
| Returns the inverse of the given element in the field. More...
|
|
template<typename Unsigned_integer_type , class = isUnsignedInteger<Unsigned_integer_type>> |
static std::pair< element_type, characteristic_type > | get_partial_inverse (Unsigned_integer_type e, characteristic_type productOfCharacteristics) |
| For interface purposes with multi-fields. Returns the inverse together with the second argument. More...
|
|
static constexpr element_type | get_additive_identity () |
| Returns the additive identity of the field. More...
|
|
static constexpr element_type | get_multiplicative_identity () |
| Returns the multiplicative identity of the field. More...
|
|
static constexpr element_type | get_partial_multiplicative_identity ([[maybe_unused]] characteristic_type productOfCharacteristics) |
| For interface purposes with multi-fields. Returns the multiplicative identity of the field. More...
|
|
Class defining operators for the \( \mathbb{F}_2 \) field.
- Examples
- example_field_operations.cpp.