Class representing an element of the \( \mathbb{F}_p \) field for any prime number \( p \). More...
Public Types | |
using | element_type = Unsigned_integer_type |
using | characteristic_type = element_type |
Public Member Functions | |
Zp_field_element () | |
Default constructor. Sets the element to 0. | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Zp_field_element (Integer_type element) | |
Constructor setting the element to the given value. More... | |
Zp_field_element (const Zp_field_element &toCopy) | |
Copy constructor. More... | |
Zp_field_element (Zp_field_element &&toMove) noexcept | |
Move constructor. More... | |
Zp_field_element & | operator= (Zp_field_element other) |
Assign operator. | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Zp_field_element & | operator= (const Integer_type &value) |
Assign operator. More... | |
operator unsigned int () const | |
Casts the element into an unsigned int. | |
Zp_field_element | get_inverse () const |
Returns the inverse of the element in the field. More... | |
std::pair< Zp_field_element, unsigned int > | get_partial_inverse (unsigned int productOfCharacteristics) const |
For interface purposes with multi-fields. Returns the inverse together with the argument. More... | |
element_type | get_value () const |
Returns the value of the element. More... | |
Static Public Member Functions | |
static Zp_field_element | get_additive_identity () |
Returns the additive identity of the field. More... | |
static Zp_field_element | get_multiplicative_identity () |
Returns the multiplicative identity of the field. More... | |
static Zp_field_element | get_partial_multiplicative_identity ([[maybe_unused]] unsigned int productOfCharacteristics) |
For interface purposes with multi-fields. Returns the multiplicative identity of the field. More... | |
static constexpr unsigned int | get_characteristic () |
Returns the current characteristic. More... | |
Friends | |
void | operator+= (Zp_field_element &f1, const Zp_field_element &f2) |
operator+= | |
Zp_field_element | operator+ (Zp_field_element f1, const Zp_field_element &f2) |
operator+ | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
void | operator+= (Zp_field_element &f, const Integer_type &v) |
operator+= | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Zp_field_element | operator+ (Zp_field_element f, const Integer_type &v) |
operator+ More... | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Integer_type | operator+ (const Integer_type &v, Zp_field_element f) |
operator+ More... | |
void | operator-= (Zp_field_element &f1, const Zp_field_element &f2) |
operator-= | |
Zp_field_element | operator- (Zp_field_element f1, const Zp_field_element &f2) |
operator- | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
void | operator-= (Zp_field_element &f, const Integer_type &v) |
operator-= | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Zp_field_element | operator- (Zp_field_element f, const Integer_type &v) |
operator- More... | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Integer_type | operator- (const Integer_type &v, const Zp_field_element &f) |
operator- More... | |
void | operator*= (Zp_field_element &f1, const Zp_field_element &f2) |
operator*= | |
Zp_field_element | operator* (Zp_field_element f1, const Zp_field_element &f2) |
operator* | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
void | operator*= (Zp_field_element &f, const Integer_type &v) |
operator*= | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Zp_field_element | operator* (Zp_field_element f, const Integer_type &v) |
operator* More... | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Integer_type | operator* (const Integer_type &v, Zp_field_element f) |
operator* More... | |
bool | operator== (const Zp_field_element &f1, const Zp_field_element &f2) |
operator== | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
bool | operator== (const Integer_type &v, const Zp_field_element &f) |
operator== More... | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
bool | operator== (const Zp_field_element &f, const Integer_type &v) |
operator== More... | |
bool | operator!= (const Zp_field_element &f1, const Zp_field_element &f2) |
operator!= | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
bool | operator!= (const Integer_type &v, const Zp_field_element &f) |
operator!= More... | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
bool | operator!= (const Zp_field_element &f, const Integer_type &v) |
operator!= More... | |
void | swap (Zp_field_element &f1, Zp_field_element &f2) |
Swap operator. | |
Class representing an element of the \( \mathbb{F}_p \) field for any prime number \( p \).
characteristic | Value of the characteristic of the field. Has to be a positive prime number. |
Unsigned_integer_type | A native unsigned integer type: unsigned int, long unsigned int, etc. Will be used as the field element type. |
using Gudhi::persistence_fields::Zp_field_element< characteristic, Unsigned_integer_type, class >::characteristic_type = element_type |
Type for the field characteristic.
using Gudhi::persistence_fields::Zp_field_element< characteristic, Unsigned_integer_type, class >::element_type = Unsigned_integer_type |
Type for the elements in the field.
|
inline |
Constructor setting the element to the given value.
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |
element | Value of the element. |
|
inline |
Copy constructor.
toCopy | Element to copy. |
|
inlinenoexcept |
Move constructor.
toMove | Element to move. |
|
inlinestatic |
Returns the additive identity of the field.
|
inlinestaticconstexpr |
Returns the current characteristic.
|
inline |
Returns the inverse of the element in the field.
|
inlinestatic |
Returns the multiplicative identity of the field.
|
inline |
For interface purposes with multi-fields. Returns the inverse together with the argument.
productOfCharacteristics | Some value. |
productOfCharacteristics
.
|
inlinestatic |
For interface purposes with multi-fields. Returns the multiplicative identity of the field.
productOfCharacteristics | Some value. |
|
inline |
Returns the value of the element.
|
inline |
Assign operator.
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |
|
friend |
operator!=
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |
|
friend |
operator!=
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |
|
friend |
operator*
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |
|
friend |
operator*
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |
|
friend |
operator+
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |
|
friend |
operator+
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |
|
friend |
operator-
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |
|
friend |
operator-
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |
|
friend |
operator==
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |
|
friend |
operator==
Integer_type | A native integer type. Should be able to contain the characteristic if signed. |