Loading...
Searching...
No Matches
Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > Class Template Reference
Persistence Fields

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 = Unsigned_integer_type
using | Characteristic = Element

## 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 > | get_partial_inverse (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 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 &productOfCharacteristics)
| Returns the partial multiplicative identity of the multi-field from the given product. See [boissonnat:hal-00922572] for more details.
static constexpr Characteristic | 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.

## Detailed Description

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
class Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >

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.

Template Parameters

  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.

## Member Typedef Documentation

## Characteristic

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>

using Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::Characteristic = Element

Type for the field characteristic.

## Element

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>

using Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::Element = Unsigned_integer_type

Type for the elements in the field.

## Constructor & Destructor Documentation

## Multi_field_element_with_small_characteristics() [1/3]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::Multi_field_element_with_small_characteristics | ( | Integer_type | element | ) |

inline

Constructor setting the element to the given value.

Parameters

  element | Value of the element.

## Multi_field_element_with_small_characteristics() [2/3]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>

Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::Multi_field_element_with_small_characteristics | ( | const Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > & | toCopy | ) |

inline

Copy constructor.

Parameters

  toCopy | Element to copy.

## Multi_field_element_with_small_characteristics() [3/3]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>

Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::Multi_field_element_with_small_characteristics | ( | Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > && | toMove | ) |

inline noexcept

Move constructor.

Parameters

  toMove | Element to move.

## Member Function Documentation

## get_additive_identity()

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>

Multi_field_element_with_small_characteristics Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::get_additive_identity | ( |  | ) |

inline static

Returns the additive identity of a field.

Returns
  The additive identity of a field.

## get_characteristic()

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>

constexpr Characteristic Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::get_characteristic | ( |  | ) |

inline static constexpr

Returns the product of all characteristics.

Returns
  The product of all characteristics.

## get_inverse()

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>

Multi_field_element_with_small_characteristics Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::get_inverse | ( |  | ) | const

inline

Returns the inverse of the element in the multi-field, see [boissonnat:hal-00922572].

Returns
  The inverse.

## get_multiplicative_identity()

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>

Multi_field_element_with_small_characteristics Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::get_multiplicative_identity | ( |  | ) |

inline static

Returns the multiplicative identity of a field.

Returns
  The multiplicative identity of a field.

## get_partial_inverse()

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>

std::pair< Multi_field_element_with_small_characteristics, Characteristic > Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::get_partial_inverse | ( | 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()

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>

Multi_field_element_with_small_characteristics Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::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()

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>

Element Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::get_value | ( |  | ) | const

inline

Returns the value of the element.

Returns
  Value of the element.

## operator=()

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

Multi_field_element_with_small_characteristics & Gudhi::persistence_fields::Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class >::operator= | ( | const Integer_type & | value | ) |

inline

Assign operator.

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## Friends And Related Symbol Documentation

## operator!= [1/2]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

bool operator!= | ( | const Integer_type | v,
|  | const Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > & | f )

friend

operator!=

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator!= [2/2]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

bool operator!= | ( | const Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > & | f,
|  | const Integer_type | v )

friend

operator!=

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator* [1/2]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

Integer_type operator* | ( | const Integer_type & | v,
|  | Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > | f )

friend

operator*

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator* [2/2]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

Multi_field_element_with_small_characteristics operator* | ( | Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > | f,
|  | const Integer_type & | v )

friend

operator*

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator*=

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

void operator*= | ( | Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > & | f,
|  | const Integer_type & | v )

friend

operator*=

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator+ [1/2]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

Integer_type operator+ | ( | const Integer_type & | v,
|  | Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > | f )

friend

operator+

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator+ [2/2]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

Multi_field_element_with_small_characteristics operator+ | ( | Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > | f,
|  | const Integer_type & | v )

friend

operator+

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator+=

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

void operator+= | ( | Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > & | f,
|  | const Integer_type & | v )

friend

operator+=

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator- [1/2]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

Integer_type operator- | ( | const Integer_type & | v,
|  | const Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > & | f )

friend

operator-

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator- [2/2]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

Multi_field_element_with_small_characteristics operator- | ( | Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > | f,
|  | const Integer_type & | v )

friend

operator-

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator-=

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

void operator-= | ( | Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > & | f,
|  | const Integer_type & | v )

friend

operator-=

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator== [1/2]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

bool operator== | ( | const Integer_type | v,
|  | const Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > & | f )

friend

operator==

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

## operator== [2/2]

template<unsigned int minimum, unsigned int maximum, typename Unsigned_integer_type = unsigned int, class = std::enable_if_t<std::is_unsigned_v<Unsigned_integer_type> >>
template<typename Integer_type, class = isInteger<Integer_type>>

bool operator== | ( | const Multi_field_element_with_small_characteristics< minimum, maximum, Unsigned_integer_type, class > & | f,
|  | const Integer_type | v )

friend

operator==

Template Parameters

  Integer_type | A native integer type. Should be able to contain the characteristic if signed.

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

- include/gudhi/Fields/Multi_field_small.h