Loading...
Searching...
No Matches
Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T > Class Template Reference
Cubical complex

Cubical complex with periodic boundary conditions represented as a bitmap. More...

`#include <include/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h>`

## Public Member Functions

| Bitmap_cubical_complex_periodic_boundary_conditions_base ()
| Bitmap_cubical_complex_periodic_boundary_conditions_base (const std::vector< unsigned > &sizes, const std::vector< bool > &directions_in_which_periodic_b_cond_are_to_be_imposed)
| Bitmap_cubical_complex_periodic_boundary_conditions_base (const char *perseusStyleFile)
| Bitmap_cubical_complex_periodic_boundary_conditions_base (const std::vector< unsigned > &dimensions, const std::vector< T > &cells, const std::vector< bool > &directions_in_which_periodic_b_cond_are_to_be_imposed, bool input_top_cells)
virtual | ~Bitmap_cubical_complex_periodic_boundary_conditions_base ()
virtual std::vector< std::size_t > | get_boundary_of_a_cell (std::size_t cell) const override
virtual std::vector< std::size_t > | get_coboundary_of_a_cell (std::size_t cell) const override
virtual int | compute_incidence_between_cells (std::size_t coface, std::size_t face) const override
void | impose_lower_star_filtration_from_vertices ()
Public Member Functions inherited from Gudhi::cubical_complex::Bitmap_cubical_complex_base< T >
| Bitmap_cubical_complex_base ()
| Bitmap_cubical_complex_base (const std::vector< unsigned > &sizes)
| Bitmap_cubical_complex_base (const char *perseus_style_file)
| Bitmap_cubical_complex_base (const std::vector< unsigned > &dimensions, const std::vector< T > &cells, bool input_top_cells=true)
virtual | ~Bitmap_cubical_complex_base ()
size_t | get_top_dimensional_coface_of_a_cell (size_t splx)
size_t | get_vertex_of_a_cell (size_t splx)
unsigned | get_dimension_of_a_cell (std::size_t cell) const
T & | get_cell_data (std::size_t cell)
void | impose_lower_star_filtration ()
void | impose_lower_star_filtration_from_vertices ()
unsigned | dimension () const
std::size_t | size () const
void | put_data_to_bins (std::size_t number_of_bins)
void | put_data_to_bins (T diameter_of_bin)
std::pair< T, T > | min_max_filtration ()
All_cells_iterator | all_cells_iterator_begin () const
All_cells_iterator | all_cells_iterator_end () const
All_cells_range | all_cells_range () const
Boundary_range | boundary_range (std::size_t sh)
Coboundary_range | coboundary_range (std::size_t sh)
Top_dimensional_cells_iterator | top_dimensional_cells_iterator_begin ()
Top_dimensional_cells_iterator | top_dimensional_cells_iterator_end ()
Top_dimensional_cells_range | top_dimensional_cells_range ()

## Additional Inherited Members

Public Types inherited from Gudhi::cubical_complex::Bitmap_cubical_complex_base< T >
typedef boost::counting_iterator< std::size_t > | All_cells_iterator
| Iterator through all cells in the complex (in order they appear in the structure – i.e. in lexicographical order).
typedef boost::iterator_range< All_cells_iterator > | All_cells_range
| Range corresponding to All_cells_iterator.
typedef std::vector< std::size_t >::const_iterator | Boundary_iterator
typedef std::vector< std::size_t >::const_iterator | Coboundary_iterator

## Detailed Description

template<typename T>
class Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T >

Cubical complex with periodic boundary conditions represented as a bitmap.

This is a class implementing a bitmap data structure with periodic boundary conditions. Most of the functions are identical to the functions from Bitmap_cubical_complex_base. The ones that needed to be updated are the constructors and get_boundary_of_a_cell and get_coboundary_of_a_cell.

Examples
  periodic_cubical_complex_persistence.cpp.

## Constructor & Destructor Documentation

## Bitmap_cubical_complex_periodic_boundary_conditions_base() [1/4]

template<typename T>

Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T >::Bitmap_cubical_complex_periodic_boundary_conditions_base | ( |  | ) |

inline

Default constructor of Bitmap_cubical_complex_periodic_boundary_conditions_base class.

## Bitmap_cubical_complex_periodic_boundary_conditions_base() [2/4]

template<typename T>

Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T >::Bitmap_cubical_complex_periodic_boundary_conditions_base | ( | const std::vector< unsigned > & | sizes,
|  | const std::vector< bool > & | directions_in_which_periodic_b_cond_are_to_be_imposed )

A constructor of Bitmap_cubical_complex_periodic_boundary_conditions_base class that takes the following parameters: (1) vector with numbers of top dimensional cells in all dimensions and (2) vector of booleans. If at i-th position of this vector there is true value, that means that periodic boundary conditions are to be imposed in this direction. In case of false, the periodic boundary conditions will not be imposed in the direction i.

