Gudhi::persistence_fields::Shared_multi_field_element Class Reference

Class representing an element of a multi-field. If each instanciation of the class can represent another element, they all share the same characteritics. That is if the characteristics are set for one, they will be set for all the others. The characteristics can be set before instianciating the elements with the static Shared_multi_field_element::initialize method. More...

Public Types

using element_type = mpz_class
 
using characteristic_type = element_type
 

Public Member Functions

 Shared_multi_field_element ()
 Default constructor. Sets the element to 0.
 
 Shared_multi_field_element (element_type element)
 Constructor setting the element to the given value. More...
 
 Shared_multi_field_element (const Shared_multi_field_element &toCopy)
 Copy constructor. More...
 
 Shared_multi_field_element (Shared_multi_field_element &&toMove) noexcept
 Move constructor. More...
 
Shared_multi_field_elementoperator= (Shared_multi_field_element other)
 Assign operator.
 
Shared_multi_field_elementoperator= (const element_type &value)
 Assign operator.
 
 operator unsigned int () const
 Casts the element into an unsigned int.
 
 operator mpz_class () const
 Casts the element into a mpz_class.
 
Shared_multi_field_element get_inverse () const
 Returns the inverse of the element in the multi-field, see [6]. More...
 
std::pair< Shared_multi_field_element, characteristic_typeget_partial_inverse (const characteristic_type &productOfCharacteristics) const
 Returns the inverse of the element with respect to a sub-product of the characteristics in the multi-field, see [6]. More...
 
element_type get_value () const
 Returns the value of the element. More...
 

Static Public Member Functions

static void initialize (unsigned int minimum, unsigned int maximum)
 Initialize the multi-field to the characteristics (primes) contained in the given interval. Should be called first before constructing the field elements. More...
 
static Shared_multi_field_element get_additive_identity ()
 Returns the additive identity of a field. More...
 
static Shared_multi_field_element get_multiplicative_identity ()
 Returns the multiplicative identity of a field. More...
 
static Shared_multi_field_element get_partial_multiplicative_identity (const characteristic_type &productOfCharacteristics)
 Returns the partial multiplicative identity of the multi-field from the given product. See [6] for more details. More...
 
static characteristic_type get_characteristic ()
 Returns the product of all characteristics. More...
 

Friends

void operator+= (Shared_multi_field_element &f1, Shared_multi_field_element const &f2)
 operator+=
 
Shared_multi_field_element operator+ (Shared_multi_field_element f1, Shared_multi_field_element const &f2)
 operator+
 
void operator+= (Shared_multi_field_element &f, element_type const v)
 operator+=
 
Shared_multi_field_element operator+ (Shared_multi_field_element f, element_type const v)
 operator+
 
element_type operator+ (element_type v, Shared_multi_field_element const &f)
 operator+
 
void operator-= (Shared_multi_field_element &f1, Shared_multi_field_element const &f2)
 operator-=
 
Shared_multi_field_element operator- (Shared_multi_field_element f1, Shared_multi_field_element const &f2)
 operator-
 
void operator-= (Shared_multi_field_element &f, element_type const v)
 operator-=
 
Shared_multi_field_element operator- (Shared_multi_field_element f, element_type const v)
 operator-
 
element_type operator- (element_type v, Shared_multi_field_element const &f)
 operator-
 
void operator*= (Shared_multi_field_element &f1, Shared_multi_field_element const &f2)
 operator*=
 
Shared_multi_field_element operator* (Shared_multi_field_element f1, Shared_multi_field_element const &f2)
 operator*
 
void operator*= (Shared_multi_field_element &f, element_type const v)
 operator*=
 
Shared_multi_field_element operator* (Shared_multi_field_element f, element_type const v)
 operator*
 
element_type operator* (element_type v, Shared_multi_field_element const &f)
 operator*
 
bool operator== (const Shared_multi_field_element &f1, const Shared_multi_field_element &f2)
 operator==
 
bool operator== (const element_type &v, const Shared_multi_field_element &f)
 operator==
 
bool operator== (const Shared_multi_field_element &f, const element_type &v)
 operator==
 
