summaryrefslogtreecommitdiff
path: root/src/Persistence_representations
diff options
context:
space:
mode:
authormcarrier <mcarrier@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2018-07-03 05:52:22 +0000
committermcarrier <mcarrier@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2018-07-03 05:52:22 +0000
commit0c372ac3217ef31607c25266ff4394b5fa1ca2a8 (patch)
treee7c7ea46afe96ae51117e869ba6d958f57669105 /src/Persistence_representations
parentd221f79cfb7d84941d791835e52fa4a596269cc6 (diff)
corrected test units
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/kernels@3662 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 5b37dde84d00538ff15b7e638ba1f2d6800573c0
Diffstat (limited to 'src/Persistence_representations')
-rw-r--r--src/Persistence_representations/include/gudhi/common_persistence_representations.h2
-rw-r--r--src/Persistence_representations/test/kernels.cpp13
2 files changed, 8 insertions, 7 deletions
diff --git a/src/Persistence_representations/include/gudhi/common_persistence_representations.h b/src/Persistence_representations/include/gudhi/common_persistence_representations.h
index 024c99ec..66ed3bf8 100644
--- a/src/Persistence_representations/include/gudhi/common_persistence_representations.h
+++ b/src/Persistence_representations/include/gudhi/common_persistence_representations.h
@@ -49,7 +49,7 @@ using Weight = std::function<double (std::pair<double, double>) >;
using Kernel = std::function<double (std::pair<double, double>, std::pair<double, double> )>;
Kernel Gaussian_kernel(double sigma){
- return [=](std::pair<double, double> p, std::pair<double, double> q){return std::exp( -((p.first-q.first)*(p.first-q.first) + (p.second-q.second)*(p.second-q.second)) / (sigma*sigma) );};
+ return [=](std::pair<double, double> p, std::pair<double, double> q){return (1.0 / (std::sqrt(2*pi)*sigma)) * std::exp( -((p.first-q.first)*(p.first-q.first) + (p.second-q.second)*(p.second-q.second)) / (2*sigma*sigma) );};
}
Kernel polynomial_kernel(double c, double d){
diff --git a/src/Persistence_representations/test/kernels.cpp b/src/Persistence_representations/test/kernels.cpp
index 9db19123..c95e8086 100644
--- a/src/Persistence_representations/test/kernels.cpp
+++ b/src/Persistence_representations/test/kernels.cpp
@@ -29,21 +29,22 @@
#include <string>
#include <vector>
#include <algorithm> // std::max
+#include <gudhi/Persistence_heat_maps.h>
#include <gudhi/common_persistence_representations.h>
-#include <gudhi/Weight_functions.h>
-#include <gudhi/Persistence_weighted_gaussian.h>
#include <gudhi/Sliced_Wasserstein.h>
#include <gudhi/distance_functions.h>
#include <gudhi/reader_utils.h>
+using constant_scaling_function = Gudhi::Persistence_representations::constant_scaling_function;
using SW = Gudhi::Persistence_representations::Sliced_Wasserstein;
-using PWG = Gudhi::Persistence_representations::Persistence_weighted_gaussian;
+using PWG = Gudhi::Persistence_representations::Persistence_heat_maps<constant_scaling_function>;
+using Persistence_diagram = std::vector<std::pair<double,double> >;
BOOST_AUTO_TEST_CASE(check_PWG) {
Persistence_diagram v1, v2; v1.emplace_back(0,1); v2.emplace_back(0,2);
- PWG pwg1(v1, 1.0, 1000, Gudhi::Persistence_representations::arctan_weight(1,1)); PWG pwgex1(v1, 1.0, -1, Gudhi::Persistence_representations::arctan_weight(1,1));
- PWG pwg2(v2, 1.0, 1000, Gudhi::Persistence_representations::arctan_weight(1,1)); PWG pwgex2(v2, 1.0, -1, Gudhi::Persistence_representations::arctan_weight(1,1));
- BOOST_CHECK(std::abs(pwg1.compute_scalar_product(pwg2) - pwgex1.compute_scalar_product(pwgex2)) <= 1e-1);
+ PWG pwg1(v1, Gudhi::Persistence_representations::Gaussian_kernel(1.0));
+ PWG pwg2(v2, Gudhi::Persistence_representations::Gaussian_kernel(1.0));
+ BOOST_CHECK(std::abs(pwg1.compute_scalar_product(pwg2) - std::exp(-0.5)/(std::sqrt(2*Gudhi::Persistence_representations::pi))) <= 1e-3);
}
BOOST_AUTO_TEST_CASE(check_SW) {