aboutsummaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
Diffstat (limited to 'support')
-rw-r--r--support/ToolchainSupport.h32
1 files changed, 31 insertions, 1 deletions
diff --git a/support/ToolchainSupport.h b/support/ToolchainSupport.h
index 7d02e67ec6..020a4a112b 100644
--- a/support/ToolchainSupport.h
+++ b/support/ToolchainSupport.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2018 ARM Limited.
+ * Copyright (c) 2017-2019 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -117,6 +117,21 @@ inline std::string to_string(T && value)
return stream.str();
}
+/** Rounds the floating-point argument arg to an integer value in floating-point format, using the current rounding mode.
+ *
+ * @note This function acts as a convenience wrapper around std::nearbyint. The
+ * latter is missing in some Android toolchains.
+ *
+ * @param[in] value Value to be rounded.
+ *
+ * @return The rounded value.
+ */
+template <typename T>
+inline T nearbyint(T value)
+{
+ return ::nearbyint(value);
+}
+
/** Convert string values to float.
*
* @note This function implements the same behaviour as std::stof. The latter
@@ -212,6 +227,21 @@ inline std::string to_string(T &&value)
return ::std::to_string(std::forward<T>(value));
}
+/** Rounds the floating-point argument arg to an integer value in floating-point format, using the current rounding mode.
+ *
+ * @note This function acts as a convenience wrapper around std::nearbyint. The
+ * latter is missing in some Android toolchains.
+ *
+ * @param[in] value Value to be rounded.
+ *
+ * @return The rounded value.
+ */
+template <typename T>
+inline T nearbyint(T value)
+{
+ return std::nearbyint(value);
+}
+
/** Convert string values to float.
*
* @note This function acts as a convenience wrapper around std::stof. The