summaryrefslogtreecommitdiff
path: root/src/Persistence_representations/test/kernels.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Persistence_representations/test/kernels.cpp')
-rw-r--r--src/Persistence_representations/test/kernels.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/Persistence_representations/test/kernels.cpp b/src/Persistence_representations/test/kernels.cpp
index c95e8086..b8d02d4c 100644
--- a/src/Persistence_representations/test/kernels.cpp
+++ b/src/Persistence_representations/test/kernels.cpp
@@ -40,10 +40,16 @@ using SW = Gudhi::Persistence_representations::Sliced_Wasserstein;
using PWG = Gudhi::Persistence_representations::Persistence_heat_maps<constant_scaling_function>;
using Persistence_diagram = std::vector<std::pair<double,double> >;
+std::function<double(std::pair<double, double>, std::pair<double, double>)> Gaussian_function(double sigma){
+ return [=](std::pair<double, double> p, std::pair<double, double> q){
+ return (1/std::sqrt(2*Gudhi::Persistence_representations::pi)*sigma) * std::exp( -( (p.first-q.first)*(p.first-q.first) + (p.second-q.second)*(p.second-q.second) )/(2*sigma) );
+ };
+}
+
BOOST_AUTO_TEST_CASE(check_PWG) {
Persistence_diagram v1, v2; v1.emplace_back(0,1); v2.emplace_back(0,2);
- PWG pwg1(v1, Gudhi::Persistence_representations::Gaussian_kernel(1.0));
- PWG pwg2(v2, Gudhi::Persistence_representations::Gaussian_kernel(1.0));
+ PWG pwg1(v1, Gaussian_function(1.0));
+ PWG pwg2(v2, Gaussian_function(1.0));
BOOST_CHECK(std::abs(pwg1.compute_scalar_product(pwg2) - std::exp(-0.5)/(std::sqrt(2*Gudhi::Persistence_representations::pi))) <= 1e-3);
}