#include <gudhi/Skeleton_blocker.h>
#include <gudhi/Clock.h>
 
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <fstream>
#include <sstream>
 
typedef Complex::Simplex Simplex;
 
Complex build_complete_complex(
int n) {
 
  
  for (int i = 0; i < n; i++)
  for (int i = 0; i < n; i++)
    for (int j = 0; j < i; j++)
  return complex;
}
 
int main(int argc, char *argv[]) {
  Gudhi::Clock skbl_chrono("Time to build the complete complex, enumerate simplices and Euler Characteristic");
  const int n = 15;
 
  
  Complex complex(build_complete_complex(n));
 
 
  
  
  
  unsigned num_vertices = 0;
  for (auto v : complex.vertex_range()) {
    std::clog << "Vertex " << v << std::endl;
    ++num_vertices;
  }
 
  
  auto edges = complex.edge_range();
  unsigned num_edges = std::distance(edges.begin(), edges.end());
 
  unsigned euler = 0;
  unsigned num_simplices = 0;
  
  
  
  for (const Simplex & s : complex.complex_simplex_range()) {
    ++num_simplices;
    if (s.dimension() % 2 == 0)
      euler += 1;
    else
      euler -= 1;
  }
  std::clog << "Saw " << num_vertices << " vertices, " << num_edges << " edges and " << num_simplices << " simplices"
      << std::endl;
  std::clog << "The Euler Characteristic is " << euler << std::endl;
  std::clog << skbl_chrono;
  return EXIT_SUCCESS;
}
Abstract Simplicial Complex represented with a skeleton/blockers pair.
Definition: Skeleton_blocker_complex.h:51
 
Edge_handle add_edge_without_blockers(Vertex_handle a, Vertex_handle b)
Adds an edge between vertices a and b without blockers.
Definition: Skeleton_blocker_complex.h:566
 
Class that represents a geometric complex that can be simplified. The class allows access to points o...
Definition: Skeleton_blocker_geometric_complex.h:29
 
Vertex_handle add_vertex()
Add a vertex to the complex with a default constructed associated point.
Definition: Skeleton_blocker_geometric_complex.h:85
 
Simple traits that is a model of SkeletonBlockerDS and can be passed as a template argument to Skelet...
Definition: Skeleton_blocker_simple_traits.h:29
 
Definition: SkeletonBlockerDS.h:56
 
Handle type for the vertices of a cell complex.
Definition: VertexHandle.h:15