]> git.lyx.org Git - lyx.git/blobdiff - src/support/lyxlib.h
Add acmart template
[lyx.git] / src / support / lyxlib.h
index 6fad0d7ded131a8121da0823d3579dbae4a99e04..23894ee2ebea1d47d077ca3344ada70edd32e89f 100644 (file)
@@ -7,7 +7,7 @@
  * A selection of useful system functions made
  * handy for C++ usage.
  *
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
  *
  * Full author contact details are available in file CREDITS.
  */
 #ifndef LYX_LIB_H
 #define LYX_LIB_H
 
+// always include <math.h> (also with MSVC), to avoid compiler specific side effects
+#include <math.h>
+
+#ifdef _MSC_VER
+/// Replacement for C99 round()
+inline double round(double x)
+{
+       if (x < 0)
+               return ceil(x - 0.5);
+       else
+               return floor(x + 0.5);
+}
+#endif
+
 namespace lyx {
 namespace support {
 
@@ -34,6 +48,12 @@ inline bool float_equal(double var, double number, double error)
        return (number - error <= var && var <= number + error);
 }
 
+/// round \p x to nearest integer
+inline int iround(double x)
+{
+       return static_cast<int>(round(x));
+}
+
 } // namespace support
 } // namespace lyx