Gudhi::cubical_complex::Bitmap_cubical_complex_periodic_boundary_conditions_base< T > Class Template Reference

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

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 > &topDimensionalCells, const std::vector< bool > &directions_in_which_periodic_b_cond_are_to_be_imposed)
 
virtual ~Bitmap_cubical_complex_periodic_boundary_conditions_base ()
 
virtual std::vector< std::size_t > get_boundary_of_a_cell (std::size_t cell) const
 
virtual std::vector< std::size_t > get_coboundary_of_a_cell (std::size_t cell) const
 
virtual int compute_incidence_between_cells (std::size_t coface, std::size_t face)
 
- 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 > &top_dimensional_cells)
 
virtual ~Bitmap_cubical_complex_base ()
 
virtual int compute_incidence_between_cells (std::size_t coface, std::size_t face) const
 
unsigned get_dimension_of_a_cell (std::size_t cell) const
 
T & get_cell_data (std::size_t cell)
 
void impose_lower_star_filtration ()
 
unsigned dimension () const
 
unsigned 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 ()
 
All_cells_iterator all_cells_iterator_end ()
 
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 ()
 

Additional Inherited Members

- Public Types inherited from Gudhi::cubical_complex::Bitmap_cubical_complex_base< T >
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:
Bitmap_cubical_complex/periodic_cubical_complex_persistence.cpp.

Constructor & Destructor Documentation

◆ Bitmap_cubical_complex_periodic_boundary_conditions_base() [1/4]

◆ 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]

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 > &  topDimensionalCells,
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 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()

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

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_errorIn case when the cube \(B\) is not n-1 dimensional face of a cube \(A\).

◆ 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
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
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 >.


The documentation for this class was generated from the following file:
GUDHI  Version 2.2.0  - C++ library for Topological Data Analysis (TDA) and Higher Dimensional Geometry Understanding.  - Copyright : GPL v3 Generated on Thu Jun 14 2018 15:00:55 for GUDHI by Doxygen 1.8.13