From 1607071fcd9d473eae295693fc97bee8c50d6a11 Mon Sep 17 00:00:00 2001 From: Arnur Nigmetov Date: Tue, 4 Apr 2017 14:20:16 +0200 Subject: Prepare to output real relative error. In Wasserstein distance computation AuctionRunner class now has a field relativeError which contains the relative error which we can guarantee, so if the user asked for 0.1 accuracy, but the result is 0.03 accurate, this information can be retrieved. --- geom_matching/wasserstein/include/auction_runner_gs.h | 2 ++ geom_matching/wasserstein/include/auction_runner_jac.h | 2 ++ 2 files changed, 4 insertions(+) (limited to 'geom_matching/wasserstein/include') diff --git a/geom_matching/wasserstein/include/auction_runner_gs.h b/geom_matching/wasserstein/include/auction_runner_gs.h index 80aa9f0..7968fa9 100644 --- a/geom_matching/wasserstein/include/auction_runner_gs.h +++ b/geom_matching/wasserstein/include/auction_runner_gs.h @@ -79,6 +79,7 @@ public: double getEpsilon() const { return epsilon; } double getWassersteinDistance(); double getWassersteinCost(); + double getRelativeError() const { return relativeError; }; static constexpr int maxIterNum { 25 }; // maximal number of iterations of epsilon-scaling private: // private data @@ -96,6 +97,7 @@ private: double weightAdjConst; double wassersteinDistance; double wassersteinCost; + double relativeError; // to get the 2 best items std::unique_ptr oracle; #ifdef KEEP_UNASSIGNED_ORDERED diff --git a/geom_matching/wasserstein/include/auction_runner_jac.h b/geom_matching/wasserstein/include/auction_runner_jac.h index 22d42b0..524498a 100644 --- a/geom_matching/wasserstein/include/auction_runner_jac.h +++ b/geom_matching/wasserstein/include/auction_runner_jac.h @@ -52,6 +52,7 @@ public: double getEpsilon() const { return epsilon; } double getWassersteinDistance(); double getWassersteinCost(); + double getRelativeError() const { return relativeError; }; static constexpr double epsilonCommonRatio { 5 }; // next epsilon = current epsilon / epsilonCommonRatio static constexpr int maxIterNum { 25 }; // maximal number of iterations of epsilon-scaling private: @@ -69,6 +70,7 @@ private: double wassersteinDistance; double wassersteinCost; std::vector bidTable; + double relativeError; // to get the 2 best items std::unique_ptr oracle; std::list unassignedBidders; -- cgit v1.2.3