From d17d140addd5c88200a983609e7d11a5571d7e7b Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Tue, 28 May 2019 22:24:04 +0200 Subject: Use markdown for main page. Fix some doxyfile --- src/Doxyfile.in | 6 +- src/common/doc/main_page.h | 289 -------------------------------- src/common/doc/main_page.md | 391 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 394 insertions(+), 292 deletions(-) delete mode 100644 src/common/doc/main_page.h create mode 100644 src/common/doc/main_page.md (limited to 'src') diff --git a/src/Doxyfile.in b/src/Doxyfile.in index 1c293d1c..54a438d4 100644 --- a/src/Doxyfile.in +++ b/src/Doxyfile.in @@ -208,7 +208,7 @@ SEPARATE_MEMBER_PAGES = NO # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. -TAB_SIZE = 4 +TAB_SIZE = 2 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: @@ -889,7 +889,7 @@ FILTER_SOURCE_PATTERNS = # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. -USE_MDFILE_AS_MAINPAGE = +USE_MDFILE_AS_MAINPAGE = doc/common/main_page.md #--------------------------------------------------------------------------- # Configuration options related to source browsing @@ -1147,7 +1147,7 @@ HTML_DYNAMIC_SECTIONS = NO # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_INDEX_NUM_ENTRIES = 100 +HTML_INDEX_NUM_ENTRIES = 2 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development diff --git a/src/common/doc/main_page.h b/src/common/doc/main_page.h deleted file mode 100644 index afe9b68c..00000000 --- a/src/common/doc/main_page.h +++ /dev/null @@ -1,289 +0,0 @@ -/*! \mainpage The C++ library - * \tableofcontents - * \image html "Gudhi_banner.png" "" width=20cm - * - * \section Introduction Introduction - * The GUDHI library (Geometry Understanding in Higher Dimensions) is a generic open source - * C++ library for - * Computational Topology and Topological Data Analysis - * (TDA). - * The GUDHI library intends to help the development of new algorithmic solutions in TDA and their transfer to - * applications. It provides robust, efficient, flexible and easy to use implementations of state-of-the-art - * algorithms and data structures. - * - * The current release of the GUDHI library includes: - * - * \li Data structures to represent, construct and manipulate simplicial complexes. - * \li Simplification of simplicial complexes by edge contraction. - * \li Algorithms to compute persistent homology and bottleneck distance. - * - * All data-structures are generic and several of their aspects can be parameterized via template classes. - * We refer to \cite gudhilibrary_ICMS14 for a detailed description of the design of the library. - * - \section DataStructures Data structures - \subsection AlphaComplexDataStructure Alpha complex - \image html "alpha_complex_representation.png" "Alpha complex representation" - - - - - -
- Author: Vincent Rouvreau
- Introduced in: GUDHI 1.3.0
- Copyright: GPL v3
- Requires: \ref eigen3 and
- \ref cgal ≥ 4.7.0 for Alpha_complex
- \ref cgal ≥ 4.11.0 for Alpha_complex_3d -
- Alpha_complex is a simplicial complex constructed from the finite cells of a Delaunay Triangulation.
- The filtration value of each simplex is computed as the square of the circumradius of the simplex if the - circumsphere is empty (the simplex is then said to be Gabriel), and as the minimum of the filtration - values of the codimension 1 cofaces that make it not Gabriel otherwise. - All simplices that have a filtration value strictly greater than a given alpha squared value are not inserted into - the complex.
- User manual: \ref alpha_complex - Reference manual: Gudhi::alpha_complex::Alpha_complex and - Gudhi::alpha_complex::Alpha_complex_3d -
- \subsection CechComplexDataStructure Čech complex - \image html "cech_complex_representation.png" "Čech complex representation" - - - - - -
- Author: Vincent Rouvreau
- Introduced in: GUDHI 2.2.0
- Copyright: GPL v3
-
- The Čech complex is a simplicial complex constructed from a proximity graph.
- The set of all simplices is filtered by the radius of their minimal enclosing ball.
- User manual: \ref cech_complex - Reference manual: Gudhi::cech_complex::Cech_complex -
- \subsection CubicalComplexDataStructure Cubical complex - \image html "Cubical_complex_representation.png" "Cubical complex representation" - - - - - -
- Author: Pawel Dlotko
- Introduced in: GUDHI 1.3.0
- Copyright: GPL v3
-
- The cubical complex is an example of a structured complex useful in computational mathematics (specially - rigorous numerics) and image analysis.
- User manual: \ref cubical_complex - Reference manual: Gudhi::cubical_complex::Bitmap_cubical_complex -
- \subsection RipsComplexDataStructure Rips complex - \image html "rips_complex_representation.png" "Rips complex representation" - - - - - -
- Author: Clément Maria, Pawel Dlotko, Vincent Rouvreau, Marc Glisse
- Introduced in: GUDHI 2.0.0
- Copyright: GPL v3
-
- Rips_complex is a simplicial complex constructed from a one skeleton graph.
- The filtration value of each edge is computed from a user-given distance function and is inserted until a - user-given threshold value.
- This complex can be built from a point cloud and a distance function, or from a distance matrix.
- User manual: \ref rips_complex - Reference manual: Gudhi::rips_complex::Rips_complex -
- \subsection SimplexTreeDataStructure Simplex tree - \image html "Simplex_tree_representation.png" "Simplex tree representation" - - - - - -
- Author: Clément Maria
- Introduced in: GUDHI 1.0.0
- Copyright: GPL v3
-
- The simplex tree is an efficient and flexible - data structure for representing general (filtered) simplicial complexes. The data structure - is described in \cite boissonnatmariasimplextreealgorithmica .
- User manual: \ref simplex_tree - Reference manual: Gudhi::Simplex_tree -
- \subsection CoverComplexDataStructure Cover Complexes - \image html "gicvisu.jpg" "Graph Induced Complex of a point cloud." - - - - - -
- Author: Mathieu Carrière
- Introduced in: GUDHI 2.1.0
- Copyright: GPL v3
- Requires: \ref cgal ≥ 4.8.1 -
- Nerves and Graph Induced Complexes are cover complexes, i.e. simplicial complexes that provably contain - topological information about the input data. They can be computed with a cover of the - data, that comes i.e. from the preimage of a family of intervals covering the image - of a scalar-valued function defined on the data.
- User manual: \ref cover_complex - Reference manual: Gudhi::cover_complex::Cover_complex -
- \subsection SkeletonBlockerDataStructure Skeleton blocker - \image html "ds_representation.png" "Skeleton blocker representation" - - - - - -
- Author: David Salinas
- Introduced in: GUDHI 1.1.0
- Copyright: GPL v3
-
- The Skeleton-Blocker data-structure proposes a light encoding for simplicial complexes by storing only an *implicit* - representation of its simplices \cite socg_blockers_2011,\cite blockers2012. Intuitively, it just stores the - 1-skeleton of a simplicial complex with a graph and the set of its "missing faces" that is very small in practice. - This data-structure handles all simplicial complexes operations such as simplex enumeration or simplex removal but - operations that are particularly efficient are operations that do not require simplex enumeration such as edge - iteration, link computation or simplex contraction.
- User manual: \ref skbl - Reference manual: Gudhi::skeleton_blocker::Skeleton_blocker_complex -
- \subsection TangentialComplexDataStructure Tangential complex - \image html "tc_examples.png" "Tangential complex representation" - - - - - -
- Author: Clément Jamin
- Introduced in: GUDHI 2.0.0
- Copyright: GPL v3
- Requires: \ref cgal ≥ 4.8.1 and \ref eigen3 -
- A Tangential Delaunay complex is a simplicial complex - designed to reconstruct a \f$ k \f$-dimensional manifold embedded in \f$ d \f$-dimensional Euclidean space. - The input is a point sample coming from an unknown manifold. - The running time depends only linearly on the extrinsic dimension \f$ d \f$ - and exponentially on the intrinsic dimension \f$ k \f$.
- User manual: \ref tangential_complex - Reference manual: Gudhi::tangential_complex::Tangential_complex -
- \subsection ToplexMapDataStructure Toplex Map - \image html "map.png" "Toplex map representation" - - - - - - - \subsection WitnessComplexDataStructure Witness complex - \image html "Witness_complex_representation.png" "Witness complex representation" -
- Author: François Godi
- Introduced in: GUDHI 2.1.0
- Copyright: GPL v3
-
- The Toplex map data structure is composed firstly of a raw storage of toplices (the maximal simplices) - and secondly of a map which associate any vertex to a set of pointers toward all toplices - containing this vertex. - User manual: \ref toplex_map - Reference manual: Gudhi::Toplex_map -
- - - - -
- Author: Siargey Kachanovich
- Introduced in: GUDHI 1.3.0
- Copyright: GPL v3
- Euclidean version requires: \ref cgal ≥ 4.6.0 and \ref eigen3 -
- Witness complex \f$ Wit(W,L) \f$ is a simplicial complex defined on two sets of points in \f$\mathbb{R}^D\f$. - The data structure is described in \cite boissonnatmariasimplextreealgorithmica .
- User manual: \ref witness_complex - Reference manual: Gudhi::witness_complex::SimplicialComplexForWitness -
- - \section Toolbox Toolbox - - \subsection BottleneckDistanceToolbox Bottleneck distance - \image html "perturb_pd.png" "Bottleneck distance is the length of the longest edge" - - - - - -
- Author: François Godi
- Introduced in: GUDHI 2.0.0
- Copyright: GPL v3
- Requires: \ref cgal ≥ 4.8.1 -
- Bottleneck distance measures the similarity between two persistence diagrams. - It's the shortest distance b for which there exists a perfect matching between - the points of the two diagrams (+ all the diagonal points) such that - any couple of matched points are at distance at most b. -
- User manual: \ref bottleneck_distance -
- \subsection ContractionToolbox Contraction - \image html "sphere_contraction_representation.png" "Sphere contraction example" - - - - - -
- Author: David Salinas
- Introduced in: GUDHI 1.1.0
- Copyright: GPL v3
-
- The purpose of this package is to offer a user-friendly interface for edge contraction simplification of huge - simplicial complexes. It uses the \ref skbl data-structure whose size remains small during simplification of most - used geometrical complexes of topological data analysis such as the Rips or the Delaunay complexes. In practice, - the size of this data-structure is even much lower than the total number of simplices.
- User manual: \ref contr -
- \subsection PersistentCohomologyToolbox Persistent Cohomology - \image html "3DTorus_poch.png" "Rips Persistent Cohomology on a 3D Torus" - - - - - -
- Author: Clément Maria
- Introduced in: GUDHI 1.0.0
- Copyright: GPL v3
-
- The theory of homology consists in attaching to a topological space a sequence of (homology) groups, capturing - global topological features like connected components, holes, cavities, etc. Persistent homology studies the - evolution -- birth, life and death -- of these features when the topological space is changing. Consequently, the - theory is essentially composed of three elements: topological spaces, their homology groups and an evolution - scheme. - Computation of persistent cohomology using the algorithm of \cite DBLP:journals/dcg/SilvaMV11 and - \cite DBLP:journals/corr/abs-1208-5018 and the Compressed Annotation Matrix implementation of - \cite DBLP:conf/esa/BoissonnatDM13 .
- User manual: \ref persistent_cohomology - Reference manual: Gudhi::persistent_cohomology::Persistent_cohomology -
- \subsection PersistenceRepresentationsToolbox Persistence representations - \image html "average_landscape.png" "Persistence representations" - - - - - -
- Author: Pawel Dlotko
- Introduced in: GUDHI 2.1.0
- Copyright: GPL v3
-
- It contains implementation of various representations of persistence diagrams; diagrams themselves, persistence - landscapes (rigorous and grid version), persistence heath maps, vectors and others. It implements basic - functionalities which are neccessary to use persistence in statistics and machine learning.
- User manual: \ref Persistence_representations -
- -*/ diff --git a/src/common/doc/main_page.md b/src/common/doc/main_page.md new file mode 100644 index 00000000..61efd582 --- /dev/null +++ b/src/common/doc/main_page.md @@ -0,0 +1,391 @@ +[TOC] + +# The C++ library {#main_page} +\image html "Gudhi_banner.png" +