## Bitmap_cubical_complex_periodic_boundary_conditions_base() [3/4]

template<typename T>

Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T >::Bitmap_cubical_complex_periodic_boundary_conditions_base | ( | const char * | perseusStyleFile | ) |

explicit

A constructor of Bitmap_cubical_complex_periodic_boundary_conditions_base class that takes the name of Perseus style file as an input. Please consult the documentation about the specification of the file.

## Bitmap_cubical_complex_periodic_boundary_conditions_base() [4/4]

template<typename T>

Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T >::Bitmap_cubical_complex_periodic_boundary_conditions_base | ( | const std::vector< unsigned > & | dimensions,
|  | const std::vector< T > & | cells,
|  | const std::vector< bool > & | directions_in_which_periodic_b_cond_are_to_be_imposed,
|  | bool | input_top_cells )

A constructor of Bitmap_cubical_complex_periodic_boundary_conditions_base class that takes the following parameters: (1) vector with numbers of top dimensional cells in all dimensions and (2) vector of top dimensional cells (ordered lexicographically) and (3) vector of booleans. If at i-th position of this vector there is true value, that means that periodic boundary conditions are to be imposed in this direction. In case of false, the periodic boundary conditions will not be imposed in the direction i.

## ~Bitmap_cubical_complex_periodic_boundary_conditions_base()

template<typename T>

virtual Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T >::~Bitmap_cubical_complex_periodic_boundary_conditions_base | ( |  | ) |

inline virtual

Destructor of the Bitmap_cubical_complex_periodic_boundary_conditions_base class.

## Member Function Documentation

## compute_incidence_between_cells()

template<typename T>

virtual int Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T >::compute_incidence_between_cells | ( | std::size_t | coface,
|  | std::size_t | face ) const

inline override virtual

This procedure compute incidence numbers between cubes. For a cube \(A\) of dimension n and a cube \(B \subset A\) of dimension n-1, an incidence between \(A\) and \(B\) is the integer with which \(B\) appears in the boundary of \(A\). Note that first parameter is a cube of dimension n, and the second parameter is an adjusted cube in dimension n-1. Given \(A = [b_1,e_1] \times \ldots \ [b_{j-1},e_{j-1}] \times [b_{j},e_{j}] \times [b_{j+1},e_{j+1}] \times \ldots *\times [b_{n},e_{n}] \) such that \( b_{j} \neq e_{j} \) and \(B = [b_1,e_1] \times \ldots \ [b_{j-1},e_{j-1}] \times [a,a] \times [b_{j+1},e_{j+1}] \times \ldots \times *[b_{n},e_{n}]s \) where \( a = b_{j}\) or \( a = e_{j}\), the incidence between \(A\) and \(B\) computed by this procedure is given by formula: \( c\ (-1)^{\sum_{i=1}^{j-1} dim [b_{i},e_{i}]} \) Where \( dim [b_{i},e_{i}] = 0 \) if \( b_{i}=e_{i} \) and 1 in other case. c is -1 if \( a = b_{j}\) and 1 if \( a = e_{j}\).

Exceptions

  std::logic_error | In case when the cube \(B\) is not n-1 dimensional face of a cube \(A\).

Reimplemented from Gudhi::cubical_complex::Bitmap_cubical_complex_base< T >.

## get_boundary_of_a_cell()

template<typename T>

std::vector< std::size_t > Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T >::get_boundary_of_a_cell | ( | std::size_t | cell | ) | const

override virtual

A version of a function that return boundary of a given cell for an object of Bitmap_cubical_complex_periodic_boundary_conditions_base class. The boundary elements are guaranteed to be returned so that the incidence coefficients are alternating.

Reimplemented from Gudhi::cubical_complex::Bitmap_cubical_complex_base< T >.

## get_coboundary_of_a_cell()

template<typename T>

std::vector< std::size_t > Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T >::get_coboundary_of_a_cell | ( | std::size_t | cell | ) | const

override virtual

A version of a function that return coboundary of a given cell for an object of Bitmap_cubical_complex_periodic_boundary_conditions_base class. Note that unlike in the case of boundary, over here the elements are not guaranteed to be returned with alternating incidence numbers. To compute incidence between cells use compute_incidence_between_cells procedure

Reimplemented from Gudhi::cubical_complex::Bitmap_cubical_complex_base< T >.

## impose_lower_star_filtration_from_vertices()

template<typename T>

void Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T >::impose_lower_star_filtration_from_vertices | ( |  | ) |

Set cells filtrations given those of the vertices, and based on lower star filtration. This is already called by the relevant constructors.

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

- include/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h