summaryrefslogtreecommitdiff
path: root/src/Persistent_cohomology/include
diff options
context:
space:
mode:
authorvrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-01-28 15:43:19 +0000
committervrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-01-28 15:43:19 +0000
commitc01198fed2d886c45e007b5532c56403fc465c78 (patch)
tree8894d34527f3d342c26271af0cf915f6a962080b /src/Persistent_cohomology/include
parente8e889c52c96a3055a1237c389186cb08b0f6708 (diff)
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
Diffstat (limited to 'src/Persistent_cohomology/include')
-rw-r--r--src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h4
-rw-r--r--src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Field_Zp.h12
-rw-r--r--src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Multi_field.h20
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<Element> 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<Element, Element>(
(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<uint16_t> primes_; // all the characteristics of the fields
+ std::vector<int> primes_; // all the characteristics of the fields
std::vector<Element> Uvect_;
Element mult_id_all;
const Element add_id_all;