+ +## Complexes {#Complexes} +### Cubical complex + + + + + + + + + + +
+ \image html "Cubical_complex_representation.png" + + The cubical complex is an example of a structured complex useful in computational mathematics (specially + rigorous numerics) and image analysis.
+
+ Author: Pawel Dlotko
+ Introduced in: GUDHI 1.3.0
+ Copyright: GPL v3
+
+ User manual: \ref cubical_complex - Reference manual: Gudhi::cubical_complex::Bitmap_cubical_complex +
+ +### Simplicial complex + +#### Alpha complex + + + + + + + + + + +
+ \image html "alpha_complex_representation.png" + + Alpha complex is a simplicial complex constructed from the finite cells of a Delaunay Triangulation.
+ The filtration value of each simplex is computed as the square of the circumradius of the simplex if the + circumsphere is empty (the simplex is then said to be Gabriel), and as the minimum of the filtration + values of the codimension 1 cofaces that make it not Gabriel otherwise. + All simplices that have a filtration value strictly greater than a given alpha squared value are not inserted into + the complex.
+
+ Author: Vincent Rouvreau
+ Introduced in: GUDHI 1.3.0
+ Copyright: GPL v3
+ Requires: \ref eigen3 and
+ \ref cgal ≥ 4.7.0 for Alpha_complex
+ \ref cgal ≥ 4.11.0 for Alpha_complex_3d +
+ User manual: \ref alpha_complex - Reference manual: Gudhi::alpha_complex::Alpha_complex and + Gudhi::alpha_complex::Alpha_complex_3d +
+ +#### Čech complex + + + + + + + + + + +
+ \image html "cech_complex_representation.png" + + The Čech complex is a simplicial complex constructed from a proximity graph. + The set of all simplices is filtered by the radius of their minimal enclosing ball. + + Author: Vincent Rouvreau
+ Introduced in: GUDHI 2.2.0
+ Copyright: GPL v3
+
+ User manual: \ref cech_complex - Reference manual: Gudhi::cech_complex::Cech_complex +
+ +#### Rips complex + + + + + + + + + + +
+ \image html "rips_complex_representation.png" + + Rips_complex is a simplicial complex constructed from a one skeleton graph.
+ The filtration value of each edge is computed from a user-given distance function and is inserted until a + user-given threshold value.
+ This complex can be built from a point cloud and a distance function, or from a distance matrix. +
+ Author: Clément Maria, Pawel Dlotko, Vincent Rouvreau, Marc Glisse
+ Introduced in: GUDHI 2.0.0
+ Copyright: GPL v3
+
+ User manual: \ref rips_complex - Reference manual: Gudhi::rips_complex::Rips_complex +
+ +#### Witness complex + + + + + + + + + + +
+ \image html "Witness_complex_representation.png" + + Witness complex \f$ Wit(W,L) \f$ is a simplicial complex defined on two sets of points in \f$\mathbb{R}^D\f$. + The data structure is described in \cite boissonnatmariasimplextreealgorithmica . + + Author: Siargey Kachanovich
+ Introduced in: GUDHI 1.3.0
+ Copyright: GPL v3
+ Euclidean version requires: \ref cgal ≥ 4.6.0 and \ref eigen3 +
+ User manual: \ref witness_complex - Reference manual: Gudhi::witness_complex::SimplicialComplexForWitness +
+ +### Cover Complexes + + + + + + + + + +
+ \image html "gicvisu.jpg" + + Nerves and Graph Induced Complexes are cover complexes, i.e. simplicial complexes that provably contain + topological information about the input data. They can be computed with a cover of the + data, that comes i.e. from the preimage of a family of intervals covering the image + of a scalar-valued function defined on the data.
+ User manual: \ref cover_complex - Reference manual: Gudhi::cover_complex::Cover_complex +
+ Author: Mathieu Carrière
+ Introduced in: GUDHI 2.1.0
+ Copyright: GPL v3
+ Requires: \ref cgal ≥ 4.8.1 +
+ User manual: \ref cover_complex - Reference manual: Gudhi::cover_complex::Cover_complex +
+ +## Data structures and basic operations {#DataStructuresAndBasicOperations} + +### Data structures + +#### Simplex tree + + + + + + + + + +
+ \image html "Simplex_tree_representation.png" + + The simplex tree is an efficient and flexible + data structure for representing general (filtered) simplicial complexes. The data structure + is described in \cite boissonnatmariasimplextreealgorithmica . + + Author: Clément Maria
+ Introduced in: GUDHI 1.0.0
+ Copyright: GPL v3
+
+ User manual: \ref simplex_tree - Reference manual: Gudhi::Simplex_tree +
+ +#### Skeleton blocker + + + + + + + + + + +
+ \image html "ds_representation.png" + + The Skeleton-Blocker data-structure proposes a light encoding for simplicial complexes by storing only an *implicit* + representation of its simplices \cite socg_blockers_2011,\cite blockers2012. Intuitively, it just stores the + 1-skeleton of a simplicial complex with a graph and the set of its "missing faces" that is very small in practice. + This data-structure handles all simplicial complexes operations such as simplex enumeration or simplex removal but + operations that are particularly efficient are operations that do not require simplex enumeration such as edge + iteration, link computation or simplex contraction. + + Author: David Salinas
+ Introduced in: GUDHI 1.1.0
+ Copyright: GPL v3
+
+ User manual: \ref skbl - Reference manual: Gudhi::skeleton_blocker::Skeleton_blocker_complex +
+ +#### Toplex Map + + + + + + + + + + +
+ \image html "map.png" + + The Toplex map data structure is composed firstly of a raw storage of toplices (the maximal simplices) + and secondly of a map which associate any vertex to a set of pointers toward all toplices + containing this vertex. + + Author: François Godi
+ Introduced in: GUDHI 2.1.0
+ Copyright: GPL v3
+
+ User manual: \ref toplex_map - Reference manual: Gudhi::Toplex_map +
+ +### Basic operations + +#### Contraction + + + + + + + + + + +
+ \image html "sphere_contraction_representation.png" + + Author: David Salinas
+ Introduced in: GUDHI 1.1.0
+ Copyright: GPL v3
+
+ The purpose of this package is to offer a user-friendly interface for edge contraction simplification of huge + simplicial complexes. It uses the \ref skbl data-structure whose size remains small during simplification of most + used geometrical complexes of topological data analysis such as the Rips or the Delaunay complexes. In practice, + the size of this data-structure is even much lower than the total number of simplices. +
+ User manual: \ref contr +
+ +## Topological descriptors computation {#TopologicalDescriptorsComputation} + +### Persistent Cohomology + + + + + + + + + + +
+ \image html "3DTorus_poch.png" + + The theory of homology consists in attaching to a topological space a sequence of (homology) groups, capturing + global topological features like connected components, holes, cavities, etc. Persistent homology studies the + evolution -- birth, life and death -- of these features when the topological space is changing. Consequently, the + theory is essentially composed of three elements: topological spaces, their homology groups and an evolution + scheme. + Computation of persistent cohomology using the algorithm of \cite DBLP:journals/dcg/SilvaMV11 and + \cite DBLP:journals/corr/abs-1208-5018 and the Compressed Annotation Matrix implementation of + \cite DBLP:conf/esa/BoissonnatDM13 . + + Author: Clément Maria
+ Introduced in: GUDHI 1.0.0
+ Copyright: GPL v3
+
+ User manual: \ref persistent_cohomology - Reference manual: Gudhi::persistent_cohomology::Persistent_cohomology +
+ +## Manifold reconstruction {#ManifoldReconstruction} + +### Tangential complex + + + + + + + + + + +
+ \image html "tc_examples.png" + + A Tangential Delaunay complex is a simplicial complex + designed to reconstruct a \f$ k \f$-dimensional manifold embedded in \f$ d \f$-dimensional Euclidean space. + The input is a point sample coming from an unknown manifold. + The running time depends only linearly on the extrinsic dimension \f$ d \f$ + and exponentially on the intrinsic dimension \f$ k \f$. + + Author: Clément Jamin
+ Introduced in: GUDHI 2.0.0
+ Copyright: GPL v3
+ Requires: \ref cgal ≥ 4.8.1 and \ref eigen3 +
+ User manual: \ref tangential_complex - Reference manual: Gudhi::tangential_complex::Tangential_complex +
+ +## Topological descriptors tools {#TopologicalDescriptorsTools} + +### Bottleneck distance + + + + + + + + + + +
+ \image html "perturb_pd.png" + + Bottleneck distance measures the similarity between two persistence diagrams. + It's the shortest distance b for which there exists a perfect matching between + the points of the two diagrams (+ all the diagonal points) such that + any couple of matched points are at distance at most b. + + Author: François Godi
+ Introduced in: GUDHI 2.0.0
+ Copyright: GPL v3
+ Requires: \ref cgal ≥ 4.8.1 +
+ User manual: \ref bottleneck_distance +
+ +### Persistence representations + + + + + + + + + + +
+ \image html "average_landscape.png" + + It contains implementation of various representations of persistence diagrams; diagrams themselves, persistence + landscapes (rigorous and grid version), persistence heath maps, vectors and others. It implements basic + functionalities which are neccessary to use persistence in statistics and machine learning. + + Author: Pawel Dlotko
+ Introduced in: GUDHI 2.1.0
+ Copyright: GPL v3
+
+ User manual: \ref Persistence_representations +
-- cgit v1.2.3 From 617129f0e45e4a019b5d6facb8d2679629e34efd Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Tue, 28 May 2019 22:26:03 +0200 Subject: fix typo --- src/common/doc/main_page.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/common/doc/main_page.md b/src/common/doc/main_page.md index 61efd582..a74ebd26 100644 --- a/src/common/doc/main_page.md +++ b/src/common/doc/main_page.md @@ -95,7 +95,7 @@ \image html "rips_complex_representation.png" - Rips_complex is a simplicial complex constructed from a one skeleton graph.
+ Rips complex is a simplicial complex constructed from a one skeleton graph.
The filtration value of each edge is computed from a user-given distance function and is inserted until a user-given threshold value.
This complex can be built from a point cloud and a distance function, or from a distance matrix. -- cgit v1.2.3 From a99f1e8ceef3ccb8606ac6f5af169329db8352f4 Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Wed, 29 May 2019 11:43:46 +0200 Subject: Reformat modules summary and occupy 100% of the page --- src/cython/doc/alpha_complex_sum.inc | 40 ++++++++--------- src/cython/doc/bottleneck_distance_sum.inc | 27 ++++++------ src/cython/doc/conf.py | 2 +- src/cython/doc/cubical_complex_sum.inc | 27 ++++++------ src/cython/doc/nerve_gic_complex_sum.rst | 29 ++++++------ src/cython/doc/persistence_graphical_tools_sum.inc | 24 +++++----- src/cython/doc/persistent_cohomology_sum.inc | 51 +++++++++++----------- src/cython/doc/rips_complex_sum.inc | 31 +++++++------ src/cython/doc/simplex_tree_sum.inc | 25 +++++------ src/cython/doc/tangential_complex_sum.inc | 27 ++++++------ src/cython/doc/witness_complex_sum.inc | 34 +++++++-------- 11 files changed, 155 insertions(+), 162 deletions(-) (limited to 'src') diff --git a/src/cython/doc/alpha_complex_sum.inc b/src/cython/doc/alpha_complex_sum.inc index 1680a712..100edbbd 100644 --- a/src/cython/doc/alpha_complex_sum.inc +++ b/src/cython/doc/alpha_complex_sum.inc @@ -1,22 +1,20 @@ -================================================================= =================================== =================================== -:Author: Vincent Rouvreau :Introduced in: GUDHI 2.0.0 :Copyright: GPL v3 -:Requires: CGAL :math:`\geq` 4.7.0 Eigen3 -================================================================= =================================== =================================== +.. table:: + :widths: 30 50 20 -+----------------------------------------------------------------+------------------------------------------------------------------------+ -| .. figure:: | Alpha_complex is a simplicial complex constructed from the finite | -| ../../doc/Alpha_complex/alpha_complex_representation.png | cells of a Delaunay Triangulation. | -| :alt: Alpha complex representation | | -| :figclass: align-center | The filtration value of each simplex is computed as the square of the | -| | circumradius of the simplex if the circumsphere is empty (the simplex | -| Alpha complex representation | is then said to be Gabriel), and as the minimum of the filtration | -| | values of the codimension 1 cofaces that make it not Gabriel | -| | otherwise. All simplices that have a filtration value strictly | -| | greater than a given alpha squared value are not inserted into the | -| | complex. | -| | | -| | This package requires having CGAL version 4.7 or higher (4.8.1 is | -| | advised for better performance). | -+----------------------------------------------------------------+------------------------------------------------------------------------+ -| :doc:`alpha_complex_user` | :doc:`alpha_complex_ref` | -+----------------------------------------------------------------+------------------------------------------------------------------------+ + +----------------------------------------------------------------+------------------------------------------------------------------------+-----------------------------------------------+ + | .. figure:: | Alpha complex is a simplicial complex constructed from the finite | :Author: Vincent Rouvreau | + | ../../doc/Alpha_complex/alpha_complex_representation.png | cells of a Delaunay Triangulation. | | + | :alt: Alpha complex representation | | :Introduced in: GUDHI 2.0.0 | + | :figclass: align-center | The filtration value of each simplex is computed as the square of the | | + | | circumradius of the simplex if the circumsphere is empty (the simplex | :Copyright: GPL v3 | + | | is then said to be Gabriel), and as the minimum of the filtration | | + | | values of the codimension 1 cofaces that make it not Gabriel | :Requires: Eigen3 and CGAL :math:`\geq` 4.7.0 | + | | otherwise. All simplices that have a filtration value strictly | | + | | greater than a given alpha squared value are not inserted into the | | + | | complex. | | + | | | | + | | This package requires having CGAL version 4.7 or higher (4.8.1 is | | + | | advised for better performance). | | + +----------------------------------------------------------------+------------------------------------------------------------------------+-----------------------------------------------+ + | :doc:`alpha_complex_user` | :doc:`alpha_complex_ref` | + +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/bottleneck_distance_sum.inc b/src/cython/doc/bottleneck_distance_sum.inc index 030fad9e..4fedb744 100644 --- a/src/cython/doc/bottleneck_distance_sum.inc +++ b/src/cython/doc/bottleneck_distance_sum.inc @@ -1,15 +1,14 @@ -================================================================= =================================== =================================== -:Author: François Godi :Introduced in: GUDHI 2.0.0 :Copyright: GPL v3 -:Requires: CGAL :math:`\geq` 4.8.0 -================================================================= =================================== =================================== +.. table:: + :widths: 30 50 20 -+-----------------------------------------------------------------+----------------------------------------------------------------------+ -| .. figure:: | Bottleneck distance measures the similarity between two persistence | -| ../../doc/Bottleneck_distance/perturb_pd.png | diagrams. It's the shortest distance b for which there exists a | -| :figclass: align-center | perfect matching between the points of the two diagrams (+ all the | -| | diagonal points) such that any couple of matched points are at | -| Bottleneck distance is the length of | distance at most b. | -| the longest edge | | -+-----------------------------------------------------------------+----------------------------------------------------------------------+ -| :doc:`bottleneck_distance_user` | | -+-----------------------------------------------------------------+----------------------------------------------------------------------+ + +-----------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------------------------+ + | .. figure:: | Bottleneck distance measures the similarity between two persistence | :Author: François Godi | + | ../../doc/Bottleneck_distance/perturb_pd.png | diagrams. It's the shortest distance b for which there exists a | | + | :figclass: align-center | perfect matching between the points of the two diagrams (+ all the | :Introduced in: GUDHI 2.0.0 | + | | diagonal points) such that any couple of matched points are at | | + | Bottleneck distance is the length of | distance at most b. | :Copyright: GPL v3 | + | the longest edge | | | + | | | :Requires: CGAL :math:`\geq` 4.8.0 | + +-----------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------------------------+ + | :doc:`bottleneck_distance_user` | | | + +-----------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------------------------+ diff --git a/src/cython/doc/conf.py b/src/cython/doc/conf.py index 4a54d4fd..ce08f679 100755 --- a/src/cython/doc/conf.py +++ b/src/cython/doc/conf.py @@ -125,7 +125,7 @@ html_theme_options = { "sidebarbgcolor": "#A1ADCD", "sidebartextcolor": "black", "sidebarlinkcolor": "#334D5C", - "body_max_width": "1200px", + "body_max_width": "100%", } # Add any paths that contain custom themes here, relative to this directory. diff --git a/src/cython/doc/cubical_complex_sum.inc b/src/cython/doc/cubical_complex_sum.inc index 280ad0e0..6dcc1fda 100644 --- a/src/cython/doc/cubical_complex_sum.inc +++ b/src/cython/doc/cubical_complex_sum.inc @@ -1,15 +1,14 @@ -================================================================= =================================== =================================== -:Author: Pawel Dlotko :Introduced in: GUDHI 2.0.0 :Copyright: GPL v3 -================================================================= =================================== =================================== +.. table:: + :widths: 30 50 20 -+--------------------------------------------------------------------------+----------------------------------------------------------------------+ -| .. figure:: | The cubical complex is an example of a structured complex useful in | -| ../../doc/Bitmap_cubical_complex/Cubical_complex_representation.png | computational mathematics (specially rigorous numerics) and image | -| :alt: Cubical complex representation | analysis. | -| :figclass: align-center | | -| | | -| Cubical complex representation | | -+--------------------------------------------------------------------------+----------------------------------------------------------------------+ -| :doc:`cubical_complex_user` | * :doc:`cubical_complex_ref` | -| | * :doc:`periodic_cubical_complex_ref` | -+--------------------------------------------------------------------------+----------------------------------------------------------------------+ + +--------------------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------+ + | .. figure:: | The cubical complex is an example of a structured complex useful in | :Author: Pawel Dlotko | + | ../../doc/Bitmap_cubical_complex/Cubical_complex_representation.png | computational mathematics (specially rigorous numerics) and image | | + | :alt: Cubical complex representation | analysis. | :Introduced in: GUDHI 2.0.0 | + | :figclass: align-center | | | + | | | :Copyright: GPL v3 | + | | | | + +--------------------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------+ + | :doc:`cubical_complex_user` | * :doc:`cubical_complex_ref` | + | | * :doc:`periodic_cubical_complex_ref` | + +--------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/nerve_gic_complex_sum.rst b/src/cython/doc/nerve_gic_complex_sum.rst index 523c119f..47bf84fd 100644 --- a/src/cython/doc/nerve_gic_complex_sum.rst +++ b/src/cython/doc/nerve_gic_complex_sum.rst @@ -1,15 +1,16 @@ -================================================================= =================================== =================================== -:Author: Mathieu Carrière :Introduced in: GUDHI 2.3.0 :Copyright: GPL v3 -:Requires: CGAL :math:`\geq` 4.8.1 -================================================================= =================================== =================================== +.. table:: + :widths: 30 50 20 -+----------------------------------------------------------------+------------------------------------------------------------------------+ -| .. figure:: | Nerves and Graph Induced Complexes are cover complexes, i.e. | -| ../../doc/Nerve_GIC/gicvisu.jpg | simplicial complexes that provably contain topological information | -| :alt: Graph Induced Complex of a point cloud. | about the input data. They can be computed with a cover of the data, | -| :figclass: align-center | that comes i.e. from the preimage of a family of intervals covering | -| | the image of a scalar-valued function defined on the data. | -| Graph Induced Complex of a point cloud. | | -+----------------------------------------------------------------+------------------------------------------------------------------------+ -| :doc:`nerve_gic_complex_user` | :doc:`nerve_gic_complex_ref` | -+----------------------------------------------------------------+------------------------------------------------------------------------+ + +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ + | .. figure:: | Nerves and Graph Induced Complexes are cover complexes, i.e. | :Author: Mathieu Carrière | + | ../../doc/Nerve_GIC/gicvisu.jpg | simplicial complexes that provably contain topological information | | + | :alt: Graph Induced Complex of a point cloud. | about the input data. They can be computed with a cover of the data, | :Introduced in: GUDHI 2.3.0 | + | :figclass: align-center | that comes i.e. from the preimage of a family of intervals covering | | + | | the image of a scalar-valued function defined on the data. | :Copyright: GPL v3 | + | | | | + | | | :Requires: CGAL :math:`\geq` 4.8.1 | + | | | | + | | | | + +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ + | :doc:`nerve_gic_complex_user` | :doc:`nerve_gic_complex_ref` | + +----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/persistence_graphical_tools_sum.inc b/src/cython/doc/persistence_graphical_tools_sum.inc index 5577cf99..ee164652 100644 --- a/src/cython/doc/persistence_graphical_tools_sum.inc +++ b/src/cython/doc/persistence_graphical_tools_sum.inc @@ -1,12 +1,14 @@ -================================================================= =================================== =================================== -:Author: Vincent Rouvreau :Introduced in: GUDHI 2.0.0 :Copyright: GPL v3 -:Requires: matplotlib numpy scipy -================================================================= =================================== =================================== +.. table:: + :widths: 30 50 20 -+-----------------------------------------------------------------+-----------------------------------------------------------------------+ -| .. figure:: | These graphical tools comes on top of persistence results and allows | -| img/graphical_tools_representation.png | the user to build easily persistence barcode, diagram or density. | -| | | -+-----------------------------------------------------------------+-----------------------------------------------------------------------+ -| :doc:`persistence_graphical_tools_user` | :doc:`persistence_graphical_tools_ref` | -+-----------------------------------------------------------------+-----------------------------------------------------------------------+ + +-----------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------+ + | .. figure:: | These graphical tools comes on top of persistence results and allows | :Author: Vincent Rouvreau | + | img/graphical_tools_representation.png | the user to build easily persistence barcode, diagram or density. | | + | | | :Introduced in: GUDHI 2.0.0 | + | | | | + | | | :Copyright: GPL v3 | + | | | | + | | | :Requires: matplotlib, numpy and scipy | + +-----------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------+ + | :doc:`persistence_graphical_tools_user` | :doc:`persistence_graphical_tools_ref` | | + +-----------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------+ diff --git a/src/cython/doc/persistent_cohomology_sum.inc b/src/cython/doc/persistent_cohomology_sum.inc index a26df1dc..5bf1a7bf 100644 --- a/src/cython/doc/persistent_cohomology_sum.inc +++ b/src/cython/doc/persistent_cohomology_sum.inc @@ -1,27 +1,26 @@ -================================================================= =================================== =================================== -:Author: Clément Maria :Introduced in: GUDHI 2.0.0 :Copyright: GPL v3 -================================================================= =================================== =================================== +.. table:: + :widths: 30 50 20 -+-----------------------------------------------------------------+-----------------------------------------------------------------------+ -| .. figure:: | The theory of homology consists in attaching to a topological space | -| ../../doc/Persistent_cohomology/3DTorus_poch.png | a sequence of (homology) groups, capturing global topological | -| :figclass: align-center | features like connected components, holes, cavities, etc. Persistent | -| | homology studies the evolution -- birth, life and death -- of these | -| Rips Persistent Cohomology on a 3D | features when the topological space is changing. Consequently, the | -| Torus | theory is essentially composed of three elements: topological spaces, | -| | their homology groups and an evolution scheme. | -| | | -| | Computation of persistent cohomology using the algorithm of | -| | :cite:`DBLP:journals/dcg/SilvaMV11` and | -| | :cite:`DBLP:journals/corr/abs-1208-5018` and the Compressed | -| | Annotation Matrix implementation of | -| | :cite:`DBLP:conf/esa/BoissonnatDM13`. | -| | | -+-----------------------------------------------------------------+-----------------------------------------------------------------------+ -| :doc:`persistent_cohomology_user` | Please refer to each data structure that contains persistence | -| | feature for reference: | -| | | -| | * :doc:`simplex_tree_ref` | -| | * :doc:`cubical_complex_ref` | -| | * :doc:`periodic_cubical_complex_ref` | -+-----------------------------------------------------------------+-----------------------------------------------------------------------+ + +-----------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------+ + | .. figure:: | The theory of homology consists in attaching to a topological space | :Author: Clément Maria | + | ../../doc/Persistent_cohomology/3DTorus_poch.png | a sequence of (homology) groups, capturing global topological | | + | :figclass: align-center | features like connected components, holes, cavities, etc. Persistent | :Introduced in: GUDHI 2.0.0 | + | | homology studies the evolution -- birth, life and death -- of these | | + | Rips Persistent Cohomology on a 3D | features when the topological space is changing. Consequently, the | :Copyright: GPL v3 | + | Torus | theory is essentially composed of three elements: topological spaces, | | + | | their homology groups and an evolution scheme. | | + | | | | + | | Computation of persistent cohomology using the algorithm of | | + | | :cite:`DBLP:journals/dcg/SilvaMV11` and | | + | | :cite:`DBLP:journals/corr/abs-1208-5018` and the Compressed | | + | | Annotation Matrix implementation of | | + | | :cite:`DBLP:conf/esa/BoissonnatDM13`. | | + | | | | + +-----------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------+ + | :doc:`persistent_cohomology_user` | Please refer to each data structure that contains persistence | | + | | feature for reference: | | + | | | | + | | * :doc:`simplex_tree_ref` | | + | | * :doc:`cubical_complex_ref` | | + | | * :doc:`periodic_cubical_complex_ref` | | + +-----------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------+ diff --git a/src/cython/doc/rips_complex_sum.inc b/src/cython/doc/rips_complex_sum.inc index ea26769a..b32b810e 100644 --- a/src/cython/doc/rips_complex_sum.inc +++ b/src/cython/doc/rips_complex_sum.inc @@ -1,17 +1,16 @@ -===================================================================== =========================== =================================== -:Author: Clément Maria, Pawel Dlotko, Vincent Rouvreau, Marc Glisse :Introduced in: GUDHI 2.0.0 :Copyright: GPL v3 -===================================================================== =========================== =================================== +.. table:: + :widths: 30 50 20 -+----------------------------------------------------------------+------------------------------------------------------------------------+ -| .. figure:: | Rips complex is a simplicial complex constructed from a one skeleton | -| ../../doc/Rips_complex/rips_complex_representation.png | graph. | -| :figclass: align-center | | -| | The filtration value of each edge is computed from a user-given | -| Rips complex representation | distance function and is inserted until a user-given threshold | -| | value. | -| | | -| | This complex can be built from a point cloud and a distance function, | -| | or from a distance matrix. | -+----------------------------------------------------------------+------------------------------------------------------------------------+ -| :doc:`rips_complex_user` | :doc:`rips_complex_ref` | -+----------------------------------------------------------------+------------------------------------------------------------------------+ + +----------------------------------------------------------------+------------------------------------------------------------------------+----------------------------------------------------------------------+ + | .. figure:: | Rips complex is a simplicial complex constructed from a one skeleton | :Authors: Clément Maria, Pawel Dlotko, Vincent Rouvreau, Marc Glisse | + | ../../doc/Rips_complex/rips_complex_representation.png | graph. | | + | :figclass: align-center | | :Introduced in: GUDHI 2.0.0 | + | | The filtration value of each edge is computed from a user-given | | + | | distance function and is inserted until a user-given threshold | :Copyright: GPL v3 | + | | value. | | + | | | | + | | This complex can be built from a point cloud and a distance function, | | + | | or from a distance matrix. | | + +----------------------------------------------------------------+------------------------------------------------------------------------+----------------------------------------------------------------------+ + | :doc:`rips_complex_user` | :doc:`rips_complex_ref` | + +----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/simplex_tree_sum.inc b/src/cython/doc/simplex_tree_sum.inc index fb0e54c1..7e10e366 100644 --- a/src/cython/doc/simplex_tree_sum.inc +++ b/src/cython/doc/simplex_tree_sum.inc @@ -1,14 +1,13 @@ -================================================================= =================================== =================================== -:Author: Clément Maria :Introduced in: GUDHI 2.0.0 :Copyright: GPL v3 -================================================================= =================================== =================================== +.. table:: + :widths: 30 50 20 -+----------------------------------------------------------------+------------------------------------------------------------------------+ -| .. figure:: | The simplex tree is an efficient and flexible data structure for | -| ../../doc/Simplex_tree/Simplex_tree_representation.png | representing general (filtered) simplicial complexes. | -| :alt: Simplex tree representation | | -| :figclass: align-center | The data structure is described in | -| | :cite:`boissonnatmariasimplextreealgorithmica` | -| Simplex tree representation | | -+----------------------------------------------------------------+------------------------------------------------------------------------+ -| :doc:`simplex_tree_user` | :doc:`simplex_tree_ref` | -+----------------------------------------------------------------+------------------------------------------------------------------------+ + +----------------------------------------------------------------+------------------------------------------------------------------------+-----------------------------+ + | .. figure:: | The simplex tree is an efficient and flexible data structure for | :Author: Clément Maria | + | ../../doc/Simplex_tree/Simplex_tree_representation.png | representing general (filtered) simplicial complexes. | | + | :alt: Simplex tree representation | | :Introduced in: GUDHI 2.0.0 | + | :figclass: align-center | The data structure is described in | | + | | :cite:`boissonnatmariasimplextreealgorithmica` | :Copyright: GPL v3 | + | | | | + +----------------------------------------------------------------+------------------------------------------------------------------------+-----------------------------+ + | :doc:`simplex_tree_user` | :doc:`simplex_tree_ref` | + +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/tangential_complex_sum.inc b/src/cython/doc/tangential_complex_sum.inc index 72b4d7ba..db1c5ab1 100644 --- a/src/cython/doc/tangential_complex_sum.inc +++ b/src/cython/doc/tangential_complex_sum.inc @@ -1,15 +1,14 @@ -================================================================= =================================== =================================== -:Author: Clément Jamin :Introduced in: GUDHI 2.0.0 :Copyright: GPL v3 -:Requires: CGAL :math:`\geq` 4.8.0 Eigen3 -================================================================= =================================== =================================== +.. table:: + :widths: 30 50 20 -+----------------------------------------------------------------+------------------------------------------------------------------------+ -| .. figure:: | A Tangential Delaunay complex is a simplicial complex designed to | -| ../../doc/Tangential_complex/tc_examples.png | reconstruct a :math:`k`-dimensional manifold embedded in :math:`d`- | -| :figclass: align-center | dimensional Euclidean space. The input is a point sample coming from | -| | an unknown manifold. The running time depends only linearly on the | -| Tangential complex representation | extrinsic dimension :math:`d` and exponentially on the intrinsic | -| | dimension :math:`k`. | -+----------------------------------------------------------------+------------------------------------------------------------------------+ -| :doc:`tangential_complex_user` | :doc:`tangential_complex_ref` | -+----------------------------------------------------------------+------------------------------------------------------------------------+ + +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ + | .. figure:: | A Tangential Delaunay complex is a simplicial complex designed to | :Author: Clément Jamin | + | ../../doc/Tangential_complex/tc_examples.png | reconstruct a :math:`k`-dimensional manifold embedded in :math:`d`- | | + | :figclass: align-center | dimensional Euclidean space. The input is a point sample coming from | :Introduced in: GUDHI 2.0.0 | + | | an unknown manifold. The running time depends only linearly on the | | + | | extrinsic dimension :math:`d` and exponentially on the intrinsic | :Copyright: GPL v3 | + | | dimension :math:`k`. | | + | | | :Requires: CGAL :math:`\geq` 4.8.0 | + +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ + | :doc:`tangential_complex_user` | :doc:`tangential_complex_ref` | | + +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ diff --git a/src/cython/doc/witness_complex_sum.inc b/src/cython/doc/witness_complex_sum.inc index a8a126a0..9dc9aef6 100644 --- a/src/cython/doc/witness_complex_sum.inc +++ b/src/cython/doc/witness_complex_sum.inc @@ -1,19 +1,17 @@ -================================================================= =================================== =================================== -:Author: Siargey Kachanovich :Introduced in: GUDHI 2.0.0 :Copyright: GPL v3 -:Euclidean version requires: CGAL :math:`\geq` 4.6.0 Eigen3 -================================================================= =================================== =================================== +.. table:: + :widths: 30 50 20 -+-------------------------------------------------------------------+----------------------------------------------------------------------+ -| .. figure:: | Witness complex :math:`Wit(W,L)` is a simplicial complex defined on | -| ../../doc/Witness_complex/Witness_complex_representation.png | two sets of points in :math:`\mathbb{R}^D`. | -| :alt: Witness complex representation | | -| :figclass: align-center | The data structure is described in | -| | :cite:`boissonnatmariasimplextreealgorithmica`. | -| | | -| Witness complex representation | | -+-------------------------------------------------------------------+----------------------------------------------------------------------+ -| :doc:`witness_complex_user` | * :doc:`witness_complex_ref` | -| | * :doc:`strong_witness_complex_ref` | -| | * :doc:`euclidean_witness_complex_ref` | -| | * :doc:`euclidean_strong_witness_complex_ref` | -+-------------------------------------------------------------------+----------------------------------------------------------------------+ + +-------------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------------------------------+ + | .. figure:: | Witness complex :math:`Wit(W,L)` is a simplicial complex defined on | :Author: Siargey Kachanovich | + | ../../doc/Witness_complex/Witness_complex_representation.png | two sets of points in :math:`\mathbb{R}^D`. | | + | :alt: Witness complex representation | | :Introduced in: GUDHI 2.0.0 | + | :figclass: align-center | The data structure is described in | | + | | :cite:`boissonnatmariasimplextreealgorithmica`. | :Copyright: GPL v3 | + | | | | + | | | :Requires: Eigen3 and CGAL :math:`\geq` 4.6.0 for Euclidean versions only | + +-------------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------------------------------+ + | :doc:`witness_complex_user` | * :doc:`witness_complex_ref` | | + | | * :doc:`strong_witness_complex_ref` | | + | | * :doc:`euclidean_witness_complex_ref` | | + | | * :doc:`euclidean_strong_witness_complex_ref` | | + +-------------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------------------------------+ -- cgit v1.2.3 From dc642f06e4c5174ecd2301eb7bcd1daeb7c4a2ec Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Wed, 29 May 2019 12:33:54 +0200 Subject: Rename nerve_gic_complex_sum.rst as nerve_gic_complex_sum.inc and use introduction sections --- src/cython/doc/index.rst | 79 ++++++++++++++----------------- src/cython/doc/nerve_gic_complex_sum.inc | 16 +++++++ src/cython/doc/nerve_gic_complex_sum.rst | 16 ------- src/cython/doc/nerve_gic_complex_user.rst | 2 +- 4 files changed, 53 insertions(+), 60 deletions(-) create mode 100644 src/cython/doc/nerve_gic_complex_sum.inc delete mode 100644 src/cython/doc/nerve_gic_complex_sum.rst (limited to 'src') diff --git a/src/cython/doc/index.rst b/src/cython/doc/index.rst index 15cbe267..e379bc23 100644 --- a/src/cython/doc/index.rst +++ b/src/cython/doc/index.rst @@ -6,80 +6,73 @@ GUDHI Python module documentation :alt: Gudhi banner :figclass: align-center -Introduction -************ - -The Python interface for the Gudhi library (Geometry Understanding in Higher -Dimensions) is a generic open source -`Python module `_, for -Computational Topology and Topological Data Analysis -(`TDA `_). -The GUDHI library intends to help the development of new algorithmic solutions -in TDA and their transfer to applications. It provides robust, efficient, -flexible and easy to use implementations of state-of-the-art algorithms and -data structures. - -The current release of the GUDHI library includes: +Complexes +********* -* Data structures to represent, construct and manipulate simplicial complexes. -* Simplification of simplicial complexes by edge contraction. -* Algorithms to compute persistent homology and bottleneck distance. +Cubical complexes +================= -We refer to :cite:`gudhilibrary_ICMS14` for a detailed description of the -design of the library. +.. include:: cubical_complex_sum.inc -Data structures -*************** +Simplicial complexes +==================== Alpha complex -============= +------------- .. include:: alpha_complex_sum.inc -Cover complexes -=============== +Rips complex +------------- + +.. include:: rips_complex_sum.inc -.. include:: nerve_gic_complex_sum.rst +Witness complex +--------------- -Cubical complex +.. include:: witness_complex_sum.inc + +Cover complexes =============== -.. include:: cubical_complex_sum.inc +.. include:: nerve_gic_complex_sum.inc -Rips complex -============ +Data structures and basic operations +************************************ -.. include:: rips_complex_sum.inc +Data structures +=============== Simplex tree -============ +------------ .. include:: simplex_tree_sum.inc +Topological descriptors computation +*********************************** + +Persistence cohomology +====================== + +.. include:: persistent_cohomology_sum.inc + +Manifold reconstruction +*********************** + Tangential complex ================== .. include:: tangential_complex_sum.inc -Witness complex -=============== - -.. include:: witness_complex_sum.inc - -Toolbox -******* +Topological descriptors tools +***************************** Bottleneck distance =================== .. include:: bottleneck_distance_sum.inc -Persistence cohomology -====================== - -.. include:: persistent_cohomology_sum.inc - Persistence graphical tools =========================== diff --git a/src/cython/doc/nerve_gic_complex_sum.inc b/src/cython/doc/nerve_gic_complex_sum.inc new file mode 100644 index 00000000..47bf84fd --- /dev/null +++ b/src/cython/doc/nerve_gic_complex_sum.inc @@ -0,0 +1,16 @@ +.. table:: + :widths: 30 50 20 + + +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ + | .. figure:: | Nerves and Graph Induced Complexes are cover complexes, i.e. | :Author: Mathieu Carrière | + | ../../doc/Nerve_GIC/gicvisu.jpg | simplicial complexes that provably contain topological information | | + | :alt: Graph Induced Complex of a point cloud. | about the input data. They can be computed with a cover of the data, | :Introduced in: GUDHI 2.3.0 | + | :figclass: align-center | that comes i.e. from the preimage of a family of intervals covering | | + | | the image of a scalar-valued function defined on the data. | :Copyright: GPL v3 | + | | | | + | | | :Requires: CGAL :math:`\geq` 4.8.1 | + | | | | + | | | | + +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ + | :doc:`nerve_gic_complex_user` | :doc:`nerve_gic_complex_ref` | + +----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/nerve_gic_complex_sum.rst b/src/cython/doc/nerve_gic_complex_sum.rst deleted file mode 100644 index 47bf84fd..00000000 --- a/src/cython/doc/nerve_gic_complex_sum.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. table:: - :widths: 30 50 20 - - +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ - | .. figure:: | Nerves and Graph Induced Complexes are cover complexes, i.e. | :Author: Mathieu Carrière | - | ../../doc/Nerve_GIC/gicvisu.jpg | simplicial complexes that provably contain topological information | | - | :alt: Graph Induced Complex of a point cloud. | about the input data. They can be computed with a cover of the data, | :Introduced in: GUDHI 2.3.0 | - | :figclass: align-center | that comes i.e. from the preimage of a family of intervals covering | | - | | the image of a scalar-valued function defined on the data. | :Copyright: GPL v3 | - | | | | - | | | :Requires: CGAL :math:`\geq` 4.8.1 | - | | | | - | | | | - +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ - | :doc:`nerve_gic_complex_user` | :doc:`nerve_gic_complex_ref` | - +----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/nerve_gic_complex_user.rst b/src/cython/doc/nerve_gic_complex_user.rst index 44f30e1a..94a2b246 100644 --- a/src/cython/doc/nerve_gic_complex_user.rst +++ b/src/cython/doc/nerve_gic_complex_user.rst @@ -7,7 +7,7 @@ Cover complexes user manual Definition ---------- -.. include:: nerve_gic_complex_sum.rst +.. include:: nerve_gic_complex_sum.inc Visualizations of the simplicial complexes can be done with either neato (from `graphviz `_), -- cgit v1.2.3 From 1d53826baf9f2bccb96a7242dbabcc55d8977b19 Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Mon, 3 Jun 2019 15:10:07 +0200 Subject: modify cells height for C++ doc. Use bullet lists to have the same font height on main page --- src/common/doc/main_page.md | 28 +++++++++++----------- src/cython/doc/alpha_complex_sum.inc | 2 +- src/cython/doc/bottleneck_distance_sum.inc | 4 ++-- src/cython/doc/cubical_complex_sum.inc | 2 +- src/cython/doc/nerve_gic_complex_sum.inc | 2 +- src/cython/doc/persistence_graphical_tools_sum.inc | 4 ++-- src/cython/doc/persistent_cohomology_sum.inc | 14 +++++------ src/cython/doc/rips_complex_sum.inc | 2 +- src/cython/doc/simplex_tree_sum.inc | 2 +- src/cython/doc/tangential_complex_sum.inc | 4 ++-- src/cython/doc/witness_complex_sum.inc | 10 ++++---- 11 files changed, 37 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/common/doc/main_page.md b/src/common/doc/main_page.md index a74ebd26..e61eee81 100644 --- a/src/common/doc/main_page.md +++ b/src/common/doc/main_page.md @@ -23,7 +23,7 @@ - + User manual: \ref cubical_complex - Reference manual: Gudhi::cubical_complex::Bitmap_cubical_complex @@ -56,7 +56,7 @@ - + User manual: \ref alpha_complex - Reference manual: Gudhi::alpha_complex::Alpha_complex and Gudhi::alpha_complex::Alpha_complex_3d @@ -81,7 +81,7 @@ - + User manual: \ref cech_complex - Reference manual: Gudhi::cech_complex::Cech_complex @@ -107,7 +107,7 @@ - + User manual: \ref rips_complex - Reference manual: Gudhi::rips_complex::Rips_complex @@ -132,7 +132,7 @@ - + User manual: \ref witness_complex - Reference manual: Gudhi::witness_complex::SimplicialComplexForWitness @@ -159,7 +159,7 @@ - + User manual: \ref cover_complex - Reference manual: Gudhi::cover_complex::Cover_complex @@ -187,7 +187,7 @@ - + User manual: \ref simplex_tree - Reference manual: Gudhi::Simplex_tree @@ -215,7 +215,7 @@ - + User manual: \ref skbl - Reference manual: Gudhi::skeleton_blocker::Skeleton_blocker_complex @@ -240,7 +240,7 @@ - + User manual: \ref toplex_map - Reference manual: Gudhi::Toplex_map @@ -268,7 +268,7 @@ - + User manual: \ref contr @@ -300,7 +300,7 @@ - + User manual: \ref persistent_cohomology - Reference manual: Gudhi::persistent_cohomology::Persistent_cohomology @@ -330,7 +330,7 @@ - + User manual: \ref tangential_complex - Reference manual: Gudhi::tangential_complex::Tangential_complex @@ -359,7 +359,7 @@ - + User manual: \ref bottleneck_distance @@ -384,7 +384,7 @@ - + User manual: \ref Persistence_representations diff --git a/src/cython/doc/alpha_complex_sum.inc b/src/cython/doc/alpha_complex_sum.inc index 100edbbd..806988bb 100644 --- a/src/cython/doc/alpha_complex_sum.inc +++ b/src/cython/doc/alpha_complex_sum.inc @@ -16,5 +16,5 @@ | | This package requires having CGAL version 4.7 or higher (4.8.1 is | | | | advised for better performance). | | +----------------------------------------------------------------+------------------------------------------------------------------------+-----------------------------------------------+ - | :doc:`alpha_complex_user` | :doc:`alpha_complex_ref` | + | * :doc:`alpha_complex_user` | * :doc:`alpha_complex_ref` | +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/bottleneck_distance_sum.inc b/src/cython/doc/bottleneck_distance_sum.inc index 4fedb744..41b9c5a3 100644 --- a/src/cython/doc/bottleneck_distance_sum.inc +++ b/src/cython/doc/bottleneck_distance_sum.inc @@ -10,5 +10,5 @@ | the longest edge | | | | | | :Requires: CGAL :math:`\geq` 4.8.0 | +-----------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------------------------+ - | :doc:`bottleneck_distance_user` | | | - +-----------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------------------------+ + | * :doc:`bottleneck_distance_user` | | + +-----------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/cubical_complex_sum.inc b/src/cython/doc/cubical_complex_sum.inc index 6dcc1fda..6dcf8e48 100644 --- a/src/cython/doc/cubical_complex_sum.inc +++ b/src/cython/doc/cubical_complex_sum.inc @@ -9,6 +9,6 @@ | | | :Copyright: GPL v3 | | | | | +--------------------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------+ - | :doc:`cubical_complex_user` | * :doc:`cubical_complex_ref` | + | * :doc:`cubical_complex_user` | * :doc:`cubical_complex_ref` | | | * :doc:`periodic_cubical_complex_ref` | +--------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/nerve_gic_complex_sum.inc b/src/cython/doc/nerve_gic_complex_sum.inc index 47bf84fd..0e606fe1 100644 --- a/src/cython/doc/nerve_gic_complex_sum.inc +++ b/src/cython/doc/nerve_gic_complex_sum.inc @@ -12,5 +12,5 @@ | | | | | | | | +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ - | :doc:`nerve_gic_complex_user` | :doc:`nerve_gic_complex_ref` | + | * :doc:`nerve_gic_complex_user` | * :doc:`nerve_gic_complex_ref` | +----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/persistence_graphical_tools_sum.inc b/src/cython/doc/persistence_graphical_tools_sum.inc index ee164652..b412de56 100644 --- a/src/cython/doc/persistence_graphical_tools_sum.inc +++ b/src/cython/doc/persistence_graphical_tools_sum.inc @@ -10,5 +10,5 @@ | | | | | | | :Requires: matplotlib, numpy and scipy | +-----------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------+ - | :doc:`persistence_graphical_tools_user` | :doc:`persistence_graphical_tools_ref` | | - +-----------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------+ + | * :doc:`persistence_graphical_tools_user` | * :doc:`persistence_graphical_tools_ref` | + +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/persistent_cohomology_sum.inc b/src/cython/doc/persistent_cohomology_sum.inc index 5bf1a7bf..20ca073c 100644 --- a/src/cython/doc/persistent_cohomology_sum.inc +++ b/src/cython/doc/persistent_cohomology_sum.inc @@ -17,10 +17,10 @@ | | :cite:`DBLP:conf/esa/BoissonnatDM13`. | | | | | | +-----------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------+ - | :doc:`persistent_cohomology_user` | Please refer to each data structure that contains persistence | | - | | feature for reference: | | - | | | | - | | * :doc:`simplex_tree_ref` | | - | | * :doc:`cubical_complex_ref` | | - | | * :doc:`periodic_cubical_complex_ref` | | - +-----------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------+ + | * :doc:`persistent_cohomology_user` | Please refer to each data structure that contains persistence | + | | feature for reference: | + | | | + | | * :doc:`simplex_tree_ref` | + | | * :doc:`cubical_complex_ref` | + | | * :doc:`periodic_cubical_complex_ref` | + +-----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/rips_complex_sum.inc b/src/cython/doc/rips_complex_sum.inc index b32b810e..e8e505e2 100644 --- a/src/cython/doc/rips_complex_sum.inc +++ b/src/cython/doc/rips_complex_sum.inc @@ -12,5 +12,5 @@ | | This complex can be built from a point cloud and a distance function, | | | | or from a distance matrix. | | +----------------------------------------------------------------+------------------------------------------------------------------------+----------------------------------------------------------------------+ - | :doc:`rips_complex_user` | :doc:`rips_complex_ref` | + | * :doc:`rips_complex_user` | * :doc:`rips_complex_ref` | +----------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/simplex_tree_sum.inc b/src/cython/doc/simplex_tree_sum.inc index 7e10e366..086c69d5 100644 --- a/src/cython/doc/simplex_tree_sum.inc +++ b/src/cython/doc/simplex_tree_sum.inc @@ -9,5 +9,5 @@ | | :cite:`boissonnatmariasimplextreealgorithmica` | :Copyright: GPL v3 | | | | | +----------------------------------------------------------------+------------------------------------------------------------------------+-----------------------------+ - | :doc:`simplex_tree_user` | :doc:`simplex_tree_ref` | + | * :doc:`simplex_tree_user` | * :doc:`simplex_tree_ref` | +----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/tangential_complex_sum.inc b/src/cython/doc/tangential_complex_sum.inc index db1c5ab1..0f03ffb3 100644 --- a/src/cython/doc/tangential_complex_sum.inc +++ b/src/cython/doc/tangential_complex_sum.inc @@ -10,5 +10,5 @@ | | dimension :math:`k`. | | | | | :Requires: CGAL :math:`\geq` 4.8.0 | +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ - | :doc:`tangential_complex_user` | :doc:`tangential_complex_ref` | | - +----------------------------------------------------------------+------------------------------------------------------------------------+------------------------------------+ + | * :doc:`tangential_complex_user` | * :doc:`tangential_complex_ref` | + +----------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+ diff --git a/src/cython/doc/witness_complex_sum.inc b/src/cython/doc/witness_complex_sum.inc index 9dc9aef6..49577745 100644 --- a/src/cython/doc/witness_complex_sum.inc +++ b/src/cython/doc/witness_complex_sum.inc @@ -10,8 +10,8 @@ | | | | | | | :Requires: Eigen3 and CGAL :math:`\geq` 4.6.0 for Euclidean versions only | +-------------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------------------------------+ - | :doc:`witness_complex_user` | * :doc:`witness_complex_ref` | | - | | * :doc:`strong_witness_complex_ref` | | - | | * :doc:`euclidean_witness_complex_ref` | | - | | * :doc:`euclidean_strong_witness_complex_ref` | | - +-------------------------------------------------------------------+----------------------------------------------------------------------+-----------------------------------------------------------------------------+ + | * :doc:`witness_complex_user` | * :doc:`witness_complex_ref` | + | | * :doc:`strong_witness_complex_ref` | + | | * :doc:`euclidean_witness_complex_ref` | + | | * :doc:`euclidean_strong_witness_complex_ref` | + +-------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------+ -- cgit v1.2.3 From 942c58493afc4a705e446c4e54ccb6b6b4b0ab85 Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Mon, 3 Jun 2019 15:56:57 +0200 Subject: Precise that the default version is not weighted and not periodic --- src/Alpha_complex/utilities/alphacomplex.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/Alpha_complex/utilities/alphacomplex.md b/src/Alpha_complex/utilities/alphacomplex.md index 50a39d32..b77656ff 100644 --- a/src/Alpha_complex/utilities/alphacomplex.md +++ b/src/Alpha_complex/utilities/alphacomplex.md @@ -103,8 +103,10 @@ to be recorded. Enter a negative value to see zero length intervals. * `-c [ --cuboid-file ]` is the path to the file describing the periodic domain. It must be in the format described [here]({{ site.officialurl }}/doc/latest/fileformats.html#FileFormatsIsoCuboid). +Default version is not periodic. * `-w [ --weight-file ]` is the path to the file containing the weights of the points (one value per line). +Default version is not weighted. * `-e [ --exact ]` for the exact computation version (not compatible with weight and periodic version). * `-f [ --fast ]` for the fast computation version. -- cgit v1.2.3 From 5d2095ce1bb0907cc1de2d97c3b056d00f29a83d Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Mon, 3 Jun 2019 16:00:08 +0200 Subject: Fix #56 --- src/Alpha_complex/include/gudhi/Alpha_complex_3d.h | 2 +- src/common/doc/installation.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Alpha_complex/include/gudhi/Alpha_complex_3d.h b/src/Alpha_complex/include/gudhi/Alpha_complex_3d.h index 32dfcc16..0bf12b1a 100644 --- a/src/Alpha_complex/include/gudhi/Alpha_complex_3d.h +++ b/src/Alpha_complex/include/gudhi/Alpha_complex_3d.h @@ -58,7 +58,7 @@ #include // for numeric_limits<> #if CGAL_VERSION_NR < 1041101000 -// Make compilation fail - required for external projects - https://gitlab.inria.fr/GUDHI/gudhi-devel/issues/10 +// Make compilation fail - required for external projects - https://github.com/GUDHI/gudhi-devel/issues/10 # error Alpha_complex_3d is only available for CGAL >= 4.11 #endif diff --git a/src/common/doc/installation.h b/src/common/doc/installation.h index 8fb8b330..5d581b08 100644 --- a/src/common/doc/installation.h +++ b/src/common/doc/installation.h @@ -44,7 +44,7 @@ make doxygen \endverbatim * * \subsection helloworld Hello world ! - * The Hello world for GUDHI + * The Hello world for GUDHI * project is an example to help developers to make their own C++ project on top of the GUDHI library. * * \section optionallibrary Optional third-party library -- cgit v1.2.3 From 2d6850f405b5ebf2e9953f989862633289f99622 Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Mon, 3 Jun 2019 16:49:34 +0200 Subject: Fix #46 --- src/cython/include/Simplex_tree_interface.h | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/cython/include/Simplex_tree_interface.h b/src/cython/include/Simplex_tree_interface.h index 3481eeff..ca98517d 100644 --- a/src/cython/include/Simplex_tree_interface.h +++ b/src/cython/include/Simplex_tree_interface.h @@ -45,7 +45,7 @@ class Simplex_tree_interface : public Simplex_tree { using Simplex_handle = typename Base::Simplex_handle; using Insertion_result = typename std::pair; using Simplex = std::vector; - using Complex = std::vector>; + using Filtered_simplices = std::vector>; public: bool find_simplex(const Simplex& vh) { @@ -94,9 +94,9 @@ class Simplex_tree_interface : public Simplex_tree { Base::initialize_filtration(); } - Complex get_filtration() { + Filtered_simplices get_filtration() { Base::initialize_filtration(); - Complex filtrations; + Filtered_simplices filtrations; for (auto f_simplex : Base::filtration_simplex_range()) { Simplex simplex; for (auto vertex : Base::simplex_vertex_range(f_simplex)) { @@ -107,8 +107,8 @@ class Simplex_tree_interface : public Simplex_tree { return filtrations; } - Complex get_skeleton(int dimension) { - Complex skeletons; + Filtered_simplices get_skeleton(int dimension) { + Filtered_simplices skeletons; for (auto f_simplex : Base::skeleton_simplex_range(dimension)) { Simplex simplex; for (auto vertex : Base::simplex_vertex_range(f_simplex)) { @@ -119,29 +119,25 @@ class Simplex_tree_interface : public Simplex_tree { return skeletons; } - Complex get_star(const Simplex& simplex) { - Complex star; + Filtered_simplices get_star(const Simplex& simplex) { + Filtered_simplices star; for (auto f_simplex : Base::star_simplex_range(Base::find(simplex))) { Simplex simplex_star; for (auto vertex : Base::simplex_vertex_range(f_simplex)) { - std::cout << vertex << " "; simplex_star.insert(simplex_star.begin(), vertex); } - std::cout << std::endl; star.push_back(std::make_pair(simplex_star, Base::filtration(f_simplex))); } return star; } - Complex get_cofaces(const Simplex& simplex, int dimension) { - Complex cofaces; + Filtered_simplices get_cofaces(const Simplex& simplex, int dimension) { + Filtered_simplices cofaces; for (auto f_simplex : Base::cofaces_simplex_range(Base::find(simplex), dimension)) { Simplex simplex_coface; for (auto vertex : Base::simplex_vertex_range(f_simplex)) { - std::cout << vertex << " "; simplex_coface.insert(simplex_coface.begin(), vertex); } - std::cout << std::endl; cofaces.push_back(std::make_pair(simplex_coface, Base::filtration(f_simplex))); } return cofaces; -- cgit v1.2.3 From 7882d938d921672377c1db58385bec77ddd1584a Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Mon, 3 Jun 2019 17:31:10 +0200 Subject: Fix #55 --- src/Simplex_tree/include/gudhi/Simplex_tree.h | 2 +- src/cython/cython/simplex_tree.pyx | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Simplex_tree/include/gudhi/Simplex_tree.h b/src/Simplex_tree/include/gudhi/Simplex_tree.h index 4b18651c..343ed472 100644 --- a/src/Simplex_tree/include/gudhi/Simplex_tree.h +++ b/src/Simplex_tree/include/gudhi/Simplex_tree.h @@ -1330,7 +1330,7 @@ class Simplex_tree { public: /** \brief This function ensures that each simplex has a higher filtration value than its faces by increasing the * filtration values. - * @return The filtration modification information. + * @return True if any filtration value was modified, false if the filtration was already non-decreasing. * \post Some simplex tree functions require the filtration to be valid. `make_filtration_non_decreasing()` * function is not launching `initialize_filtration()` but returns the filtration modification information. If the * complex has changed , please call `initialize_filtration()` to recompute it. diff --git a/src/cython/cython/simplex_tree.pyx b/src/cython/cython/simplex_tree.pyx index 0ab97f80..a38e309d 100644 --- a/src/cython/cython/simplex_tree.pyx +++ b/src/cython/cython/simplex_tree.pyx @@ -405,7 +405,8 @@ cdef class SimplexTree: """This function ensures that each simplex has a higher filtration value than its faces by increasing the filtration values. - :returns: The filtration modification information. + :returns: True if any filtration value was modified, + False if the filtration was already non-decreasing. :rtype: bool -- cgit v1.2.3 From ee92004d1d860f1cb95d086095401f3d9e23788b Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Tue, 4 Jun 2019 11:15:27 +0200 Subject: Fix #9 : rename Complex_ds as FilteredComplex. Set private types of non-exposed types --- .../concept/FilteredComplex.h | 25 +++++++------------ .../include/gudhi/Persistent_cohomology.h | 28 ++++++++++++---------- 2 files changed, 24 insertions(+), 29 deletions(-) (limited to 'src') diff --git a/src/Persistent_cohomology/concept/FilteredComplex.h b/src/Persistent_cohomology/concept/FilteredComplex.h index 62b9002f..7eb01b01 100644 --- a/src/Persistent_cohomology/concept/FilteredComplex.h +++ b/src/Persistent_cohomology/concept/FilteredComplex.h @@ -27,7 +27,7 @@ */ struct FilteredComplex { -/** Handle to specify a simplex. */ +/** \brief Handle to specify a simplex. */ typedef unspecified Simplex_handle; /** \brief Type for the value of the filtration function. * @@ -39,8 +39,7 @@ struct FilteredComplex * is model of IndexingTag. */ typedef unspecified Indexing_tag; -/** Returns a Simplex_handle that is different from all simplex handles - * of the simplices. */ +/** \brief Returns a Simplex_handle that is different from all simplex handles of the simplices. */ Simplex_handle null_simplex(); /** \brief Returns the number of simplices in the complex. * @@ -58,22 +57,19 @@ struct FilteredComplex * * This is only called on valid indices. */ Simplex_handle simplex ( size_t idx ); -/** \brief Iterator on the simplices belonging to the - * boundary of a simplex. +/** \brief Iterator on the simplices belonging to the boundary of a simplex. * * value_type must be 'Simplex_handle'. */ typedef unspecified Boundary_simplex_iterator; -/** \brief Range giving access to the simplices in the boundary of - * a simplex. +/** \brief Range giving access to the simplices in the boundary of a simplex. * * .begin() and .end() return type Boundary_simplex_iterator. */ typedef unspecified Boundary_simplex_range; -/** \brief Returns a range giving access to all simplices of the - * boundary of a simplex, i.e. - * the set of codimension 1 subsimplices of the Simplex. +/** \brief Returns a range giving access to all simplices of the boundary of a simplex, i.e. the set of codimension 1 + * subsimplices of the Simplex. * * If the simplex is \f$[v_0, \cdots ,v_d]\f$, with canonical orientation * induced by \f$ v_0 < \cdots < v_d \f$, the iterator enumerates the @@ -84,19 +80,16 @@ typedef unspecified Boundary_simplex_range; * gives the chains corresponding to the boundary of the simplex.*/ Boundary_simplex_range boundary_simplex_range(Simplex_handle sh); -/** \brief Iterator over all simplices of the complex - * in the order of the indexing scheme. +/** \brief Iterator over all simplices of the complex in the order of the indexing scheme. * * 'value_type' must be 'Simplex_handle'. */ typedef unspecified Filtration_simplex_iterator; -/** \brief Range over the simplices of the complex - * in the order of the filtration. +/** \brief Range over the simplices of the complex in the order of the filtration. * * .begin() and .end() return type Filtration_simplex_iterator.*/ typedef unspecified Filtration_simplex_range; -/** \brief Returns a range over the simplices of the complex - * in the order of the filtration. +/** \brief Returns a range over the simplices of the complex in the order of the filtration. * * .begin() and .end() return type Filtration_simplex_iterator.*/ Filtration_simplex_range filtration_simplex_range(); diff --git a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h index c51e47a5..ca697450 100644 --- a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h +++ b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h @@ -63,12 +63,15 @@ namespace persistent_cohomology { template class Persistent_cohomology { public: - typedef FilteredComplex Complex_ds; // Data attached to each simplex to interface with a Property Map. - typedef typename Complex_ds::Simplex_key Simplex_key; - typedef typename Complex_ds::Simplex_handle Simplex_handle; - typedef typename Complex_ds::Filtration_value Filtration_value; + typedef typename FilteredComplex::Simplex_key Simplex_key; + typedef typename FilteredComplex::Simplex_handle Simplex_handle; + typedef typename FilteredComplex::Filtration_value Filtration_value; typedef typename CoefficientField::Element Arith_element; + /** \brief Persistent interval type. The Arith_element field is used for the multi-field framework. */ + typedef std::tuple Persistent_interval; + + private: // Compressed Annotation Matrix types: // Column type typedef Persistent_cohomology_column Column; // contains 1 set_hook @@ -83,16 +86,15 @@ class Persistent_cohomology { boost::intrusive::constant_time_size > Cam; // Sparse column type for the annotation of the boundary of an element. typedef std::vector > A_ds_type; - // Persistent interval type. The Arith_element field is used for the multi-field framework. - typedef std::tuple Persistent_interval; + public: /** \brief Initializes the Persistent_cohomology class. * * @param[in] cpx Complex for which the persistent homology is computed. * cpx is a model of FilteredComplex * @exception std::out_of_range In case the number of simplices is more than Simplex_key type numeric limit. */ - explicit Persistent_cohomology(Complex_ds& cpx) + explicit Persistent_cohomology(FilteredComplex& cpx) : cpx_(&cpx), dim_max_(cpx.dimension()), // upper bound on the dimension of the simplices coeff_field_(), // initialize the field coefficient structure. @@ -128,7 +130,7 @@ class Persistent_cohomology { * @param[in] persistence_dim_max if true, the persistent homology for the maximal dimension in the * complex is computed. If false, it is ignored. Default is false. */ - Persistent_cohomology(Complex_ds& cpx, bool persistence_dim_max) + Persistent_cohomology(FilteredComplex& cpx, bool persistence_dim_max) : Persistent_cohomology(cpx) { if (persistence_dim_max) { ++dim_max_; @@ -146,7 +148,7 @@ class Persistent_cohomology { private: struct length_interval { - length_interval(Complex_ds * cpx, Filtration_value min_length) + length_interval(FilteredComplex * cpx, Filtration_value min_length) : cpx_(cpx), min_length_(min_length) { } @@ -159,7 +161,7 @@ class Persistent_cohomology { min_length_ = new_length; } - Complex_ds * cpx_; + FilteredComplex * cpx_; Filtration_value min_length_; }; @@ -552,14 +554,14 @@ class Persistent_cohomology { * Compare two intervals by length. */ struct cmp_intervals_by_length { - explicit cmp_intervals_by_length(Complex_ds * sc) + explicit cmp_intervals_by_length(FilteredComplex * sc) : sc_(sc) { } bool operator()(const Persistent_interval & p1, const Persistent_interval & p2) { return (sc_->filtration(get < 1 > (p1)) - sc_->filtration(get < 0 > (p1)) > sc_->filtration(get < 1 > (p2)) - sc_->filtration(get < 0 > (p2))); } - Complex_ds * sc_; + FilteredComplex * sc_; }; public: @@ -733,7 +735,7 @@ class Persistent_cohomology { }; public: - Complex_ds * cpx_; + FilteredComplex * cpx_; int dim_max_; CoefficientField coeff_field_; size_t num_simplices_; -- cgit v1.2.3 From 733c9efab57e489e849d32123a69ac090d3c585a Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Tue, 4 Jun 2019 17:21:59 +0200 Subject: Fix #7 : document better get_persistence_pairs (C++) and persistence_pairs (Python) methods --- .../include/gudhi/Persistent_cohomology.h | 12 ++++++++---- src/cython/cython/simplex_tree.pyx | 5 ++--- 2 files changed, 10 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h index ca697450..452527c4 100644 --- a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h +++ b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h @@ -64,13 +64,18 @@ template class Persistent_cohomology { public: // Data attached to each simplex to interface with a Property Map. + + /** \brief Data stored for each simplex. */ typedef typename FilteredComplex::Simplex_key Simplex_key; + /** \brief Handle to specify a simplex. */ typedef typename FilteredComplex::Simplex_handle Simplex_handle; + /** \brief Type for the value of the filtration function. */ typedef typename FilteredComplex::Filtration_value Filtration_value; + /** \brief Type of element of the field. */ typedef typename CoefficientField::Element Arith_element; /** \brief Persistent interval type. The Arith_element field is used for the multi-field framework. */ typedef std::tuple Persistent_interval; - + private: // Compressed Annotation Matrix types: // Column type @@ -692,9 +697,8 @@ class Persistent_cohomology { return betti_number; } - /** @brief Returns the persistent pairs. - * @return Persistent pairs - * + /** @brief Returns a list of persistence birth and death FilteredComplex::Simplex_handle pairs. + * @return A list of Persistent_cohomology::Persistent_interval */ const std::vector& get_persistent_pairs() const { return persistent_pairs_; diff --git a/src/cython/cython/simplex_tree.pyx b/src/cython/cython/simplex_tree.pyx index a38e309d..ea99c940 100644 --- a/src/cython/cython/simplex_tree.pyx +++ b/src/cython/cython/simplex_tree.pyx @@ -514,10 +514,9 @@ cdef class SimplexTree: return intervals_result def persistence_pairs(self): - """This function returns the persistence pairs of the simplicial - complex. + """This function returns a list of persistence birth and death simplices pairs. - :returns: The persistence intervals. + :returns: A list of persistence simplices intervals. :rtype: list of pair of list of int :note: persistence_pairs function requires -- cgit v1.2.3 From 5661593ab3d8f7bd4cda867fc0348c86d26106e3 Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Wed, 5 Jun 2019 07:57:54 +0200 Subject: Fix #20: Add OFF section in file format and all documents target to it instead of geomview.org documentation. Modify data/points/alphacomplexdoc.off in dimension 3 to be used as an example for OFF section in file format. --- data/points/alphacomplexdoc.off | 22 ++++++++-------- src/Alpha_complex/utilities/alphacomplex.md | 4 +-- src/Doxyfile.in | 3 ++- src/Nerve_GIC/doc/Intro_graph_induced_complex.h | 3 +-- src/common/doc/file_formats.h | 26 +++++++++++++++++++ .../example/vectordoubleoffreader_result.txt | 14 +++++------ src/common/include/gudhi/Off_reader.h | 3 +-- src/common/test/test_points_off_reader.cpp | 14 +++++------ src/cython/doc/fileformats.rst | 29 ++++++++++++++++++++++ src/cython/doc/nerve_gic_complex_user.rst | 3 +-- 10 files changed, 88 insertions(+), 33 deletions(-) (limited to 'src') diff --git a/data/points/alphacomplexdoc.off b/data/points/alphacomplexdoc.off index bb790193..a90db49a 100644 --- a/data/points/alphacomplexdoc.off +++ b/data/points/alphacomplexdoc.off @@ -1,10 +1,12 @@ -nOFF -2 7 0 0 -1.0 1.0 -7.0 0.0 -4.0 6.0 -9.0 6.0 -0.0 14.0 -2.0 19.0 -9.0 17.0 - +# Default is 3 dimension +OFF +# 7 vertices - 0 face - 0 edge +7 0 0 +# Point set: +1.0 1.0 0.0 +7.0 0.0 0.0 +4.0 6.0 0.0 +9.0 6.0 0.0 +0.0 14.0 0.0 +2.0 19.0 0.0 +9.0 17.0 0.0 diff --git a/src/Alpha_complex/utilities/alphacomplex.md b/src/Alpha_complex/utilities/alphacomplex.md index b77656ff..fcd16a3b 100644 --- a/src/Alpha_complex/utilities/alphacomplex.md +++ b/src/Alpha_complex/utilities/alphacomplex.md @@ -33,7 +33,7 @@ a prime number). where `` is the path to the input point cloud in -[nOFF ASCII format](http://www.geomview.org/docs/html/OFF.html). +[nOFF ASCII format]({{ site.officialurl }}/doc/latest/fileformats.html#FileFormatsOFF). **Allowed options** @@ -87,7 +87,7 @@ a prime number). ``` where `` is the path to the input point cloud in -[nOFF ASCII format](http://www.geomview.org/docs/html/OFF.html). +[nOFF ASCII format]({{ site.officialurl }}/doc/latest/fileformats.html#FileFormatsOFF). **Allowed options** diff --git a/src/Doxyfile.in b/src/Doxyfile.in index 54a438d4..5b1b8ecc 100644 --- a/src/Doxyfile.in +++ b/src/Doxyfile.in @@ -821,7 +821,8 @@ EXCLUDE_SYMBOLS = EXAMPLE_PATH = biblio/ \ example/ \ - utilities/ + utilities/ \ + data/ # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and diff --git a/src/Nerve_GIC/doc/Intro_graph_induced_complex.h b/src/Nerve_GIC/doc/Intro_graph_induced_complex.h index bc8aecc3..e72d63dd 100644 --- a/src/Nerve_GIC/doc/Intro_graph_induced_complex.h +++ b/src/Nerve_GIC/doc/Intro_graph_induced_complex.h @@ -37,8 +37,7 @@ namespace cover_complex { * neato (from graphviz), * geomview, * KeplerMapper. - * Input point clouds are assumed to be - * OFF files. + * Input point clouds are assumed to be \ref FileFormatsOFF "OFF files" * * \section covers Covers * diff --git a/src/common/doc/file_formats.h b/src/common/doc/file_formats.h index 23214e25..235296d3 100644 --- a/src/common/doc/file_formats.h +++ b/src/common/doc/file_formats.h @@ -29,6 +29,32 @@ namespace Gudhi { \tableofcontents + \section FileFormatsOFF OFF file format + + OFF files must be conform to format described here: http://www.geomview.org/docs/html/OFF.html + + OFF files are mainly used as point cloud inputs. Here is an example of 7 points in a 3-dimensional space. As edges and + faces are not used for point set, there is no need to specify them (just set their numbers to 0): + + \include points/alphacomplexdoc.off + + For dimensions bigger than 3, the dimension can be set like here: + \verbatim + # Dimension is no more 3 + nOFF + # dimension 4 - 7 vertices - 0 face - 0 edge + 4 7 0 0 + # Point set: + 1.0 1.0 0.0 0.0 + 7.0 0.0 0.0 0.0 + 4.0 6.0 0.0 0.0 + 9.0 6.0 0.0 0.0 + 0.0 14.0 0.0 0.0 + 2.0 19.0 0.0 0.0 + 9.0 17.0 0.0 0.0 + \endverbatim + + \section FileFormatsPers Persistence Diagram Such a file, whose extension is usually `.pers`, contains a list of persistence intervals.
diff --git a/src/common/example/vectordoubleoffreader_result.txt b/src/common/example/vectordoubleoffreader_result.txt index 1deb8dbd..b399425a 100644 --- a/src/common/example/vectordoubleoffreader_result.txt +++ b/src/common/example/vectordoubleoffreader_result.txt @@ -1,7 +1,7 @@ -Point[0] = 1 1 -Point[1] = 7 0 -Point[2] = 4 6 -Point[3] = 9 6 -Point[4] = 0 14 -Point[5] = 2 19 -Point[6] = 9 17 +Point[0] = 1 1 0 +Point[1] = 7 0 0 +Point[2] = 4 6 0 +Point[3] = 9 6 0 +Point[4] = 0 14 0 +Point[5] = 2 19 0 +Point[6] = 9 17 0 diff --git a/src/common/include/gudhi/Off_reader.h b/src/common/include/gudhi/Off_reader.h index 05a1e145..fc951fe7 100644 --- a/src/common/include/gudhi/Off_reader.h +++ b/src/common/include/gudhi/Off_reader.h @@ -37,8 +37,7 @@ namespace Gudhi { /** \brief OFF file reader top class visitor. * - * OFF file must be conform to format described here : - * http://www.geomview.org/docs/html/OFF.html + * OFF file must be conform to \ref FileFormatsOFF */ class Off_reader { public: diff --git a/src/common/test/test_points_off_reader.cpp b/src/common/test/test_points_off_reader.cpp index ba3bab71..e4b76ed7 100644 --- a/src/common/test/test_points_off_reader.cpp +++ b/src/common/test/test_points_off_reader.cpp @@ -44,19 +44,19 @@ BOOST_AUTO_TEST_CASE( points_doc_test ) BOOST_CHECK(point_cloud.size() == 7); std::vector expected_points; - std::vector point = {1.0, 1.0}; + std::vector point = {1.0, 1.0, 0.0}; expected_points.push_back(Point_d(point.begin(), point.end())); - point = {7.0, 0.0}; + point = {7.0, 0.0, 0.0}; expected_points.push_back(Point_d(point.begin(), point.end())); - point = {4.0, 6.0}; + point = {4.0, 6.0, 0.0}; expected_points.push_back(Point_d(point.begin(), point.end())); - point = {9.0, 6.0}; + point = {9.0, 6.0, 0.0}; expected_points.push_back(Point_d(point.begin(), point.end())); - point = {0.0, 14.0}; + point = {0.0, 14.0, 0.0}; expected_points.push_back(Point_d(point.begin(), point.end())); - point = {2.0, 19.0}; + point = {2.0, 19.0, 0.0}; expected_points.push_back(Point_d(point.begin(), point.end())); - point = {9.0, 17.0}; + point = {9.0, 17.0, 0.0}; expected_points.push_back(Point_d(point.begin(), point.end())); BOOST_CHECK(point_cloud == expected_points); diff --git a/src/cython/doc/fileformats.rst b/src/cython/doc/fileformats.rst index e205cc8b..345dfdba 100644 --- a/src/cython/doc/fileformats.rst +++ b/src/cython/doc/fileformats.rst @@ -5,6 +5,35 @@ File formats ############ +OFF file format +*************** + +OFF files must be conform to format described here: +http://www.geomview.org/docs/html/OFF.html + +OFF files are mainly used as point cloud inputs. Here is an example of 7 points +in a 3-dimensional space. As edges and faces are not used for point set, there +is no need to specify them (just set their numbers to 0): + +.. literalinclude:: ../../data/points/alphacomplexdoc.off + +.. centered:: ../../points/alphacomplexdoc.off + +For dimensions bigger than 3, the dimension can be set like here:: + + # Dimension is no more 3 + nOFF + # dimension 4 - 7 vertices - 0 face - 0 edge + 4 7 0 0 + # Point set: + 1.0 1.0 0.0 0.0 + 7.0 0.0 0.0 0.0 + 4.0 6.0 0.0 0.0 + 9.0 6.0 0.0 0.0 + 0.0 14.0 0.0 0.0 + 2.0 19.0 0.0 0.0 + 9.0 17.0 0.0 0.0 + Persistence Diagram ******************* diff --git a/src/cython/doc/nerve_gic_complex_user.rst b/src/cython/doc/nerve_gic_complex_user.rst index 94a2b246..9101f45d 100644 --- a/src/cython/doc/nerve_gic_complex_user.rst +++ b/src/cython/doc/nerve_gic_complex_user.rst @@ -13,8 +13,7 @@ Visualizations of the simplicial complexes can be done with either neato (from `graphviz `_), `geomview `_, `KeplerMapper `_. -Input point clouds are assumed to be -`OFF files `_. +Input point clouds are assumed to be OFF files (cf. :doc:`fileformats`). Covers ------ -- cgit v1.2.3 From ef5fcf9e54e0c14f7c2e7eebb5c24fb91018606a Mon Sep 17 00:00:00 2001 From: ROUVREAU Vincent Date: Thu, 6 Jun 2019 10:38:07 +0200 Subject: Fix doc review --- src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h index 452527c4..c57174cb 100644 --- a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h +++ b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h @@ -73,7 +73,8 @@ class Persistent_cohomology { typedef typename FilteredComplex::Filtration_value Filtration_value; /** \brief Type of element of the field. */ typedef typename CoefficientField::Element Arith_element; - /** \brief Persistent interval type. The Arith_element field is used for the multi-field framework. */ + /** \brief Type for birth and death FilteredComplex::Simplex_handle. + * The Arith_element field is used for the multi-field framework. */ typedef std::tuple Persistent_interval; private: -- cgit v1.2.3