From ff6ad8b959f6c20380f3d68ebb1bbbf1224adcfd Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Tue, 13 Oct 2015 15:34:28 +0000 Subject: Manual merge of skb_simplex_insertion after last trunk big modifications on Skbl git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/skb_simplex_insertion_merge@855 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: d7f7721e2963de439a28040196423d4c0df07d3f --- src/Contraction/include/gudhi/Edge_contraction.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/Contraction/include/gudhi/Edge_contraction.h') diff --git a/src/Contraction/include/gudhi/Edge_contraction.h b/src/Contraction/include/gudhi/Edge_contraction.h index dfce8d1b..b996d9fb 100644 --- a/src/Contraction/include/gudhi/Edge_contraction.h +++ b/src/Contraction/include/gudhi/Edge_contraction.h @@ -158,7 +158,7 @@ void build_rips(ComplexType& complex, double offset){ for (auto p = vertices.begin(); p != vertices.end(); ++p) for (auto q = p; ++q != vertices.end(); ) if (eucl_distance(complex.point(*p), complex.point(*q)) < 2 * offset) - complex.add_edge(*p,*q); + complex.add_edge_without_blockers(*p,*q); } int main (int argc, char *argv[]) @@ -194,7 +194,7 @@ int main (int argc, char *argv[]) contractor.contract_edges(); std::cout << "Counting final number of simplices \n"; - unsigned num_simplices = std::distance(complex.simplex_range().begin(),complex.simplex_range().end()); + unsigned num_simplices = std::distance(complex.star_simplex_range().begin(),complex.star_simplex_range().end()); std::cout << "Final complex has "<< complex.num_vertices()<<" vertices, "<< -- cgit v1.2.3 From 3b22ae31478387efd64ae5f185128857f17ca9ee Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Fri, 23 Oct 2015 09:40:36 +0000 Subject: generate_version excludes bottleneck for version 1.2.0 - to be removed for 1.3.0 generate_version copies concept for doxygen purpose Contact gudhi-users on skbl and contraction page Doxygen warning fixes Doxygen Software section git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/trunk@871 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: bd7e252c2d0528f4bbc40c33a9221e1d6b386510 --- scripts/generate_version.sh | 10 ++++- src/Contraction/include/gudhi/Edge_contraction.h | 2 +- src/Doxyfile | 6 +-- src/Simplex_tree/concept/SimplexTreeOptions.h | 6 +-- .../include/gudhi/Skeleton_blocker.h | 2 +- .../include/gudhi/Skeleton_blocker_complex.h | 4 +- src/common/doc/main_page.h | 51 +++++++++++++++++++++- 7 files changed, 68 insertions(+), 13 deletions(-) (limited to 'src/Contraction/include/gudhi/Edge_contraction.h') diff --git a/scripts/generate_version.sh b/scripts/generate_version.sh index 43a54c1c..323396dc 100755 --- a/scripts/generate_version.sh +++ b/scripts/generate_version.sh @@ -61,12 +61,13 @@ cp $ROOT_DIR/GUDHIVersion.cmake.in $VERSION_DIR PACKAGE_INC_DIR="/include" #PACKAGE_SRC_DIR="/source" PACKAGE_EX_DIR="/example" +PACKAGE_CONCEPT_DIR="/concept" PACKAGE_DOC_DIR="/doc" for package in `ls $ROOT_DIR/src/` do - echo $package - if [ -d "$ROOT_DIR/src/$package" ] + if [ -d "$ROOT_DIR/src/$package" ] && [ $package != "Bottleneck" ] then + echo $package if [ "$package" == "cmake" ] then # SPECIFIC FOR CMAKE MODULES @@ -91,6 +92,11 @@ do mkdir -p $VERSION_DIR$PACKAGE_EX_DIR/$package cp -R $ROOT_DIR/src/$package$PACKAGE_EX_DIR/* $VERSION_DIR$PACKAGE_EX_DIR/$package fi + if [ -d "$ROOT_DIR/src/$package$PACKAGE_CONCEPT_DIR" ] + then + mkdir -p $VERSION_DIR$PACKAGE_CONCEPT_DIR/$package + cp -R $ROOT_DIR/src/$package$PACKAGE_CONCEPT_DIR/* $VERSION_DIR$PACKAGE_CONCEPT_DIR/$package + fi if [ -d "$ROOT_DIR/src/$package$PACKAGE_DOC_DIR" ] then mkdir -p $VERSION_DIR$PACKAGE_DOC_DIR/$package diff --git a/src/Contraction/include/gudhi/Edge_contraction.h b/src/Contraction/include/gudhi/Edge_contraction.h index dfce8d1b..f3076057 100644 --- a/src/Contraction/include/gudhi/Edge_contraction.h +++ b/src/Contraction/include/gudhi/Edge_contraction.h @@ -226,7 +226,7 @@ Time to simplify and enumerate simplices: \copyright GNU General Public License v3. -\verbatim Contact: David Salinas, david.salinas@inria.fr \endverbatim +\verbatim Contact: gudhi-users@lists.gforge.inria.fr \endverbatim */ /** @} */ // end defgroup } // namespace contraction diff --git a/src/Doxyfile b/src/Doxyfile index 85c496a8..084a9abb 100644 --- a/src/Doxyfile +++ b/src/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = "Gudhi" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "1.1.0" +PROJECT_NUMBER = "1.2.0" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -1338,7 +1338,7 @@ ECLIPSE_DOC_ID = org.doxygen.Project # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -DISABLE_INDEX = NO +DISABLE_INDEX = YES # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag @@ -1355,7 +1355,7 @@ DISABLE_INDEX = NO # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -GENERATE_TREEVIEW = NO +GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. diff --git a/src/Simplex_tree/concept/SimplexTreeOptions.h b/src/Simplex_tree/concept/SimplexTreeOptions.h index a50a2bf1..add3ebdd 100644 --- a/src/Simplex_tree/concept/SimplexTreeOptions.h +++ b/src/Simplex_tree/concept/SimplexTreeOptions.h @@ -34,8 +34,8 @@ struct SimplexTreeOptions { /// Must be a signed integer type. typedef SimplexKey Simplex_key; /// If true, each simplex has extra storage for one `Simplex_key`. Necessary for `Persistent_cohomology`. - static constexpr bool store_key; - /// If true, each simplex has extra storage for one `Filtration_value`, and this value is propagated by operations like `Gudhi::Simplex_tree::expansion`. Without it, `Persistent_cohomology` degenerates to computing usual (non-persistent) cohomology. - static constexpr bool store_filtration; + static const bool store_key; + /// If true, each simplex has extra storage for one `Filtration_value`, and this value is propagated by operations like `Gudhi::Simplex_tree::expansion`. Without it, `Persistent_cohomology` degenerates to computing usual (non-persistent) cohomology. + static const bool store_filtration; }; diff --git a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h index 792a7994..3be480fd 100644 --- a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h +++ b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h @@ -241,7 +241,7 @@ their collaboration to write the two initial papers \copyright GNU General Public License v3. -\verbatim Contact: David Salinas, david.salinas@inria.fr \endverbatim +\verbatim Contact: gudhi-users@lists.gforge.inria.fr \endverbatim */ /** @} */ // end defgroup diff --git a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker_complex.h b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker_complex.h index 07f371a2..d26d12b0 100644 --- a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker_complex.h +++ b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker_complex.h @@ -1018,7 +1018,7 @@ class Skeleton_blocker_complex { } //@} - /** @Simplification operations + /** @name Simplification operations */ //@{ @@ -1131,7 +1131,7 @@ class Skeleton_blocker_complex { } //@} - /** @Edge contraction operations + /** @name Edge contraction operations */ //@{ diff --git a/src/common/doc/main_page.h b/src/common/doc/main_page.h index 315aa0ac..d1060740 100644 --- a/src/common/doc/main_page.h +++ b/src/common/doc/main_page.h @@ -7,7 +7,7 @@ The Gudhi library (Geometric Understanding in Higher Dimensions) is a generic C+ topological analysis of high-dimensional data whose goal is to provide robust, efficient, flexible and easy to use implementations of state-of-the-art algorithms and data structures for computational topology. -This library is part of the Gudhi project. +This library is part of the Gudhi project. The current release of the library allows to use several data-structures for simplicial complexes : simplex tree, Hasse diagram or skeleton-blocker. Several operations can then be done on top of these @@ -70,3 +70,52 @@ make \verbatim Contact: gudhi-users@lists.gforge.inria.fr \endverbatim */ + +/*! \page Software Software + * \tableofcontents + * \section SoftwareIntroduction Introduction + * The GUDHI open source library will provide the central data structures and algorithms that underly applications in geometry understanding in higher dimensions. It is intended to both help the development of new algorithmic solutions inside and outside the project, and to facilitate the transfer of results in applied fields. + * + * The current release of the GUDHI library includes: + * + * – Data structures to represent, construct and manipulate simplicial complexes. + * + * – Algorithms to compute persistent homology and multi-field persistent homology. + * + * – Simplification methods via implicit representations. + * + * + * The library is available here and the documentation is + * available at this webpage. + * + * \section ReleaseHistory Release history + * + * – ??-??-2015; release v.1.2.0, Skeleton-Blocker simplex insertion, GudhUI (Gudhi Qt demo), Simplex tree coface function, Clang build issue fix. + * + * – 12-18-2014; release v.1.1, Skeleton-Blocker data-structure, simplification package, additional examples for topological persistence. + * + * – 08-12-2014; release v. 1.0.2, initialize simplex keys in initialize_filtration in Simplex_tree + * + * – 07-11-2014: release v. 1.0.1, bug fix in summing columns in Persistent_cohomology + * + * – 06-23-2014: release v. 1.0 + * + * \section Citation How to cite Gudhi + * Each Gudhi module (either data structures or algorithms) has an author section. + * + * Thank you to refer to this section, and to cite the author(s) of all the module you are using. + * + * \section Soon Coming soon + * + * – Alpha complex. + * + * – Bottleneck distance. + * + * – Zig zag persistence. + * + * – Witness complex. + * + * – Tangential complex. + * + * – Hard clustering. +*/ -- cgit v1.2.3 From 393daefc5078498b472a28ed0763c34b8351ba87 Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Tue, 3 Nov 2015 15:39:42 +0000 Subject: Doxygen fix after doc review git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/trunk@882 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: e702746a6f8bdc7bb06bee2710ebe60dff504c69 --- src/Contraction/include/gudhi/Edge_contraction.h | 2 +- src/common/doc/main_page.h | 175 +++++++++-------------- 2 files changed, 71 insertions(+), 106 deletions(-) (limited to 'src/Contraction/include/gudhi/Edge_contraction.h') diff --git a/src/Contraction/include/gudhi/Edge_contraction.h b/src/Contraction/include/gudhi/Edge_contraction.h index f3076057..349bb7d8 100644 --- a/src/Contraction/include/gudhi/Edge_contraction.h +++ b/src/Contraction/include/gudhi/Edge_contraction.h @@ -37,7 +37,7 @@ namespace Gudhi { namespace contraction { -/** \defgroup contr Contraction +/** \defgroup contr Edge contraction \author David Salinas diff --git a/src/common/doc/main_page.h b/src/common/doc/main_page.h index 43297b45..730b74df 100644 --- a/src/common/doc/main_page.h +++ b/src/common/doc/main_page.h @@ -1,101 +1,24 @@ -/** -\mainpage - -\image html "Gudhi_banner.jpg" "" width=20cm - -The Gudhi library (Geometric Understanding in Higher Dimensions) is a generic C++ library for -topological analysis of high-dimensional data whose goal is to provide robust, efficient, flexible and easy to use -implementations of -state-of-the-art algorithms and data structures for computational topology. -This library is part of the Gudhi project. - -The current release of the library allows to use several data-structures for simplicial complexes : -simplex tree, Hasse diagram or skeleton-blocker. Several operations can then be done on top of these -representations such as persistent homology computation or simplification. -All data-structures are generic and several of their aspects (such as stored elements, policies) -can be parameterized via template classes. -We refer to -\cite gudhilibrary_ICMS14 -for a detailed description of the design of the library. - -\section installation Gudhi installation - -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. - - -\section compiling Compiling - -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 2013. - - -\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. - -The following examples require the GNU Multiple Precision Arithmetic Library (GMP) -and will not be built if GMP is not installed: - - Persistent_cohomology/rips_multifield_persistence - -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 following example requires the Computational Geometry Algorithms Library (CGAL) -and will not be built if CGAL is not installed: - - GudhUI - - Persistent_cohomology/alpha_shapes_persistence - - Simplex_tree/simplex_tree_from_alpha_shapes_3 - -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 - -\subsection demos Demos and examples - -To build the demos and libraries, run the following commands in a terminal: - -\verbatim -cd /path-to-gudhi/ -mkdir build -cd build/ -cmake .. -make -\endverbatim - -\subsection testsuites Test suites - -To test your build, run the following command in a terminal: - -\verbatim -make test -\endverbatim - -\details - -\copyright GNU General Public License v3. -\verbatim Contact: gudhi-users@lists.gforge.inria.fr \endverbatim - -*/ - -/*! \page Software Software - * \tableofcontents - * \section SoftwareIntroduction Introduction - * The GUDHI library is a C++ open source library **intended to provide** the central data structures and algorithms - * that underly applications in Geometric and Topological Data Analysis - * (TDA). The GUDHI - * library is developed as part of the GUDHI - * project supported by the European Research Council. The GUDHI library can both help the development of new - * algorithmic solutions and to facilitate the transfer of state of the art results and new applications of TDA. +/*! \mainpage + * \image html "Gudhi_banner.jpg" "" width=20cm + * + * \section Introduction Introduction + * The Gudhi library (Geometric Understanding in Higher Dimensions) is a generic open source C++ library for + * Computational Topology and Topological Data Analysis + * (TDA). + * The GUDHI library is developed as part of the + * GUDHI project supported by the European + * Research Council. 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 Algorithms to compute persistent homology and multi-field persistent homology. - * \li Simplification methods via implicit representations. + * \li Simplication of simplicial complexes by edge contraction. * + * 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. * * The library is available here * and the documentation is available at this @@ -103,9 +26,11 @@ make test * * The library comes with data sets, \ref demos and \ref testsuites. * - * \subsection People People + * Gudhi is also accessible though the + * R package TDA + * (Statistical Tools for Topological Data Analysis). * - * The development of the GUDHI library is steered by an Editorial Board, which is responsible for guiding the + * The development of the GUDHI library is steered by an Editorial Board, who is responsible for guiding the * development of the library, developers, and the user community. * * The Editorial board is composed of: @@ -116,22 +41,62 @@ make test * \li Clément Jamin | INRIA Sophia Antipolis - Méditerranée * \li Vincent Rouvreau | INRIA Saclay - Ile de France * +*/ + +/*! \page installation Gudhi installation + * 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. + * + * \section compiling Compiling + * 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 2013. + * + * \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. + * + * The following example requires the GNU Multiple Precision Arithmetic + * Library (GMP) and will not be built if GMP is not installed: + * \li Persistent_cohomology/rips_multifield_persistence + * 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 following examples require the Computational Geometry Algorithms + * Library (CGAL) and will not be built if CGAL is not installed: + * \li GudhUI + * \li Persistent_cohomology/alpha_shapes_persistence + * \li Simplex_tree/simplex_tree_from_alpha_shapes_3 + * 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 + * + * \subsection demos Demos and examples + * To build the demos and libraries, run the following commands in a terminal: + * \verbatim + * cd /path-to-gudhi/ + * mkdir build + * cd build/ + * cmake .. + * make + * \endverbatim + * + * \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 * - * Gudhi is **open** to external contributions. If you want to join our development team, please contact us. + * Gudhi is open to external contributions. If you want to join our development team, please contact us. * - * - * \section ReleaseHistory Release history - * - * \li 24-10-2015; release v.1.2.0, GudhUI (Gudhi Qt demo), Simplex tree coface function, Clang build issue fix. - * \li 18-12-2014; release v.1.1, Skeleton-Blocker data-structure, simplification package, additional examples for topological persistence. - * \li 08-12-2014; release v. 1.0.2, initialize simplex keys in initialize_filtration in Simplex_tree - * \li 07-11-2014: release v. 1.0.1, bug fix in summing columns in Persistent_cohomology - * \li 23-06-2014: release v. 1.0 - * - * \section Upcoming Upcoming +*/ + +/*! \page Upcoming Upcoming * * The library is under active development. New packages to be released next include: * \li Alpha complex. -- cgit v1.2.3