diff options
author | Arnur Nigmetov <nigmetov@tugraz.at> | 2019-12-03 20:34:28 +0100 |
---|---|---|
committer | Arnur Nigmetov <nigmetov@tugraz.at> | 2019-12-03 20:34:28 +0100 |
commit | 29ed61e4dd575edc9960cc6414ab2e20c02a62e1 (patch) | |
tree | 4134a502f4a91c6c8a8fcc37cd24897445dbf1e3 /bottleneck/include/diagram_traits.h | |
parent | 5a59cfad45c155f8af89c2c6d82db2848d52a953 (diff) |
Rename directories for bottleneck and Wasserstein
Diffstat (limited to 'bottleneck/include/diagram_traits.h')
-rw-r--r-- | bottleneck/include/diagram_traits.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/bottleneck/include/diagram_traits.h b/bottleneck/include/diagram_traits.h new file mode 100644 index 0000000..c8d4862 --- /dev/null +++ b/bottleneck/include/diagram_traits.h @@ -0,0 +1,45 @@ +#ifndef HERA_DIAGRAM_TRAITS_H +#define HERA_DIAGRAM_TRAITS_H + +namespace hera { + +template<class PairContainer_, class PointType_ = typename std::remove_reference< decltype(*std::declval<PairContainer_>().begin())>::type > +struct DiagramTraits +{ + using Container = PairContainer_; + using PointType = PointType_; + using RealType = typename std::remove_reference< decltype(std::declval<PointType>()[0]) >::type; + + static RealType get_x(const PointType& p) { return p[0]; } + static RealType get_y(const PointType& p) { return p[1]; } +}; + + +template<class PairContainer_> +struct DiagramTraits<PairContainer_, std::pair<double, double>> +{ + using PointType = std::pair<double, double>; + using RealType = double; + using Container = std::vector<PointType>; + + static RealType get_x(const PointType& p) { return p.first; } + static RealType get_y(const PointType& p) { return p.second; } +}; + + +template<class PairContainer_> +struct DiagramTraits<PairContainer_, std::pair<float, float>> +{ + using PointType = std::pair<float, float>; + using RealType = float; + using Container = std::vector<PointType>; + + static RealType get_x(const PointType& p) { return p.first; } + static RealType get_y(const PointType& p) { return p.second; } +}; + + +} // end namespace hera + + +#endif // HERA_DIAGRAM_TRAITS_H |