bool operator!= (const Shared_multi_field_element &f1, const Shared_multi_field_element &f2)
 operator!=
 
bool operator!= (const element_type &v, const Shared_multi_field_element &f)
 operator!=
 
bool operator!= (const Shared_multi_field_element &f, const element_type &v)
 operator!=
 
void swap (Shared_multi_field_element &f1, Shared_multi_field_element &f2)
 Swap operator.
 

Detailed Description

Class representing an element of a multi-field. If each instanciation of the class can represent another element, they all share the same characteritics. That is if the characteristics are set for one, they will be set for all the others. The characteristics can be set before instianciating the elements with the static Shared_multi_field_element::initialize method.

Member Typedef Documentation

◆ characteristic_type

◆ element_type

Type for the elements in the field.

Constructor & Destructor Documentation

◆ Shared_multi_field_element() [1/3]

Gudhi::persistence_fields::Shared_multi_field_element::Shared_multi_field_element ( element_type  element)
inline

Constructor setting the element to the given value.

Parameters
elementValue of the element.

◆ Shared_multi_field_element() [2/3]

Gudhi::persistence_fields::Shared_multi_field_element::Shared_multi_field_element ( const Shared_multi_field_element toCopy)
inline

Copy constructor.

Parameters
toCopyElement to copy.

◆ Shared_multi_field_element() [3/3]

Gudhi::persistence_fields::Shared_multi_field_element::Shared_multi_field_element ( Shared_multi_field_element &&  toMove)
inlinenoexcept

Move constructor.

Parameters
toMoveElement to move.

Member Function Documentation

◆ get_additive_identity()

Shared_multi_field_element Gudhi::persistence_fields::Shared_multi_field_element::get_additive_identity ( )
inlinestatic

Returns the additive identity of a field.

Returns
The additive identity of a field.

◆ get_characteristic()

Shared_multi_field_element::characteristic_type Gudhi::persistence_fields::Shared_multi_field_element::get_characteristic ( )
inlinestatic

Returns the product of all characteristics.

Returns
The product of all characteristics.

◆ get_inverse()

Shared_multi_field_element Gudhi::persistence_fields::Shared_multi_field_element::get_inverse ( ) const
inline

Returns the inverse of the element in the multi-field, see [6].

Returns
The inverse.

◆ get_multiplicative_identity()

Shared_multi_field_element Gudhi::persistence_fields::Shared_multi_field_element::get_multiplicative_identity ( )
inlinestatic

Returns the multiplicative identity of a field.

Returns
The multiplicative identity of a field.

◆ get_partial_inverse()

std::pair< Shared_multi_field_element, Shared_multi_field_element::characteristic_type > Gudhi::persistence_fields::Shared_multi_field_element::get_partial_inverse ( const characteristic_type productOfCharacteristics) const
inline

Returns the inverse of the element with respect to a sub-product of the characteristics in the multi-field, see [6].

Parameters
productOfCharacteristicsSub-product of the characteristics.
Returns
Pair of the inverse and the characteristic the inverse corresponds to.

◆ get_partial_multiplicative_identity()

Shared_multi_field_element Gudhi::persistence_fields::Shared_multi_field_element::get_partial_multiplicative_identity ( const characteristic_type productOfCharacteristics)
inlinestatic

Returns the partial multiplicative identity of the multi-field from the given product. See [6] for more details.

Parameters
productOfCharacteristicsProduct of the different characteristics to take into account in the multi-field.
Returns
The partial multiplicative identity of the multi-field.

◆ get_value()

Shared_multi_field_element::element_type Gudhi::persistence_fields::Shared_multi_field_element::get_value ( ) const
inline

Returns the value of the element.

Returns
Value of the element.

◆ initialize()

void Gudhi::persistence_fields::Shared_multi_field_element::initialize ( unsigned int  minimum,
unsigned int  maximum 
)
inlinestatic

Initialize the multi-field to the characteristics (primes) contained in the given interval. Should be called first before constructing the field elements.

Parameters
minimumLowest value in the interval.
maximumHighest value in the interval.

The documentation for this class was generated from the following file: