From 3ce8bf8dd1b0c4148a1f5f11cf178f9d381d6b18 Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Fri, 5 Aug 2016 08:46:04 +0000 Subject: Modify plain_homology to show a Simplex_key type modification git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/3billions_simplices_fix@1418 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 9d9c99b8d8acd8a6fdbfe09601ffe6826ca04857 --- src/Persistent_cohomology/example/plain_homology.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/Persistent_cohomology') diff --git a/src/Persistent_cohomology/example/plain_homology.cpp b/src/Persistent_cohomology/example/plain_homology.cpp index 2156ffd9..f8fab93c 100644 --- a/src/Persistent_cohomology/example/plain_homology.cpp +++ b/src/Persistent_cohomology/example/plain_homology.cpp @@ -39,6 +39,8 @@ struct MyOptions : Simplex_tree_options_full_featured { static const bool store_key = true; // I have few vertices typedef short Vertex_handle; + // Maximum number of simplices to compute persistence is 2^8 = 256 + typedef std::uint8_t Simplex_key; }; typedef Simplex_tree ST; -- cgit v1.2.3 From 37b34936433bb8a2683f5987729493e6fdff33c5 Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Fri, 5 Aug 2016 08:50:38 +0000 Subject: With the good include cstd git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/3billions_simplices_fix@1419 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 864b9995ec8675e1578bccf81126959a4a5a22c4 --- src/Persistent_cohomology/example/plain_homology.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/Persistent_cohomology') diff --git a/src/Persistent_cohomology/example/plain_homology.cpp b/src/Persistent_cohomology/example/plain_homology.cpp index f8fab93c..2c4e7aa2 100644 --- a/src/Persistent_cohomology/example/plain_homology.cpp +++ b/src/Persistent_cohomology/example/plain_homology.cpp @@ -25,6 +25,7 @@ #include #include +#include // for std::uint8_t using namespace Gudhi; @@ -39,7 +40,7 @@ struct MyOptions : Simplex_tree_options_full_featured { static const bool store_key = true; // I have few vertices typedef short Vertex_handle; - // Maximum number of simplices to compute persistence is 2^8 = 256 + // Maximum number of simplices to compute persistence is 2^8 = 256. typedef std::uint8_t Simplex_key; }; typedef Simplex_tree ST; -- cgit v1.2.3 From 9b4c31ef855bf5c98718675a9caab52e8d8514e7 Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Fri, 5 Aug 2016 09:58:11 +0000 Subject: Fix the 3 billions of simplices limit Add some comment and documentation about the new limit (4 billions) Rephrase third party library installation documentation git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/3billions_simplices_fix@1420 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 95b20677e455b61578da74aabbd3764b4a27816d --- .../include/gudhi/Persistent_cohomology.h | 5 +++ .../test/betti_numbers_unit_test.cpp | 4 +-- .../test/persistent_cohomology_unit_test.cpp | 42 ++++++++++++++++++++++ src/Simplex_tree/include/gudhi/Simplex_tree.h | 19 ++++++---- src/common/doc/main_page.h | 32 +++++++++-------- 5 files changed, 80 insertions(+), 22 deletions(-) (limited to 'src/Persistent_cohomology') diff --git a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h index a7d1e463..d3da812e 100644 --- a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h +++ b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h @@ -41,6 +41,7 @@ #include #include #include +#include // for std::out_of_range namespace Gudhi { @@ -89,6 +90,7 @@ class Persistent_cohomology { * * @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) : cpx_(&cpx), @@ -106,6 +108,9 @@ class Persistent_cohomology { interval_length_policy(&cpx, 0), column_pool_(), // memory pools for the CAM cell_pool_() { + if (cpx_->num_simplices() > std::numeric_limits::max()) { + throw std::out_of_range ("The number of simplices is more than Simplex_key type numeric limit."); + } Simplex_key idx_fil = 0; for (auto sh : cpx_->filtration_simplex_range()) { cpx_->assign_key(sh, idx_fil); diff --git a/src/Persistent_cohomology/test/betti_numbers_unit_test.cpp b/src/Persistent_cohomology/test/betti_numbers_unit_test.cpp index a4e00b45..40221005 100644 --- a/src/Persistent_cohomology/test/betti_numbers_unit_test.cpp +++ b/src/Persistent_cohomology/test/betti_numbers_unit_test.cpp @@ -12,7 +12,7 @@ #include "gudhi/Simplex_tree.h" #include "gudhi/Persistent_cohomology.h" -struct MyOptions : Gudhi::Simplex_tree_options_full_featured { +struct MiniSTOptions : Gudhi::Simplex_tree_options_full_featured { // Implicitly use 0 as filtration value for all simplices static const bool store_filtration = false; // The persistence algorithm needs this @@ -21,7 +21,7 @@ struct MyOptions : Gudhi::Simplex_tree_options_full_featured { typedef short Vertex_handle; }; -using Mini_simplex_tree = Gudhi::Simplex_tree; +using Mini_simplex_tree = Gudhi::Simplex_tree; using Mini_st_persistence = Gudhi::persistent_cohomology::Persistent_cohomology; diff --git a/src/Persistent_cohomology/test/persistent_cohomology_unit_test.cpp b/src/Persistent_cohomology/test/persistent_cohomology_unit_test.cpp index 5c54ed5f..530e7092 100644 --- a/src/Persistent_cohomology/test/persistent_cohomology_unit_test.cpp +++ b/src/Persistent_cohomology/test/persistent_cohomology_unit_test.cpp @@ -4,6 +4,7 @@ #include // std::pair, std::make_pair #include // float comparison #include +#include // for std::uint8_t #define BOOST_TEST_DYN_LINK #define BOOST_TEST_MODULE "persistent_cohomology" @@ -172,3 +173,44 @@ BOOST_AUTO_TEST_CASE( rips_persistent_cohomology_single_field_dim_5 ) // std::string str_rips_persistence = test_rips_persistence(6, 0); // TODO(VR): division by zero // std::string str_rips_persistence = test_rips_persistence(0, 0); + +/** SimplexTree minimal options to test the limits. + * + * Maximum number of simplices to compute persistence is std::numeric_limits::max()<\CODE> = 256.*/ +struct MiniSTOptions { + typedef linear_indexing_tag Indexing_tag; + typedef short Vertex_handle; + typedef double Filtration_value; + typedef std::uint8_t Simplex_key; + static const bool store_key = true; + static const bool store_filtration = false; + static const bool contiguous_vertices = false; +}; + +using Mini_simplex_tree = Gudhi::Simplex_tree; +using Mini_st_persistence = + Gudhi::persistent_cohomology::Persistent_cohomology; + +BOOST_AUTO_TEST_CASE( persistence_constructor_exception ) +{ + Mini_simplex_tree st; + + // To make number of simplices = 255 + const short simplex_0[] = {0, 1, 2, 3, 4, 5, 6, 7}; + st.insert_simplex_and_subfaces(simplex_0); + // FIXME: Remove this line + st.set_dimension(8); + + // Sort the simplices in the order of the filtration + st.initialize_filtration(); + + BOOST_CHECK(st.num_simplices() <= std::numeric_limits::max()); + // Class for homology computation + BOOST_CHECK_NO_THROW(Mini_st_persistence pcoh(st)); + + st.insert_simplex({8}); + BOOST_CHECK(st.num_simplices() > std::numeric_limits::max()); + // Class for homology computation + BOOST_CHECK_THROW(Mini_st_persistence pcoh2(st), std::out_of_range); + +} diff --git a/src/Simplex_tree/include/gudhi/Simplex_tree.h b/src/Simplex_tree/include/gudhi/Simplex_tree.h index 65ead001..91b27f28 100644 --- a/src/Simplex_tree/include/gudhi/Simplex_tree.h +++ b/src/Simplex_tree/include/gudhi/Simplex_tree.h @@ -48,6 +48,7 @@ #include // Inf #include #include // for std::max +#include // for std::uint32_t namespace Gudhi { /** \defgroup simplex_tree Filtered Complexes @@ -1297,25 +1298,31 @@ std::istream& operator>>(std::istream & is, Simplex_tree & st) { return is; } -/// Model of SimplexTreeOptions. +/** Model of SimplexTreeOptions. + * + * Maximum number of simplices to compute persistence is std::numeric_limits::max()<\CODE> + * (about 4 billions of simplices). */ struct Simplex_tree_options_full_featured { typedef linear_indexing_tag Indexing_tag; typedef int Vertex_handle; typedef double Filtration_value; - typedef int Simplex_key; + typedef std::uint32_t Simplex_key; static const bool store_key = true; static const bool store_filtration = true; static const bool contiguous_vertices = false; }; -/** Model of SimplexTreeOptions, faster than - `Simplex_tree_options_full_featured` but note the unsafe - `contiguous_vertices` option. */ +/** Model of SimplexTreeOptions, faster than `Simplex_tree_options_full_featured` but note the unsafe + * `contiguous_vertices` option. + * + * Maximum number of simplices to compute persistence is std::numeric_limits::max()<\CODE> + * (about 4 billions of simplices). */ + struct Simplex_tree_options_fast_persistence { typedef linear_indexing_tag Indexing_tag; typedef int Vertex_handle; typedef float Filtration_value; - typedef int Simplex_key; + typedef std::uint32_t Simplex_key; static const bool store_key = true; static const bool store_filtration = true; static const bool contiguous_vertices = true; diff --git a/src/common/doc/main_page.h b/src/common/doc/main_page.h index 2391e147..9146bed1 100644 --- a/src/common/doc/main_page.h +++ b/src/common/doc/main_page.h @@ -154,6 +154,7 @@ */ /*! \page installation Gudhi installation + * \tableofcontents * As Gudhi is a header only library, there is no need to install the library. * * Examples of Gudhi headers inclusion can be found in \ref demos. @@ -162,6 +163,20 @@ * The library uses c++11 and requires Boost with version 1.48.0 or * more recent. It is a multi-platform library and compiles on Linux, Mac OSX and Visual Studio 2015. * + * \subsection demos Demos and examples + * To build the demos and examples, run the following commands in a terminal: +\verbatim cd /path-to-gudhi/ +mkdir build +cd build/ +cmake .. +make \endverbatim + * A list of examples is available here. + * + * \subsection testsuites Test suites + * To test your build, run the following command in a terminal: + * \verbatim make test \endverbatim + * + * \section optionallibrary Optional third-party library * \subsection gmp GMP: * The multi-field persistent homology algorithm requires GMP which is a free library for arbitrary-precision * arithmetic, operating on signed integers, rational numbers, and floating point numbers. @@ -176,7 +191,8 @@ * Having GMP version 4.2 or higher installed is recommended. * * \subsection cgal CGAL: - * CGAL is a C++ library which provides easy access to efficient and reliable geometric algorithms. + * The \ref alpha_complex data structure and few examples requires CGAL, which is a C++ library which provides easy + * access to efficient and reliable geometric algorithms. * * Having CGAL version 4.4 or higher installed is recommended. The procedure to install this library according to * your operating system is detailed here http://doc.cgal.org/latest/Manual/installation.html @@ -205,6 +221,7 @@ * Persistent_cohomology/custom_persistence_sort.cpp * * \subsection eigen3 Eigen3: + * The \ref alpha_complex data structure and few examples requires * Eigen3 is a C++ template library for linear algebra: * matrices, vectors, numerical solvers, and related algorithms. * @@ -270,19 +287,6 @@ * \li * Persistent_cohomology/custom_persistence_sort.cpp * - * \subsection demos Demos and examples - * To build the demos and examples, run the following commands in a terminal: -\verbatim cd /path-to-gudhi/ -mkdir build -cd build/ -cmake .. -make \endverbatim - * A list of examples is available here. - * - * \subsection testsuites Test suites - * To test your build, run the following command in a terminal: - * \verbatim make test \endverbatim - * * \section Contributions Bug reports and contributions * Please help us improving the quality of the GUDHI library. You may report bugs or suggestions to: * \verbatim Contact: gudhi-users@lists.gforge.inria.fr \endverbatim -- cgit v1.2.3 From 11621bfac96fb3fa5d057880fe8e7d890a7c363d Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Thu, 25 Aug 2016 13:04:27 +0000 Subject: Modify the comment about uint_8 -> max is 255 git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/3billions_simplices_fix@1455 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 6ca626c7d0f4a690587946bf7b9e4d31c8effc23 --- src/Persistent_cohomology/example/plain_homology.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/Persistent_cohomology') diff --git a/src/Persistent_cohomology/example/plain_homology.cpp b/src/Persistent_cohomology/example/plain_homology.cpp index 2c4e7aa2..ae82c817 100644 --- a/src/Persistent_cohomology/example/plain_homology.cpp +++ b/src/Persistent_cohomology/example/plain_homology.cpp @@ -40,7 +40,7 @@ struct MyOptions : Simplex_tree_options_full_featured { static const bool store_key = true; // I have few vertices typedef short Vertex_handle; - // Maximum number of simplices to compute persistence is 2^8 = 256. + // Maximum number of simplices to compute persistence is 2^8 - 1 = 255. One is reserved for null_key typedef std::uint8_t Simplex_key; }; typedef Simplex_tree ST; -- cgit v1.2.3 From aaff5fb721805e0295193a05964a0ba7faf94162 Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Thu, 25 Aug 2016 13:08:30 +0000 Subject: Add a comment on MiniSTOption Simplex_key type definition about the maximum to be reached git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/3billions_simplices_fix@1456 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 476838c17d5f6e8745661ee0a67295ce65828f43 --- src/Persistent_cohomology/test/persistent_cohomology_unit_test.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/Persistent_cohomology') diff --git a/src/Persistent_cohomology/test/persistent_cohomology_unit_test.cpp b/src/Persistent_cohomology/test/persistent_cohomology_unit_test.cpp index 530e7092..6efd749e 100644 --- a/src/Persistent_cohomology/test/persistent_cohomology_unit_test.cpp +++ b/src/Persistent_cohomology/test/persistent_cohomology_unit_test.cpp @@ -181,6 +181,7 @@ struct MiniSTOptions { typedef linear_indexing_tag Indexing_tag; typedef short Vertex_handle; typedef double Filtration_value; + // Maximum number of simplices to compute persistence is 2^8 - 1 = 255. One is reserved for null_key typedef std::uint8_t Simplex_key; static const bool store_key = true; static const bool store_filtration = false; -- cgit v1.2.3 From b77495dc565781852d34139f5ebe27ca99407650 Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Fri, 9 Sep 2016 14:31:41 +0000 Subject: Add a comment for assert that explains null_key mechanism git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/3billions_simplices_fix@1484 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 12246383db2c71ce36d03e5702180605459e6fe3 --- src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h | 1 + 1 file changed, 1 insertion(+) (limited to 'src/Persistent_cohomology') diff --git a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h index d3da812e..b31df6a4 100644 --- a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h +++ b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h @@ -109,6 +109,7 @@ class Persistent_cohomology { column_pool_(), // memory pools for the CAM cell_pool_() { if (cpx_->num_simplices() > std::numeric_limits::max()) { + // num_simplices must be strictly lower than the limit, because a value is reserved for null_key. throw std::out_of_range ("The number of simplices is more than Simplex_key type numeric limit."); } Simplex_key idx_fil = 0; -- cgit v1.2.3 From ba76b65af98ad337e39b72fd4260baee17eb4f49 Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Mon, 12 Sep 2016 12:47:01 +0000 Subject: Modify filtered complexes sections and examples. Modify persistence sections and examples git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/trunk@1487 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 6b0bdc7199f7229ac152175c4cbc6ebd79c9bc67 --- .../doc/Intro_persistent_cohomology.h | 62 ++++++++++++++++++---- src/Simplex_tree/example/README | 4 +- src/Simplex_tree/include/gudhi/Simplex_tree.h | 32 ----------- src/common/doc/main_page.h | 10 ++-- 4 files changed, 61 insertions(+), 47 deletions(-) (limited to 'src/Persistent_cohomology') diff --git a/src/Persistent_cohomology/doc/Intro_persistent_cohomology.h b/src/Persistent_cohomology/doc/Intro_persistent_cohomology.h index c8081cac..0cba6361 100644 --- a/src/Persistent_cohomology/doc/Intro_persistent_cohomology.h +++ b/src/Persistent_cohomology/doc/Intro_persistent_cohomology.h @@ -46,7 +46,7 @@ namespace persistent_cohomology { composed of three elements: topological spaces, their homology groups and an evolution scheme. -
Topological Spaces:
+ \section persistencetopolocalspaces Topological Spaces Topological spaces are represented by simplicial complexes. Let \f$V = \{1, \cdots ,|V|\}\f$ be a set of vertices. A simplex \f$\sigma\f$ is a subset of vertices @@ -84,7 +84,7 @@ namespace persistent_cohomology { Filtration_value filtration (Simplex_handle) that returns the value of the filtration on the simplex represented by the handle. -
Homology:
+ \section persistencehomology Homology For a ring \f$\mathcal{R}\f$, the group of n-chains, denoted \f$\mathbf{C}_n(\mathbf{K},\mathcal{R})\f$, of \f$\mathbf{K}\f$ is the group of formal sums of @@ -111,7 +111,7 @@ namespace persistent_cohomology { We refer to \cite Munkres-elementsalgtop1984 for an introduction to homology theory and to \cite DBLP:books/daglib/0025666 for an introduction to persistent homology. -
Indexing Scheme:
+ \section persistenceindexingscheme Indexing Scheme "Changing" a simplicial complex consists in applying a simplicial map. An indexing scheme is a directed graph together with a traversal order, such that two @@ -140,18 +140,62 @@ namespace persistent_cohomology { its subsimplices of same filtration value) provides an indexing scheme. \section Examples - We provide several example files: run these examples with -h for details on their use, and read the README file. -\li rips_persistence.cpp computes the Rips complex of a point cloud and its persistence diagram. +We provide several example files: run these examples with -h for details on their use, and read the README file. -\li rips_multifield_persistence.cpp computes the Rips complex of a point cloud and its persistence diagram -with a family of field coefficients. +\li +Persistent_cohomology/rips_persistence.cpp computes the Rips complex of a point cloud and its persistence diagram. -\li performance_rips_persistence.cpp provides timings for the construction of the Rips complex on a set of -points sampling a Klein bottle in \f$\mathbb{R}^5\f$ with a simplex tree, its conversion to a +\li +Persistent_cohomology/rips_multifield_persistence.cpp computes the Rips complex of a point cloud and its +persistence diagram with a family of field coefficients. + +\li +Persistent_cohomology/performance_rips_persistence.cpp provides timings for the construction of the Rips complex +on a set of points sampling a Klein bottle in \f$\mathbb{R}^5\f$ with a simplex tree, its conversion to a Hasse diagram and the computation of persistent homology and multi-field persistent homology for the different representations. +\li +Persistent_cohomology/alpha_complex_3d_persistence.cpp computes the persistent homology with +\f$\mathbb{Z}/2\mathbb{Z}\f$ coefficients of the alpha complex on points sampling from an OFF file. +\code $> ./alpha_complex_3d_persistence ../../data/points/tore3D_300.off 2 0.45 \endcode +\code Simplex_tree dim: 3 +2 0 0 inf +2 1 0.0682162 1.0001 +2 1 0.0934117 1.00003 +2 2 0.56444 1.03938 \endcode + +\li +Persistent_cohomology/alpha_complex_persistence.cpp computes the persistent homology with +\f$\mathbb{Z}/p\mathbb{Z}\f$ coefficients of the alpha complex on points sampling from an OFF file. +\code $> ./alpha_complex_persistence -r 32 -p 2 -m 0.45 ../../data/points/tore3D_300.off \endcode +\code Alpha complex is of dimension 3 - 9273 simplices - 300 vertices. +Simplex_tree dim: 3 +2 0 0 inf +2 1 0.0682162 1.0001 +2 1 0.0934117 1.00003 +2 2 0.56444 1.03938 \endcode + +\li +Persistent_cohomology/periodic_alpha_complex_3d_persistence.cpp computes the persistent homology with +\f$\mathbb{Z}/2\mathbb{Z}\f$ coefficients of the periodic alpha complex on points sampling from an OFF file. +\code $> ./periodic_alpha_complex_3d_persistence ../../data/points/grid_10_10_10_in_0_1.off 3 1.0 \endcode +\code Periodic Delaunay computed. +Simplex_tree dim: 3 +3 0 0 inf +3 1 0.0025 inf +3 1 0.0025 inf +3 1 0.0025 inf +3 2 0.005 inf +3 2 0.005 inf +3 2 0.005 inf +3 3 0.0075 inf \endcode + +\li +Persistent_cohomology/plain_homology.cpp computes the plain homology of a simple simplicial complex without +filtration values. + \copyright GNU General Public License v3. */ diff --git a/src/Simplex_tree/example/README b/src/Simplex_tree/example/README index 03c759cb..e37af790 100644 --- a/src/Simplex_tree/example/README +++ b/src/Simplex_tree/example/README @@ -52,7 +52,7 @@ EXAMPLE OF SIMPLE INSERTION *** Simplex tree construction with Z/2Z coefficients on weighted graph Klein bottle file: -./simplex_tree_from_file ../../../data/points/Klein_bottle_complex.txt 2 +./simplex_tree_from_cliques_of_graph ../../../data/points/Klein_bottle_complex.txt 2 Insert the 1-skeleton in the simplex tree in 0 s. Expand the simplex tree in 0 s. Information of the Simplex Tree: @@ -60,7 +60,7 @@ Information of the Simplex Tree: with Z/3Z coefficients: -./simplex_tree_from_file ../../../data/points/Klein_bottle_complex.txt 3 +./simplex_tree_from_cliques_of_graph ../../../data/points/Klein_bottle_complex.txt 3 Insert the 1-skeleton in the simplex tree in 0 s. Expand the simplex tree in 0 s. diff --git a/src/Simplex_tree/include/gudhi/Simplex_tree.h b/src/Simplex_tree/include/gudhi/Simplex_tree.h index fa9c0800..63e3f0e5 100644 --- a/src/Simplex_tree/include/gudhi/Simplex_tree.h +++ b/src/Simplex_tree/include/gudhi/Simplex_tree.h @@ -51,38 +51,6 @@ #include // for std::uint32_t namespace Gudhi { -/** \defgroup simplex_tree Filtered Complexes - * \author Clément Maria - * - * A simplicial complex \f$\mathbf{K}\f$ - * on a set of vertices \f$V = \{1, \cdots ,|V|\}\f$ is a collection of simplices - * \f$\{\sigma\}\f$, - * \f$\sigma \subseteq V\f$ such that \f$\tau \subseteq \sigma \in \mathbf{K} \rightarrow \tau \in - * \mathbf{K}\f$. The - * dimension \f$n=|\sigma|-1\f$ of \f$\sigma\f$ is its number of elements minus \f$1\f$. - * - * A filtration of a simplicial complex is - * a function \f$f:\mathbf{K} \rightarrow \mathbb{R}\f$ satisfying \f$f(\tau)\leq f(\sigma)\f$ whenever - * \f$\tau \subseteq \sigma\f$. Ordering the simplices by increasing filtration values - * (breaking ties so as a simplex appears after its subsimplices of same filtration value) - * provides an indexing scheme. - * - -
Implementations:
- There are two implementation of complexes. The first on is the Simplex_tree data structure. - The simplex tree is an efficient and flexible - data structure for representing general (filtered) simplicial complexes. The data structure - is described in \cite boissonnatmariasimplextreealgorithmica - \image html "Simplex_tree_representation.png" "Simplex tree representation" - - The second one is the Hasse_complex. The Hasse complex is a data structure representing - explicitly all co-dimension 1 incidence relations in a complex. It is consequently faster - when accessing the boundary of a simplex, but is less compact and harder to construct from - scratch. - - * \copyright GNU General Public License v3. - * @{ - */ struct Simplex_tree_options_full_featured; diff --git a/src/common/doc/main_page.h b/src/common/doc/main_page.h index 9146bed1..0983051d 100644 --- a/src/common/doc/main_page.h +++ b/src/common/doc/main_page.h @@ -13,8 +13,8 @@ * The current release of the GUDHI library includes: * * \li Data structures to represent, construct and manipulate simplicial complexes. - * \li Algorithms to compute persistent homology and multi-field persistent homology. - * \li Simplication of simplicial complexes by edge contraction. + * \li Simplification of simplicial complexes by edge contraction. + * \li Algorithms to compute persistent homology persistent homology. * * 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. @@ -266,8 +266,10 @@ make \endverbatim * Simplex_tree/simplex_tree_from_alpha_shapes_3.cpp * \li * Simplex_tree/simplex_tree_from_cliques_of_graph.cpp - * \li - * Persistent_cohomology/alpha_shapes_persistence.cpp + * \li + * Persistent_cohomology/alpha_complex_3d_persistence.cpp + * \li + * Persistent_cohomology/alpha_complex_persistence.cpp * \li * Persistent_cohomology/rips_persistence_via_boundary_matrix.cpp * \li -- cgit v1.2.3