summaryrefslogtreecommitdiff
path: root/src/Witness_complex/example
diff options
context:
space:
mode:
authorskachano <skachano@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-09-28 12:33:22 +0000
committerskachano <skachano@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-09-28 12:33:22 +0000
commitd16822ea1d3cedea66dcddd390becdd4cbb557bb (patch)
treeb1c592e415f43c1be425608db861e5348e61dcf3 /src/Witness_complex/example
parent1c09c91ddf4d38196a91bbff5ae432fb13be6762 (diff)
parenta138c9ed4fb9770a3612ff4ee0f914942bbe9724 (diff)
Merged trunk into relaxed witness branch
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/relaxed-witness@1579 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: a9ca2e7a968ebf4bb80cfa795965ae78511e8dd4
Diffstat (limited to 'src/Witness_complex/example')
-rw-r--r--src/Witness_complex/example/CMakeLists.txt47
-rw-r--r--src/Witness_complex/example/witness_complex_from_file.cpp20
-rw-r--r--src/Witness_complex/example/witness_complex_sphere.cpp20
3 files changed, 12 insertions, 75 deletions
diff --git a/src/Witness_complex/example/CMakeLists.txt b/src/Witness_complex/example/CMakeLists.txt
index d6a958b7..4d67e0d0 100644
--- a/src/Witness_complex/example/CMakeLists.txt
+++ b/src/Witness_complex/example/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 2.6)
-project(GUDHIWitnessComplex)
+project(Witness_complex_examples)
# A simple example
add_executable( witness_complex_from_file witness_complex_from_file.cpp )
@@ -7,51 +7,10 @@ project(GUDHIWitnessComplex)
if(CGAL_FOUND)
if (NOT CGAL_VERSION VERSION_LESS 4.6.0)
- message(STATUS "CGAL version: ${CGAL_VERSION}.")
-
- include( ${CGAL_USE_FILE} )
- # In CMakeLists.txt, when include(${CGAL_USE_FILE}), CXX_FLAGS are overwritten.
- # cf. http://doc.cgal.org/latest/Manual/installation.html#title40
- # A workaround is to add "-std=c++11" again.
- # A fix would be to use https://cmake.org/cmake/help/v3.1/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html
- # or even better https://cmake.org/cmake/help/v3.1/variable/CMAKE_CXX_STANDARD.html
- # but it implies to use cmake version 3.1 at least.
- if(NOT MSVC)
- include(CheckCXXCompilerFlag)
- CHECK_CXX_COMPILER_FLAG(-std=c++11 COMPILER_SUPPORTS_CXX11)
- if(COMPILER_SUPPORTS_CXX11)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
- endif()
- endif()
- # - End of workaround
-
- find_package(Eigen3 3.1.0)
if (EIGEN3_FOUND)
- message(STATUS "Eigen3 version: ${EIGEN3_VERSION}.")
- include( ${EIGEN3_USE_FILE} )
- message(STATUS "Eigen3 use file: ${EIGEN3_USE_FILE}.")
- include_directories (BEFORE "../../include")
-
add_executable ( witness_complex_sphere witness_complex_sphere.cpp )
target_link_libraries(witness_complex_sphere ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY})
add_test( witness_complex_sphere_10 ${CMAKE_CURRENT_BINARY_DIR}/witness_complex_sphere 10)
- add_executable ( relaxed_witness_persistence relaxed_witness_persistence.cpp )
- target_link_libraries(relaxed_witness_persistence ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY})
- add_test( relaxed_witness_persistence_10 ${CMAKE_CURRENT_BINARY_DIR}/relaxed_witness_persistence 10)
- add_executable ( a0_persistence a0_persistence.cpp )
- target_link_libraries(a0_persistence ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY})
- add_test( a0_persistence_10 ${CMAKE_CURRENT_BINARY_DIR}/a0_persistence 10)
- add_executable ( bench_rwit bench_rwit.cpp )
- target_link_libraries(bench_rwit ${Boost_SYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY})
-
- add_executable ( relaxed_delaunay relaxed_delaunay.cpp )
- target_link_libraries(relaxed_delaunay ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY})
- add_test( relaxed_delaunay_10 ${CMAKE_CURRENT_BINARY_DIR}/relaxed_delaunay 10)
- add_executable ( generate_torus generate_torus.cpp )
- else()
- message(WARNING "Eigen3 not found. Version 3.1.0 is required for witness_complex_sphere example.")
- endif()
- else()
- message(WARNING "CGAL version: ${CGAL_VERSION} is too old to compile witness_complex_sphere example. Version 4.6.0 is required.")
- endif ()
+ endif(EIGEN3_FOUND)
+ endif (NOT CGAL_VERSION VERSION_LESS 4.6.0)
endif()
diff --git a/src/Witness_complex/example/witness_complex_from_file.cpp b/src/Witness_complex/example/witness_complex_from_file.cpp
index 77109512..53207ad2 100644
--- a/src/Witness_complex/example/witness_complex_from_file.cpp
+++ b/src/Witness_complex/example/witness_complex_from_file.cpp
@@ -34,14 +34,9 @@
#include <string>
#include <vector>
-using namespace Gudhi;
-using namespace Gudhi::witness_complex;
-
typedef std::vector< Vertex_handle > typeVectorVertex;
typedef std::vector< std::vector <double> > Point_Vector;
-typedef Witness_complex< Simplex_tree<> > WitnessComplex;
-
/**
* \brief Customized version of read_points
* which takes into account a possible nbP first line
@@ -68,17 +63,6 @@ read_points_cust(std::string file_name, std::vector< std::vector< double > > & p
in_file.close();
}
-/** Write a gnuplot readable file.
- * Data range is a random access range of pairs (arg, value)
- */
-template < typename Data_range >
-void write_data(Data_range & data, std::string filename) {
- std::ofstream ofs(filename, std::ofstream::out);
- for (auto entry : data)
- ofs << entry.first << ", " << entry.second << "\n";
- ofs.close();
-}
-
int main(int argc, char * const argv[]) {
if (argc != 3) {
std::cerr << "Usage: " << argv[0]
@@ -91,7 +75,7 @@ int main(int argc, char * const argv[]) {
clock_t start, end;
// Construct the Simplex Tree
- Simplex_tree<> simplex_tree;
+ Gudhi::Simplex_tree<> simplex_tree;
// Read the point file
Point_Vector point_vector;
@@ -109,7 +93,7 @@ int main(int argc, char * const argv[]) {
// Compute witness complex
start = clock();
- WitnessComplex(knn, simplex_tree, nbL, point_vector[0].size());
+ Gudhi::witness_complex::witness_complex(knn, nbL, point_vector[0].size(), simplex_tree);
end = clock();
std::cout << "Witness complex took "
<< static_cast<double>(end - start) / CLOCKS_PER_SEC << " s. \n";
diff --git a/src/Witness_complex/example/witness_complex_sphere.cpp b/src/Witness_complex/example/witness_complex_sphere.cpp
index 1ff35bff..b26c9f36 100644
--- a/src/Witness_complex/example/witness_complex_sphere.cpp
+++ b/src/Witness_complex/example/witness_complex_sphere.cpp
@@ -39,13 +39,6 @@
#include "generators.h"
-using namespace Gudhi;
-using namespace Gudhi::witness_complex;
-
-typedef std::vector< Vertex_handle > typeVectorVertex;
-
-typedef Witness_complex< Simplex_tree<> > WitnessComplex;
-
/** Write a gnuplot readable file.
* Data range is a random access range of pairs (arg, value)
*/
@@ -60,15 +53,15 @@ void write_data(Data_range & data, std::string filename) {
int main(int argc, char * const argv[]) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0]
- << " nbL \n";
+ << " number_of_landmarks \n";
return 0;
}
- int nbL = atoi(argv[1]);
+ int number_of_landmarks = atoi(argv[1]);
clock_t start, end;
// Construct the Simplex Tree
- Simplex_tree<> simplex_tree;
+ Gudhi::Simplex_tree<> simplex_tree;
std::vector< std::pair<int, double> > l_time;
@@ -82,14 +75,15 @@ int main(int argc, char * const argv[]) {
// Choose landmarks
start = clock();
std::vector<std::vector< int > > knn;
- Gudhi::witness_complex::landmark_choice_by_random_point(point_vector, nbL, knn);
+ Gudhi::witness_complex::landmark_choice_by_random_point(point_vector, number_of_landmarks, knn);
// Compute witness complex
- WitnessComplex(knn, simplex_tree, nbL, point_vector[0].size());
+ Gudhi::witness_complex::witness_complex(knn, number_of_landmarks, point_vector[0].size(), simplex_tree);
end = clock();
double time = static_cast<double>(end - start) / CLOCKS_PER_SEC;
- std::cout << "Witness complex for " << nbL << " landmarks took "
+ std::cout << "Witness complex for " << number_of_landmarks << " landmarks took "
<< time << " s. \n";
+ std::cout << "Number of simplices is: " << simplex_tree.num_simplices() << "\n";
l_time.push_back(std::make_pair(nbP, time));
}
write_data(l_time, "w_time.dat");