From c01198fed2d886c45e007b5532c56403fc465c78 Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Wed, 28 Jan 2015 15:43:19 +0000 Subject: Rollback uin16_t to int git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/trunk@433 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 6f25b6c7263c3eca9aa5579a4a5e6eedd9dd0464 --- .../include/gudhi/Persistent_cohomology.h | 4 ++-- .../include/gudhi/Persistent_cohomology/Field_Zp.h | 12 ++++++------ .../gudhi/Persistent_cohomology/Multi_field.h | 20 ++++++++++---------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h index bf8c65b9..0f3e689b 100644 --- a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h +++ b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h @@ -299,11 +299,11 @@ class Persistent_cohomology { public: /** \brief Initializes the coefficient field.*/ - void init_coefficients(uint16_t charac) { + void init_coefficients(int charac) { coeff_field_.init(charac); } /** \brief Initializes the coefficient field for multi-field persistent homology.*/ - void init_coefficients(uint16_t charac_min, uint16_t charac_max) { + void init_coefficients(int charac_min, int charac_max) { coeff_field_.init(charac_min, charac_max); } diff --git a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Field_Zp.h b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Field_Zp.h index 419bd2eb..5d0c9f9f 100644 --- a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Field_Zp.h +++ b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Field_Zp.h @@ -46,8 +46,8 @@ class Field_Zp { add_id_all(0) { } - void init(uint16_t charac) { - assert(charac != 0); // division by zero + void init(int charac) { + assert(charac > 0); // division by zero + non negative values Prime = charac; inverse_.clear(); inverse_.reserve(charac); @@ -62,7 +62,7 @@ class Field_Zp { /** Set x <- x + w * y*/ Element plus_times_equal(const Element& x, const Element& y, const Element& w) { - assert(Prime != 0); // division by zero + assert(Prime > 0); // division by zero + non negative values Element result = (x + w * y) % Prime; if (result < 0) result += Prime; @@ -98,18 +98,18 @@ class Field_Zp { /** Returns -x * y.*/ Element times_minus(Element x, Element y) { - assert(Prime != 0); // division by zero + assert(Prime > 0); // division by zero + non negative values Element out = (-x * y) % Prime; return (out < 0) ? out + Prime : out; } /** \brief Returns the characteristic \f$p\f$ of the field.*/ - const uint16_t& characteristic() const { + const int& characteristic() const { return Prime; } private: - uint16_t Prime; + int Prime; /** Property map Element -> Element, which associate to an element its inverse in the field.*/ std::vector inverse_; const Element mult_id_all; diff --git a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Multi_field.h b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Multi_field.h index 91937c65..b43bb16e 100644 --- a/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Multi_field.h +++ b/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Multi_field.h @@ -52,7 +52,7 @@ class Multi_field { /* Initialize the multi-field. The generation of prime numbers might fail with * a very small probability.*/ - void init(uint16_t min_prime, uint16_t max_prime) { + void init(int min_prime, int max_prime) { if (max_prime < 2) { std::cerr << "There is no prime less than " << max_prime << std::endl; } @@ -61,7 +61,7 @@ class Multi_field { << std::endl; } // fill the list of prime numbers - uint16_t curr_prime = min_prime; + int curr_prime = min_prime; mpz_t tmp_prime; mpz_init_set_ui(tmp_prime, min_prime); // test if min_prime is prime @@ -88,7 +88,7 @@ class Multi_field { Element Ui; Element tmp_elem; for (auto p : primes_) { - assert(p != 0); // division by zero + assert(p > 0); // division by zero + non negative values tmp_elem = prod_characteristics_ / p; // Element tmp_elem_bis = 10; mpz_powm_ui(tmp_elem.get_mpz_t(), tmp_elem.get_mpz_t(), p - 1, @@ -97,7 +97,7 @@ class Multi_field { } mult_id_all = 0; for (auto uvect : Uvect_) { - assert(prod_characteristics_ != 0); // division by zero + assert(prod_characteristics_ > 0); // division by zero + non negative values mult_id_all = (mult_id_all + uvect) % prod_characteristics_; } } @@ -120,10 +120,10 @@ class Multi_field { return multiplicative_identity(); } - assert(prod_characteristics_ != 0); // division by zero + assert(prod_characteristics_ > 0); // division by zero + non negative values Element mult_id = 0; for (unsigned int idx = 0; idx < primes_.size(); ++idx) { - assert(primes_[idx] != 0); // division by zero + assert(primes_[idx] > 0); // division by zero + non negative values if ((Q % primes_[idx]) == 0) { mult_id = (mult_id + Uvect_[idx]) % prod_characteristics_; } @@ -155,19 +155,19 @@ class Multi_field { Element inv_qt; mpz_invert(inv_qt.get_mpz_t(), x.get_mpz_t(), QT.get_mpz_t()); - assert(prod_characteristics_ != 0); // division by zero + assert(prod_characteristics_ > 0); // division by zero + non negative values return std::pair( (inv_qt * multiplicative_identity(QT)) % prod_characteristics_, QT); } /** Returns -x * y.*/ Element times_minus(const Element& x, const Element& y) { - assert(prod_characteristics_ != 0); // division by zero + assert(prod_characteristics_ > 0); // division by zero + non negative values return prod_characteristics_ - ((x * y) % prod_characteristics_); } /** Set x <- x + w * y*/ Element plus_times_equal(const Element& x, const Element& y, const Element& w) { - assert(prod_characteristics_ != 0); // division by zero + assert(prod_characteristics_ > 0); // division by zero + non negative values Element result = (x + w * y) % prod_characteristics_; if (result < 0) result += prod_characteristics_; @@ -176,7 +176,7 @@ class Multi_field { Element prod_characteristics_; // product of characteristics of the fields // represented by the multi-field class - std::vector primes_; // all the characteristics of the fields + std::vector primes_; // all the characteristics of the fields std::vector Uvect_; Element mult_id_all; const Element add_id_all; -- cgit v1.2.3