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 () |
![]() | |
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 () |
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 |
size_t | get_top_dimensional_coface_of_a_cell (size_t splx) |
size_t | get_vertex_of_a_cell (size_t splx) |
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 () |
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 | |
![]() | |
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 |
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.
|
inline |
Default constructor of Bitmap_cubical_complex_periodic_boundary_conditions_base class.
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.
|
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.
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.
|
inlinevirtual |
Destructor of the Bitmap_cubical_complex_periodic_boundary_conditions_base class.
|
inlineoverridevirtual |
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}\).
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 >.
|
overridevirtual |
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 >.
|
overridevirtual |
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 >.
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.