summaryrefslogtreecommitdiff
path: root/wasserstein/include/hera_infinity.h
diff options
context:
space:
mode:
Diffstat (limited to 'wasserstein/include/hera_infinity.h')
-rw-r--r--wasserstein/include/hera_infinity.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/wasserstein/include/hera_infinity.h b/wasserstein/include/hera_infinity.h
new file mode 100644
index 0000000..8d86dbb
--- /dev/null
+++ b/wasserstein/include/hera_infinity.h
@@ -0,0 +1,22 @@
+#ifndef WASSERSTEIN_HERA_INFINITY_H
+#define WASSERSTEIN_HERA_INFINITY_H
+
+// we cannot assume that template parameter Real will always provide infinity() value,
+// so value -1.0 is used to encode infinity (l_inf norm is used by default)
+
+namespace hera {
+
+ template<class Real = double>
+ inline bool is_infinity(const Real& x)
+ {
+ return x == Real(-1);
+ };
+
+ template<class Real = double>
+ inline constexpr Real get_infinity()
+ {
+ return Real(-1);
+ }
+}
+
+#endif //WASSERSTEIN_HERA_INFINITY_H