Loading...
Searching...
No Matches
Persistence Fields

## Classes

class | Gudhi::persistence_fields::Multi_field_element< minimum, maximum >
| Class representing an element of a multi-field. The characteristics will corresponds to all prime numbers in the interval given as template. More...
class | Gudhi::persistence_fields::Multi_field_operators
| Class defining operators for a multi-field with "consecutive" characteristic range. More...
class | Gudhi::persistence_fields::Shared_multi_field_element
| 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...
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. More...
class | Gudhi::persistence_fields::Multi_field_operators_with_small_characteristics
| Class defining operators for a multi-field with "consecutive" characteristic range, such that productOfAllCharacteristics ^ 2 fits into an unsigned int. More...
class | Gudhi::persistence_fields::Shared_multi_field_element_with_small_characteristics< Unsigned_integer_type, class >

Class representing an element of a multi-field, such that productOfAllCharacteristics ^ 2 fits into the given `Unsigned_integer_type` template argument. 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_with_small_characteristics::initialize method. More...

class | Gudhi::persistence_fields::Z2_field_element
| Class representing an element of the \( \mathbb{F}_2 \) field. More...
class | Gudhi::persistence_fields::Z2_field_operators
| Class defining operators for the \( \mathbb{F}_2 \) field. More...
class | Gudhi::persistence_fields::Zp_field_element< characteristic, Unsigned_integer_type, class >
| Class representing an element of the \( \mathbb{F}_p \) field for any prime number \( p \). More...
class | Gudhi::persistence_fields::Zp_field_operators< Unsigned_integer_type, class >
| Class defining operators for the \( \mathbb{F}_p \) field for any prime number \( p \). More...
class | Gudhi::persistence_fields::Shared_Zp_field_element< Unsigned_integer_type, class >

Class representing an element of the \( \mathbb{F}_p \) field for any prime number \( p \). 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_Zp_field_element::initialize method. More...

## Detailed Description

Author
  Hannah Schreiber, Clément Maria

# Persistence Fields

Set of classes allowing addition and multiplication, as well as inverse computation, in \( \mathbb{F}_p \) fields, with \( p \) some prime number, or in multi-fields as defined in [boissonnat:hal-00922572].

There are two types of classes:

- those defining directly a field element, allowing to use them as any integer: the operators are overwritten such that the calculation is done in the field. For example, if \( e = 2 \) is an instantiation of an \( \mathbb{F}_3 \) element class, then e + 3 returns an element instantiation of value 2,
- those only defining the operators of a field or multi-field. They represent a collection of methods taking one or two integers as input and treating them as elements of the field. For example, if \( op \) is an instantiation of a \( \mathbb{F}_3 \) operator class, op.add(2, 3) returns 2.

The field operator classes all respect the persistence_matrix::FieldOperators concept.

## Examples

Here is a list of examples using the module:

- Persistence_field/example_field_operations.cpp - A simple example to showcase how to use the different field element and operator classes.