Loading...
Searching...
No Matches
Gudhi::persistence_fields::Shared_multi_field_element Class Reference
Persistence Fields

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

`#include <gudhi/Fields/Multi_field_shared.h>`

## Public Types

using | Element = mpz_class
using | Characteristic = Element

## Public Member Functions

| Shared_multi_field_element ()
| Default constructor. Sets the element to 0.
| Shared_multi_field_element (Element element)
| Constructor setting the element to the given value.
| Shared_multi_field_element (const Shared_multi_field_element &toCopy)
| Copy constructor.
| Shared_multi_field_element (Shared_multi_field_element &&toMove) noexcept
| Move constructor.
Shared_multi_field_element & | operator= (Shared_multi_field_element other)
| Assign operator.
Shared_multi_field_element & | operator= (const Element &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 [boissonnat:hal-00922572].
std::pair< Shared_multi_field_element, Characteristic > | get_partial_inverse (const Characteristic &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 | get_value () const
| Returns the value of the element.

## 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.
static Shared_multi_field_element | get_additive_identity ()
| Returns the additive identity of a field.
static Shared_multi_field_element | get_multiplicative_identity ()
| Returns the multiplicative identity of a field.
static Shared_multi_field_element | get_partial_multiplicative_identity (const Characteristic &productOfCharacteristics)
| Returns the partial multiplicative identity of the multi-field from the given product. See [boissonnat:hal-00922572] for more details.
static Characteristic | get_characteristic ()
| Returns the product of all characteristics.

## 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 const v)
| operator+=
Shared_multi_field_element | operator+ (Shared_multi_field_element f, Element const v)
| operator+
Element | operator+ (Element 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 const v)
| operator-=
Shared_multi_field_element | operator- (Shared_multi_field_element f, Element const v)
| operator-
Element | operator- (Element 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 const v)
| operator*=
Shared_multi_field_element | operator* (Shared_multi_field_element f, Element const v)
| operator*
Element | operator* (Element 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 &v, const Shared_multi_field_element &f)
| operator==
bool | operator== (const Shared_multi_field_element &f, const Element &v)
| operator==
bool | operator!= (const Shared_multi_field_element &f1, const Shared_multi_field_element &f2)
| operator!=
bool | operator!= (const Element &v, const Shared_multi_field_element &f)
| operator!=
bool | operator!= (const Shared_multi_field_element &f, const Element &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 instantiation of the class can represent another element, they all share the same characteristics. That is if the characteristics are set for one, they will be set for all the others. The characteristics can be set before instantiating the elements with the static Shared_multi_field_element::initialize method.

## Member Typedef Documentation

## Characteristic

using Gudhi::persistence_fields::Shared_multi_field_element::Characteristic = Element

Type for the field characteristic.

## Element

using Gudhi::persistence_fields::Shared_multi_field_element::Element = mpz_class

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 | element | ) |

inline

Constructor setting the element to the given value.

Parameters

  element | Value 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

  toCopy | Element to copy.

## Shared_multi_field_element() [3/3]

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

inline noexcept

Move constructor.

Parameters

  toMove | Element to move.

## Member Function Documentation

## get_additive_identity()

Shared_multi_field_element Gudhi::persistence_fields::Shared_multi_field_element::get_additive_identity | ( |  | ) |

inline static

Returns the additive identity of a field.

Returns
  The additive identity of a field.

## get_characteristic()

Shared_multi_field_element::Characteristic Gudhi::persistence_fields::Shared_multi_field_element::get_characteristic | ( |  | ) |

inline static

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 [boissonnat:hal-00922572].

Returns
  The inverse.

## get_multiplicative_identity()

Shared_multi_field_element Gudhi::persistence_fields::Shared_multi_field_element::get_multiplicative_identity | ( |  | ) |

inline static

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 > Gudhi::persistence_fields::Shared_multi_field_element::get_partial_inverse | ( | const Characteristic & | productOfCharacteristics | ) | const

inline

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

Parameters

  productOfCharacteristics | Sub-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 & | productOfCharacteristics | ) |

inline static

Returns the partial multiplicative identity of the multi-field from the given product. See [boissonnat:hal-00922572] for more details.

Parameters

  productOfCharacteristics | Product 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 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 )

inline static

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

Parameters

  minimum | Lowest value in the interval.
  maximum | Highest value in the interval.

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

- include/gudhi/Fields/Multi_field_shared.h