summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Bottleneck_distance/include/gudhi/Bottleneck.h5
-rw-r--r--src/Bottleneck_distance/test/bottleneck_chrono.cpp3
2 files changed, 4 insertions, 4 deletions
diff --git a/src/Bottleneck_distance/include/gudhi/Bottleneck.h b/src/Bottleneck_distance/include/gudhi/Bottleneck.h
index 0c9e5ea8..24a31ac1 100644
--- a/src/Bottleneck_distance/include/gudhi/Bottleneck.h
+++ b/src/Bottleneck_distance/include/gudhi/Bottleneck.h
@@ -46,12 +46,11 @@ double bottleneck_distance(const Persistence_diagram1 &diag1, const Persistence_
sd = g.sorted_distances();
long idmin = 0;
long idmax = e==0. ? sd.size() - 1 : g.diameter_bound()/e + 1;
- // alpha can change the complexity
- double alpha = std::pow(idmax, 0.25);
+ double alpha = std::pow(g.size(), 1./5.);
Graph_matching m(g);
Graph_matching biggest_unperfect(g);
while (idmin != idmax) {
- long step = static_cast<long>((idmax - idmin) / alpha);
+ long step = static_cast<long>((idmax - idmin - 1)/alpha);
m.set_r(e == 0. ? sd.at(idmin + step) : e*(idmin + step));
while (m.multi_augment());
//The above while compute a maximum matching (according to the r setted before)
diff --git a/src/Bottleneck_distance/test/bottleneck_chrono.cpp b/src/Bottleneck_distance/test/bottleneck_chrono.cpp
index f51714a2..dcf98460 100644
--- a/src/Bottleneck_distance/test/bottleneck_chrono.cpp
+++ b/src/Bottleneck_distance/test/bottleneck_chrono.cpp
@@ -51,8 +51,9 @@ int main(){
if(i%3==0)
v2.emplace_back(std::max(a,b),std::max(a,b)+y);
}
+ double epsilon = 0.0000000000000001;
std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now();
- double b = bottleneck_distance(v1,v2, 0.00001);
+ double b = bottleneck_distance(v1,v2, epsilon);
std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();
typedef std::chrono::duration<int,std::milli> millisecs_t;
millisecs_t duration(std::chrono::duration_cast<millisecs_t>(end-start));