From 8975c70ca7695f2579ae5416e537e73a7cff607a Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Thu, 17 Oct 2019 11:53:16 +0200
Subject: [PATCH] Add `trunc`, `rint`, `lrint`, `round` and `lround` functions

---
 src/language/CMathModule.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/language/CMathModule.cpp b/src/language/CMathModule.cpp
index 46d2f1f94..a40372b7b 100644
--- a/src/language/CMathModule.cpp
+++ b/src/language/CMathModule.cpp
@@ -49,4 +49,19 @@ CMathModule::CMathModule()
   this->_addFunction("pow",
                      std::make_shared<CFunctionEmbedder<double, double, double>>(std::function<double(double, double)>{
                        [](double x, double y) -> double { return std::pow(x, y); }}));
+
+  this->_addFunction("trunc", std::make_shared<CFunctionEmbedder<double, double>>(
+                                std::function<double(double)>{[](double x) -> double { return std::trunc(x); }}));
+
+  this->_addFunction("round", std::make_shared<CFunctionEmbedder<double, double>>(
+                                std::function<double(double)>{[](double x) -> double { return std::round(x); }}));
+
+  this->_addFunction("lround", std::make_shared<CFunctionEmbedder<int64_t, double>>(
+                                 std::function<int64_t(double)>{[](double x) -> int64_t { return std::lround(x); }}));
+
+  this->_addFunction("rint", std::make_shared<CFunctionEmbedder<double, double>>(
+                               std::function<double(double)>{[](double x) -> double { return std::rint(x); }}));
+
+  this->_addFunction("lrint", std::make_shared<CFunctionEmbedder<int64_t, double>>(
+                                std::function<int64_t(double)>{[](double x) -> int64_t { return std::lrint(x); }}));
 }
-- 
GitLab