File: wasserstein_matching.cpp

package info (click to toggle)
isospec 2.3.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,472 kB
  • sloc: cpp: 9,530; python: 2,095; makefile: 180; ansic: 100; sh: 88
file content (25 lines) | stat: -rw-r--r-- 566 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include "unity-build.cpp"
#include <cassert>

using namespace IsoSpec;

int main()
{
    double masses1[] = {1.0, 2.0};
    double probs1[]  = {0.5, 0.5};
    double masses2[] = {0.9, 2.01};
    double probs2[]  = {0.4, 0.6};

    FixedEnvelope F1(masses1, probs1, 2);
    FixedEnvelope F2(masses2, probs2, 2);

    auto [m1, m2, flow] = F1.WassersteinMatch(F2, 0.05);
    std::cout << m1 << " " << m2 << " " << flow << std::endl;

    assert(m1 == 0.5 && m2 == 0.5 && flow == 0.5);

    F1.release_everything();
    F2.release_everything();
}