src/math.h

changeset 18
918b6c0f8b5b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/math.h	Fri Dec 13 21:35:59 2019 +0200
@@ -0,0 +1,42 @@
+#pragma once
+#include <cmath>
+
+namespace math
+{
+	using std::abs;
+	using std::sqrt;
+	using std::sin;
+	using std::cos;
+	using std::tan;
+	using std::atan;
+	using std::atan2;
+	using std::acos;
+	using std::asin;
+	using std::exp;
+	using std::log;
+	using std::log10;
+	using std::hypot;
+	using std::min;
+	using std::max;
+	using std::floor;
+	using std::ceil;
+	using std::trunc;
+	using std::round;
+	template<typename T, typename... Rest>
+	auto hypot(T&& x, Rest&&... rest)
+	{
+		return math::hypot(x, math::hypot(rest...));
+	}
+	template<typename T, typename... Rest>
+	auto max(T&& x, Rest&&... rest)
+	{
+		return math::max(x, math::max(rest...));
+	}
+	template<typename T, typename... Rest>
+	auto min(T&& x, Rest&&... rest)
+	{
+		return math::min(x, math::min(rest...));
+	}
+	constexpr double infinity = std::numeric_limits<double>::infinity();
+	constexpr double pi = M_PIl;
+}

mercurial