#!/usr/bin/env python import gudhi import numpy from functools import reduce import argparse import operator """This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT. See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details. Author(s): Vincent Rouvreau Copyright (C) 2016 Inria Modification(s): - YYYY/MM Author: Description of the modification """ __author__ = "Vincent Rouvreau" __copyright__ = "Copyright (C) 2016 Inria" __license__ = "GPL v3" parser = argparse.ArgumentParser(description='Random cubical complex.', epilog='Example: ' './random_cubical_complex_persistence_example.py' ' 10 10 10 - Constructs a random cubical ' 'complex in a dimension [10, 10, 10] (aka. ' '1000 random top dimensional cells).') parser.add_argument('dimension', type=int, nargs="*", help='Cubical complex dimensions') args = parser.parse_args() dimension_multiplication = reduce(operator.mul, args.dimension, 1) if dimension_multiplication > 1: print("#####################################################################") print("CubicalComplex creation") cubical_complex = gudhi.CubicalComplex(dimensions=args.dimension, top_dimensional_cells = numpy.random.rand(dimension_multiplication)) print("persistence(homology_coeff_field=2, min_persistence=0)=") print(cubical_complex.persistence(homology_coeff_field=2, min_persistence=0)) print("betti_numbers()=") print(cubical_complex.betti_numbers())