Class representing an element of a multi-field, such that the product of all characteristics fits into the given Unsigned_integer_type
template argument. The characteristics will corresponds to all prime numbers in the interval given as other template arguments.
More...
#include <gudhi/Fields/Multi_field_small.h>
Public Types | |
using | element_type = Unsigned_integer_type |
using | characteristic_type = element_type |
Public Member Functions | |
Multi_field_element_with_small_characteristics () | |
Default constructor. Sets the element to 0. | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Multi_field_element_with_small_characteristics (Integer_type element) | |
Constructor setting the element to the given value. | |
Multi_field_element_with_small_characteristics (const Multi_field_element_with_small_characteristics &toCopy) | |
Copy constructor. | |
Multi_field_element_with_small_characteristics (Multi_field_element_with_small_characteristics &&toMove) noexcept | |
Move constructor. | |
Multi_field_element_with_small_characteristics & | operator= (Multi_field_element_with_small_characteristics other) |
Assign operator. | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Multi_field_element_with_small_characteristics & | operator= (const Integer_type &value) |
Assign operator. | |
operator unsigned int () const | |
Casts the element into an unsigned int. | |
Multi_field_element_with_small_characteristics | get_inverse () const |
Returns the inverse of the element in the multi-field, see [boissonnat:hal-00922572]. | |
std::pair< Multi_field_element_with_small_characteristics, characteristic_type > | get_partial_inverse (characteristic_type productOfCharacteristics) const |
Returns the inverse of the element with respect to a sub-product of the characteristics in the multi-field, see [boissonnat:hal-00922572]. | |
element_type | get_value () const |
Returns the value of the element. | |
Static Public Member Functions | |
static Multi_field_element_with_small_characteristics | get_additive_identity () |
Returns the additive identity of a field. | |
static Multi_field_element_with_small_characteristics | get_multiplicative_identity () |
Returns the multiplicative identity of a field. | |
static Multi_field_element_with_small_characteristics | get_partial_multiplicative_identity (const characteristic_type &productOfCharacteristics) |
Returns the partial multiplicative identity of the multi-field from the given product. See [boissonnat:hal-00922572] for more details. | |
static constexpr characteristic_type | get_characteristic () |
Returns the product of all characteristics. | |
Friends | |
void | operator+= (Multi_field_element_with_small_characteristics &f1, Multi_field_element_with_small_characteristics const &f2) |
operator+= | |
Multi_field_element_with_small_characteristics | operator+ (Multi_field_element_with_small_characteristics f1, Multi_field_element_with_small_characteristics const &f2) |
operator+ | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
void | operator+= (Multi_field_element_with_small_characteristics &f, const Integer_type &v) |
operator+= | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Multi_field_element_with_small_characteristics | operator+ (Multi_field_element_with_small_characteristics f, const Integer_type &v) |
operator+ | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Integer_type | operator+ (const Integer_type &v, Multi_field_element_with_small_characteristics f) |
operator+ | |
void | operator-= (Multi_field_element_with_small_characteristics &f1, Multi_field_element_with_small_characteristics const &f2) |
operator-= | |
Multi_field_element_with_small_characteristics | operator- (Multi_field_element_with_small_characteristics f1, Multi_field_element_with_small_characteristics const &f2) |
operator- | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
void | operator-= (Multi_field_element_with_small_characteristics &f, const Integer_type &v) |
operator-= | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Multi_field_element_with_small_characteristics | operator- (Multi_field_element_with_small_characteristics f, const Integer_type &v) |
operator- | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Integer_type | operator- (const Integer_type &v, const Multi_field_element_with_small_characteristics &f) |
operator- | |
void | operator*= (Multi_field_element_with_small_characteristics &f1, Multi_field_element_with_small_characteristics const &f2) |
operator*= | |
Multi_field_element_with_small_characteristics | operator* (Multi_field_element_with_small_characteristics f1, Multi_field_element_with_small_characteristics const &f2) |
operator* | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
void | operator*= (Multi_field_element_with_small_characteristics &f, const Integer_type &v) |
operator*= | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Multi_field_element_with_small_characteristics | operator* (Multi_field_element_with_small_characteristics f, const Integer_type &v) |
operator* | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
Integer_type | operator* (const Integer_type &v, Multi_field_element_with_small_characteristics f) |
operator* | |
bool | operator== (const Multi_field_element_with_small_characteristics &f1, const Multi_field_element_with_small_characteristics &f2) |
operator== | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
bool | operator== (const Integer_type v, const Multi_field_element_with_small_characteristics &f) |
operator== | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
bool | operator== (const Multi_field_element_with_small_characteristics &f, const Integer_type v) |
operator== | |
bool | operator!= (const Multi_field_element_with_small_characteristics &f1, const Multi_field_element_with_small_characteristics &f2) |
operator!= | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
bool | operator!= (const Integer_type v, const Multi_field_element_with_small_characteristics &f) |
operator!= | |
template<typename Integer_type , class = isInteger<Integer_type>> | |
bool | operator!= (const Multi_field_element_with_small_characteristics &f, const Integer_type v) |
operator!= | |
void | swap (Multi_field_element_with_small_characteristics &f1, Multi_field_element_with_small_characteristics &f2) |
Swap operator. | |
Class representing an element of a multi-field, such that the product of all characteristics fits into the given Unsigned_integer_type
template argument. The characteristics will corresponds to all prime numbers in the interval given as other template arguments.
minimum | Interval closed lower bound. |
maximum | Interval closed upper bound. |
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::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::characteristic_type = element_type |
Type for the field characteristic.
using Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, 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.
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 a field.
|
inlinestaticconstexpr |
Returns the product of all characteristics.
|
inline |
Returns the inverse of the element in the multi-field, see [boissonnat:hal-00922572].
|
inlinestatic |
Returns the multiplicative identity of a field.
|
inline |
Returns the inverse of the element with respect to a sub-product of the characteristics in the multi-field, see [boissonnat:hal-00922572].
productOfCharacteristics | Sub-product of the characteristics. |
|
inlinestatic |
Returns the partial multiplicative identity of the multi-field from the given product. See [boissonnat:hal-00922572] for more details.
productOfCharacteristics | Product of the different characteristics to take into account in the multi-field. |
|
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. |
|
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. |